mimmo::ProjSegmentOnSurface Class Reference

Executable block class capable of projecting an elemental segment on a 3D surface mesh defined by a MimmoObject. More...

#include <ProjSegmentOnSurface.hpp>

Inheritance diagram for mimmo::ProjSegmentOnSurface:
Collaboration diagram for mimmo::ProjSegmentOnSurface:

Public Member Functions

 ProjSegmentOnSurface ()
 
 ProjSegmentOnSurface (const bitpit::Config::Section &rootXML)
 
 ProjSegmentOnSurface (const ProjSegmentOnSurface &other)
 
virtual ~ProjSegmentOnSurface ()
 
void absorbSectionXML (const bitpit::Config::Section &slotXML, std::string name="")
 
void clear ()
 
void flushSectionXML (bitpit::Config::Section &slotXML, std::string name="")
 
ProjSegmentOnSurfaceoperator= (ProjSegmentOnSurface other)
 
void setSegment (darray3E origin, darray3E dir, double length)
 
void setSegment (darray3E pointA, darray3E pointB)
 
- Public Member Functions inherited from mimmo::ProjPrimitivesOnSurfaces
 ProjPrimitivesOnSurfaces ()
 
 ProjPrimitivesOnSurfaces (const ProjPrimitivesOnSurfaces &other)
 
virtual ~ProjPrimitivesOnSurfaces ()
 
void clear ()
 
void execute ()
 
MimmoSharedPointer< MimmoObjectgetProjectedElement ()
 
virtual int getProjElementTargetNCells ()
 
int getTopology ()
 
bool isEmpty ()
 
ProjPrimitivesOnSurfacesoperator= (const ProjPrimitivesOnSurfaces &other)
 
void plotOptionalResults ()
 
void setBuildKdTree (bool build)
 
void setBuildSkdTree (bool build)
 
void setGeometry (MimmoSharedPointer< MimmoObject > geo)
 
void setProjElementTargetNCells (int nC)
 
- Public Member Functions inherited from mimmo::BaseManipulation
 BaseManipulation ()
 
 BaseManipulation (const BaseManipulation &other)
 
virtual ~BaseManipulation ()
 
void activate ()
 
bool arePortsBuilt ()
 
void clear ()
 
void disable ()
 
void exec ()
 
BaseManipulationgetChild (int i=0)
 
ConnectionType getConnectionType ()
 
MimmoSharedPointer< MimmoObjectgetGeometry ()
 
MimmoSharedPointer< MimmoObject > & getGeometryReference ()
 
int getId ()
 
bitpit::Logger & getLog ()
 
std::string getName ()
 
int getNChild ()
 
int getNParent ()
 
int getNPortsIn ()
 
int getNPortsOut ()
 
BaseManipulationgetParent (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 ()
 
BaseManipulationoperator= (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

void projection ()
 
void swap (ProjSegmentOnSurface &x) noexcept
 
- Protected Member Functions inherited from mimmo::ProjPrimitivesOnSurfaces
virtual void buildPorts ()
 
void swap (ProjPrimitivesOnSurfaces &x) noexcept
 
- 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)
 

Additional Inherited Members

- Public Types inherited from mimmo::BaseManipulation
typedef std::unordered_map< BaseManipulation *, int > bmumap
 
typedef pin::ConnectionType ConnectionType
 
typedef std::string PortID
 
- Protected Attributes inherited from mimmo::ProjPrimitivesOnSurfaces
bool m_buildKdTree
 
bool m_buildSkdTree
 
int m_nC
 
MimmoSharedPointer< MimmoObjectm_patch
 
int m_topo
 
- 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< MimmoObjectm_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
 
- Static Protected Attributes inherited from mimmo::BaseManipulation
static int sm_baseManipulationCounter
 

Detailed Description

Executable block class capable of projecting an elemental segment on a 3D surface mesh defined by a MimmoObject.

ProjSegmentOnSurface project a given segment on a given 3D surface mesh and return a discrete 3D curve mesh in MimmoObject container

Ports available in ProjSegmentOnSurface Class :


Port Input
PortType variable/function DataType
Port Output
PortType variable/function DataType

Inheriting ports from base class ProjPrimitivesOnSurfaces:

Port Input
PortType variable/function DataType
M_GEOM setGeometry (MC_SCALAR, MD_MIMMO_)
Port Output
PortType variable/function DataType
M_GEOM getProjectedElement (MC_SCALAR, MD_MIMMO_)

The xml available parameters, sections and subsections are the following :

Inherited from BaseManipulation:

  • ClassName : name of the class as mimmo.ProjSegmentOnSurface;
  • 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

  • Segment : pass extremal points of the segmentSegmentPoints (6 coordinates, space separated);
  • nCells : number of discrete cells of projected 3D curve;
  • SkdTree : evaluate skdTree true 1/false 0;
  • KdTree : evaluate kdTree true 1/false 0;

Geometry has to be mandatorily passed through port.

Definition at line 99 of file ProjSegmentOnSurface.hpp.

Constructor & Destructor Documentation

◆ ProjSegmentOnSurface() [1/3]

mimmo::ProjSegmentOnSurface::ProjSegmentOnSurface ( )

Default constructor

Definition at line 45 of file ProjSegmentOnSurface.cpp.

◆ ProjSegmentOnSurface() [2/3]

mimmo::ProjSegmentOnSurface::ProjSegmentOnSurface ( const bitpit::Config::Section &  rootXML)

Custom constructor reading xml data

Parameters
[in]rootXMLreference to your xml tree section

Definition at line 56 of file ProjSegmentOnSurface.cpp.

◆ ~ProjSegmentOnSurface()

mimmo::ProjSegmentOnSurface::~ProjSegmentOnSurface ( )
virtual

Default destructor

Definition at line 76 of file ProjSegmentOnSurface.cpp.

◆ ProjSegmentOnSurface() [3/3]

mimmo::ProjSegmentOnSurface::ProjSegmentOnSurface ( const ProjSegmentOnSurface other)

Copy constructor. No resulting projected patch is copied

Definition at line 83 of file ProjSegmentOnSurface.cpp.

Member Function Documentation

◆ absorbSectionXML()

void mimmo::ProjSegmentOnSurface::absorbSectionXML ( const bitpit::Config::Section &  slotXML,
std::string  name = "" 
)
virtual

It sets infos reading from a XML bitpit::Config::section.

Parameters
[in]slotXMLbitpit::Config::Section of XML file
[in]namename associated to the slot

Reimplemented from mimmo::BaseManipulation.

Definition at line 147 of file ProjSegmentOnSurface.cpp.

◆ clear()

void mimmo::ProjSegmentOnSurface::clear ( )

Clear all elements on your current class

Definition at line 111 of file ProjSegmentOnSurface.cpp.

◆ flushSectionXML()

void mimmo::ProjSegmentOnSurface::flushSectionXML ( bitpit::Config::Section &  slotXML,
std::string  name = "" 
)
virtual

It sets infos from class members in a XML bitpit::Config::section.

Parameters
[in]slotXMLbitpit::Config::Section of XML file
[in]namename associated to the slot

Reimplemented from mimmo::BaseManipulation.

Definition at line 212 of file ProjSegmentOnSurface.cpp.

◆ operator=()

ProjSegmentOnSurface & mimmo::ProjSegmentOnSurface::operator= ( ProjSegmentOnSurface  other)

Assignement operator. No resulting projected patch is copied

Definition at line 91 of file ProjSegmentOnSurface.cpp.

◆ projection()

void mimmo::ProjSegmentOnSurface::projection ( )
protectedvirtual

Core engine for projection.

Implements mimmo::ProjPrimitivesOnSurfaces.

Definition at line 245 of file ProjSegmentOnSurface.cpp.

◆ setSegment() [1/2]

void mimmo::ProjSegmentOnSurface::setSegment ( darray3E  origin,
darray3E  dir,
double  length 
)

Set the primitive segment, by passing an extremal point, a direction vector and the segment length

Parameters
[in]originextremal point
[in]dirsegment direction
[in]lengthlenght of te segment

Definition at line 138 of file ProjSegmentOnSurface.cpp.

◆ setSegment() [2/2]

void mimmo::ProjSegmentOnSurface::setSegment ( darray3E  pointA,
darray3E  pointB 
)

Set the primitive segment, by passing its extremal points

Parameters
[in]pointAfirst extremal point
[in]pointBsecond extremal point

Definition at line 123 of file ProjSegmentOnSurface.cpp.

◆ swap()

void mimmo::ProjSegmentOnSurface::swap ( ProjSegmentOnSurface x)
protectednoexcept

Swap function.

Parameters
[in]xobject to be swapped

Definition at line 100 of file ProjSegmentOnSurface.cpp.


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