Axis Aligned Bounding Box calculator. More...
#include <AABBox.hpp>


Public Member Functions | |
| AABBox () | |
| AABBox (const AABBox &other) | |
| AABBox (const bitpit::Config::Section &rootXML) | |
| virtual | ~AABBox () |
| virtual void | absorbSectionXML (const bitpit::Config::Section &slotXML, std::string name="") |
| void | buildPorts () |
| void | clearAABBox () |
| void | execute () |
| virtual void | flushSectionXML (bitpit::Config::Section &slotXML, std::string name="") |
| dmatrix33E | getAxes () |
| std::vector< MimmoSharedPointer< MimmoObject > > | getGeometries () |
| darray3E | getOrigin () |
| darray3E | getSpan () |
| void | plot (std::string directory, std::string filename, int counter, bool binary) |
| void | setAxes (dmatrix33E axes) |
| void | setGeometries (std::vector< MimmoSharedPointer< MimmoObject > > listgeo) |
| void | setGeometry (MimmoSharedPointer< MimmoObject > geo) |
| void | setWriteInfo (bool flag) |
Public Member Functions inherited from mimmo::BaseManipulation | |
| BaseManipulation () | |
| BaseManipulation (const BaseManipulation &other) | |
| virtual | ~BaseManipulation () |
| void | activate () |
| bool | arePortsBuilt () |
| void | clear () |
| void | disable () |
| void | exec () |
| BaseManipulation * | getChild (int i=0) |
| ConnectionType | getConnectionType () |
| MimmoSharedPointer< MimmoObject > | getGeometry () |
| MimmoSharedPointer< MimmoObject > & | getGeometryReference () |
| int | getId () |
| bitpit::Logger & | getLog () |
| std::string | getName () |
| int | getNChild () |
| int | getNParent () |
| int | getNPortsIn () |
| int | getNPortsOut () |
| BaseManipulation * | getParent (int i=0) |
| std::unordered_map< PortID, PortIn * > | getPortsIn () |
| std::unordered_map< PortID, PortOut * > | getPortsOut () |
| uint | getPriority () |
| virtual std::vector< BaseManipulation * > | getSubBlocksEmbedded () |
| bool | isActive () |
| bool | isApply () |
| bool | isChild (BaseManipulation *, int &) |
| bool | isParent (BaseManipulation *, int &) |
| bool | isPlotInExecution () |
| BaseManipulation & | operator= (const BaseManipulation &other) |
| void | removePins () |
| void | removePinsIn () |
| void | removePinsOut () |
| void | setApply (bool flag=true) |
| void | setGeometry (MimmoSharedPointer< MimmoObject > geometry) |
| void | setId (int) |
| void | setLog (bitpit::Logger &log) |
| void | setName (std::string name) |
| void | setOutputPlot (std::string path) |
| void | setPlotInExecution (bool) |
| void | setPriority (uint priority) |
| void | unsetGeometry () |
Protected Member Functions | |
| dmatrix33E | inverse (const dmatrix33E &mat) |
| virtual void | plotOptionalResults () |
| void | swap (AABBox &x) noexcept |
| dmatrix33E | transpose (const dmatrix33E &mat) |
Protected Member Functions inherited from mimmo::BaseManipulation | |
| void | _apply (MimmoPiercedVector< darray3E > &displacements) |
| void | addChild (BaseManipulation *child) |
| void | addParent (BaseManipulation *parent) |
| void | addPinIn (BaseManipulation *objIn, PortID portR) |
| void | addPinOut (BaseManipulation *objOut, PortID portS, PortID portR) |
| virtual void | apply () |
| void | cleanBufferIn (PortID port) |
| template<typename T , typename O > | |
| bool | createPortIn (O *obj, void(O::*setVar_)(T), PortID portR, bool mandatory=false, int family=0) |
| template<typename T , typename O > | |
| bool | createPortIn (T *var_, PortID portR, bool mandatory=false, int family=0) |
| template<typename T , typename O > | |
| bool | createPortOut (O *obj, T(O::*getVar_)(), PortID portS) |
| template<typename T , typename O > | |
| bool | createPortOut (T *var_, PortID portS) |
| void | deletePorts () |
| PortID | findPinIn (PortIn &pin) |
| PortID | findPinOut (PortOut &pin) |
| void | initializeLogger (bool logexists) |
| void | readBufferIn (PortID port) |
| void | removePinIn (BaseManipulation *objIn, PortID portR) |
| void | removePinIn (PortID portR, int j) |
| void | removePinOut (BaseManipulation *objOut, PortID portS) |
| void | removePinOut (PortID portS, int j) |
| void | setBufferIn (PortID port, mimmo::IBinaryStream &input) |
| void | swap (BaseManipulation &x) noexcept |
| void | unsetChild (BaseManipulation *child) |
| void | unsetParent (BaseManipulation *parent) |
| void | write (MimmoSharedPointer< MimmoObject > geometry) |
| template<typename mpv_t > | |
| void | write (MimmoSharedPointer< MimmoObject > geometry, MimmoPiercedVector< mpv_t > &data) |
| template<typename mpv_t , typename... Args> | |
| void | write (MimmoSharedPointer< MimmoObject > geometry, MimmoPiercedVector< mpv_t > &data, Args ... args) |
| template<typename mpv_t > | |
| void | write (MimmoSharedPointer< MimmoObject > geometry, std::vector< MimmoPiercedVector< mpv_t > * > &data) |
| template<typename mpv_t , typename... Args> | |
| void | write (MimmoSharedPointer< MimmoObject > geometry, std::vector< MimmoPiercedVector< mpv_t > * > &data, Args ... args) |
| template<typename mpv_t > | |
| void | write (MimmoSharedPointer< MimmoObject > geometry, std::vector< MimmoPiercedVector< mpv_t >> &data) |
| template<typename mpv_t , typename... Args> | |
| void | write (MimmoSharedPointer< MimmoObject > geometry, std::vector< MimmoPiercedVector< mpv_t >> &data, Args ... args) |
Protected Attributes | |
| dmatrix33E | m_axes |
| std::unordered_map< MimmoSharedPointer< MimmoObject >, int > | m_listgeo |
| darray3E | m_origin |
| darray3E | m_span |
| bool | m_writeInfo |
Protected Attributes inherited from mimmo::BaseManipulation | |
| bool | m_active |
| bool | m_apply |
| bool | m_arePortsBuilt |
| bmumap | m_child |
| int | m_counter |
| bool | m_execPlot |
| MimmoSharedPointer< MimmoObject > | m_geometry |
| bitpit::Logger * | m_log |
| std::string | m_name |
| std::string | m_outputPlot |
| bmumap | m_parent |
| std::unordered_map< PortID, PortIn * > | m_portIn |
| std::unordered_map< PortID, PortOut * > | m_portOut |
| ConnectionType | m_portsType |
| uint | m_priority |
Additional Inherited Members | |
Public Types inherited from mimmo::BaseManipulation | |
| typedef std::unordered_map< BaseManipulation *, int > | bmumap |
| typedef pin::ConnectionType | ConnectionType |
| typedef std::string | PortID |
Static Protected Attributes inherited from mimmo::BaseManipulation | |
| static int | sm_baseManipulationCounter |
Detailed Description
Axis Aligned Bounding Box calculator.
Builds the axis aligned bounding box of a 3D object (Point Clouds or superficial tessellations), passed as MimmoObject.
A Custom Reference System of axes can be provided by the User, instead of the Elemental s.d.r.: in this case the AABB will be specialized onto the new sdr of axes.
Ports available in AABBox Class :
| Port Input | ||
|---|---|---|
| PortType | variable/function | DataType |
| M_GEOM | setGeometry | (MC_SCALAR, MD_MIMMO_) |
| M_AXES | setAxes | (MC_ARR3ARR3, MD_FLOAT) |
| M_VECGEOM | setGeometries | (MC_VECTOR, MD_MIMMO_) |
| Port Output | ||
|---|---|---|
| PortType | variable/function | DataType |
| M_POINT | getOrigin | (MC_ARRAY3, MD_FLOAT) |
| M_AXES | getAxes | (MC_ARR3ARR3, MD_FLOAT) |
| M_SPAN | getSpan | (MC_ARRAY3, MD_FLOAT) |
The xml available parameters, sections and subsections are the following :
Inherited from BaseManipulation:
- ClassName: name of the class as
mimmo.AABBox - Priority: uint marking priority in multi-chain execution;
- PlotInExecution: boolean 0/1 print optional results of the class.
- OutputPlot: target directory for optional results writing.
Proper of the class:
- WriteInfo: boolean(0/1) if true write info of AABB on file, in plotOptionalResults directory, false do nothing.
- Axes: reference system to bind box calculation:
<RefSystem>
<axis0> 1.0 0.0 0.0 </axis0>
<axis1> 0.0 1.0 0.0 </axis1>
<axis2> 0.0 0.0 1.0 </axis2>
</Axes>
Geometries have to be mandatorily added/passed through ports.
Definition at line 84 of file AABBox.hpp.
Constructor & Destructor Documentation
◆ AABBox() [1/3]
| mimmo::AABBox::AABBox | ( | ) |
Base Constructor. Doing nothing.
Definition at line 30 of file AABBox.cpp.
◆ AABBox() [2/3]
| mimmo::AABBox::AABBox | ( | const bitpit::Config::Section & | rootXML | ) |
Custom constructor reading xml data
- Parameters
-
[in] rootXML reference to your xml tree section
Definition at line 47 of file AABBox.cpp.
◆ ~AABBox()
|
virtual |
Destructor
Definition at line 71 of file AABBox.cpp.
◆ AABBox() [3/3]
| mimmo::AABBox::AABBox | ( | const AABBox & | other | ) |
Copy Constructor
- Parameters
-
[in] other AABBox where copy from
Definition at line 76 of file AABBox.cpp.
Member Function Documentation
◆ absorbSectionXML()
|
virtual |
It sets infos reading from a XML bitpit::Config::section.
- Parameters
-
[in] slotXML bitpit::Config::Section of XML file [in] name name associated to the slot
Reimplemented from mimmo::BaseManipulation.
Definition at line 371 of file AABBox.cpp.
◆ buildPorts()
|
virtual |
It builds the input/output ports of the object
Implements mimmo::BaseManipulation.
Definition at line 101 of file AABBox.cpp.
◆ clearAABBox()
| void mimmo::AABBox::clearAABBox | ( | ) |
Clean all stuffs in your class
Definition at line 116 of file AABBox.cpp.
◆ execute()
|
virtual |
Execute your object, calculate the AABBox of your geometry. Implementation of pure virtual BaseManipulation::execute
Implements mimmo::BaseManipulation.
Definition at line 270 of file AABBox.cpp.
◆ flushSectionXML()
|
virtual |
It sets infos from class members in a XML bitpit::Config::section.
- Parameters
-
[in] slotXML bitpit::Config::Section of XML file [in] name name associated to the slot
Reimplemented from mimmo::BaseManipulation.
Definition at line 433 of file AABBox.cpp.
◆ getAxes()
| dmatrix33E mimmo::AABBox::getAxes | ( | ) |
- Returns
- the axes sdr of the AABB (default or provided by the User).
Definition at line 151 of file AABBox.cpp.
◆ getGeometries()
| std::vector< MimmoSharedPointer< MimmoObject > > mimmo::AABBox::getGeometries | ( | ) |
- Returns
- current list of linked geometry for aabbox calculation
Definition at line 161 of file AABBox.cpp.
◆ getOrigin()
| darray3E mimmo::AABBox::getOrigin | ( | ) |
- Returns
- the origin of the AABB.
Definition at line 134 of file AABBox.cpp.
◆ getSpan()
| darray3E mimmo::AABBox::getSpan | ( | ) |
- Returns
- the span of the AABB.
Definition at line 142 of file AABBox.cpp.
◆ inverse()
|
protected |
Invert a 3x3 double matrix
- Parameters
-
[in] mat target matrix
- Returns
- new matrix transposed
Definition at line 473 of file AABBox.cpp.
◆ plot()
| void mimmo::AABBox::plot | ( | std::string | directory, |
| std::string | filename, | ||
| int | counter, | ||
| bool | binary | ||
| ) |
Plot the AABB as a structured grid to *vtu file.
- Parameters
-
[in] directory output directory [in] filename output filename w/out tag [in] counter integer identifier of the file [in] binary boolean flag for 0-"ascii" or 1-"appended" writing
Definition at line 224 of file AABBox.cpp.
◆ plotOptionalResults()
|
protectedvirtual |
Plot Optional results of the class, that is the oriented bounding box as *.vtu mesh
Reimplemented from mimmo::BaseManipulation.
Definition at line 359 of file AABBox.cpp.
◆ setAxes()
| void mimmo::AABBox::setAxes | ( | dmatrix33E | axes | ) |
set the new s.d.r. of axes to calculate AABB.
- Parameters
-
[in] axes new sdr of axes (different from canonical x,y,z)
Definition at line 204 of file AABBox.cpp.
◆ setGeometries()
| void mimmo::AABBox::setGeometries | ( | std::vector< MimmoSharedPointer< MimmoObject > > | listgeo | ) |
Set the list of target geometries once and for all, and erase any pre-existent list.
- Parameters
-
[in] listgeo list of pointers to target geometries
Definition at line 175 of file AABBox.cpp.
◆ setGeometry()
| void mimmo::AABBox::setGeometry | ( | MimmoSharedPointer< MimmoObject > | geo | ) |
- Add your target geometry to the list of target geometries. Reimplemented from BaseManipulation::setGeometry().
- Parameters
-
[in] geo pointer to target geometry
Definition at line 188 of file AABBox.cpp.
◆ setWriteInfo()
| void mimmo::AABBox::setWriteInfo | ( | bool | flag | ) |
Force class to write AABB calculated origin, axes and span to file(in the plotOptionalResults directory)
- Parameters
-
[in] flag true, write the AABB info on file.
Definition at line 213 of file AABBox.cpp.
◆ swap()
|
protectednoexcept |
◆ transpose()
|
protected |
Transpose a 3x3 double matrix
- Parameters
-
[in] mat target matrix
- Returns
- new matrix transposed
Definition at line 457 of file AABBox.cpp.
Member Data Documentation
◆ m_axes
|
protected |
reference system of the bbox, ordered aaccording maximum shape variance
Definition at line 89 of file AABBox.hpp.
◆ m_listgeo
|
protected |
list of geometries linked in input, according to type
Definition at line 91 of file AABBox.hpp.
◆ m_origin
|
protected |
Origin of the AABB.
Definition at line 87 of file AABBox.hpp.
◆ m_span
|
protected |
Span of the AABB.
Definition at line 88 of file AABBox.hpp.
◆ m_writeInfo
|
protected |
write AABB info on file
Definition at line 92 of file AABBox.hpp.
The documentation for this class was generated from the following files:
- src/utils/AABBox.hpp
- src/utils/AABBox.cpp
1.8.17
Public Member Functions inherited from