Go to the documentation of this file.
100 void set(
double x,
double y,
double z);
109 virtual operator string()
const;
126 vector<CscPoint3d *> *
copyPoints(
const vector<const CscPoint3d *> &points);
136 struct CscRotation3dEuler;
154 virtual operator string()
const;
212 virtual operator string()
const;
261 operator string()
const;
307 operator string()
const override {
349 return positions[
index];
354 return normalVectors[
index];
358 return {positions[0], positions[1], positions[2]};
369 explicit Vec3(
double x = 0,
double y = 0,
double z = 0);
double x
Definition: Csc3dTypes.h:368
static const CscPoint3d *const POINT_ZERO
Definition: Csc3dTypes.h:119
bool equalsValues(double x, double y, double z) const
Definition: Csc3dTypes.cpp:184
static int getDirection(const CscPoint3d *a, const CscPoint3d *b, const CscPoint3d *c)
Definition: Csc3dTypes.cpp:359
virtual string toString() const
Definition: Csc3dTypes.cpp:203
void normalize()
Definition: Csc3dTypes.cpp:641
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:316
double getYaw() const
Definition: Csc3dTypes.cpp:735
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:329
CscPoint3d * rotate(const CscPoint3d *rotationEulerXYZ, const CscPoint3d *rotationCenter=nullptr) const
Definition: Csc3dTypes.cpp:85
@ XYZ
Definition: Csc3dTypes.h:389
double x
Definition: Csc3dTypes.h:373
virtual string toString() const
Definition: Csc3dTypes.cpp:745
virtual ~CscArea3d()
Definition: Csc3dTypes.cpp:300
Vec4()
Definition: Csc3dTypes.h:374
CscPoint3d & operator*=(double scalar)
Definition: Csc3dTypes.cpp:163
bool isPointInside(const CscPoint3d *pointToCheck) const
Definition: Csc3dTypes.cpp:304
Definition: Csc3dTypes.h:217
double z
Definition: Csc3dTypes.h:142
double getY() const
Definition: Csc3dTypes.cpp:578
virtual CscQuaternion * clone() const
Definition: Csc3dTypes.cpp:722
double getY() const
Definition: Csc3dTypes.cpp:55
double sizeZ
Definition: Csc3dTypes.h:240
double y
Definition: Csc3dTypes.h:373
Definition: Csc2dTypes.cpp:9
double eulerY
Definition: Csc3dTypes.h:269
bool equals(const CscPoint3d &theOtherOne) const
Definition: Csc3dTypes.cpp:81
CscPoint3d(CscPoint3d *fromPoint)
Definition: Csc3dTypes.cpp:10
CscPoint3d getPositionMax() const
Definition: Csc3dTypes.cpp:280
double x
Definition: Csc3dTypes.h:140
const CscPoint3d * getBarycentre() const
Definition: Csc3dTypes.cpp:450
Definition: Csc3dTypes.h:231
~CscLine3d()
Definition: Csc3dTypes.cpp:372
string pointsToString(const vector< CscPoint3d * > &points)
Definition: Csc3dTypes.cpp:217
CscArea3d * clone() const
Definition: Csc3dTypes.cpp:263
double getPitch() const
Definition: Csc3dTypes.cpp:732
const CscPoint3d * normalAt(int index) const
Definition: Csc3dTypes.h:352
CscRotation3dEuler(double pitch=0, double yaw=0, double roll=0)
Definition: Csc3dTypes.cpp:729
const CscPoint3d *const positionB
Definition: Csc3dTypes.h:222
#define assert(condition)
Definition: lz4.cpp:274
string eulerToString() const
Definition: Csc3dTypes.cpp:406
Vec3(double x=0, double y=0, double z=0)
Definition: Csc3dTypes.cpp:564
virtual ~CscPolygon()
Definition: Csc3dTypes.cpp:495
@ AXIS_3D_Y
Definition: Csc3dTypes.h:132
double getSizeX() const
Definition: Csc3dTypes.cpp:288
bool comparePoints(const CscPoint3d *a, const CscPoint3d *b)
Definition: Csc3dTypes.cpp:232
bool isIntersectPoint(const CscPoint3d *pointToCheck) const
Definition: Csc3dTypes.cpp:322
CscPoint3d crossProduct(const CscPoint3d &other) const
Definition: Csc3dTypes.cpp:177
CscPoint3d * operator+(const CscPoint3d &rightOperand) const
Definition: Csc3dTypes.cpp:149
virtual CscPoint3d * clone() const
Definition: Csc3dTypes.cpp:207
CscQuaternion operator/(const CscQuaternion &other) const
Definition: Csc3dTypes.cpp:690
static CscQuaternion identity()
Definition: Csc3dTypes.cpp:725
Definition: Csc3dTypes.h:194
vector< CscPoint3d * > * copyPoints(const vector< const CscPoint3d * > &points)
Definition: Csc3dTypes.cpp:250
CscPoint3dOriented * clone() const override
Definition: Csc3dTypes.cpp:402
double toStandardEulerY() const
Definition: Csc3dTypes.cpp:410
virtual string toString() const
Definition: Csc3dTypes.cpp:718
void setByIndex(int index, double value)
Definition: Csc3dTypes.cpp:33
CscQuaternion & operator*=(const CscQuaternion &other)
Definition: Csc3dTypes.cpp:627
@ LNG_ALTITUDE_LAT
Definition: Csc3dTypes.h:385
double getZ() const
Definition: Csc3dTypes.cpp:582
virtual ~CscRotation3dEuler()=default
double getSizeZ() const
Definition: Csc3dTypes.cpp:296
static CscPoint3d * zero()
Definition: Csc3dTypes.cpp:18
CscQuaternion(double w=0, double x=0, double y=0, double z=0)
Definition: Csc3dTypes.cpp:567
void rotateVector(CscPoint3d &vector) const
Definition: Csc3dTypes.cpp:665
CscPoint3d * centerWith(const CscPoint3d *other) const
Definition: Csc3dTypes.cpp:69
double eulerX
Definition: Csc3dTypes.h:268
CscQuaternion conjugate() const
Definition: Csc3dTypes.cpp:651
double getEulerX() const
Definition: Csc3dTypes.cpp:390
double yaw
Definition: Csc3dTypes.h:202
CscPolygon * clone() const
Definition: Csc3dTypes.cpp:486
CscPoint3d * position
Definition: Csc3dTypes.h:237
CscPoint3d CscSize3d
Definition: Csc3dTypes.h:128
uint32_t index(const std::array< char, 64 > &alphabet, char symbol)
Definition: base.h:91
const CscPoint3d * getNormals() const
Definition: Csc3dTypes.cpp:467
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:429
const CscPoint3d * positionAt(int index) const
Definition: Csc3dTypes.h:347
virtual ~CscPoint3d()
Definition: Csc3dTypes.cpp:16
Axis3d
Definition: Csc3dTypes.h:130
CscPoint3d & operator+=(const CscPoint3d &rightOperand)
Definition: Csc3dTypes.cpp:170
double pitch
Definition: Csc3dTypes.h:198
const CscPoint3d *const positionA
Definition: Csc3dTypes.h:221
static CscQuaternion fromAngleAxis(double angleRad, Axis3d axis)
Definition: Csc3dTypes.cpp:590
@ AXIS_3D_X
Definition: Csc3dTypes.h:131
double getSizeY() const
Definition: Csc3dTypes.cpp:292
double getZ() const
Definition: Csc3dTypes.cpp:59
double w
Definition: Csc3dTypes.h:373
vector< const CscPoint3d * > getPositions() const
Definition: Csc3dTypes.h:357
CscPoint3d * operator-(const CscPoint3d &rightOperand) const
Definition: Csc3dTypes.cpp:145
CscPoint3d * end
Definition: Csc3dTypes.h:394
const CscPoint3d & getPositionMin() const
Definition: Csc3dTypes.cpp:284
Definition: Csc3dTypes.h:138
double y
Definition: Csc3dTypes.h:368
PositionFormat
Indicates the type of coordinates in the CscPoint3D. These can be XYZ coordinates or Latitude and Lon...
Definition: Csc3dTypes.h:381
double getW() const
Definition: Csc3dTypes.cpp:586
void deleteDuplicates(vector< const CscPoint3d * > &points)
Definition: Csc3dTypes.cpp:242
CscPoint3dOriented(const CscPoint3d &point, double eulerX, double eulerY, double eulerZ)
Definition: Csc3dTypes.cpp:381
CscPoint3d * multiplyWith(const CscPoint3d *rightOperand) const
Definition: Csc3dTypes.cpp:141
string toString() const
Definition: Csc3dTypes.cpp:311
double roll
Definition: Csc3dTypes.h:206
void copyFrom(const CscPoint3d &otherPoint)
Definition: Csc3dTypes.cpp:211
bool isPointInside(const CscPoint3d *pointToCheck) const
Definition: Csc3dTypes.cpp:505
double getRoll() const
Definition: Csc3dTypes.cpp:738
CscLine3d(const CscPoint3d *positionA=CscPoint3d::zero(), const CscPoint3d *positionB=CscPoint3d::zero())
Definition: Csc3dTypes.cpp:317
CscArea3d(CscPoint3d *position=new CscPoint3d(0, 0, 0), double sizeX=0, double sizeY=0, double sizeZ=0)
Definition: Csc3dTypes.cpp:258
Definition: Csc3dTypes.h:392
double getX() const
Definition: Csc3dTypes.cpp:51
void setEuler(double eulerX, double eulerY, double eulerZ)
Definition: Csc3dTypes.cpp:423
double z
Definition: Csc3dTypes.h:373
double eulerZ
Definition: Csc3dTypes.h:270
double getEulerY() const
Definition: Csc3dTypes.cpp:394
double c
Definition: HybridAStar.cpp:84
void copyFrom(const CscArea3d &otherArea)
Definition: Csc3dTypes.cpp:271
CscPoint3d * operator*(const CscPoint3d &rightOperand) const
Definition: Csc3dTypes.cpp:153
@ AXIS_3D_Z
Definition: Csc3dTypes.h:133
double sizeX
Definition: Csc3dTypes.h:238
double getByIndex(int index) const
Definition: Csc3dTypes.cpp:22
double getEulerZ() const
Definition: Csc3dTypes.cpp:398
Vec4(double x, double y, double z, double w=1)
Definition: Csc3dTypes.h:375
CscPolygon * rotate(const CscPoint3d *rotationEulerXYZ, const CscPoint3d *rotationCenter=nullptr) const
Definition: Csc3dTypes.cpp:531
Definition: Csc3dTypes.h:265
double w
Definition: Csc3dTypes.h:139
CscQuaternion inverse() const
Definition: Csc3dTypes.cpp:655
Definition: Csc3dTypes.h:314
double getX() const
Definition: Csc3dTypes.cpp:574
Definition: Csc3dTypes.h:372
double y
Definition: Csc3dTypes.h:32
Definition: Csc3dTypes.h:367
static CscPoint3dOriented * zero()
Definition: Csc3dTypes.cpp:377
double sizeY
Definition: Csc3dTypes.h:239
CscPoint3d * plus(const CscPoint3d *rightOperand) const
Definition: Csc3dTypes.cpp:133
CscPolygon * translate(double x, double y, double z) const
Definition: Csc3dTypes.cpp:549
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:618
void set(double x, double y, double z)
Definition: Csc3dTypes.cpp:188
double y
Definition: Csc3dTypes.h:141
double x
Definition: Csc3dTypes.h:31
virtual CscRotation3dEuler * clone() const
Definition: Csc3dTypes.cpp:749
CscRotation3dEuler toEuler() const
Definition: Csc3dTypes.cpp:680
CscPoint3d * minus(const CscPoint3d *rightOperand) const
Definition: Csc3dTypes.cpp:129
CscPoint3d * start
Definition: Csc3dTypes.h:393
double z
Definition: Csc3dTypes.h:368
CscQuaternion operator+(const CscQuaternion &other) const
Definition: Csc3dTypes.cpp:705