File indexing completed on 2025-01-18 09:28:06
0001
0002
0003 #ifndef ACTSPODIOEDM_Vector3f_H
0004 #define ACTSPODIOEDM_Vector3f_H
0005
0006 #include <ostream>
0007
0008 #if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
0009 #include "nlohmann/json_fwd.hpp"
0010 #endif
0011
0012 namespace ActsPodioEdm {
0013
0014
0015
0016
0017
0018 class Vector3f {
0019 public:
0020 float x{};
0021 float y{};
0022 float z{};
0023
0024 constexpr Vector3f() : x(0), y(0), z(0) {}
0025 constexpr Vector3f(float xx, float yy, float zz) : x(xx), y(yy), z(zz) {}
0026 constexpr Vector3f(const float* v) : x(v[0]), y(v[1]), z(v[2]) {}
0027 constexpr bool operator==(const Vector3f& v) const {
0028 return (x == v.x && y == v.y && z == v.z);
0029 }
0030 constexpr float operator[](unsigned i) const { return *(&x + i); }
0031 };
0032
0033 std::ostream& operator<<(std::ostream& o, const ActsPodioEdm::Vector3f& value);
0034
0035 #if defined(PODIO_JSON_OUTPUT) && !defined(__CLING__)
0036 void to_json(nlohmann::json& j, const Vector3f& value);
0037 #endif
0038
0039 }
0040
0041 #endif