1 #ifndef EXPR_Ellipsoid_H
2 #define EXPR_Ellipsoid_H
4 #include "EXPR_ElementaryGeometryNode.h"
25 static const std::array<tCInt,24> BOUNDING_BOX_POINTS;
28 std::array<tReal,3> mCenter;
31 std::array<tReal,3> mU;
32 std::array<tReal,3> mV;
33 std::array<tReal,3> mW;
37 std::array<tReal,3> mSize;
77 mem+=mCenter.size()*
sizeof(tReal);
78 mem+=mU.size()*
sizeof(tReal);
79 mem+=mV.size()*
sizeof(tReal);
80 mem+=mW.size()*
sizeof(tReal);
81 mem+=mSize.size()*
sizeof(tReal);
89 virtual CORE_UniquePointer<EXPR_ElementaryGeometryNode>
newInstance()
const override {
96 static inline CORE_UniquePointer<EXPR_Ellipsoid>
New() {
132 virtual void setArguments(
const std::vector<tString>& args)
override ;
141 memcpy(mCenter.data(),X.data(),X.size()*
sizeof(tReal));
146 inline void setCenter(std::initializer_list<tReal>&& X) {
147 auto iX=std::cbegin(X);
148 for(
auto& Ck:mCenter) {
166 memcpy(mU.data(),U.data(),U.size()*
sizeof(tReal));
172 auto iU=std::cbegin(U);
205 memcpy(mV.data(),V.data(),V.size()*
sizeof(tReal));
211 auto iV=std::cbegin(V);
290 virtual tString
toString() const final;
class Free introduced for deleting a smart pointer
Definition: CORE_Object.h:113
This class describes an elementary geometry.
Definition: EXPR_ElementaryGeometryNode.h:20
virtual void copy(const EXPR_Node &node) override
copy
Definition: EXPR_ElementaryGeometryNode.h:80
virtual tMemSize getContentsMemorySize() const override
return nthe memory size of the included associations
Definition: EXPR_ElementaryGeometryNode.h:71
This class describes an ellipsoide ELLIPSOID from.
Definition: EXPR_Ellipsoid.h:19
EXPR_Ellipsoid()
create the class
Definition: EXPR_Ellipsoid.cpp:20
void setSecondDirection(std::initializer_list< tReal > &&V)
set the second direction
Definition: EXPR_Ellipsoid.h:210
void setCenter(std::initializer_list< tReal > &&X)
set the center
Definition: EXPR_Ellipsoid.h:146
void setSecondDirection(const std::array< tReal, 3 > &V)
set the second direction
Definition: EXPR_Ellipsoid.h:204
virtual tBoolean isInsideCanonicalGeometry(const std::array< tReal, 3 > &p) const final
return true if the point is inside the canonical geometry
Definition: EXPR_Ellipsoid.cpp:139
virtual void computeCanonicalBoundingBox(std::array< tReal, 3 > &minPoint, std::array< tReal, 3 > &maxPoint) const final
compute the bounding box of the geometry
Definition: EXPR_Ellipsoid.cpp:206
const tReal & getThirdRadius() const
get the half-length along secund direction
Definition: EXPR_Ellipsoid.h:254
virtual CORE_UniquePointer< EXPR_ElementaryGeometryNode > newInstance() const override
create a new instance of this
Definition: EXPR_Ellipsoid.h:89
void orthogonalize()
orthogonalize the data
Definition: EXPR_Ellipsoid.cpp:100
virtual tString toString() const final
return the string representation of this
Definition: EXPR_Ellipsoid.cpp:293
void setCenter(const std::array< tReal, 3 > &X)
set the center of the botton ellipsoide
Definition: EXPR_Ellipsoid.h:140
void setMainDirection(const std::array< tReal, 3 > &U)
set the main direction
Definition: EXPR_Ellipsoid.h:165
virtual void setArguments(const std::vector< tString > &args) override
set the argument to define the geometry
Definition: EXPR_Ellipsoid.cpp:42
const tReal & getSecondRadius() const
get the half-length along secund direction
Definition: EXPR_Ellipsoid.h:236
void setMainDirection(std::initializer_list< tReal > &&U)
set the main direction
Definition: EXPR_Ellipsoid.h:171
static CORE_UniquePointer< EXPR_Ellipsoid > New()
crete the new instance of this
Definition: EXPR_Ellipsoid.h:96
void setMainRadius(const tReal &L)
set the half-length along main direction
Definition: EXPR_Ellipsoid.h:188
const std::array< tReal, 3 > & getSecondDirection() const
get the second direction
Definition: EXPR_Ellipsoid.h:220
const std::array< tReal, 3 > & getCenter() const
get the center
Definition: EXPR_Ellipsoid.h:156
const tReal & getMainRadius() const
get the half-length along main direction
Definition: EXPR_Ellipsoid.h:196
virtual void copy(const EXPR_Node &node) override
copy
Definition: EXPR_Ellipsoid.h:106
virtual void adimensionize(const tReal &L) final
adimensionize the cylinder
Definition: EXPR_Ellipsoid.cpp:94
const std::array< tReal, 3 > & getMainDirection() const
get the main direction
Definition: EXPR_Ellipsoid.h:181
virtual ~EXPR_Ellipsoid()
delete the class
Definition: EXPR_Ellipsoid.cpp:38
void setSecondRadius(const tReal &L)
set the half-length along secund direction
Definition: EXPR_Ellipsoid.h:229
virtual tMemSize getMemorySize() const override
return the memory size of the class
Definition: EXPR_Ellipsoid.h:63
void setThirdRadius(const tReal &L)
set the half-length along secund direction
Definition: EXPR_Ellipsoid.h:247
virtual tMemSize getContentsMemorySize() const override
return nthe memory size of the included associations
Definition: EXPR_Ellipsoid.h:75
This class is a base class of the binary tree.
Definition: EXPR_Node.h:16