C3D Toolkit  Kernel - 118069, Vision - 2.16.7.1844
mesh_halfedge_attr_base.h File Reference

Attributes for the polygonal mesh with halfedge representation. More...

#include <math_define.h>
#include <io_tape.h>
#include <type_traits>
#include <array>

Classes

class  MbHalfedgeAttrBase
 Base attribute interface for the polygonal mesh with half edge representation. More...
 
class  MbHalfedgeAttrSimpleValueBase< Value >
 Interface of the trivial type attribute to associate with half edge elements. More...
 
class  MbHalfedgeAttrSimpleValueVertexBase< Value >
 Simple type base attribute for vertices. More...
 
class  MbHalfedgeAttrSimpleValueEdgeBase< Value >
 Simple type base attribute for edges. More...
 
class  MbHalfedgeAttrSimpleValueFacetBase< Value >
 Simple type base attribute for facets. More...
 
class  MbHalfedgeAttrEdgeDependentVertexBase
 Base attribute for edge-dependent data for vertices. More...
 

Enumerations

enum class  MbeTypeAttr {
  ta_Undefined = 0 , ta_BoolValuesFacet , ta_BoolValuesEdge , ta_BoolValuesVertex ,
  ta_UintValuesFacet , ta_UintValuesEdge , ta_UintValuesVertex , ta_IntValuesFacet ,
  ta_IntValuesEdge , ta_IntValuesVertex , ta_SizetValuesFacet , ta_SizetValuesEdge ,
  ta_SizetValuesVertex , ta_DoubleValuesFacet , ta_DoubleValuesEdge , ta_DoubleValuesVertex ,
  ta_FloatValuesFacet , ta_FloatValuesEdge , ta_FloatValuesVertex , ta_Points3D ,
  ta_Parameters2D , ta_NormalsFacet , ta_NormalsVertex , ta_DihedralAngles ,
  ta_Sharp , ta_Curvatures , ta_Density , ta_DirectionEdge3D ,
  ta_DirectionVertex3D , ta_SegmentationSurface , ta_Parameters2DEdgeDependent , ta_Strains ,
  ta_PairValuesEdge , ta_UcharValuesFacet , ta_UcharValuesEdge , ta_UcharValuesVertex ,
  ta_ContainerFacet = 1000 , ta_ContainerEdge , ta_ContainerVertex , ta_BoolFlagsFacet ,
  ta_BoolFlagsEdge , ta_BoolFlagsVertex , ta_Segmentation , ta_SegmentationEdge ,
  ta_SegmentationRegions , ta_Silhouette , ta_IntersectEdge , ta_LocationFacet ,
  ta_LocationVertex , ta_GridIds , ta_SegmentValues , ta_FacetData ,
  ta_PoleSeamUvEdge , ta_Rosy , ta_Moto , ta_ComplFacet ,
  ta_Fiber , ta_SegmentationShellMap
}
 Attribute's type. More...
 

Functions

template<class T >
T * CastHalfedgeAttribute (MbHalfedgeAttrBase *pObj)
 Cast base attribute pointer to the selected attribute type. More...
 
template<class T >
const T * CastHalfedgeAttribute (const MbHalfedgeAttrBase *pObj)
 Cast base attribute pointer to the selected attribute type. More...
 

Detailed Description

Attributes for the polygonal mesh with halfedge representation.

Function Documentation

◆ CastHalfedgeAttribute() [1/2]

template<class T >
T* CastHalfedgeAttribute ( MbHalfedgeAttrBase *  pObj)

Cast base attribute pointer to the selected attribute type.

Parameters
[in]pObj- Pointer to the base object.
Returns
- Pointer on the T object if casting possible and nullptr otherwise.

◆ CastHalfedgeAttribute() [2/2]

template<class T >
const T* CastHalfedgeAttribute ( const MbHalfedgeAttrBase *  pObj)

Cast base attribute pointer to the selected attribute type.

Parameters
[in]pObj- Pointer to the base object.
Returns
- Pointer on the T object if casting possible and nullptr otherwise.