Go to the documentation of this file.
112 void set(
double x,
double y,
double z);
118 bool equals(
const CscPoint3d &theOtherOne,
double epsilon = 0.000001)
const;
119 bool equalsValues(
double x,
double y,
double z,
double epsilon = 0.000001)
const;
121 virtual operator string()
const;
138 vector<CscPoint3d *> *
copyPoints(
const vector<const CscPoint3d *> &points);
148 struct CscRotation3dEuler;
166 virtual operator string()
const;
224 virtual operator string()
const;
273 operator string()
const;
323 operator string()
const override {
332 [[deprecated(
"Use extractNavigationQuaternionFromEntityQuaternion() for navigation/LiDAR orientation.")]]
370 assert(((
void)(
"polygon has only 3 positions - requestedIndex=" +
to_string(index)), index >= 0 && index < 3));
371 return positions[index];
375 assert(((
void)(
"polygon has only 3 normals - requestedIndex=" +
to_string(index)), index >= 0 && index < 3));
376 return normalVectors[index];
380 return {positions[0], positions[1], positions[2]};
391 explicit Vec3(
double x = 0,
double y = 0,
double z = 0);
double x
Definition: Csc3dTypes.h:390
static const CscPoint3d *const POINT_ZERO
Definition: Csc3dTypes.h:131
static int getDirection(const CscPoint3d *a, const CscPoint3d *b, const CscPoint3d *c)
Definition: Csc3dTypes.cpp:394
virtual string toString() const
Definition: Csc3dTypes.cpp:238
void normalize()
Definition: Csc3dTypes.cpp:680
NLOHMANN_BASIC_JSON_TPL_DECLARATION std::string to_string(const NLOHMANN_BASIC_JSON_TPL &j)
user-defined to_string function for JSON values
Definition: json.hpp:26470
const int ID
Definition: Csc3dTypes.h:338
double getYaw() const
Definition: Csc3dTypes.cpp:774
The CscPoint3d class represents a point in three-dimensional space. It is primarily used to denote a ...
Definition: Csc3dTypes.h:24
virtual ~CscQuaternion()=default
bool isIntersectLine(const CscLine3d *lineToCheck) const
Definition: Csc3dTypes.cpp:364
bool equals(const CscPoint3d &theOtherOne, double epsilon=0.000001) const
Definition: Csc3dTypes.cpp:81
CscPoint3d * rotate(const CscPoint3d *rotationEulerXYZ, const CscPoint3d *rotationCenter=nullptr) const
Definition: Csc3dTypes.cpp:85
@ XYZ
Definition: Csc3dTypes.h:411
double x
Definition: Csc3dTypes.h:395
virtual string toString() const
Definition: Csc3dTypes.cpp:784
virtual ~CscArea3d()
Definition: Csc3dTypes.cpp:335
Vec4()
Definition: Csc3dTypes.h:396
CscPoint3d & operator*=(double scalar)
Definition: Csc3dTypes.cpp:170
bool isPointInside(const CscPoint3d *pointToCheck) const
Definition: Csc3dTypes.cpp:339
Definition: Csc3dTypes.h:229
double z
Definition: Csc3dTypes.h:154
double getY() const
Definition: Csc3dTypes.cpp:617
virtual CscQuaternion * clone() const
Definition: Csc3dTypes.cpp:761
double getY() const
Definition: Csc3dTypes.cpp:55
double sizeZ
Definition: Csc3dTypes.h:252
double y
Definition: Csc3dTypes.h:395
Definition: Csc2dTypes.cpp:9
double distanceToOrigin() const
Definition: Csc3dTypes.cpp:208
double eulerY
Definition: Csc3dTypes.h:281
CscPoint3d(CscPoint3d *fromPoint)
Definition: Csc3dTypes.cpp:10
CscPoint3d getPositionMax() const
Definition: Csc3dTypes.cpp:315
double x
Definition: Csc3dTypes.h:152
const CscPoint3d * getBarycentre() const
Definition: Csc3dTypes.cpp:489
Definition: Csc3dTypes.h:243
~CscLine3d()
Definition: Csc3dTypes.cpp:407
string pointsToString(const vector< CscPoint3d * > &points)
Definition: Csc3dTypes.cpp:252
CscArea3d * clone() const
Definition: Csc3dTypes.cpp:298
double getPitch() const
Definition: Csc3dTypes.cpp:771
const CscPoint3d * normalAt(int index) const
Definition: Csc3dTypes.h:374
bool equalsValues(double x, double y, double z, double epsilon=0.000001) const
Definition: Csc3dTypes.cpp:219
CscRotation3dEuler(double pitch=0, double yaw=0, double roll=0)
Definition: Csc3dTypes.cpp:768
const CscPoint3d *const positionB
Definition: Csc3dTypes.h:234
string eulerToString() const
Definition: Csc3dTypes.cpp:441
Vec3(double x=0, double y=0, double z=0)
Definition: Csc3dTypes.cpp:603
virtual ~CscPolygon()
Definition: Csc3dTypes.cpp:534
@ AXIS_3D_Y
Definition: Csc3dTypes.h:144
double dotProduct(const CscPoint3d &other) const
Definition: Csc3dTypes.cpp:191
double getSizeX() const
Definition: Csc3dTypes.cpp:323
bool comparePoints(const CscPoint3d *a, const CscPoint3d *b)
Definition: Csc3dTypes.cpp:267
CscPoint3d * operator/(double scalar) const
Definition: Csc3dTypes.cpp:163
bool isIntersectPoint(const CscPoint3d *pointToCheck) const
Definition: Csc3dTypes.cpp:357
CscPoint3d crossProduct(const CscPoint3d &other) const
Definition: Csc3dTypes.cpp:184
CscPoint3d * operator+(const CscPoint3d &rightOperand) const
Definition: Csc3dTypes.cpp:149
virtual CscPoint3d * clone() const
Definition: Csc3dTypes.cpp:242
CscQuaternion operator/(const CscQuaternion &other) const
Definition: Csc3dTypes.cpp:729
static CscQuaternion identity()
Definition: Csc3dTypes.cpp:764
Definition: Csc3dTypes.h:206
vector< CscPoint3d * > * copyPoints(const vector< const CscPoint3d * > &points)
Definition: Csc3dTypes.cpp:285
CscPoint3dOriented * clone() const override
Definition: Csc3dTypes.cpp:437
double toStandardEulerY() const
Definition: Csc3dTypes.cpp:449
virtual string toString() const
Definition: Csc3dTypes.cpp:757
void setByIndex(int index, double value)
Definition: Csc3dTypes.cpp:33
CscQuaternion & operator*=(const CscQuaternion &other)
Definition: Csc3dTypes.cpp:666
@ LNG_ALTITUDE_LAT
Definition: Csc3dTypes.h:407
double getZ() const
Definition: Csc3dTypes.cpp:621
virtual ~CscRotation3dEuler()=default
#define assert(condition)
Definition: zstd.cpp:266
double getSizeZ() const
Definition: Csc3dTypes.cpp:331
CscPoint3d * leftNormal()
Definition: Csc3dTypes.cpp:196
static CscPoint3d * zero()
Definition: Csc3dTypes.cpp:18
CscQuaternion(double w=0, double x=0, double y=0, double z=0)
Definition: Csc3dTypes.cpp:606
void rotateVector(CscPoint3d &vector) const
Definition: Csc3dTypes.cpp:704
CscPoint3d * centerWith(const CscPoint3d *other) const
Definition: Csc3dTypes.cpp:69
double eulerX
Definition: Csc3dTypes.h:280
CscQuaternion conjugate() const
Definition: Csc3dTypes.cpp:690
double getEulerX() const
Definition: Csc3dTypes.cpp:425
double yaw
Definition: Csc3dTypes.h:214
CscPolygon * clone() const
Definition: Csc3dTypes.cpp:525
CscPoint3d * position
Definition: Csc3dTypes.h:249
CscPoint3d CscSize3d
Definition: Csc3dTypes.h:140
const CscPoint3d * getNormals() const
Definition: Csc3dTypes.cpp:506
CscPolygon(const CscPoint3d *p0, const CscPoint3d *p1, const CscPoint3d *p2, const CscPoint3d *normal0=nullptr, const CscPoint3d *normal1=nullptr, const CscPoint3d *normal2=nullptr, int ID=0)
Definition: Csc3dTypes.cpp:468
double squaredDistanceToOrigin() const
Definition: Csc3dTypes.cpp:212
const CscPoint3d * positionAt(int index) const
Definition: Csc3dTypes.h:369
virtual ~CscPoint3d()
Definition: Csc3dTypes.cpp:16
Axis3d
Definition: Csc3dTypes.h:142
CscPoint3d & operator+=(const CscPoint3d &rightOperand)
Definition: Csc3dTypes.cpp:177
double pitch
Definition: Csc3dTypes.h:210
const CscPoint3d *const positionA
Definition: Csc3dTypes.h:233
static CscQuaternion fromAngleAxis(double angleRad, Axis3d axis)
Definition: Csc3dTypes.cpp:629
@ AXIS_3D_X
Definition: Csc3dTypes.h:143
double getSizeY() const
Definition: Csc3dTypes.cpp:327
double getZ() const
Definition: Csc3dTypes.cpp:59
double w
Definition: Csc3dTypes.h:395
vector< const CscPoint3d * > getPositions() const
Definition: Csc3dTypes.h:379
CscPoint3d * operator-(const CscPoint3d &rightOperand) const
Definition: Csc3dTypes.cpp:145
CscPoint3d * end
Definition: Csc3dTypes.h:416
const CscPoint3d & getPositionMin() const
Definition: Csc3dTypes.cpp:319
void normalize()
Definition: Csc3dTypes.cpp:200
Definition: Csc3dTypes.h:150
double y
Definition: Csc3dTypes.h:390
PositionFormat
Indicates the type of coordinates in the CscPoint3D. These can be XYZ coordinates or Latitude and Lon...
Definition: Csc3dTypes.h:403
double getW() const
Definition: Csc3dTypes.cpp:625
void deleteDuplicates(vector< const CscPoint3d * > &points)
Definition: Csc3dTypes.cpp:277
CscPoint3dOriented(const CscPoint3d &point, double eulerX, double eulerY, double eulerZ)
Definition: Csc3dTypes.cpp:416
CscPoint3d * multiplyWith(const CscPoint3d *rightOperand) const
Definition: Csc3dTypes.cpp:141
string toString() const
Definition: Csc3dTypes.cpp:346
double roll
Definition: Csc3dTypes.h:218
void copyFrom(const CscPoint3d &otherPoint)
Definition: Csc3dTypes.cpp:246
bool isPointInside(const CscPoint3d *pointToCheck) const
Definition: Csc3dTypes.cpp:544
double getRoll() const
Definition: Csc3dTypes.cpp:777
CscLine3d(const CscPoint3d *positionA=CscPoint3d::zero(), const CscPoint3d *positionB=CscPoint3d::zero())
Definition: Csc3dTypes.cpp:352
CscArea3d(CscPoint3d *position=new CscPoint3d(0, 0, 0), double sizeX=0, double sizeY=0, double sizeZ=0)
Definition: Csc3dTypes.cpp:293
Definition: Csc3dTypes.h:414
double getX() const
Definition: Csc3dTypes.cpp:51
void setEuler(double eulerX, double eulerY, double eulerZ)
Definition: Csc3dTypes.cpp:462
double z
Definition: Csc3dTypes.h:395
double eulerZ
Definition: Csc3dTypes.h:282
double getEulerY() const
Definition: Csc3dTypes.cpp:429
double c
Definition: HybridAStar.cpp:84
void copyFrom(const CscArea3d &otherArea)
Definition: Csc3dTypes.cpp:306
CscPoint3d * operator*(const CscPoint3d &rightOperand) const
Definition: Csc3dTypes.cpp:153
@ AXIS_3D_Z
Definition: Csc3dTypes.h:145
uint8_t b
Definition: PathFinding3D25D.cpp:21
double sizeX
Definition: Csc3dTypes.h:250
double getByIndex(int index) const
Definition: Csc3dTypes.cpp:22
double getEulerZ() const
Definition: Csc3dTypes.cpp:433
Vec4(double x, double y, double z, double w=1)
Definition: Csc3dTypes.h:397
CscPolygon * rotate(const CscPoint3d *rotationEulerXYZ, const CscPoint3d *rotationCenter=nullptr) const
Definition: Csc3dTypes.cpp:570
Definition: Csc3dTypes.h:277
double w
Definition: Csc3dTypes.h:151
CscQuaternion inverse() const
Definition: Csc3dTypes.cpp:694
Definition: Csc3dTypes.h:336
double getX() const
Definition: Csc3dTypes.cpp:613
Definition: Csc3dTypes.h:394
double y
Definition: Csc3dTypes.h:32
Definition: Csc3dTypes.h:389
static CscPoint3dOriented * zero()
Definition: Csc3dTypes.cpp:412
double sizeY
Definition: Csc3dTypes.h:251
CscPoint3d * plus(const CscPoint3d *rightOperand) const
Definition: Csc3dTypes.cpp:133
CscPolygon * translate(double x, double y, double z) const
Definition: Csc3dTypes.cpp:588
double z
Definition: Csc3dTypes.h:33
double distanceWith(const CscPoint3d *point) const
Definition: Csc3dTypes.cpp:63
CscQuaternion operator*(const CscQuaternion &other) const
Definition: Csc3dTypes.cpp:657
void set(double x, double y, double z)
Definition: Csc3dTypes.cpp:223
bool equals(const CscPoint3dOriented &other, double epsilon=0.000001) const
Definition: Csc3dTypes.cpp:445
double y
Definition: Csc3dTypes.h:153
double x
Definition: Csc3dTypes.h:31
virtual CscRotation3dEuler * clone() const
Definition: Csc3dTypes.cpp:788
CscRotation3dEuler toEuler() const
Definition: Csc3dTypes.cpp:719
CscPoint3d * minus(const CscPoint3d *rightOperand) const
Definition: Csc3dTypes.cpp:129
CscPoint3d * start
Definition: Csc3dTypes.h:415
double z
Definition: Csc3dTypes.h:390
CscQuaternion operator+(const CscQuaternion &other) const
Definition: Csc3dTypes.cpp:744