28 #ifndef SMDS_VolumeTool_HeaderFile
29 #define SMDS_VolumeTool_HeaderFile
53 enum VolumeType { UNKNOWN = -1, TETRA = 0, PYRAM, PENTA, HEXA, QUAD_TETRA,
74 VolumeType GetVolumeType()
const;
91 double GetSize()
const;
94 bool GetBaryCenter (
double & X,
double & Y,
double &
Z)
const;
105 bool IsLinked (
const int theNode1Index,
106 const int theNode2Index)
const;
113 int GetAllExistingEdges(std::vector<const SMDS_MeshElement*> & edges)
const;
120 void SetExternalNormal ();
127 int NbFaceNodes(
int faceIndex );
130 const int* GetFaceNodesIndices(
int faceIndex );
144 bool GetFaceNodes (
int faceIndex,
145 std::set<const SMDS_MeshNode*>& theFaceNodes );
148 bool IsFaceExternal(
int faceIndex );
152 bool IsFreeFace(
int faceIndex );
155 bool GetFaceNormal (
int faceIndex,
double & X,
double & Y,
double &
Z);
158 double GetFaceArea(
int faceIndex );
161 int GetOppFaceIndex(
int faceIndex )
const;
164 int GetFaceIndex(
const std::set<const SMDS_MeshNode*>& theFaceNodes );
172 int GetAllExistingFaces(std::vector<const SMDS_MeshElement*> & faces);
179 static VolumeType GetType(
int nbNodes);
182 static int NbFaces( VolumeType type );
185 static const int* GetFaceNodesIndices(VolumeType type,
193 static int NbFaceNodes(VolumeType type,
197 static int NbCornerNodes(VolumeType type);
202 bool setFace(
int faceIndex );