C++ mpi module for stochmagnet_main Package
Public Member Functions | Static Public Member Functions | Protected Member Functions | List of all members
EXPR_ElementaryGeometryNode Class Referenceabstract

This class describes an elementary geometry. More...

#include <EXPR_ElementaryGeometryNode.h>

Inheritance diagram for EXPR_ElementaryGeometryNode:
Inheritance graph
[legend]
Collaboration diagram for EXPR_ElementaryGeometryNode:
Collaboration graph
[legend]

Public Member Functions

virtual CORE_UniquePointer< EXPR_ElementaryGeometryNodenewInstance () const =0
 create a new instance of this More...
 
virtual tMemSize getMemorySize () const override
 return the memory size of the class More...
 
virtual tMemSize getContentsMemorySize () const override
 return nthe memory size of the included associations More...
 
virtual void copy (const EXPR_Node &node) override
 copy More...
 
const tString & getName () const
 get name More...
 
virtual void setArguments (const std::vector< tString > &args)=0
 set the argument to define the geometry More...
 
virtual tBoolean isInside (std::array< tReal, 3 > P) const override
 return true if the point is in the node More...
 
void computeBoundingBox ()
 compute the bounding box of the geometry taking into account the transformation of node
 
virtual void computeBoundingBox (std::map< tString, tBoolean > &alreadyComputed) override
 compute the bounding box of the node More...
 
virtual void adimensionize (const tReal &L, std::map< tString, tBoolean > &alreadyComputed) override
 adimensionize the node More...
 
virtual void adimensionize (const tReal &L)=0
 adimensionize the primary geometry More...
 
virtual tString toString () const override
 return the string representation of this More...
 
- Public Member Functions inherited from EXPR_Node
void setAlpha (std::initializer_list< tReal > &&alpha)
 set the matrix alpha by row More...
 
void setBeta (std::initializer_list< tReal > &&beta)
 set the constant by column More...
 
void addToBeta (std::initializer_list< tReal > &&beta)
 add to the constant by column More...
 
const std::array< tReal, 3 > & getBeta () const
 get the beta value More...
 
const std::array< tReal, 9 > & getAlpha () const
 get the alpha value More...
 
void leftComposition (const std::array< tReal, 9 > &A, const std::array< tReal, 3 > &B)
 compose by the affine function \( (A.x+B) \circ (\alpha. x +\beta) \) More...
 
void leftComposition (const std::array< tReal, 9 > &A)
 compose by the affine function \( (A.x) \circ (\alpha. x +\beta) \) More...
 
void rotation (const tReal &theta)
 compute the rotation of the geometry with angle theta and k-axis More...
 
void rotation (const tReal &theta, const tReal &Ax, const tReal &Ay, const tReal &Az)
 compute the rotation of the geometry with angle theta and axis (Ax,Ay,Az) More...
 
void rotation (const tReal &theta, const tReal &Ax, const tReal &Ay, const tReal &Az, const tReal &Cx, const tReal &Cy, const tReal &Cz)
 compute the rotation of the geometry with angle theta and axis (Ax,Ay,Az)a and center (Cx,Cy,Cz) More...
 
void translate (const std::array< tReal, 3 > &T)
 translate the geometry More...
 
const std::array< tReal, 3 > & getBoundingBoxMinPoint () const
 get the min point bounding box of the node for reading More...
 
const std::array< tReal, 3 > & getBoundingBoxMaxPoint () const
 get the max point bounding box of the node for reading More...
 
std::array< tReal, 3 > & getBoundingBoxMinPoint ()
 get the min point bounding box of the node for writing More...
 
std::array< tReal, 3 > & getBoundingBoxMaxPoint ()
 get the max point bounding box of the node for writing More...
 
tBoolean isInsideBoundingBox (const std::array< tReal, 3 > &P) const
 return true if the point P is in the bounding box More...
 
- Public Member Functions inherited from CORE_Object
template<class T >
std::shared_ptr< T > getSharedPointer ()
 return the shared pointer for this More...
 
template<class T >
std::shared_ptr< const T > getConstSharedPointer () const
 return a const shared pointer for this More...
 
template<class T >
tBoolean isInstanceOf () const
 test if the clas T is an instance of this class More...
 
tString getClassName () const
 return the name of the class More...
 
tString getPointerString () const
 retrun the pointer of the class as a string More...
 
tString getIdentityString () const
 retrun the string identification of the class More...
 

Static Public Member Functions

static void GetSphericalCoordinates (const std::array< tReal, 3 > &M, const std::array< tReal, 3 > &C, tReal &r, tReal &theta, tReal &phi)
 get the spherical coordinate of the point M with center C, radius r, inclination theta and azimuth phi More...
 
- Static Public Member Functions inherited from EXPR_Node
static void SetEpsilon (const tReal &eps)
 set the tolerance error More...
 
static const tReal & GetEpsilon ()
 get the tolerance error More...
 
- Static Public Member Functions inherited from CORE_Object
static tBoolean EnableMemoryStack (const tBoolean &isMemoryChecked)
 enable the memory stack More...
 
static void EnableMemoryStack ()
 enable the memory stack
 
static void DisableMemoryStack ()
 disable the memory stack
 
static tBoolean IsMemoryStackEnabled ()
 return trur if the memory stack is enabled
 
static tString MemoryStackToString ()
 get the memory stack in string More...
 
static tIndex GetRegisteredClassesNumber ()
 get the memory stack in string More...
 

Protected Member Functions

 EXPR_ElementaryGeometryNode ()
 create the class
 
virtual ~EXPR_ElementaryGeometryNode ()
 delete the class
 
void setName (const tString &name)
 set name More...
 
virtual tBoolean isInsideCanonicalGeometry (const std::array< tReal, 3 > &P) const =0
 return true if the point is in the node More...
 
virtual void computeCanonicalBoundingBox (std::array< tReal, 3 > &minPoint, std::array< tReal, 3 > &maxPoint) const =0
 compute the bounding box of the node More...
 
- Protected Member Functions inherited from EXPR_LeafNode
 EXPR_LeafNode ()
 create the class
 
virtual ~EXPR_LeafNode ()
 delete the class
 
- Protected Member Functions inherited from EXPR_ChildNode
 EXPR_ChildNode ()
 create the class
 
virtual ~EXPR_ChildNode ()
 delete the class
 
- Protected Member Functions inherited from EXPR_Node
 EXPR_Node ()
 create the class
 
virtual ~EXPR_Node ()
 delete the class
 
void apply (std::array< tReal, 3 > &P) const
 apply the transformation to point P \( Q:=F(P)=mAlpha.P+mBeta \) More...
 
tBoolean apply (const std::array< tReal, 3 > &P, std::array< tReal, 3 > &Q) const
 apply the transformation to point P \( Q:=F(P)=mAlpha.P+mBeta \) More...
 
void applyInverse (std::array< tReal, 3 > &P) const
 apply the inverse transformation to point P \( Q:=F^{-1}(P)=\alpha^{-1}.(P-\beta) \) More...
 
tBoolean applyInverse (const std::array< tReal, 3 > &P, std::array< tReal, 3 > &Q) const
 apply the inverse transformation to point P \( Q:=F^{-1}(P)=\alpha^{-1}.(P-\beta) \) More...
 
void linearTransformBoundingBox (std::array< tReal, 3 > &P, std::array< tReal, 3 > &Q) const
 compute the bounding box after transformation More...
 
- Protected Member Functions inherited from EXPR_Object
 EXPR_Object (void)
 create the class
 
virtual ~EXPR_Object (void)
 delete the class
 
- Protected Member Functions inherited from CORE_Object
 CORE_Object ()
 build an instance of the object
 
virtual ~CORE_Object ()
 destroy the instance of object std

 

Detailed Description

This class describes an elementary geometry.

a an elementary geometry may be transform with a linear function \( F(x)=\alpha.x+\beta \) where \( \alpha \n R^3 \times R^3 \) and \( \beta \in R^3 \).

Author
Stephane Despreaux
Version
2.0

Member Function Documentation

◆ adimensionize() [1/2]

virtual void EXPR_ElementaryGeometryNode::adimensionize ( const tReal &  L)
pure virtual

adimensionize the primary geometry

Parameters
L: the reference length

Implemented in EXPR_EmptyNode, EXPR_Paver, EXPR_Ellipsoid, and EXPR_Cylinder.

◆ adimensionize() [2/2]

virtual void EXPR_ElementaryGeometryNode::adimensionize ( const tReal &  L,
std::map< tString, tBoolean > &  alreadyComputed 
)
inlineoverridevirtual

adimensionize the node

Parameters
L: the reference length
alreadComputedidentity of the root node whose adimenionization has already been computed

Reimplemented from EXPR_Node.

◆ computeBoundingBox()

virtual void EXPR_ElementaryGeometryNode::computeBoundingBox ( std::map< tString, tBoolean > &  alreadyComputed)
inlineoverridevirtual

compute the bounding box of the node

Parameters
alreadComputedidentity of the root node whose bounding box has already been computed

Implements EXPR_Node.

◆ computeCanonicalBoundingBox()

virtual void EXPR_ElementaryGeometryNode::computeCanonicalBoundingBox ( std::array< tReal, 3 > &  minPoint,
std::array< tReal, 3 > &  maxPoint 
) const
protectedpure virtual

compute the bounding box of the node

Parameters
[out]minPointmin point of the bounding box ie left bottom point
[out]maxPointmax point of the bounding box ie right top point

Implemented in EXPR_EmptyNode, EXPR_Paver, EXPR_Ellipsoid, and EXPR_Cylinder.

◆ copy()

virtual void EXPR_ElementaryGeometryNode::copy ( const EXPR_Node node)
inlineoverridevirtual

copy

Parameters
nodethe node to copy

Reimplemented from EXPR_Node.

Reimplemented in EXPR_Paver, EXPR_Ellipsoid, and EXPR_Cylinder.

◆ getContentsMemorySize()

virtual tMemSize EXPR_ElementaryGeometryNode::getContentsMemorySize ( ) const
inlineoverridevirtual

return nthe memory size of the included associations

Returns
the memory size of the storage in bytes 1 Kb = 1024 bytes 1 Mb = 1024 Kb 1 Gb = 1024 Mb 1 Tb = 1024 Gb 1 Hb = 1024 Tb

Reimplemented from EXPR_LeafNode.

Reimplemented in EXPR_Paver, EXPR_EmptyNode, EXPR_Ellipsoid, and EXPR_Cylinder.

◆ getMemorySize()

virtual tMemSize EXPR_ElementaryGeometryNode::getMemorySize ( ) const
inlineoverridevirtual

return the memory size of the class

Returns
the memory size of the class in bytes 1 octet = 1 byte 1 Ko = 1024 bytes 1 Mo = 1024 Ko 1 Go = 1024 Mo

Reimplemented from EXPR_LeafNode.

Reimplemented in EXPR_Paver, EXPR_EmptyNode, EXPR_Ellipsoid, and EXPR_Cylinder.

◆ getName()

const tString& EXPR_ElementaryGeometryNode::getName ( ) const
inline

get name

Returns
the name of the geometry

◆ GetSphericalCoordinates()

static void EXPR_ElementaryGeometryNode::GetSphericalCoordinates ( const std::array< tReal, 3 > &  M,
const std::array< tReal, 3 > &  C,
tReal &  r,
tReal &  theta,
tReal &  phi 
)
inlinestatic

get the spherical coordinate of the point M with center C, radius r, inclination theta and azimuth phi

Parameters
[in]Mcartesian coordinates of M
[in]Ccartesian coordinates of the center
[out]rradius |MC|
[out]theta: inclination in [0,pi] angle(Cz,CM)
[out]phiazimuth in [0,2.pi[ angle(Cx,CP) P is the projection of M on the place (C,Cx,Cy)
Returns
the spherical coordinate such that :
  • \( CM=(x,y,z) \)
  • \( x=r.cos(\phi).sin(\theta\)
  • \( y=r.sin(\phi).sin(\theta) \)
  • \( z=r.cos(\theta) \)

◆ isInside()

virtual tBoolean EXPR_ElementaryGeometryNode::isInside ( std::array< tReal, 3 >  P) const
inlineoverridevirtual

return true if the point is in the node

Parameters
[in]pcoordinates of the point to test
Returns
the true if the point p is in the node

Implements EXPR_Node.

◆ isInsideCanonicalGeometry()

virtual tBoolean EXPR_ElementaryGeometryNode::isInsideCanonicalGeometry ( const std::array< tReal, 3 > &  P) const
protectedpure virtual

return true if the point is in the node

Parameters
[in]Pcoordinates of the point to test
Returns
the true if the point p is in the node

Implemented in EXPR_EmptyNode, EXPR_Paver, EXPR_Ellipsoid, and EXPR_Cylinder.

◆ newInstance()

virtual CORE_UniquePointer<EXPR_ElementaryGeometryNode> EXPR_ElementaryGeometryNode::newInstance ( ) const
pure virtual

create a new instance of this

Returns
a new instance of this

Implemented in EXPR_Paver, EXPR_Ellipsoid, EXPR_Cylinder, and EXPR_EmptyNode.

◆ setArguments()

virtual void EXPR_ElementaryGeometryNode::setArguments ( const std::vector< tString > &  args)
pure virtual

set the argument to define the geometry

Parameters
[in]argsarguments as string

Implemented in EXPR_Paver, EXPR_EmptyNode, EXPR_Ellipsoid, and EXPR_Cylinder.

◆ setName()

void EXPR_ElementaryGeometryNode::setName ( const tString &  name)
inlineprotected

set name

Parameters
namename of the geometry

◆ toString()

virtual tString EXPR_ElementaryGeometryNode::toString ( ) const
inlineoverridevirtual

return the string representation of this

Returns
the string representation of this

Reimplemented from EXPR_Node.

Reimplemented in EXPR_EmptyNode, EXPR_Ellipsoid, and EXPR_Cylinder.


The documentation for this class was generated from the following file: