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);
97  CscPoint3d &operator+=(const CscPoint3d &rightOperand);
98  CscPoint3d crossProduct(const CscPoint3d &other) const;
99 
100  void set(double x, double y, double z);
101  void set(const CscPoint3d &fromOther);
102 
106  bool equals(const CscPoint3d &theOtherOne) const;
107  bool equalsValues(double x, double y, double z) const;
108 
109  virtual operator string() const;
110  virtual string toString() const;
111 
112  virtual CscPoint3d *clone() const;
113  void copyFrom(const CscPoint3d &otherPoint);
114 };
115 
119 inline static const CscPoint3d *const POINT_ZERO = new CscPoint3d(0, 0, 0);
120 
121 string pointsToString(const vector<CscPoint3d *> &points);
122 string pointsToString(const vector<const CscPoint3d *> &points);
123 
124 bool comparePoints(const CscPoint3d *a, const CscPoint3d *b);
125 void deleteDuplicates(vector<const CscPoint3d *> &points);
126 vector<CscPoint3d *> *copyPoints(const vector<const CscPoint3d *> &points);
127 
129 
130 enum Axis3d {
134 };
135 
136 struct CscRotation3dEuler;
137 
139  double w = 0;
140  double x = 0;
141  double y = 0;
142  double z = 0;
143  CscQuaternion(double w = 0, double x = 0, double y = 0, double z = 0);
148  CscQuaternion(const double *values);
149  virtual ~CscQuaternion() = default;
150  double getX() const;
151  double getY() const;
152  double getZ() const;
153  double getW() const;
154  virtual operator string() const;
155  virtual string toString() const;
156  virtual CscQuaternion *clone() const;
157 
161  static CscQuaternion identity();
162  static CscQuaternion fromAngleAxis(double angleRad, Axis3d axis);
166  CscQuaternion operator*(const CscQuaternion &other) const;
167  CscQuaternion &operator*=(const CscQuaternion &other);
168  CscPoint3d operator*(const CscPoint3d &vector) const;
172  CscQuaternion operator/(const CscQuaternion &other) const;
173  CscQuaternion operator+(const CscQuaternion &other) const;
174 
178  void normalize();
179 
185  CscQuaternion conjugate() const;
186 
187  CscQuaternion inverse() const;
188 
189  void rotateVector(CscPoint3d &vector) const;
190 
191  CscRotation3dEuler toEuler() const;
192 };
193 
198  double pitch = 0;
202  double yaw = 0;
206  double roll = 0;
207  CscRotation3dEuler(double pitch = 0, double yaw = 0, double roll = 0);
208  virtual ~CscRotation3dEuler() = default;
209  double getPitch() const;
210  double getYaw() const;
211  double getRoll() const;
212  virtual operator string() const;
213  virtual string toString() const;
214  virtual CscRotation3dEuler *clone() const;
215 };
216 
217 class CscLine3d {
218 
219 public:
221  const CscPoint3d *const positionA;
222  const CscPoint3d *const positionB;
223 
224  bool isIntersectPoint(const CscPoint3d *pointToCheck) const;
225  static int getDirection(const CscPoint3d *a, const CscPoint3d *b, const CscPoint3d *c);
226  bool isIntersectLine(const CscLine3d *lineToCheck) const;
227 
228  ~CscLine3d();
229 };
230 
231 class CscArea3d {
232 
233 public:
238  double sizeX;
239  double sizeY;
240  double sizeZ;
241 
242  CscPoint3d getPositionMax() const;
243 
248  CscArea3d(CscPoint3d *position = new CscPoint3d(0, 0, 0), double sizeX = 0, double sizeY = 0, double sizeZ = 0);
249  CscArea3d(double x, double y, double z, double sizeX, double sizeY, double sizeZ);
250  virtual ~CscArea3d();
251 
252  const CscPoint3d &getPositionMin() const;
253  double getSizeX() const;
254  double getSizeY() const;
255  double getSizeZ() const;
256 
257  CscArea3d *clone() const;
258  void copyFrom(const CscArea3d &otherArea);
259  bool isPointInside(const CscPoint3d *pointToCheck) const;
260 
261  operator string() const;
262  string toString() const;
263 };
264 
266 
267 public:
268  double eulerX;
269  double eulerY;
270  double eulerZ;
271 
275  static CscPoint3dOriented *zero();
276 
277  CscPoint3dOriented(const CscPoint3d &point, double eulerX, double eulerY, double eulerZ);
278  CscPoint3dOriented(const CscPoint3d &point, const CscPoint3d &rotation);
279  CscPoint3dOriented(double x = 0, double y = 0, double z = 0, double eulerX = 0, double eulerY = 0, double eulerZ = 0);
280 
285  double getEulerX() const;
290  double getEulerY() const;
295  double getEulerZ() const;
296 
301  void setEuler(double eulerX, double eulerY, double eulerZ);
302 
303  CscPoint3dOriented *clone() const override;
304 
305  string eulerToString() const;
306 
307  operator string() const override {
308  return "(" + to_string(x) + ", " + to_string(y) + ", " + to_string(z) + " - EulerXYZ=" + eulerToString() + ")";
309  }
310 
311  double toStandardEulerY() const;
312 };
313 
314 class CscPolygon {
315 public:
316  const int ID;
317 
321  CscPolygon(
322  const CscPoint3d *p0, const CscPoint3d *p1, const CscPoint3d *p2,
323  const CscPoint3d *normal0 = nullptr, const CscPoint3d *normal1 = nullptr, const CscPoint3d *normal2 = nullptr,
324  int ID = 0);
328  CscPolygon(const CscPoint3d *positions[3], const CscPoint3d *normalVectors[3], int _ID);
329  virtual ~CscPolygon();
330 
331  const CscPoint3d *getBarycentre() const;
332  const CscPoint3d *getNormals() const;
333 
334  CscPolygon *clone() const;
335  bool isPointInside(const CscPoint3d *pointToCheck) const;
336 
343  CscPolygon *rotate(const CscPoint3d *rotationEulerXYZ, const CscPoint3d *rotationCenter = nullptr) const;
344  CscPolygon *translate(double x, double y, double z) const;
345  CscPolygon *translate(const CscPoint3d &translation) const;
346 
347  inline const CscPoint3d *positionAt(int index) const {
348  assert(((void)("polygon has only 3 positions - requestedIndex=" + to_string(index)), index >= 0 && index < 3));
349  return positions[index];
350  }
351 
352  inline const CscPoint3d *normalAt(int index) const {
353  assert(((void)("polygon has only 3 normals - requestedIndex=" + to_string(index)), index >= 0 && index < 3));
354  return normalVectors[index];
355  }
356 
357  inline vector<const CscPoint3d *> getPositions() const {
358  return {positions[0], positions[1], positions[2]};
359  }
360 
361 private:
362  // Buffer of 3 CscPoint3d for Position Values
363  const CscPoint3d *positions[3];
364  const CscPoint3d *normalVectors[3];
365 };
366 
367 struct Vec3 {
368  double x, y, z;
369  explicit Vec3(double x = 0, double y = 0, double z = 0);
370 };
371 
372 struct Vec4 {
373  double x, y, z, w;
374  Vec4() : x(0), y(0), z(0), w(1) {}
375  Vec4(double x, double y, double z, double w = 1) : x(x), y(y), z(z), w(w) {}
376 };
377 
390 };
391 
392 struct Csc3dSegment {
393  CscPoint3d *start = nullptr;
394  CscPoint3d *end = nullptr;
395 };
396 
397 }
398 
399 #endif
conscience_core::axiomes::Vec3::x
double x
Definition: Csc3dTypes.h:368
conscience_core::axiomes::POINT_ZERO
static const CscPoint3d *const POINT_ZERO
Definition: Csc3dTypes.h:119
conscience_core::axiomes::CscPoint3d::equalsValues
bool equalsValues(double x, double y, double z) const
Definition: Csc3dTypes.cpp:184
conscience_core::axiomes::CscLine3d::getDirection
static int getDirection(const CscPoint3d *a, const CscPoint3d *b, const CscPoint3d *c)
Definition: Csc3dTypes.cpp:359
conscience_core::axiomes::CscPoint3d::toString
virtual string toString() const
Definition: Csc3dTypes.cpp:203
conscience_core::axiomes::CscQuaternion::normalize
void normalize()
Definition: Csc3dTypes.cpp:641
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:316
conscience_core::axiomes::CscRotation3dEuler::getYaw
double getYaw() const
Definition: Csc3dTypes.cpp:735
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:329
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:389
conscience_core::axiomes::Vec4::x
double x
Definition: Csc3dTypes.h:373
conscience_core::axiomes::CscRotation3dEuler::toString
virtual string toString() const
Definition: Csc3dTypes.cpp:745
conscience_core::axiomes::CscArea3d::~CscArea3d
virtual ~CscArea3d()
Definition: Csc3dTypes.cpp:300
conscience_core::axiomes::Vec4::Vec4
Vec4()
Definition: Csc3dTypes.h:374
conscience_core::axiomes::CscPoint3d::operator*=
CscPoint3d & operator*=(double scalar)
Definition: Csc3dTypes.cpp:163
conscience_core::axiomes::CscArea3d::isPointInside
bool isPointInside(const CscPoint3d *pointToCheck) const
Definition: Csc3dTypes.cpp:304
conscience_core::axiomes::CscLine3d
Definition: Csc3dTypes.h:217
conscience_core::axiomes::CscQuaternion::z
double z
Definition: Csc3dTypes.h:142
conscience_core::axiomes::CscQuaternion::getY
double getY() const
Definition: Csc3dTypes.cpp:578
conscience_core::axiomes::CscQuaternion::clone
virtual CscQuaternion * clone() const
Definition: Csc3dTypes.cpp:722
conscience_core::axiomes::CscPoint3d::getY
double getY() const
Definition: Csc3dTypes.cpp:55
conscience_core::axiomes::CscArea3d::sizeZ
double sizeZ
Definition: Csc3dTypes.h:240
conscience_core::axiomes::Vec4::y
double y
Definition: Csc3dTypes.h:373
conscience_core::axiomes
Definition: Csc2dTypes.cpp:9
conscience_core::axiomes::CscPoint3dOriented::eulerY
double eulerY
Definition: Csc3dTypes.h:269
conscience_core::axiomes::CscPoint3d::equals
bool equals(const CscPoint3d &theOtherOne) const
Definition: Csc3dTypes.cpp:81
conscience_core::axiomes::CscPoint3d::CscPoint3d
CscPoint3d(CscPoint3d *fromPoint)
Definition: Csc3dTypes.cpp:10
conscience_core::axiomes::CscArea3d::getPositionMax
CscPoint3d getPositionMax() const
Definition: Csc3dTypes.cpp:280
conscience_core::axiomes::CscQuaternion::x
double x
Definition: Csc3dTypes.h:140
conscience_core::axiomes::CscPolygon::getBarycentre
const CscPoint3d * getBarycentre() const
Definition: Csc3dTypes.cpp:450
conscience_core::axiomes::CscArea3d
Definition: Csc3dTypes.h:231
conscience_core::axiomes::CscLine3d::~CscLine3d
~CscLine3d()
Definition: Csc3dTypes.cpp:372
conscience_core::axiomes::pointsToString
string pointsToString(const vector< CscPoint3d * > &points)
Definition: Csc3dTypes.cpp:217
conscience_core::axiomes::CscArea3d::clone
CscArea3d * clone() const
Definition: Csc3dTypes.cpp:263
conscience_core::axiomes::CscRotation3dEuler::getPitch
double getPitch() const
Definition: Csc3dTypes.cpp:732
conscience_core::axiomes::CscPolygon::normalAt
const CscPoint3d * normalAt(int index) const
Definition: Csc3dTypes.h:352
conscience_core::axiomes::CscRotation3dEuler::CscRotation3dEuler
CscRotation3dEuler(double pitch=0, double yaw=0, double roll=0)
Definition: Csc3dTypes.cpp:729
conscience_core::axiomes::CscLine3d::positionB
const CscPoint3d *const positionB
Definition: Csc3dTypes.h:222
assert
#define assert(condition)
Definition: lz4.cpp:274
conscience_core::axiomes::CscPoint3dOriented::eulerToString
string eulerToString() const
Definition: Csc3dTypes.cpp:406
conscience_core::axiomes::Vec3::Vec3
Vec3(double x=0, double y=0, double z=0)
Definition: Csc3dTypes.cpp:564
conscience_core::axiomes::CscPolygon::~CscPolygon
virtual ~CscPolygon()
Definition: Csc3dTypes.cpp:495
conscience_core::axiomes::AXIS_3D_Y
@ AXIS_3D_Y
Definition: Csc3dTypes.h:132
conscience_core::axiomes::CscArea3d::getSizeX
double getSizeX() const
Definition: Csc3dTypes.cpp:288
conscience_core::axiomes::comparePoints
bool comparePoints(const CscPoint3d *a, const CscPoint3d *b)
Definition: Csc3dTypes.cpp:232
conscience_core::axiomes::CscLine3d::isIntersectPoint
bool isIntersectPoint(const CscPoint3d *pointToCheck) const
Definition: Csc3dTypes.cpp:322
conscience_core::axiomes::CscPoint3d::crossProduct
CscPoint3d crossProduct(const CscPoint3d &other) const
Definition: Csc3dTypes.cpp:177
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:207
conscience_core::axiomes::CscQuaternion::operator/
CscQuaternion operator/(const CscQuaternion &other) const
Definition: Csc3dTypes.cpp:690
conscience_core::axiomes::CscQuaternion::identity
static CscQuaternion identity()
Definition: Csc3dTypes.cpp:725
conscience_core::axiomes::CscRotation3dEuler
Definition: Csc3dTypes.h:194
conscience_core::axiomes::copyPoints
vector< CscPoint3d * > * copyPoints(const vector< const CscPoint3d * > &points)
Definition: Csc3dTypes.cpp:250
conscience_core::axiomes::CscPoint3dOriented::clone
CscPoint3dOriented * clone() const override
Definition: Csc3dTypes.cpp:402
conscience_core::axiomes::CscPoint3dOriented::toStandardEulerY
double toStandardEulerY() const
Definition: Csc3dTypes.cpp:410
conscience_core::axiomes::CscQuaternion::toString
virtual string toString() const
Definition: Csc3dTypes.cpp:718
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:627
conscience_core::axiomes::LNG_ALTITUDE_LAT
@ LNG_ALTITUDE_LAT
Definition: Csc3dTypes.h:385
conscience_core::axiomes::CscQuaternion::getZ
double getZ() const
Definition: Csc3dTypes.cpp:582
conscience_core::axiomes::CscRotation3dEuler::~CscRotation3dEuler
virtual ~CscRotation3dEuler()=default
conscience_core::axiomes::CscArea3d::getSizeZ
double getSizeZ() const
Definition: Csc3dTypes.cpp:296
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:567
conscience_core::axiomes::CscQuaternion::rotateVector
void rotateVector(CscPoint3d &vector) const
Definition: Csc3dTypes.cpp:665
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:268
conscience_core::axiomes::CscQuaternion::conjugate
CscQuaternion conjugate() const
Definition: Csc3dTypes.cpp:651
conscience_core::axiomes::CscPoint3dOriented::getEulerX
double getEulerX() const
Definition: Csc3dTypes.cpp:390
conscience_core::axiomes::CscRotation3dEuler::yaw
double yaw
Definition: Csc3dTypes.h:202
conscience_core::axiomes::CscPolygon::clone
CscPolygon * clone() const
Definition: Csc3dTypes.cpp:486
conscience_core::axiomes::CscArea3d::position
CscPoint3d * position
Definition: Csc3dTypes.h:237
conscience_core::axiomes::CscSize3d
CscPoint3d CscSize3d
Definition: Csc3dTypes.h:128
jwt::alphabet::index
uint32_t index(const std::array< char, 64 > &alphabet, char symbol)
Definition: base.h:91
conscience_core::axiomes::CscPolygon::getNormals
const CscPoint3d * getNormals() const
Definition: Csc3dTypes.cpp:467
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:429
conscience_core::axiomes::CscPolygon::positionAt
const CscPoint3d * positionAt(int index) const
Definition: Csc3dTypes.h:347
conscience_core::axiomes::CscPoint3d::~CscPoint3d
virtual ~CscPoint3d()
Definition: Csc3dTypes.cpp:16
conscience_core::axiomes::Axis3d
Axis3d
Definition: Csc3dTypes.h:130
conscience_core::axiomes::CscPoint3d::operator+=
CscPoint3d & operator+=(const CscPoint3d &rightOperand)
Definition: Csc3dTypes.cpp:170
conscience_core::axiomes::CscRotation3dEuler::pitch
double pitch
Definition: Csc3dTypes.h:198
conscience_core::axiomes::CscLine3d::positionA
const CscPoint3d *const positionA
Definition: Csc3dTypes.h:221
conscience_core::axiomes::CscQuaternion::fromAngleAxis
static CscQuaternion fromAngleAxis(double angleRad, Axis3d axis)
Definition: Csc3dTypes.cpp:590
conscience_core::axiomes::AXIS_3D_X
@ AXIS_3D_X
Definition: Csc3dTypes.h:131
conscience_core::axiomes::CscArea3d::getSizeY
double getSizeY() const
Definition: Csc3dTypes.cpp:292
conscience_core::axiomes::CscPoint3d::getZ
double getZ() const
Definition: Csc3dTypes.cpp:59
conscience_core::axiomes::Vec4::w
double w
Definition: Csc3dTypes.h:373
conscience_core::axiomes::CscPolygon::getPositions
vector< const CscPoint3d * > getPositions() const
Definition: Csc3dTypes.h:357
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:394
conscience_core::axiomes::CscArea3d::getPositionMin
const CscPoint3d & getPositionMin() const
Definition: Csc3dTypes.cpp:284
conscience_core::axiomes::CscQuaternion
Definition: Csc3dTypes.h:138
conscience_core::axiomes::Vec3::y
double y
Definition: Csc3dTypes.h:368
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:381
conscience_core::axiomes::CscQuaternion::getW
double getW() const
Definition: Csc3dTypes.cpp:586
conscience_core::axiomes::deleteDuplicates
void deleteDuplicates(vector< const CscPoint3d * > &points)
Definition: Csc3dTypes.cpp:242
conscience_core::axiomes::CscPoint3dOriented::CscPoint3dOriented
CscPoint3dOriented(const CscPoint3d &point, double eulerX, double eulerY, double eulerZ)
Definition: Csc3dTypes.cpp:381
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:311
conscience_core::axiomes::CscRotation3dEuler::roll
double roll
Definition: Csc3dTypes.h:206
conscience_core::axiomes::CscPoint3d::copyFrom
void copyFrom(const CscPoint3d &otherPoint)
Definition: Csc3dTypes.cpp:211
conscience_core::axiomes::CscPolygon::isPointInside
bool isPointInside(const CscPoint3d *pointToCheck) const
Definition: Csc3dTypes.cpp:505
conscience_core::axiomes::CscRotation3dEuler::getRoll
double getRoll() const
Definition: Csc3dTypes.cpp:738
conscience_core::axiomes::CscLine3d::CscLine3d
CscLine3d(const CscPoint3d *positionA=CscPoint3d::zero(), const CscPoint3d *positionB=CscPoint3d::zero())
Definition: Csc3dTypes.cpp:317
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:258
conscience_core::axiomes::Csc3dSegment
Definition: Csc3dTypes.h:392
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:423
conscience_core::axiomes::Vec4::z
double z
Definition: Csc3dTypes.h:373
conscience_core::axiomes::CscPoint3dOriented::eulerZ
double eulerZ
Definition: Csc3dTypes.h:270
conscience_core::axiomes::CscPoint3dOriented::getEulerY
double getEulerY() const
Definition: Csc3dTypes.cpp:394
c
double c
Definition: HybridAStar.cpp:84
conscience_core::axiomes::CscArea3d::copyFrom
void copyFrom(const CscArea3d &otherArea)
Definition: Csc3dTypes.cpp:271
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:133
conscience_core::axiomes::CscArea3d::sizeX
double sizeX
Definition: Csc3dTypes.h:238
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:398
conscience_core::axiomes::Vec4::Vec4
Vec4(double x, double y, double z, double w=1)
Definition: Csc3dTypes.h:375
conscience_core::axiomes::CscPolygon::rotate
CscPolygon * rotate(const CscPoint3d *rotationEulerXYZ, const CscPoint3d *rotationCenter=nullptr) const
Definition: Csc3dTypes.cpp:531
conscience_core::axiomes::CscPoint3dOriented
Definition: Csc3dTypes.h:265
conscience_core::axiomes::CscQuaternion::w
double w
Definition: Csc3dTypes.h:139
conscience_core::axiomes::CscQuaternion::inverse
CscQuaternion inverse() const
Definition: Csc3dTypes.cpp:655
conscience_core::axiomes::CscPolygon
Definition: Csc3dTypes.h:314
conscience_core::axiomes::CscQuaternion::getX
double getX() const
Definition: Csc3dTypes.cpp:574
conscience_core::axiomes::Vec4
Definition: Csc3dTypes.h:372
conscience_core::axiomes::CscPoint3d::y
double y
Definition: Csc3dTypes.h:32
conscience_core::axiomes::Vec3
Definition: Csc3dTypes.h:367
conscience_core::axiomes::CscPoint3dOriented::zero
static CscPoint3dOriented * zero()
Definition: Csc3dTypes.cpp:377
conscience_core::axiomes::CscArea3d::sizeY
double sizeY
Definition: Csc3dTypes.h:239
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:549
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:618
conscience_core::axiomes::CscPoint3d::set
void set(double x, double y, double z)
Definition: Csc3dTypes.cpp:188
conscience_core::axiomes::CscQuaternion::y
double y
Definition: Csc3dTypes.h:141
conscience_core::axiomes::CscPoint3d::x
double x
Definition: Csc3dTypes.h:31
conscience_core::axiomes::CscRotation3dEuler::clone
virtual CscRotation3dEuler * clone() const
Definition: Csc3dTypes.cpp:749
conscience_core::axiomes::CscQuaternion::toEuler
CscRotation3dEuler toEuler() const
Definition: Csc3dTypes.cpp:680
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:393
conscience_core::axiomes::Vec3::z
double z
Definition: Csc3dTypes.h:368
conscience_core::axiomes::CscQuaternion::operator+
CscQuaternion operator+(const CscQuaternion &other) const
Definition: Csc3dTypes.cpp:705