Conscience Core
Csc3dTypes.h
Go to the documentation of this file.
1 //
2 // CscPoint3d.hpp
3 // ConscienceRobotManager
4 //
5 // Created by MACBOOK PRO on 05/03/2019.
6 // Copyright © 2019 IliesZaoui. All rights reserved.
7 //
8 
9 #ifndef Csc3dTypes_h
10 #define Csc3dTypes_h
11 
12 #include <iostream>
13 #include <string>
14 #include <vector>
15 #include <cassert>
16 
17 using std::to_string, std::string, std::vector;
18 
19 namespace conscience_core::axiomes {
20 
24 class CscPoint3d {
25 public:
29  static CscPoint3d *zero();
30 
31  double x;
32  double y;
33  double z;
34 
35  CscPoint3d(CscPoint3d *fromPoint);
36  CscPoint3d(double x = 0, double y = 0, double z = 0);
37  virtual ~CscPoint3d();
38 
39  double getX() const;
40  double getY() const;
41  double getZ() const;
42 
46  double getByIndex(int index) const;
50  void setByIndex(int index, double value);
51 
52  double distanceWith(const CscPoint3d *point) const;
53 
57  CscPoint3d *centerWith(const CscPoint3d *other) const;
58 
65  CscPoint3d *rotate(const CscPoint3d *rotationEulerXYZ, const CscPoint3d *rotationCenter = nullptr) const;
66 
70  CscPoint3d *rotate(double eulerX, double eulerY, double eulerZ, const CscPoint3d *rotationCenter = nullptr) const;
71 
75  CscPoint3d *minus(const CscPoint3d *rightOperand) const;
76 
80  CscPoint3d *plus(const CscPoint3d *rightOperand) const;
81 
85  CscPoint3d *plus(double x, double y, double z) const;
86 
90  CscPoint3d *multiplyWith(const CscPoint3d *rightOperand) const;
91 
92  CscPoint3d *operator-(const CscPoint3d &rightOperand) const;
93  CscPoint3d *operator+(const CscPoint3d &rightOperand) const;
94  CscPoint3d *operator*(const CscPoint3d &rightOperand) const;
95  CscPoint3d *operator*(double scalar) const;
96  CscPoint3d *operator/(double scalar) const;
97  CscPoint3d &operator*=(double scalar);
98  CscPoint3d &operator+=(const CscPoint3d &rightOperand);
99  CscPoint3d crossProduct(const CscPoint3d &other) const;
100  double dotProduct(const CscPoint3d &other) const;
101 
103  void normalize();
104 
105  /*
106  * Return the length of the point3D just as the length of a Vector
107  */
108  double distanceToOrigin() const;
109  double squaredDistanceToOrigin() const;
110 
111 
112  void set(double x, double y, double z);
113  void set(const CscPoint3d &fromOther);
114 
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;
120 
121  virtual operator string() const;
122  virtual string toString() const;
123 
124  virtual CscPoint3d *clone() const;
125  void copyFrom(const CscPoint3d &otherPoint);
126 };
127 
131 inline static const CscPoint3d *const POINT_ZERO = new CscPoint3d(0, 0, 0);
132 
133 string pointsToString(const vector<CscPoint3d *> &points);
134 string pointsToString(const vector<const CscPoint3d *> &points);
135 
136 bool comparePoints(const CscPoint3d *a, const CscPoint3d *b);
137 void deleteDuplicates(vector<const CscPoint3d *> &points);
138 vector<CscPoint3d *> *copyPoints(const vector<const CscPoint3d *> &points);
139 
141 
142 enum Axis3d {
146 };
147 
148 struct CscRotation3dEuler;
149 
151  double w = 0;
152  double x = 0;
153  double y = 0;
154  double z = 0;
155  CscQuaternion(double w = 0, double x = 0, double y = 0, double z = 0);
160  CscQuaternion(const double *values);
161  virtual ~CscQuaternion() = default;
162  double getX() const;
163  double getY() const;
164  double getZ() const;
165  double getW() const;
166  virtual operator string() const;
167  virtual string toString() const;
168  virtual CscQuaternion *clone() const;
169 
173  static CscQuaternion identity();
174  static CscQuaternion fromAngleAxis(double angleRad, Axis3d axis);
178  CscQuaternion operator*(const CscQuaternion &other) const;
179  CscQuaternion &operator*=(const CscQuaternion &other);
180  CscPoint3d operator*(const CscPoint3d &vector) const;
184  CscQuaternion operator/(const CscQuaternion &other) const;
185  CscQuaternion operator+(const CscQuaternion &other) const;
186 
190  void normalize();
191 
197  CscQuaternion conjugate() const;
198 
199  CscQuaternion inverse() const;
200 
201  void rotateVector(CscPoint3d &vector) const;
202 
203  CscRotation3dEuler toEuler() const;
204 };
205 
210  double pitch = 0;
214  double yaw = 0;
218  double roll = 0;
219  CscRotation3dEuler(double pitch = 0, double yaw = 0, double roll = 0);
220  virtual ~CscRotation3dEuler() = default;
221  double getPitch() const;
222  double getYaw() const;
223  double getRoll() const;
224  virtual operator string() const;
225  virtual string toString() const;
226  virtual CscRotation3dEuler *clone() const;
227 };
228 
229 class CscLine3d {
230 
231 public:
233  const CscPoint3d *const positionA;
234  const CscPoint3d *const positionB;
235 
236  bool isIntersectPoint(const CscPoint3d *pointToCheck) const;
237  static int getDirection(const CscPoint3d *a, const CscPoint3d *b, const CscPoint3d *c);
238  bool isIntersectLine(const CscLine3d *lineToCheck) const;
239 
240  ~CscLine3d();
241 };
242 
243 class CscArea3d {
244 
245 public:
250  double sizeX;
251  double sizeY;
252  double sizeZ;
253 
254  CscPoint3d getPositionMax() const;
255 
260  CscArea3d(CscPoint3d *position = new CscPoint3d(0, 0, 0), double sizeX = 0, double sizeY = 0, double sizeZ = 0);
261  CscArea3d(double x, double y, double z, double sizeX, double sizeY, double sizeZ);
262  virtual ~CscArea3d();
263 
264  const CscPoint3d &getPositionMin() const;
265  double getSizeX() const;
266  double getSizeY() const;
267  double getSizeZ() const;
268 
269  CscArea3d *clone() const;
270  void copyFrom(const CscArea3d &otherArea);
271  bool isPointInside(const CscPoint3d *pointToCheck) const;
272 
273  operator string() const;
274  string toString() const;
275 };
276 
278 
279 public:
280  double eulerX;
281  double eulerY;
282  double eulerZ;
283 
287  static CscPoint3dOriented *zero();
288 
289  CscPoint3dOriented(const CscPoint3d &point, double eulerX, double eulerY, double eulerZ);
290  CscPoint3dOriented(const CscPoint3d &point, const CscPoint3d &rotation);
291  CscPoint3dOriented(double x = 0, double y = 0, double z = 0, double eulerX = 0, double eulerY = 0, double eulerZ = 0);
292 
293  // to be able to access to the parent method equals()
294  using CscPoint3d::equals;
295 
296  bool equals(const CscPoint3dOriented& other, double epsilon = 0.000001) const;
301  double getEulerX() const;
306  double getEulerY() const;
311  double getEulerZ() const;
312 
317  void setEuler(double eulerX, double eulerY, double eulerZ);
318 
319  CscPoint3dOriented *clone() const override;
320 
321  string eulerToString() const;
322 
323  operator string() const override {
324  return "(" + to_string(x) + ", " + to_string(y) + ", " + to_string(z) + " - EulerXYZ=" + eulerToString() + ")";
325  }
332  [[deprecated("Use extractNavigationQuaternionFromEntityQuaternion() for navigation/LiDAR orientation.")]]
333  double toStandardEulerY() const;
334 };
335 
336 class CscPolygon {
337 public:
338  const int ID;
339 
343  CscPolygon(
344  const CscPoint3d *p0, const CscPoint3d *p1, const CscPoint3d *p2,
345  const CscPoint3d *normal0 = nullptr, const CscPoint3d *normal1 = nullptr, const CscPoint3d *normal2 = nullptr,
346  int ID = 0);
350  CscPolygon(const CscPoint3d *positions[3], const CscPoint3d *normalVectors[3], int _ID);
351  virtual ~CscPolygon();
352 
353  const CscPoint3d *getBarycentre() const;
354  const CscPoint3d *getNormals() const;
355 
356  CscPolygon *clone() const;
357  bool isPointInside(const CscPoint3d *pointToCheck) const;
358 
365  CscPolygon *rotate(const CscPoint3d *rotationEulerXYZ, const CscPoint3d *rotationCenter = nullptr) const;
366  CscPolygon *translate(double x, double y, double z) const;
367  CscPolygon *translate(const CscPoint3d &translation) const;
368 
369  inline const CscPoint3d *positionAt(int index) const {
370  assert(((void)("polygon has only 3 positions - requestedIndex=" + to_string(index)), index >= 0 && index < 3));
371  return positions[index];
372  }
373 
374  inline const CscPoint3d *normalAt(int index) const {
375  assert(((void)("polygon has only 3 normals - requestedIndex=" + to_string(index)), index >= 0 && index < 3));
376  return normalVectors[index];
377  }
378 
379  inline vector<const CscPoint3d *> getPositions() const {
380  return {positions[0], positions[1], positions[2]};
381  }
382 
383 private:
384  // Buffer of 3 CscPoint3d for Position Values
385  const CscPoint3d *positions[3];
386  const CscPoint3d *normalVectors[3];
387 };
388 
389 struct Vec3 {
390  double x, y, z;
391  explicit Vec3(double x = 0, double y = 0, double z = 0);
392 };
393 
394 struct Vec4 {
395  double x, y, z, w;
396  Vec4() : x(0), y(0), z(0), w(1) {}
397  Vec4(double x, double y, double z, double w = 1) : x(x), y(y), z(z), w(w) {}
398 };
399 
412 };
413 
414 struct Csc3dSegment {
415  CscPoint3d *start = nullptr;
416  CscPoint3d *end = nullptr;
417 };
418 
419 }
420 
421 #endif
conscience_core::axiomes::Vec3::x
double x
Definition: Csc3dTypes.h:390
conscience_core::axiomes::POINT_ZERO
static const CscPoint3d *const POINT_ZERO
Definition: Csc3dTypes.h:131
conscience_core::axiomes::CscLine3d::getDirection
static int getDirection(const CscPoint3d *a, const CscPoint3d *b, const CscPoint3d *c)
Definition: Csc3dTypes.cpp:394
conscience_core::axiomes::CscPoint3d::toString
virtual string toString() const
Definition: Csc3dTypes.cpp:238
conscience_core::axiomes::CscQuaternion::normalize
void normalize()
Definition: Csc3dTypes.cpp:680
nlohmann::to_string
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
conscience_core::axiomes::CscPolygon::ID
const int ID
Definition: Csc3dTypes.h:338
conscience_core::axiomes::CscRotation3dEuler::getYaw
double getYaw() const
Definition: Csc3dTypes.cpp:774
conscience_core::axiomes::CscPoint3d
The CscPoint3d class represents a point in three-dimensional space. It is primarily used to denote a ...
Definition: Csc3dTypes.h:24
conscience_core::axiomes::CscQuaternion::~CscQuaternion
virtual ~CscQuaternion()=default
conscience_core::axiomes::CscLine3d::isIntersectLine
bool isIntersectLine(const CscLine3d *lineToCheck) const
Definition: Csc3dTypes.cpp:364
conscience_core::axiomes::CscPoint3d::equals
bool equals(const CscPoint3d &theOtherOne, double epsilon=0.000001) const
Definition: Csc3dTypes.cpp:81
conscience_core::axiomes::CscPoint3d::rotate
CscPoint3d * rotate(const CscPoint3d *rotationEulerXYZ, const CscPoint3d *rotationCenter=nullptr) const
Definition: Csc3dTypes.cpp:85
conscience_core::axiomes::XYZ
@ XYZ
Definition: Csc3dTypes.h:411
conscience_core::axiomes::Vec4::x
double x
Definition: Csc3dTypes.h:395
conscience_core::axiomes::CscRotation3dEuler::toString
virtual string toString() const
Definition: Csc3dTypes.cpp:784
conscience_core::axiomes::CscArea3d::~CscArea3d
virtual ~CscArea3d()
Definition: Csc3dTypes.cpp:335
conscience_core::axiomes::Vec4::Vec4
Vec4()
Definition: Csc3dTypes.h:396
conscience_core::axiomes::CscPoint3d::operator*=
CscPoint3d & operator*=(double scalar)
Definition: Csc3dTypes.cpp:170
conscience_core::axiomes::CscArea3d::isPointInside
bool isPointInside(const CscPoint3d *pointToCheck) const
Definition: Csc3dTypes.cpp:339
conscience_core::axiomes::CscLine3d
Definition: Csc3dTypes.h:229
conscience_core::axiomes::CscQuaternion::z
double z
Definition: Csc3dTypes.h:154
conscience_core::axiomes::CscQuaternion::getY
double getY() const
Definition: Csc3dTypes.cpp:617
conscience_core::axiomes::CscQuaternion::clone
virtual CscQuaternion * clone() const
Definition: Csc3dTypes.cpp:761
conscience_core::axiomes::CscPoint3d::getY
double getY() const
Definition: Csc3dTypes.cpp:55
conscience_core::axiomes::CscArea3d::sizeZ
double sizeZ
Definition: Csc3dTypes.h:252
conscience_core::axiomes::Vec4::y
double y
Definition: Csc3dTypes.h:395
conscience_core::axiomes
Definition: Csc2dTypes.cpp:9
conscience_core::axiomes::CscPoint3d::distanceToOrigin
double distanceToOrigin() const
Definition: Csc3dTypes.cpp:208
conscience_core::axiomes::CscPoint3dOriented::eulerY
double eulerY
Definition: Csc3dTypes.h:281
conscience_core::axiomes::CscPoint3d::CscPoint3d
CscPoint3d(CscPoint3d *fromPoint)
Definition: Csc3dTypes.cpp:10
conscience_core::axiomes::CscArea3d::getPositionMax
CscPoint3d getPositionMax() const
Definition: Csc3dTypes.cpp:315
conscience_core::axiomes::CscQuaternion::x
double x
Definition: Csc3dTypes.h:152
conscience_core::axiomes::CscPolygon::getBarycentre
const CscPoint3d * getBarycentre() const
Definition: Csc3dTypes.cpp:489
conscience_core::axiomes::CscArea3d
Definition: Csc3dTypes.h:243
conscience_core::axiomes::CscLine3d::~CscLine3d
~CscLine3d()
Definition: Csc3dTypes.cpp:407
conscience_core::axiomes::pointsToString
string pointsToString(const vector< CscPoint3d * > &points)
Definition: Csc3dTypes.cpp:252
conscience_core::axiomes::CscArea3d::clone
CscArea3d * clone() const
Definition: Csc3dTypes.cpp:298
conscience_core::axiomes::CscRotation3dEuler::getPitch
double getPitch() const
Definition: Csc3dTypes.cpp:771
conscience_core::axiomes::CscPolygon::normalAt
const CscPoint3d * normalAt(int index) const
Definition: Csc3dTypes.h:374
conscience_core::axiomes::CscPoint3d::equalsValues
bool equalsValues(double x, double y, double z, double epsilon=0.000001) const
Definition: Csc3dTypes.cpp:219
conscience_core::axiomes::CscRotation3dEuler::CscRotation3dEuler
CscRotation3dEuler(double pitch=0, double yaw=0, double roll=0)
Definition: Csc3dTypes.cpp:768
conscience_core::axiomes::CscLine3d::positionB
const CscPoint3d *const positionB
Definition: Csc3dTypes.h:234
conscience_core::axiomes::CscPoint3dOriented::eulerToString
string eulerToString() const
Definition: Csc3dTypes.cpp:441
conscience_core::axiomes::Vec3::Vec3
Vec3(double x=0, double y=0, double z=0)
Definition: Csc3dTypes.cpp:603
conscience_core::axiomes::CscPolygon::~CscPolygon
virtual ~CscPolygon()
Definition: Csc3dTypes.cpp:534
conscience_core::axiomes::AXIS_3D_Y
@ AXIS_3D_Y
Definition: Csc3dTypes.h:144
conscience_core::axiomes::CscPoint3d::dotProduct
double dotProduct(const CscPoint3d &other) const
Definition: Csc3dTypes.cpp:191
conscience_core::axiomes::CscArea3d::getSizeX
double getSizeX() const
Definition: Csc3dTypes.cpp:323
conscience_core::axiomes::comparePoints
bool comparePoints(const CscPoint3d *a, const CscPoint3d *b)
Definition: Csc3dTypes.cpp:267
conscience_core::axiomes::CscPoint3d::operator/
CscPoint3d * operator/(double scalar) const
Definition: Csc3dTypes.cpp:163
conscience_core::axiomes::CscLine3d::isIntersectPoint
bool isIntersectPoint(const CscPoint3d *pointToCheck) const
Definition: Csc3dTypes.cpp:357
conscience_core::axiomes::CscPoint3d::crossProduct
CscPoint3d crossProduct(const CscPoint3d &other) const
Definition: Csc3dTypes.cpp:184
conscience_core::axiomes::CscPoint3d::operator+
CscPoint3d * operator+(const CscPoint3d &rightOperand) const
Definition: Csc3dTypes.cpp:149
conscience_core::axiomes::CscPoint3d::clone
virtual CscPoint3d * clone() const
Definition: Csc3dTypes.cpp:242
conscience_core::axiomes::CscQuaternion::operator/
CscQuaternion operator/(const CscQuaternion &other) const
Definition: Csc3dTypes.cpp:729
conscience_core::axiomes::CscQuaternion::identity
static CscQuaternion identity()
Definition: Csc3dTypes.cpp:764
conscience_core::axiomes::CscRotation3dEuler
Definition: Csc3dTypes.h:206
conscience_core::axiomes::copyPoints
vector< CscPoint3d * > * copyPoints(const vector< const CscPoint3d * > &points)
Definition: Csc3dTypes.cpp:285
conscience_core::axiomes::CscPoint3dOriented::clone
CscPoint3dOriented * clone() const override
Definition: Csc3dTypes.cpp:437
conscience_core::axiomes::CscPoint3dOriented::toStandardEulerY
double toStandardEulerY() const
Definition: Csc3dTypes.cpp:449
conscience_core::axiomes::CscQuaternion::toString
virtual string toString() const
Definition: Csc3dTypes.cpp:757
conscience_core::axiomes::CscPoint3d::setByIndex
void setByIndex(int index, double value)
Definition: Csc3dTypes.cpp:33
conscience_core::axiomes::CscQuaternion::operator*=
CscQuaternion & operator*=(const CscQuaternion &other)
Definition: Csc3dTypes.cpp:666
conscience_core::axiomes::LNG_ALTITUDE_LAT
@ LNG_ALTITUDE_LAT
Definition: Csc3dTypes.h:407
conscience_core::axiomes::CscQuaternion::getZ
double getZ() const
Definition: Csc3dTypes.cpp:621
conscience_core::axiomes::CscRotation3dEuler::~CscRotation3dEuler
virtual ~CscRotation3dEuler()=default
assert
#define assert(condition)
Definition: zstd.cpp:266
conscience_core::axiomes::CscArea3d::getSizeZ
double getSizeZ() const
Definition: Csc3dTypes.cpp:331
conscience_core::axiomes::CscPoint3d::leftNormal
CscPoint3d * leftNormal()
Definition: Csc3dTypes.cpp:196
conscience_core::axiomes::CscPoint3d::zero
static CscPoint3d * zero()
Definition: Csc3dTypes.cpp:18
conscience_core::axiomes::CscQuaternion::CscQuaternion
CscQuaternion(double w=0, double x=0, double y=0, double z=0)
Definition: Csc3dTypes.cpp:606
conscience_core::axiomes::CscQuaternion::rotateVector
void rotateVector(CscPoint3d &vector) const
Definition: Csc3dTypes.cpp:704
conscience_core::axiomes::CscPoint3d::centerWith
CscPoint3d * centerWith(const CscPoint3d *other) const
Definition: Csc3dTypes.cpp:69
conscience_core::axiomes::CscPoint3dOriented::eulerX
double eulerX
Definition: Csc3dTypes.h:280
conscience_core::axiomes::CscQuaternion::conjugate
CscQuaternion conjugate() const
Definition: Csc3dTypes.cpp:690
conscience_core::axiomes::CscPoint3dOriented::getEulerX
double getEulerX() const
Definition: Csc3dTypes.cpp:425
conscience_core::axiomes::CscRotation3dEuler::yaw
double yaw
Definition: Csc3dTypes.h:214
conscience_core::axiomes::CscPolygon::clone
CscPolygon * clone() const
Definition: Csc3dTypes.cpp:525
conscience_core::axiomes::CscArea3d::position
CscPoint3d * position
Definition: Csc3dTypes.h:249
conscience_core::axiomes::CscSize3d
CscPoint3d CscSize3d
Definition: Csc3dTypes.h:140
conscience_core::axiomes::CscPolygon::getNormals
const CscPoint3d * getNormals() const
Definition: Csc3dTypes.cpp:506
conscience_core::axiomes::CscPolygon::CscPolygon
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
conscience_core::axiomes::CscPoint3d::squaredDistanceToOrigin
double squaredDistanceToOrigin() const
Definition: Csc3dTypes.cpp:212
conscience_core::axiomes::CscPolygon::positionAt
const CscPoint3d * positionAt(int index) const
Definition: Csc3dTypes.h:369
conscience_core::axiomes::CscPoint3d::~CscPoint3d
virtual ~CscPoint3d()
Definition: Csc3dTypes.cpp:16
conscience_core::axiomes::Axis3d
Axis3d
Definition: Csc3dTypes.h:142
conscience_core::axiomes::CscPoint3d::operator+=
CscPoint3d & operator+=(const CscPoint3d &rightOperand)
Definition: Csc3dTypes.cpp:177
conscience_core::axiomes::CscRotation3dEuler::pitch
double pitch
Definition: Csc3dTypes.h:210
conscience_core::axiomes::CscLine3d::positionA
const CscPoint3d *const positionA
Definition: Csc3dTypes.h:233
conscience_core::axiomes::CscQuaternion::fromAngleAxis
static CscQuaternion fromAngleAxis(double angleRad, Axis3d axis)
Definition: Csc3dTypes.cpp:629
conscience_core::axiomes::AXIS_3D_X
@ AXIS_3D_X
Definition: Csc3dTypes.h:143
conscience_core::axiomes::CscArea3d::getSizeY
double getSizeY() const
Definition: Csc3dTypes.cpp:327
conscience_core::axiomes::CscPoint3d::getZ
double getZ() const
Definition: Csc3dTypes.cpp:59
conscience_core::axiomes::Vec4::w
double w
Definition: Csc3dTypes.h:395
conscience_core::axiomes::CscPolygon::getPositions
vector< const CscPoint3d * > getPositions() const
Definition: Csc3dTypes.h:379
conscience_core::axiomes::CscPoint3d::operator-
CscPoint3d * operator-(const CscPoint3d &rightOperand) const
Definition: Csc3dTypes.cpp:145
conscience_core::axiomes::Csc3dSegment::end
CscPoint3d * end
Definition: Csc3dTypes.h:416
conscience_core::axiomes::CscArea3d::getPositionMin
const CscPoint3d & getPositionMin() const
Definition: Csc3dTypes.cpp:319
conscience_core::axiomes::CscPoint3d::normalize
void normalize()
Definition: Csc3dTypes.cpp:200
conscience_core::axiomes::CscQuaternion
Definition: Csc3dTypes.h:150
conscience_core::axiomes::Vec3::y
double y
Definition: Csc3dTypes.h:390
conscience_core::axiomes::PositionFormat
PositionFormat
Indicates the type of coordinates in the CscPoint3D. These can be XYZ coordinates or Latitude and Lon...
Definition: Csc3dTypes.h:403
conscience_core::axiomes::CscQuaternion::getW
double getW() const
Definition: Csc3dTypes.cpp:625
conscience_core::axiomes::deleteDuplicates
void deleteDuplicates(vector< const CscPoint3d * > &points)
Definition: Csc3dTypes.cpp:277
conscience_core::axiomes::CscPoint3dOriented::CscPoint3dOriented
CscPoint3dOriented(const CscPoint3d &point, double eulerX, double eulerY, double eulerZ)
Definition: Csc3dTypes.cpp:416
conscience_core::axiomes::CscPoint3d::multiplyWith
CscPoint3d * multiplyWith(const CscPoint3d *rightOperand) const
Definition: Csc3dTypes.cpp:141
conscience_core::axiomes::CscArea3d::toString
string toString() const
Definition: Csc3dTypes.cpp:346
conscience_core::axiomes::CscRotation3dEuler::roll
double roll
Definition: Csc3dTypes.h:218
conscience_core::axiomes::CscPoint3d::copyFrom
void copyFrom(const CscPoint3d &otherPoint)
Definition: Csc3dTypes.cpp:246
conscience_core::axiomes::CscPolygon::isPointInside
bool isPointInside(const CscPoint3d *pointToCheck) const
Definition: Csc3dTypes.cpp:544
conscience_core::axiomes::CscRotation3dEuler::getRoll
double getRoll() const
Definition: Csc3dTypes.cpp:777
conscience_core::axiomes::CscLine3d::CscLine3d
CscLine3d(const CscPoint3d *positionA=CscPoint3d::zero(), const CscPoint3d *positionB=CscPoint3d::zero())
Definition: Csc3dTypes.cpp:352
conscience_core::axiomes::CscArea3d::CscArea3d
CscArea3d(CscPoint3d *position=new CscPoint3d(0, 0, 0), double sizeX=0, double sizeY=0, double sizeZ=0)
Definition: Csc3dTypes.cpp:293
conscience_core::axiomes::Csc3dSegment
Definition: Csc3dTypes.h:414
conscience_core::axiomes::CscPoint3d::getX
double getX() const
Definition: Csc3dTypes.cpp:51
conscience_core::axiomes::CscPoint3dOriented::setEuler
void setEuler(double eulerX, double eulerY, double eulerZ)
Definition: Csc3dTypes.cpp:462
conscience_core::axiomes::Vec4::z
double z
Definition: Csc3dTypes.h:395
conscience_core::axiomes::CscPoint3dOriented::eulerZ
double eulerZ
Definition: Csc3dTypes.h:282
conscience_core::axiomes::CscPoint3dOriented::getEulerY
double getEulerY() const
Definition: Csc3dTypes.cpp:429
c
double c
Definition: HybridAStar.cpp:84
conscience_core::axiomes::CscArea3d::copyFrom
void copyFrom(const CscArea3d &otherArea)
Definition: Csc3dTypes.cpp:306
conscience_core::axiomes::CscPoint3d::operator*
CscPoint3d * operator*(const CscPoint3d &rightOperand) const
Definition: Csc3dTypes.cpp:153
conscience_core::axiomes::AXIS_3D_Z
@ AXIS_3D_Z
Definition: Csc3dTypes.h:145
b
uint8_t b
Definition: PathFinding3D25D.cpp:21
conscience_core::axiomes::CscArea3d::sizeX
double sizeX
Definition: Csc3dTypes.h:250
conscience_core::axiomes::CscPoint3d::getByIndex
double getByIndex(int index) const
Definition: Csc3dTypes.cpp:22
conscience_core::axiomes::CscPoint3dOriented::getEulerZ
double getEulerZ() const
Definition: Csc3dTypes.cpp:433
conscience_core::axiomes::Vec4::Vec4
Vec4(double x, double y, double z, double w=1)
Definition: Csc3dTypes.h:397
conscience_core::axiomes::CscPolygon::rotate
CscPolygon * rotate(const CscPoint3d *rotationEulerXYZ, const CscPoint3d *rotationCenter=nullptr) const
Definition: Csc3dTypes.cpp:570
conscience_core::axiomes::CscPoint3dOriented
Definition: Csc3dTypes.h:277
conscience_core::axiomes::CscQuaternion::w
double w
Definition: Csc3dTypes.h:151
conscience_core::axiomes::CscQuaternion::inverse
CscQuaternion inverse() const
Definition: Csc3dTypes.cpp:694
conscience_core::axiomes::CscPolygon
Definition: Csc3dTypes.h:336
conscience_core::axiomes::CscQuaternion::getX
double getX() const
Definition: Csc3dTypes.cpp:613
conscience_core::axiomes::Vec4
Definition: Csc3dTypes.h:394
conscience_core::axiomes::CscPoint3d::y
double y
Definition: Csc3dTypes.h:32
conscience_core::axiomes::Vec3
Definition: Csc3dTypes.h:389
conscience_core::axiomes::CscPoint3dOriented::zero
static CscPoint3dOriented * zero()
Definition: Csc3dTypes.cpp:412
conscience_core::axiomes::CscArea3d::sizeY
double sizeY
Definition: Csc3dTypes.h:251
conscience_core::axiomes::CscPoint3d::plus
CscPoint3d * plus(const CscPoint3d *rightOperand) const
Definition: Csc3dTypes.cpp:133
conscience_core::axiomes::CscPolygon::translate
CscPolygon * translate(double x, double y, double z) const
Definition: Csc3dTypes.cpp:588
conscience_core::axiomes::CscPoint3d::z
double z
Definition: Csc3dTypes.h:33
conscience_core::axiomes::CscPoint3d::distanceWith
double distanceWith(const CscPoint3d *point) const
Definition: Csc3dTypes.cpp:63
conscience_core::axiomes::CscQuaternion::operator*
CscQuaternion operator*(const CscQuaternion &other) const
Definition: Csc3dTypes.cpp:657
conscience_core::axiomes::CscPoint3d::set
void set(double x, double y, double z)
Definition: Csc3dTypes.cpp:223
conscience_core::axiomes::CscPoint3dOriented::equals
bool equals(const CscPoint3dOriented &other, double epsilon=0.000001) const
Definition: Csc3dTypes.cpp:445
conscience_core::axiomes::CscQuaternion::y
double y
Definition: Csc3dTypes.h:153
conscience_core::axiomes::CscPoint3d::x
double x
Definition: Csc3dTypes.h:31
conscience_core::axiomes::CscRotation3dEuler::clone
virtual CscRotation3dEuler * clone() const
Definition: Csc3dTypes.cpp:788
conscience_core::axiomes::CscQuaternion::toEuler
CscRotation3dEuler toEuler() const
Definition: Csc3dTypes.cpp:719
conscience_core::axiomes::CscPoint3d::minus
CscPoint3d * minus(const CscPoint3d *rightOperand) const
Definition: Csc3dTypes.cpp:129
conscience_core::axiomes::Csc3dSegment::start
CscPoint3d * start
Definition: Csc3dTypes.h:415
conscience_core::axiomes::Vec3::z
double z
Definition: Csc3dTypes.h:390
conscience_core::axiomes::CscQuaternion::operator+
CscQuaternion operator+(const CscQuaternion &other) const
Definition: Csc3dTypes.cpp:744