Base class for all cells. More...

#include <SMDS_MeshCell.hxx>

Public Member Functions

virtual bool ChangeNodes (const SMDS_MeshNode *nodes[], const int nbNodes)=0
 
 SMDS_MeshCell ()
 
virtual bool vtkOrder (const SMDS_MeshNode *[], const int)
 
virtual ~SMDS_MeshCell ()
 
- Public Member Functions inherited from SMDS_MeshElement
iterator begin_nodes () const
 
SMDS_ElemIteratorPtr edgesIterator () const
 Create an iterator which iterate on edges linked with or owned by the element. More...
 
virtual SMDS_ElemIteratorPtr elementsIterator (SMDSAbs_ElementType type) const
 
iterator end_nodes () const
 
SMDS_ElemIteratorPtr facesIterator () const
 Create an iterator which iterate on faces linked with or owned by the element. More...
 
virtual SMDSAbs_EntityType GetEntityType () const =0
 
virtual SMDSAbs_GeometryType GetGeomType () const =0
 
int GetID () const
 
int getIdInShape () const
 
ShortType getMeshId () const
 
virtual const SMDS_MeshNodeGetNode (const int ind) const
 Return node by its index. More...
 
virtual int GetNodeIndex (const SMDS_MeshNode *node) const
 Check if a node belongs to the element. More...
 
const SMDS_MeshNodeGetNodeWrap (const int ind) const
 Return node by its index. More...
 
LongType getshapeId () const
 
virtual SMDSAbs_ElementType GetType () const =0
 Return the type of the current element. More...
 
int getVtkId () const
 
virtual vtkIdType GetVtkType () const =0
 
virtual SMDS_ElemIteratorPtr interlacedNodesElemIterator () const
 
virtual SMDS_NodeIteratorPtr interlacedNodesIterator () const
 virtual, redefined in vtkEdge, vtkFace and vtkVolume classes More...
 
virtual bool IsMediumNode (const SMDS_MeshNode *node) const
 
virtual bool IsPoly () const
 
virtual bool IsQuadratic () const
 
virtual bool IsValidIndex (const int ind) const
 Return true if index of node is valid (0 <= ind < NbNodes()) More...
 
virtual int NbCornerNodes () const
 Return number of nodes excluding medium ones. More...
 
virtual int NbEdges () const
 Return the number of edges owned by or linked with the current element. More...
 
virtual int NbFaces () const
 Return the number of faces owned by or linked with the current element. More...
 
virtual int NbNodes () const
 Return The number of nodes owned by the current element. More...
 
virtual SMDS_NodeIteratorPtr nodeIterator () const
 
SMDS_ElemIteratorPtr nodesIterator () const
 Create an iterator which iterate on nodes owned by the element. More...
 
virtual SMDS_NodeIteratorPtr nodesIteratorToUNV () const
 virtual, redefined in vtkEdge, vtkFace and vtkVolume classes More...
 
int WrappedIndex (const int ind) const
 Return a valid node index, fixing the given one if necessary. More...
 
- Public Member Functions inherited from SMDS_MeshObject
virtual ~SMDS_MeshObject ()
 

Static Public Member Functions

template<class VECT >
static void applyInterlace (const std::vector< int > &interlace, VECT &data)
 
template<class VECT >
static void applyInterlaceRev (const std::vector< int > &interlace, VECT &data)
 
static const std::vector< int > & fromVtkOrder (SMDSAbs_EntityType smdsType)
 Return indices to transform cell connectivity from VTK to SMDS Usage: smdsIDs[i] = vtkIDs[ indices[ i ]]. More...
 
static const std::vector< int > & fromVtkOrder (VTKCellType vtkType)
 Return indices to transform cell connectivity from VTK to SMDS Usage: smdsIDs[i] = vtkIDs[ indices[ i ]]. More...
 
static const std::vector< int > & interlacedSmdsOrder (SMDSAbs_EntityType smdsType, const size_t nbNodes=0)
 Return indices to set nodes of a quadratic 1D or 2D element in interlaced order Usage: interlacedIDs[i] = smdsIDs[ indices[ i ]]. More...
 
static const std::vector< int > & reverseSmdsOrder (SMDSAbs_EntityType smdsType, const size_t nbNodes=0)
 Return indices to reverse an SMDS cell of given type. nbNodes is useful for polygons Usage: reverseIDs[i] = forwardIDs[ indices[ i ]]. More...
 
static SMDSAbs_ElementType toSmdsType (SMDSAbs_EntityType entityType)
 Return SMDSAbs_ElementType by SMDSAbs_EntityType. More...
 
static SMDSAbs_ElementType toSmdsType (SMDSAbs_GeometryType geomType)
 Return SMDSAbs_ElementType by SMDSAbs_GeometryType. More...
 
static SMDSAbs_EntityType toSmdsType (VTKCellType vtkType)
 Return SMDSAbs_EntityType corresponding to VTKCellType. More...
 
static const std::vector< int > & toVtkOrder (SMDSAbs_EntityType smdsType)
 Return indices to transform cell connectivity from SMDS to VTK Usage: vtkIDs[i] = smdsIDs[ indices[ i ]]. More...
 
static const std::vector< int > & toVtkOrder (VTKCellType vtkType)
 Return indices to transform cell connectivity from SMDS to VTK Usage: vtkIDs[i] = smdsIDs[ indices[ i ]]. More...
 
static VTKCellType toVtkType (SMDSAbs_EntityType vtkType)
 Return VTKCellType corresponding to SMDSAbs_EntityType. More...
 

Static Public Attributes

static int nbCells = 0
 

Protected Member Functions

void exchange (const SMDS_MeshNode *nodes[], int a, int b)
 
- Protected Member Functions inherited from SMDS_MeshElement
virtual void init (int id=-1, ShortType meshId=-1, LongType shapeId=0)
 
virtual void Print (std::ostream &OS) const
 
void setId (int id)
 
void setIdInShape (int id)
 
void setShapeId (LongType shapeId)
 
void setVtkId (int vtkId)
 
 SMDS_MeshElement (int id, ShortType meshId, LongType shapeId=0)
 
 SMDS_MeshElement (int ID=-1)
 

Additional Inherited Members

- Public Types inherited from SMDS_MeshElement
typedef SMDS_StdIterator< const SMDS_MeshNode *, SMDS_ElemIteratorPtr > iterator
 
- Protected Attributes inherited from SMDS_MeshElement
int myID
 Element index in vector SMDS_Mesh::myNodes or SMDS_Mesh::myCells. More...
 
int myIdInShape
 Element index in SMESHDS_SubMesh vector. More...
 
ShortType myMeshId
 SMDS_Mesh identification in SMESH. More...
 
LongType myShapeId
 SubShape and SubMesh identification in SMESHDS. More...
 
int myVtkID
 index in vtkUnstructuredGrid More...
 

Detailed Description

Base class for all cells.

Constructor & Destructor Documentation

◆ SMDS_MeshCell()

SMDS_MeshCell::SMDS_MeshCell ( )

◆ ~SMDS_MeshCell()

SMDS_MeshCell::~SMDS_MeshCell ( )
virtual

References nbCells.

Member Function Documentation

◆ applyInterlace()

template<class VECT >
static void SMDS_MeshCell::applyInterlace ( const std::vector< int > &  interlace,
VECT &  data 
)
static

◆ applyInterlaceRev()

template<class VECT >
static void SMDS_MeshCell::applyInterlaceRev ( const std::vector< int > &  interlace,
VECT &  data 
)
static

◆ ChangeNodes()

◆ exchange()

void SMDS_MeshCell::exchange ( const SMDS_MeshNode nodes[],
int  a,
int  b 
)
protected

◆ fromVtkOrder() [1/2]

const std::vector< int > & SMDS_MeshCell::fromVtkOrder ( SMDSAbs_EntityType  smdsType)
static

Return indices to transform cell connectivity from VTK to SMDS Usage: smdsIDs[i] = vtkIDs[ indices[ i ]].

References toVtkOrder().

◆ fromVtkOrder() [2/2]

const std::vector< int > & SMDS_MeshCell::fromVtkOrder ( VTKCellType  vtkType)
static

Return indices to transform cell connectivity from VTK to SMDS Usage: smdsIDs[i] = vtkIDs[ indices[ i ]].

References toSmdsType().

Referenced by SMDS_VtkVolume::GetNode(), and SMDS_VtkCellIterator::SMDS_VtkCellIterator().

◆ interlacedSmdsOrder()

const std::vector< int > & SMDS_MeshCell::interlacedSmdsOrder ( SMDSAbs_EntityType  smdsType,
const size_t  nbNodes = 0 
)
static

Return indices to set nodes of a quadratic 1D or 2D element in interlaced order Usage: interlacedIDs[i] = smdsIDs[ indices[ i ]].

Referenced by SMESH_MeshEditor::MergeNodes(), and SMDS_VtkCellIteratorToUNV::SMDS_VtkCellIteratorToUNV().

◆ reverseSmdsOrder()

const std::vector< int > & SMDS_MeshCell::reverseSmdsOrder ( SMDSAbs_EntityType  smdsType,
const size_t  nbNodes = 0 
)
static

Return indices to reverse an SMDS cell of given type. nbNodes is useful for polygons Usage: reverseIDs[i] = forwardIDs[ indices[ i ]].

Referenced by StdMeshers_Import_1D2D::Compute(), SMESH_MeshEditor::Reorient(), and SMESH_MeshEditor::Transform().

◆ toSmdsType() [1/3]

SMDSAbs_ElementType SMDS_MeshCell::toSmdsType ( SMDSAbs_EntityType  entityType)
static

Return SMDSAbs_ElementType by SMDSAbs_EntityType.

◆ toSmdsType() [2/3]

SMDSAbs_ElementType SMDS_MeshCell::toSmdsType ( SMDSAbs_GeometryType  geomType)
static

Return SMDSAbs_ElementType by SMDSAbs_GeometryType.

References draftgeoutils.general::geomType().

◆ toSmdsType() [3/3]

SMDSAbs_EntityType SMDS_MeshCell::toSmdsType ( VTKCellType  vtkType)
static

Return SMDSAbs_EntityType corresponding to VTKCellType.

References toVtkType().

Referenced by fromVtkOrder(), SMDS_VtkFace::GetEntityType(), DriverMED_W_Field::Set(), and toVtkOrder().

◆ toVtkOrder() [1/2]

const std::vector< int > & SMDS_MeshCell::toVtkOrder ( SMDSAbs_EntityType  smdsType)
static

Return indices to transform cell connectivity from SMDS to VTK Usage: vtkIDs[i] = smdsIDs[ indices[ i ]].

◆ toVtkOrder() [2/2]

const std::vector< int > & SMDS_MeshCell::toVtkOrder ( VTKCellType  vtkType)
static

Return indices to transform cell connectivity from SMDS to VTK Usage: vtkIDs[i] = smdsIDs[ indices[ i ]].

References toSmdsType().

Referenced by fromVtkOrder(), SMDS_VtkVolume::GetNodeIndex(), and SMDS_VtkVolume::vtkOrder().

◆ toVtkType()

VTKCellType SMDS_MeshCell::toVtkType ( SMDSAbs_EntityType  vtkType)
static

Return VTKCellType corresponding to SMDSAbs_EntityType.

Referenced by toSmdsType().

◆ vtkOrder()

virtual bool SMDS_MeshCell::vtkOrder ( const SMDS_MeshNode [],
const int   
)
virtual

Reimplemented in SMDS_VtkVolume.

Referenced by SMDS_Mesh::ChangeElementNodes().

Member Data Documentation

◆ nbCells

int SMDS_MeshCell::nbCells = 0
static

Referenced by SMDS_MeshCell(), and ~SMDS_MeshCell().


The documentation for this class was generated from the following files:
  • Sources/FreeCAD/src/3rdParty/salomesmesh/inc/SMDS_MeshCell.hxx
  • Sources/FreeCAD/src/3rdParty/salomesmesh/src/SMDS/SMDS_MeshCell.cpp