19 static constexpr auto Dim = 3;
37 constexpr Vector3D(
float ix,
float iy,
float iz)
48 return x *
x +
y *
y +
z *
z;
72 const float epsilon = 2.0f * std::numeric_limits<float>::epsilon())
const {
73 const float length =
Length();
74 if (length <= std::max(epsilon, 0.0f)) {
77 const float k = 1.0f / length;
155 return (
x == rhs.
x) && (
y == rhs.
y) && (
z == rhs.
z);
159 return !(*
this == rhs);
166#ifdef LIBCARLA_INCLUDED_FROM_UE4
176 return *
this * 1e-2f;
185 return FVector{
x,
y,
z};
196 template <
typename Packer>
199 clmdep_msgpack::type::make_define_array(
x,
y,
z).msgpack_pack(pk);
203 clmdep_msgpack::type::make_define_array(
x,
y,
z).msgpack_unpack(o);
205 template <
typename MSGPACK_OBJECT>
206 void msgpack_object(MSGPACK_OBJECT* o, clmdep_msgpack::zone& sneaky_variable_that_shadows_z)
const
208 clmdep_msgpack::type::make_define_array(
x,
y,
z).msgpack_object(o, sneaky_variable_that_shadows_z);
This file contains definitions of common data structures used in traffic manager.
constexpr Vector3D & operator-=(const float f)
constexpr friend Vector3D operator/(Vector3D lhs, float rhs)
void msgpack_object(MSGPACK_OBJECT *o, clmdep_msgpack::zone &sneaky_variable_that_shadows_z) const
FVector ToFVector() const
constexpr Vector3D & operator+=(const Vector3D &rhs)
Vector3D(const FVector &v)=delete
These 2 methods are explicitly deleted to avoid creating them by other users, unlike locations,...
constexpr friend Vector3D operator*(float lhs, Vector3D rhs)
constexpr Vector3D & operator-=(const Vector3D &rhs)
static constexpr auto Dim
Vector3D ToCentimeters() const
Return a Vector3D converted from meters to centimeters.
void msgpack_pack(Packer &pk) const
constexpr friend Vector3D operator*(Vector3D lhs, float rhs)
constexpr friend Vector3D operator-(Vector3D lhs, const Vector3D &rhs)
constexpr float SquaredLength2D() const
constexpr friend Vector3D operator+(Vector3D lhs, const Vector3D &rhs)
Vector3D ToMeters() const
Return a Vector3D converted from centimeters to meters.
constexpr float SquaredLength() const
Vector3D MakeUnitVector(const float epsilon=2.0f *std::numeric_limits< float >::epsilon()) const
Return a unit-length copy of this vector.
void msgpack_unpack(clmdep_msgpack::object const &o)
Vector3D & operator=(const FVector &rhs)=delete
constexpr Vector3D & operator/=(float rhs)
constexpr Vector3D(float ix, float iy, float iz)
constexpr friend Vector3D operator/(float lhs, Vector3D rhs)
constexpr bool operator!=(const Vector3D &rhs) const
constexpr bool operator==(const Vector3D &rhs) const
constexpr Vector3D & operator*=(float rhs)