IPSDK  4_1_0_2
IPSDK : Image Processing Software Development Kit
Cuboid3d.h
1 // Cuboid3d.h:
3 // -----------
4 //
14 
15 #ifndef __IPSDKGEOMETRY_CUBOID3D_H__
16 #define __IPSDKGEOMETRY_CUBOID3D_H__
17 
18 // suppression warnings
19 // warning C4251: 'ipsdk::geom::Cuboid3d<ipsdk::ipInt32>::_centerPt': struct 'ipsdk::geom::Point3dData<T>' needs to have dll-interface to be used by clients of class 'ipsdk::geom::Cuboid3d<ipsdk::ipInt32>'
20 #pragma warning (push)
21 #pragma warning (disable : 4251)
22 
24 #include <IPSDKGeometry/Entity/3d/BaseTypedGeometryEntity3d.h>
25 #include <IPSDKGeometry/Entity/3d/Point/Point3d.h>
27 
28 namespace ipsdk {
29 namespace geom {
30 
31 template <typename T>
34 
36 {
37  // declare 3d geometry entity
39 
40 // predefined public types
41 public:
43  static const eCoordinateSystem3dType::domain g_coordinateSystem3dType = eCoordinateSystem3dType::eCS3DT_Cartesian;
44 
46  static const eEntity3dType::domain g_entity3dType = eEntity3dType::eE3DT_Cuboid;
47 public:
50  Cuboid3d();
51  Cuboid3d(const Point3dData<T>& center, const T halfLength, const T halfWidth, const T halfHeight, const ipReal64 alpha, const ipReal64 beta, const ipReal64 chi);
52  Cuboid3d(const Point3d<T>& center, const T halfLength, const T halfWidth, const T halfHeight, const ipReal64 alpha, const ipReal64 beta, const ipReal64 chi);
53  Cuboid3d(const T xCenter, const T yCenter, const T zCenter, const T halfLength, const T halfWidth, const T halfHeight, const ipReal64 alpha, const ipReal64 beta, const ipReal64 chi);
54  ~Cuboid3d();
56 
57 // methods
58 public:
60  inline eCoordinateSystem3dType getCoordinateSystem3dType() const;
61 
63  inline eEntity3dType getEntity3dType() const;
64 
67  inline void setCenter(const Point3dData<T>& centerPt);
68  inline void setCenter(const Point3d<T>& centerPt);
69  inline void setCenter(const T xCenter, const T yCenter, const T zCenter);
70  inline void setHalfLength(const T halfLength);
71  inline void setHalfWidth(const T halfWidth);
72  inline void setHalfHeight(const T halfHeight);
73  inline void setAlpha(const ipReal64 theta);
74  inline void setBeta(const ipReal64 theta);
75  inline void setChi(const ipReal64 theta);
76  inline T getHalfLength() const;
77  inline T getHalfWidth() const;
78  inline T getHalfHeight() const;
79  inline T getLength() const;
80  inline T getWidth() const;
81  inline T getHeight() const;
82  inline ipReal64 getAlpha() const;
83  inline ipReal64 getBeta() const;
84  inline ipReal64 getChi() const;
85  inline T centerX() const;
86  inline T centerY() const;
87  inline T centerZ() const;
88  inline const Point3dData<T>& center() const;
89  inline Point3dData<T>& center();
91 
96  inline Point3dData<T> topLeftFrontCorner() const;
97  inline Point3dData<T> topRightFrontCorner() const;
98  inline Point3dData<T> bottomLeftFrontCorner() const;
99  inline Point3dData<T> bottomRightFrontCorner() const;
100  inline Point3dData<T> topLeftBackCorner() const;
101  inline Point3dData<T> topRightBackCorner() const;
102  inline Point3dData<T> bottomLeftBackCorner() const;
103  inline Point3dData<T> bottomRightBackCorner() const;
105 
106 // attributes
107 protected:
110 
113 
116 
119 
122 
125 
128 
129 };
130 
133 
134 template <typename T>
137 {
138  return g_coordinateSystem3dType;
139 }
140 
141 template <typename T>
142 inline eEntity3dType
144 {
145  return g_entity3dType;
146 }
147 
148 template <typename T>
149 inline void
151 {
152  _centerPt = centerPt;
153 }
154 
155 template <typename T>
156 inline void
158 {
159  _centerPt = centerPt.getCoords();
160 }
161 
162 template <typename T>
163 inline void
164 Cuboid3d<T>::setCenter(const T xCenter, const T yCenter, const T zCenter)
165 {
166  _centerPt.setCoords(xCenter, yCenter, zCenter);
167 }
168 
169 template <typename T>
170 inline void
171 Cuboid3d<T>::setHalfLength(const T halfLength)
172 {
173  _halfLength = halfLength;
174 }
175 
176 template <typename T>
177 inline void
178 Cuboid3d<T>::setHalfWidth(const T halfWidth)
179 {
180  _halfWidth = halfWidth;
181 }
182 
183 template <typename T>
184 inline void
185 Cuboid3d<T>::setHalfHeight(const T halfHeight)
186 {
187  _halfHeight = halfHeight;
188 }
189 
190 template <typename T>
191 inline void
193 {
194  _alpha = theta;
195 }
196 
197 template <typename T>
198 inline void
200 {
201  _beta = theta;
202 }
203 
204 template <typename T>
205 inline void
207 {
208  _chi = theta;
209 }
210 
211 template <typename T>
212 inline T
214 {
215  return _centerPt._x;
216 }
217 
218 template <typename T>
219 inline T
221 {
222  return _centerPt._y;
223 }
224 
225 template <typename T>
226 inline T
228 {
229  return _centerPt._z;
230 }
231 
232 template <typename T>
233 inline const Point3dData<T>&
235 {
236  return _centerPt;
237 }
238 
239 template <typename T>
240 inline Point3dData<T>&
242 {
243  return _centerPt;
244 }
245 
246 template <typename T>
247 inline T
249 {
250  return _halfLength;
251 }
252 
253 template <typename T>
254 inline T
256 {
257  return _halfWidth;
258 }
259 
260 template <typename T>
261 inline T
263 {
264  return _halfHeight;
265 }
266 
267 template <typename T>
268 inline T
270 {
271  return 2*_halfLength;
272 }
273 
274 template <typename T>
275 inline T
277 {
278  return 2*_halfWidth;
279 }
280 
281 template <typename T>
282 inline T
284 {
285  return 2*_halfHeight;
286 }
287 
288 template <typename T>
289 inline ipReal64
291 {
292  return _alpha;
293 }
294 
295 template <typename T>
296 inline ipReal64
298 {
299  return _beta;
300 }
301 
302 template <typename T>
303 inline ipReal64
305 {
306  return _chi;
307 }
308 
309 template <typename T>
310 inline Point3dData<T>
312 {
313 
314  const ipReal64 cosAlpha = std::cos(_alpha);
315  const ipReal64 sinAlpha = std::sin(_alpha);
316  const ipReal64 cosBeta = std::cos(_beta);
317  const ipReal64 sinBeta = std::sin(_beta);
318  const ipReal64 cosChi = std::cos(_chi);
319  const ipReal64 sinChi = std::sin(_chi);
320 
321  const ipReal64 rxx = cosChi*cosBeta;
322  const ipReal64 rxy = cosChi*sinBeta*sinAlpha - sinChi*cosAlpha;
323  const ipReal64 rxz = cosChi*sinBeta*cosAlpha + sinChi*sinAlpha;
324  const ipReal64 ryx = sinChi*cosBeta;
325  const ipReal64 ryy = sinChi*sinBeta*sinAlpha + cosChi*cosAlpha;
326  const ipReal64 ryz = sinChi*sinBeta*cosAlpha - cosChi*sinAlpha;
327  const ipReal64 rzx = -sinBeta;
328  const ipReal64 rzy = cosBeta*sinAlpha;
329  const ipReal64 rzz = cosBeta*cosAlpha;
330 
331  const ipReal64 px = _centerPt._x+_halfWidth;
332  const ipReal64 py = _centerPt._y-_halfLength;
333  const ipReal64 pz = _centerPt._z-_halfHeight;
334 
335  const T x = static_cast<T>(rxx * px + rxy * py + rxz * pz);
336  const T y = static_cast<T>(ryx * px + ryy * py + ryz * pz);
337  const T z = static_cast<T>(rzx * px + rzy * py + rzz * pz);
338 
339  return Point3dData<T>(x, y, z);
340 }
341 
342 template <typename T>
343 inline Point3dData<T>
345 {
346 
347  const ipReal64 cosAlpha = std::cos(_alpha);
348  const ipReal64 sinAlpha = std::sin(_alpha);
349  const ipReal64 cosBeta = std::cos(_beta);
350  const ipReal64 sinBeta = std::sin(_beta);
351  const ipReal64 cosChi = std::cos(_chi);
352  const ipReal64 sinChi = std::sin(_chi);
353 
354  const ipReal64 rxx = cosChi*cosBeta;
355  const ipReal64 rxy = cosChi*sinBeta*sinAlpha - sinChi*cosAlpha;
356  const ipReal64 rxz = cosChi*sinBeta*cosAlpha + sinChi*sinAlpha;
357  const ipReal64 ryx = sinChi*cosBeta;
358  const ipReal64 ryy = sinChi*sinBeta*sinAlpha + cosChi*cosAlpha;
359  const ipReal64 ryz = sinChi*sinBeta*cosAlpha - cosChi*sinAlpha;
360  const ipReal64 rzx = -sinBeta;
361  const ipReal64 rzy = cosBeta*sinAlpha;
362  const ipReal64 rzz = cosBeta*cosAlpha;
363 
364  const ipReal64 px = _centerPt._x+_halfWidth;
365  const ipReal64 py = _centerPt._y+_halfLength;
366  const ipReal64 pz = _centerPt._z-_halfHeight;
367 
368  const T x = static_cast<T>(rxx * px + rxy * py + rxz * pz);
369  const T y = static_cast<T>(ryx * px + ryy * py + ryz * pz);
370  const T z = static_cast<T>(rzx * px + rzy * py + rzz * pz);
371 
372  return Point3dData<T>(x, y, z);
373 }
374 
375 template <typename T>
376 inline Point3dData<T>
378 {
379 
380  const ipReal64 cosAlpha = std::cos(_alpha);
381  const ipReal64 sinAlpha = std::sin(_alpha);
382  const ipReal64 cosBeta = std::cos(_beta);
383  const ipReal64 sinBeta = std::sin(_beta);
384  const ipReal64 cosChi = std::cos(_chi);
385  const ipReal64 sinChi = std::sin(_chi);
386 
387  const ipReal64 rxx = cosChi*cosBeta;
388  const ipReal64 rxy = cosChi*sinBeta*sinAlpha - sinChi*cosAlpha;
389  const ipReal64 rxz = cosChi*sinBeta*cosAlpha + sinChi*sinAlpha;
390  const ipReal64 ryx = sinChi*cosBeta;
391  const ipReal64 ryy = sinChi*sinBeta*sinAlpha + cosChi*cosAlpha;
392  const ipReal64 ryz = sinChi*sinBeta*cosAlpha - cosChi*sinAlpha;
393  const ipReal64 rzx = -sinBeta;
394  const ipReal64 rzy = cosBeta*sinAlpha;
395  const ipReal64 rzz = cosBeta*cosAlpha;
396 
397  const ipReal64 px = _centerPt._x+_halfWidth;
398  const ipReal64 py = _centerPt._y-_halfLength;
399  const ipReal64 pz = _centerPt._z+_halfHeight;
400 
401  const T x = static_cast<T>(rxx * px + rxy * py + rxz * pz);
402  const T y = static_cast<T>(ryx * px + ryy * py + ryz * pz);
403  const T z = static_cast<T>(rzx * px + rzy * py + rzz * pz);
404 
405  return Point3dData<T>(x, y, z);
406 }
407 
408 template <typename T>
409 inline Point3dData<T>
411 {
412 
413  const ipReal64 cosAlpha = std::cos(_alpha);
414  const ipReal64 sinAlpha = std::sin(_alpha);
415  const ipReal64 cosBeta = std::cos(_beta);
416  const ipReal64 sinBeta = std::sin(_beta);
417  const ipReal64 cosChi = std::cos(_chi);
418  const ipReal64 sinChi = std::sin(_chi);
419 
420  const ipReal64 rxx = cosChi*cosBeta;
421  const ipReal64 rxy = cosChi*sinBeta*sinAlpha - sinChi*cosAlpha;
422  const ipReal64 rxz = cosChi*sinBeta*cosAlpha + sinChi*sinAlpha;
423  const ipReal64 ryx = sinChi*cosBeta;
424  const ipReal64 ryy = sinChi*sinBeta*sinAlpha + cosChi*cosAlpha;
425  const ipReal64 ryz = sinChi*sinBeta*cosAlpha - cosChi*sinAlpha;
426  const ipReal64 rzx = -sinBeta;
427  const ipReal64 rzy = cosBeta*sinAlpha;
428  const ipReal64 rzz = cosBeta*cosAlpha;
429 
430  const ipReal64 px = _centerPt._x+_halfWidth;
431  const ipReal64 py = _centerPt._y+_halfLength;
432  const ipReal64 pz = _centerPt._z+_halfHeight;
433 
434  const T x = static_cast<T>(rxx * px + rxy * py + rxz * pz);
435  const T y = static_cast<T>(ryx * px + ryy * py + ryz * pz);
436  const T z = static_cast<T>(rzx * px + rzy * py + rzz * pz);
437 
438  return Point3dData<T>(x, y, z);
439 }
440 
441 template <typename T>
442 inline Point3dData<T>
444 {
445 
446  const ipReal64 cosAlpha = std::cos(_alpha);
447  const ipReal64 sinAlpha = std::sin(_alpha);
448  const ipReal64 cosBeta = std::cos(_beta);
449  const ipReal64 sinBeta = std::sin(_beta);
450  const ipReal64 cosChi = std::cos(_chi);
451  const ipReal64 sinChi = std::sin(_chi);
452 
453  const ipReal64 rxx = cosChi*cosBeta;
454  const ipReal64 rxy = cosChi*sinBeta*sinAlpha - sinChi*cosAlpha;
455  const ipReal64 rxz = cosChi*sinBeta*cosAlpha + sinChi*sinAlpha;
456  const ipReal64 ryx = sinChi*cosBeta;
457  const ipReal64 ryy = sinChi*sinBeta*sinAlpha + cosChi*cosAlpha;
458  const ipReal64 ryz = sinChi*sinBeta*cosAlpha - cosChi*sinAlpha;
459  const ipReal64 rzx = -sinBeta;
460  const ipReal64 rzy = cosBeta*sinAlpha;
461  const ipReal64 rzz = cosBeta*cosAlpha;
462 
463  const ipReal64 px = _centerPt._x-_halfWidth;
464  const ipReal64 py = _centerPt._y-_halfLength;
465  const ipReal64 pz = _centerPt._z-_halfHeight;
466 
467  const T x = static_cast<T>(rxx * px + rxy * py + rxz * pz);
468  const T y = static_cast<T>(ryx * px + ryy * py + ryz * pz);
469  const T z = static_cast<T>(rzx * px + rzy * py + rzz * pz);
470 
471  return Point3dData<T>(x, y, z);
472 }
473 
474 template <typename T>
475 inline Point3dData<T>
477 {
478 
479  const ipReal64 cosAlpha = std::cos(_alpha);
480  const ipReal64 sinAlpha = std::sin(_alpha);
481  const ipReal64 cosBeta = std::cos(_beta);
482  const ipReal64 sinBeta = std::sin(_beta);
483  const ipReal64 cosChi = std::cos(_chi);
484  const ipReal64 sinChi = std::sin(_chi);
485 
486  const ipReal64 rxx = cosChi*cosBeta;
487  const ipReal64 rxy = cosChi*sinBeta*sinAlpha - sinChi*cosAlpha;
488  const ipReal64 rxz = cosChi*sinBeta*cosAlpha + sinChi*sinAlpha;
489  const ipReal64 ryx = sinChi*cosBeta;
490  const ipReal64 ryy = sinChi*sinBeta*sinAlpha + cosChi*cosAlpha;
491  const ipReal64 ryz = sinChi*sinBeta*cosAlpha - cosChi*sinAlpha;
492  const ipReal64 rzx = -sinBeta;
493  const ipReal64 rzy = cosBeta*sinAlpha;
494  const ipReal64 rzz = cosBeta*cosAlpha;
495 
496  const ipReal64 px = _centerPt._x-_halfWidth;
497  const ipReal64 py = _centerPt._y+_halfLength;
498  const ipReal64 pz = _centerPt._z-_halfHeight;
499 
500  const T x = static_cast<T>(rxx * px + rxy * py + rxz * pz);
501  const T y = static_cast<T>(ryx * px + ryy * py + ryz * pz);
502  const T z = static_cast<T>(rzx * px + rzy * py + rzz * pz);
503 
504  return Point3dData<T>(x, y, z);
505 }
506 
507 template <typename T>
508 inline Point3dData<T>
510 {
511 
512  const ipReal64 cosAlpha = std::cos(_alpha);
513  const ipReal64 sinAlpha = std::sin(_alpha);
514  const ipReal64 cosBeta = std::cos(_beta);
515  const ipReal64 sinBeta = std::sin(_beta);
516  const ipReal64 cosChi = std::cos(_chi);
517  const ipReal64 sinChi = std::sin(_chi);
518 
519  const ipReal64 rxx = cosChi*cosBeta;
520  const ipReal64 rxy = cosChi*sinBeta*sinAlpha - sinChi*cosAlpha;
521  const ipReal64 rxz = cosChi*sinBeta*cosAlpha + sinChi*sinAlpha;
522  const ipReal64 ryx = sinChi*cosBeta;
523  const ipReal64 ryy = sinChi*sinBeta*sinAlpha + cosChi*cosAlpha;
524  const ipReal64 ryz = sinChi*sinBeta*cosAlpha - cosChi*sinAlpha;
525  const ipReal64 rzx = -sinBeta;
526  const ipReal64 rzy = cosBeta*sinAlpha;
527  const ipReal64 rzz = cosBeta*cosAlpha;
528 
529  const ipReal64 px = _centerPt._x-_halfWidth;
530  const ipReal64 py = _centerPt._y-_halfLength;
531  const ipReal64 pz = _centerPt._z+_halfHeight;
532 
533  const T x = static_cast<T>(rxx * px + rxy * py + rxz * pz);
534  const T y = static_cast<T>(ryx * px + ryy * py + ryz * pz);
535  const T z = static_cast<T>(rzx * px + rzy * py + rzz * pz);
536 
537  return Point3dData<T>(x, y, z);
538 }
539 
540 template <typename T>
541 inline Point3dData<T>
543 {
544 
545  const ipReal64 cosAlpha = std::cos(_alpha);
546  const ipReal64 sinAlpha = std::sin(_alpha);
547  const ipReal64 cosBeta = std::cos(_beta);
548  const ipReal64 sinBeta = std::sin(_beta);
549  const ipReal64 cosChi = std::cos(_chi);
550  const ipReal64 sinChi = std::sin(_chi);
551 
552  const ipReal64 rxx = cosChi*cosBeta;
553  const ipReal64 rxy = cosChi*sinBeta*sinAlpha - sinChi*cosAlpha;
554  const ipReal64 rxz = cosChi*sinBeta*cosAlpha + sinChi*sinAlpha;
555  const ipReal64 ryx = sinChi*cosBeta;
556  const ipReal64 ryy = sinChi*sinBeta*sinAlpha + cosChi*cosAlpha;
557  const ipReal64 ryz = sinChi*sinBeta*cosAlpha - cosChi*sinAlpha;
558  const ipReal64 rzx = -sinBeta;
559  const ipReal64 rzy = cosBeta*sinAlpha;
560  const ipReal64 rzz = cosBeta*cosAlpha;
561 
562  const ipReal64 px = _centerPt._x-_halfWidth;
563  const ipReal64 py = _centerPt._y+_halfLength;
564  const ipReal64 pz = _centerPt._z+_halfHeight;
565 
566  const T x = static_cast<T>(rxx * px + rxy * py + rxz * pz);
567  const T y = static_cast<T>(ryx * px + ryy * py + ryz * pz);
568  const T z = static_cast<T>(rzx * px + rzy * py + rzz * pz);
569 
570  return Point3dData<T>(x, y, z);
571 }
572 
573 
576 
577 } // end of namespace geom
578 } // end of namespace ipsdk
579 
580 #pragma warning (pop)
581 
582 #endif // __IPSDKGEOMETRY_CUBOID3D_H__
ipReal64 getAlpha() const
access to the cuboid parameters
Definition: Cuboid3d.h:290
ipReal64 getChi() const
access to the cuboid parameters
Definition: Cuboid3d.h:304
void setAlpha(const ipReal64 theta)
access to the cuboid parameters
Definition: Cuboid3d.h:192
Main namespace for IPSDK library.
Definition: AlgorithmFunctionEfficiency.h:22
void setHalfHeight(const T halfHeight)
access to the cuboid parameters
Definition: Cuboid3d.h:185
Point3dData< T > bottomLeftFrontCorner() const
compute cuboid corners coordinates For instance, the topLeftFrontCorner() method calculates the squar...
Definition: Cuboid3d.h:377
void setBeta(const ipReal64 theta)
access to the cuboid parameters
Definition: Cuboid3d.h:199
eCoordinateSystem3dType
Enumerate describing coordinate system 3d type.
Definition: GeometryEntity3dTypes.h:74
Point class associated to cartesian 3d coordinates.
Definition: GeometryEntity3dTypes.h:29
#define IPSDK_DECLARE_GEOMETRY_ENTITY_3D(libraryName, className)
Macro allowing to declare a geometry entity 3d.
Definition: GeometryEntity3dHdrMacros.h:131
T _halfHeight
half height of the cuboid
Definition: Cuboid3d.h:118
T getHalfLength() const
access to the cuboid parameters
Definition: Cuboid3d.h:248
double ipReal64
Base types definition.
Definition: BaseTypes.h:57
ipReal64 _chi
orientation angle along the z axis
Definition: Cuboid3d.h:127
eCoordinateSystem3dType getCoordinateSystem3dType() const
method allowing to retrieve coordinate system 3d type
Definition: Cuboid3d.h:136
Cuboid.
Definition: GeometryEntity3dTypes.h:54
const Point3dData< T > & getCoords() const
access to point coordinates
Definition: Point3d.h:142
eEntity3dType getEntity3dType() const
method allowing to retrieve entity 3d type
Definition: Cuboid3d.h:143
Point3dData< T > bottomLeftBackCorner() const
compute cuboid corners coordinates For instance, the topLeftFrontCorner() method calculates the squar...
Definition: Cuboid3d.h:509
T _halfWidth
half width of the cuboid
Definition: Cuboid3d.h:115
Definition of import/export macro for library.
ipReal64 _alpha
orientation angle along the x axis
Definition: Cuboid3d.h:121
Point3dData< T > topRightFrontCorner() const
compute cuboid corners coordinates For instance, the topLeftFrontCorner() method calculates the squar...
Definition: Cuboid3d.h:344
#define IPSDKGEOMETRY_API
Import/Export macro for library IPSDKGeometry.
Definition: IPSDKGeometryExports.h:25
T centerX() const
access to the cuboid parameters
Definition: Cuboid3d.h:213
Point3dData< T > topLeftBackCorner() const
compute cuboid corners coordinates For instance, the topLeftFrontCorner() method calculates the squar...
Definition: Cuboid3d.h:443
ipReal64 _beta
orientation angle along the y axis
Definition: Cuboid3d.h:124
void setHalfWidth(const T halfWidth)
access to the cuboid parameters
Definition: Cuboid3d.h:178
Point3dData< T > topLeftFrontCorner() const
compute cuboid corners coordinates For instance, the topLeftFrontCorner() method calculates the squar...
Definition: Cuboid3d.h:311
T getWidth() const
access to the cuboid parameters
Definition: Cuboid3d.h:276
eEntity3dType
Enumerate describing entity 3d type.
Definition: GeometryEntity3dTypes.h:38
T getLength() const
access to the cuboid parameters
Definition: Cuboid3d.h:269
T getHalfHeight() const
access to the cuboid parameters
Definition: Cuboid3d.h:262
Point3dData< T > bottomRightFrontCorner() const
compute cuboid corners coordinates For instance, the topLeftFrontCorner() method calculates the squar...
Definition: Cuboid3d.h:410
Point3dData< T > _centerPt
center of the cube
Definition: Cuboid3d.h:109
T getHeight() const
access to the cuboid parameters
Definition: Cuboid3d.h:283
T centerY() const
access to the cuboid parameters
Definition: Cuboid3d.h:220
void setChi(const ipReal64 theta)
access to the cuboid parameters
Definition: Cuboid3d.h:206
void setHalfLength(const T halfLength)
access to the cuboid parameters
Definition: Cuboid3d.h:171
3d cuboid (rectangular parallelepiped) class associated to cartesian 3d coordinates ...
Definition: Cuboid3d.h:35
T getHalfWidth() const
access to the cuboid parameters
Definition: Cuboid3d.h:255
Base class for typed 3d geometry entities.
Definition: BaseTypedGeometryEntity3d.h:27
T _halfLength
half length of the cuboid
Definition: Cuboid3d.h:112
Cartesian coordinate system.
Definition: GeometryEntity3dTypes.h:76
Point3dData< T > topRightBackCorner() const
compute cuboid corners coordinates For instance, the topLeftFrontCorner() method calculates the squar...
Definition: Cuboid3d.h:476
ipReal64 getBeta() const
access to the cuboid parameters
Definition: Cuboid3d.h:297
const Point3dData< T > & center() const
access to the cuboid parameters
Definition: Cuboid3d.h:234
Lightweight structure used to store Point3d data.
Definition: GeometryEntity3dTypes.h:27
T centerZ() const
access to the cuboid parameters
Definition: Cuboid3d.h:227
Basic operators used for cuboid 3d management.
Point3dData< T > bottomRightBackCorner() const
compute cuboid corners coordinates For instance, the topLeftFrontCorner() method calculates the squar...
Definition: Cuboid3d.h:542
void setCenter(const Point3dData< T > &centerPt)
access to the cuboid parameters
Definition: Cuboid3d.h:150