SMESH_Mesh_i Class Reference

#include <SMESH_Mesh_i.hxx>

Inheritance diagram for SMESH_Mesh_i:

Inheritance graph

Public Member Functions

 SMESH_Mesh_i (PortableServer::POA_ptr thePOA, SMESH_Gen_i *myGen_i, CORBA::Long studyId)
virtual ~SMESH_Mesh_i ()
void SetShape (GEOM::GEOM_Object_ptr theShapeObject) throw (SALOME::SALOME_Exception)
GEOM::GEOM_Object_ptr GetShapeToMesh () throw (SALOME::SALOME_Exception)
SMESH::Hypothesis_Status AddHypothesis (GEOM::GEOM_Object_ptr aSubShapeObject, SMESH::SMESH_Hypothesis_ptr anHyp) throw (SALOME::SALOME_Exception)
SMESH::Hypothesis_Status RemoveHypothesis (GEOM::GEOM_Object_ptr aSubShapeObject, SMESH::SMESH_Hypothesis_ptr anHyp) throw (SALOME::SALOME_Exception)
SMESH::ListOfHypothesisGetHypothesisList (GEOM::GEOM_Object_ptr aSubShapeObject) throw (SALOME::SALOME_Exception)
SMESH::SMESH_subMesh_ptr GetSubMesh (GEOM::GEOM_Object_ptr aSubShapeObject, const char *theName) throw (SALOME::SALOME_Exception)
void RemoveSubMesh (SMESH::SMESH_subMesh_ptr theSubMesh) throw (SALOME::SALOME_Exception)
SMESH::SMESH_Group_ptr CreateGroup (SMESH::ElementType theElemType, const char *theName) throw (SALOME::SALOME_Exception)
SMESH::SMESH_GroupOnGeom_ptr CreateGroupFromGEOM (SMESH::ElementType theElemType, const char *theName, GEOM::GEOM_Object_ptr theGeomObj) throw (SALOME::SALOME_Exception)
void RemoveGroup (SMESH::SMESH_GroupBase_ptr theGroup) throw (SALOME::SALOME_Exception)
void RemoveGroupWithContents (SMESH::SMESH_GroupBase_ptr theGroup) throw (SALOME::SALOME_Exception)
SMESH::ListOfGroupsGetGroups () throw (SALOME::SALOME_Exception)
 Get the list of groups existing in the mesh.
SMESH::SMESH_Group_ptr UnionGroups (SMESH::SMESH_GroupBase_ptr theGroup1, SMESH::SMESH_GroupBase_ptr theGroup2, const char *theName) throw (SALOME::SALOME_Exception)
SMESH::SMESH_Group_ptr IntersectGroups (SMESH::SMESH_GroupBase_ptr theGroup1, SMESH::SMESH_GroupBase_ptr theGroup2, const char *theName) throw (SALOME::SALOME_Exception)
SMESH::SMESH_Group_ptr CutGroups (SMESH::SMESH_GroupBase_ptr theGroup1, SMESH::SMESH_GroupBase_ptr theGroup2, const char *theName) throw (SALOME::SALOME_Exception)
SMESH::log_arrayGetLog (CORBA::Boolean clearAfterGet) throw (SALOME::SALOME_Exception)
SMESH::SMESH_MeshEditor_ptr GetMeshEditor ()
void ClearLog () throw (SALOME::SALOME_Exception)
CORBA::Long GetId () throw (SALOME::SALOME_Exception)
CORBA::Long GetStudyId () throw (SALOME::SALOME_Exception)
void SetImpl (::SMESH_Mesh *impl)
::SMESH_MeshGetImpl ()
SMESH_Gen_iGetGen ()
int ImportUNVFile (const char *theFileName) throw (SALOME::SALOME_Exception)
int ImportSTLFile (const char *theFileName) throw (SALOME::SALOME_Exception)
SMESH::DriverMED_ReadStatus ImportMEDFile (const char *theFileName, const char *theMeshName) throw (SALOME::SALOME_Exception)
CORBA::Boolean HasDuplicatedGroupNamesMED ()
void ExportToMED (const char *file, CORBA::Boolean auto_groups, SMESH::MED_VERSION theVersion) throw (SALOME::SALOME_Exception)
void ExportMED (const char *file, CORBA::Boolean auto_groups) throw (SALOME::SALOME_Exception)
void ExportDAT (const char *file) throw (SALOME::SALOME_Exception)
void ExportUNV (const char *file) throw (SALOME::SALOME_Exception)
void ExportSTL (const char *file, const bool isascii) throw (SALOME::SALOME_Exception)
SALOME_MED::MESH_ptr GetMEDMesh () throw (SALOME::SALOME_Exception)
CORBA::Long NbNodes () throw (SALOME::SALOME_Exception)
CORBA::Long NbElements () throw (SALOME::SALOME_Exception)
CORBA::Long NbEdges () throw (SALOME::SALOME_Exception)
CORBA::Long NbEdgesOfOrder (SMESH::ElementOrder order) throw (SALOME::SALOME_Exception)
CORBA::Long NbFaces () throw (SALOME::SALOME_Exception)
CORBA::Long NbFacesOfOrder (SMESH::ElementOrder order) throw (SALOME::SALOME_Exception)
CORBA::Long NbTriangles () throw (SALOME::SALOME_Exception)
CORBA::Long NbTrianglesOfOrder (SMESH::ElementOrder order) throw (SALOME::SALOME_Exception)
CORBA::Long NbQuadrangles () throw (SALOME::SALOME_Exception)
CORBA::Long NbQuadranglesOfOrder (SMESH::ElementOrder order) throw (SALOME::SALOME_Exception)
CORBA::Long NbPolygons () throw (SALOME::SALOME_Exception)
CORBA::Long NbVolumes () throw (SALOME::SALOME_Exception)
CORBA::Long NbVolumesOfOrder (SMESH::ElementOrder order) throw (SALOME::SALOME_Exception)
CORBA::Long NbTetras () throw (SALOME::SALOME_Exception)
CORBA::Long NbTetrasOfOrder (SMESH::ElementOrder order) throw (SALOME::SALOME_Exception)
CORBA::Long NbHexas () throw (SALOME::SALOME_Exception)
CORBA::Long NbHexasOfOrder (SMESH::ElementOrder order) throw (SALOME::SALOME_Exception)
CORBA::Long NbPyramids () throw (SALOME::SALOME_Exception)
CORBA::Long NbPyramidsOfOrder (SMESH::ElementOrder order) throw (SALOME::SALOME_Exception)
CORBA::Long NbPrisms () throw (SALOME::SALOME_Exception)
CORBA::Long NbPrismsOfOrder (SMESH::ElementOrder order) throw (SALOME::SALOME_Exception)
CORBA::Long NbPolyhedrons () throw (SALOME::SALOME_Exception)
CORBA::Long NbSubMesh () throw (SALOME::SALOME_Exception)
SMESH::long_arrayGetElementsId () throw (SALOME::SALOME_Exception)
SMESH::long_arrayGetElementsByType (SMESH::ElementType theElemType) throw (SALOME::SALOME_Exception)
SMESH::long_arrayGetNodesId () throw (SALOME::SALOME_Exception)
SMESH::ElementType GetElementType (const CORBA::Long id, const bool iselem) throw (SALOME::SALOME_Exception)
SMESH::long_arrayGetSubMeshElementsId (const CORBA::Long ShapeID) throw (SALOME::SALOME_Exception)
SMESH::long_arrayGetSubMeshNodesId (const CORBA::Long ShapeID, CORBA::Boolean all) throw (SALOME::SALOME_Exception)
SMESH::ElementType GetSubMeshElementType (const CORBA::Long ShapeID) throw (SALOME::SALOME_Exception)
char * Dump ()
SMESH_Hypothesis::Hypothesis_Status addHypothesis (GEOM::GEOM_Object_ptr aSubShapeObject, SMESH::SMESH_Hypothesis_ptr anHyp)
SMESH_Hypothesis::Hypothesis_Status removeHypothesis (GEOM::GEOM_Object_ptr aSubShapeObject, SMESH::SMESH_Hypothesis_ptr anHyp)
int importMEDFile (const char *theFileName, const char *theMeshName)
SMESH::SMESH_subMesh_ptr createSubMesh (GEOM::GEOM_Object_ptr theSubShapeObject)
void removeSubMesh (SMESH::SMESH_subMesh_ptr theSubMesh, GEOM::GEOM_Object_ptr theSubShapeObject)
SMESH::SMESH_GroupBase_ptr createGroup (SMESH::ElementType theElemType, const char *theName, const TopoDS_Shape &theShape=TopoDS_Shape())
void removeGroup (const int theId)
SMESH::SMESH_subMesh_ptr getSubMesh (int shapeID)
const map< int, SMESH::SMESH_GroupBase_ptr > & getGroups ()
virtual SMESH::long_arrayGetIDs ()
CORBA::Long GetMeshPtr ()
SMESH::double_arrayGetNodeXYZ (const CORBA::Long id)
SMESH::long_arrayGetNodeInverseElements (const CORBA::Long id)
CORBA::Long GetShapeID (const CORBA::Long id)
CORBA::Long GetElemNbNodes (const CORBA::Long id)
CORBA::Long GetElemNode (const CORBA::Long id, const CORBA::Long index)
CORBA::Boolean IsMediumNode (const CORBA::Long ide, const CORBA::Long idn)
CORBA::Boolean IsMediumNodeOfAnyElem (const CORBA::Long idn, SMESH::ElementType theElemType)
CORBA::Long ElemNbEdges (const CORBA::Long id)
CORBA::Long ElemNbFaces (const CORBA::Long id)
CORBA::Boolean IsPoly (const CORBA::Long id)
CORBA::Boolean IsQuadratic (const CORBA::Long id)
SMESH::double_arrayBaryCenter (const CORBA::Long id)

Data Fields

map< int, SMESH_subMesh_i * > _mapSubMesh_i
map< int,::SMESH_subMesh * > _mapSubMesh

Private Member Functions

 SMESH_Mesh_i ()
 SMESH_Mesh_i (const SMESH_Mesh_i &)
void CreateGroupServants ()

Private Attributes

::SMESH_Mesh_impl
SMESH_Gen_i_gen_i
int _id
int _studyId
map< int, SMESH::SMESH_subMesh_ptr > _mapSubMeshIor
map< int, SMESH::SMESH_GroupBase_ptr > _mapGroups
map< int, SMESH::SMESH_Hypothesis_ptr > _mapHypo

Static Private Attributes

static int myIdGenerator = 0

Constructor & Destructor Documentation

SMESH_Mesh_i.SMESH_Mesh_i  )  [private]
 

SMESH_Mesh_i.SMESH_Mesh_i const SMESH_Mesh_i  )  [private]
 

SMESH_Mesh_i::SMESH_Mesh_i PortableServer::POA_ptr  thePOA,
SMESH_Gen_i gen_i,
CORBA::Long  studyId
 

Constructor

SMESH_Mesh_i::~SMESH_Mesh_i  )  [virtual]
 

Destructor


Member Function Documentation

void SMESH_Mesh_i::SetShape GEOM::GEOM_Object_ptr  theShapeObject  )  throw (SALOME::SALOME_Exception)
 

SetShape

Associates <this> mesh with <theShape> and puts a reference to <theShape> into the current study; the previous shape is substituted by the new one.

GEOM::GEOM_Object_ptr SMESH_Mesh_i::GetShapeToMesh  )  throw (SALOME::SALOME_Exception)
 

SMESH::Hypothesis_Status SMESH_Mesh_i::AddHypothesis GEOM::GEOM_Object_ptr  aSubShapeObject,
SMESH::SMESH_Hypothesis_ptr  anHyp
throw (SALOME::SALOME_Exception)
 

AddHypothesis

calls internal addHypothesis() and then adds a reference to <anHyp> under the SObject actually having a reference to <aSubShape>. NB: For this method to work, it is necessary to add a reference to sub-shape first.

SMESH::Hypothesis_Status SMESH_Mesh_i::RemoveHypothesis GEOM::GEOM_Object_ptr  aSubShapeObject,
SMESH::SMESH_Hypothesis_ptr  anHyp
throw (SALOME::SALOME_Exception)
 

SMESH::ListOfHypothesis * SMESH_Mesh_i::GetHypothesisList GEOM::GEOM_Object_ptr  aSubShapeObject  )  throw (SALOME::SALOME_Exception)
 

SMESH::SMESH_subMesh_ptr SMESH_Mesh_i::GetSubMesh GEOM::GEOM_Object_ptr  aSubShapeObject,
const char *  theName
throw (SALOME::SALOME_Exception)
 

void SMESH_Mesh_i::RemoveSubMesh SMESH::SMESH_subMesh_ptr  theSubMesh  )  throw (SALOME::SALOME_Exception)
 

SMESH::SMESH_Group_ptr SMESH_Mesh_i::CreateGroup SMESH::ElementType  theElemType,
const char *  theName
throw (SALOME::SALOME_Exception)
 

SMESH::SMESH_GroupOnGeom_ptr SMESH_Mesh_i::CreateGroupFromGEOM SMESH::ElementType  theElemType,
const char *  theName,
GEOM::GEOM_Object_ptr  theGeomObj
throw (SALOME::SALOME_Exception)
 

void SMESH_Mesh_i::RemoveGroup SMESH::SMESH_GroupBase_ptr  theGroup  )  throw (SALOME::SALOME_Exception)
 

void SMESH_Mesh_i::RemoveGroupWithContents SMESH::SMESH_GroupBase_ptr  theGroup  )  throw (SALOME::SALOME_Exception)
 

RemoveGroupWithContents Remove group with its contents

SMESH::ListOfGroups * SMESH_Mesh_i::GetGroups  )  throw (SALOME::SALOME_Exception)
 

Return values:
SMESH.ListOfGroups * - list of groups

SMESH::SMESH_Group_ptr SMESH_Mesh_i::UnionGroups SMESH::SMESH_GroupBase_ptr  theGroup1,
SMESH::SMESH_GroupBase_ptr  theGroup2,
const char *  theName
throw (SALOME::SALOME_Exception)
 

UnionGroups New group is created. All mesh elements that are present in initial groups are added to the new one

SMESH::SMESH_Group_ptr SMESH_Mesh_i::IntersectGroups SMESH::SMESH_GroupBase_ptr  theGroup1,
SMESH::SMESH_GroupBase_ptr  theGroup2,
const char *  theName
throw (SALOME::SALOME_Exception)
 

IntersectGroups New group is created. All mesh elements that are present in both initial groups are added to the new one.

SMESH::SMESH_Group_ptr SMESH_Mesh_i::CutGroups SMESH::SMESH_GroupBase_ptr  theGroup1,
SMESH::SMESH_GroupBase_ptr  theGroup2,
const char *  theName
throw (SALOME::SALOME_Exception)
 

CutGroups New group is created. All mesh elements that are present in main group but do not present in tool group are added to the new one

SMESH::log_array * SMESH_Mesh_i::GetLog CORBA::Boolean  clearAfterGet  )  throw (SALOME::SALOME_Exception)
 

SMESH::SMESH_MeshEditor_ptr SMESH_Mesh_i::GetMeshEditor  ) 
 

void SMESH_Mesh_i::ClearLog  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::GetId  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::GetStudyId  )  throw (SALOME::SALOME_Exception)
 

void SMESH_Mesh_i::SetImpl ::SMESH_Mesh impl  ) 
 

SMESH_Mesh & SMESH_Mesh_i::GetImpl  ) 
 

SMESH_Gen_i* SMESH_Mesh_i.GetGen  ) 
 

int SMESH_Mesh_i::ImportUNVFile const char *  theFileName  )  throw (SALOME::SALOME_Exception)
 

ImportUNVFile

Imports mesh data from MED file

int SMESH_Mesh_i::ImportSTLFile const char *  theFileName  )  throw (SALOME::SALOME_Exception)
 

ImportSTLFile

Imports mesh data from STL file

SMESH::DriverMED_ReadStatus SMESH_Mesh_i::ImportMEDFile const char *  theFileName,
const char *  theMeshName
throw (SALOME::SALOME_Exception)
 

consult DriverMED_R_SMESHDS_Mesh.ReadStatus for returned value

CORBA::Boolean SMESH_Mesh_i::HasDuplicatedGroupNamesMED  ) 
 

Check group names for duplications. Consider maximum group name length stored in MED file.

void SMESH_Mesh_i::ExportToMED const char *  file,
CORBA::Boolean  auto_groups,
SMESH::MED_VERSION  theVersion
throw (SALOME::SALOME_Exception)
 

void SMESH_Mesh_i::ExportMED const char *  file,
CORBA::Boolean  auto_groups
throw (SALOME::SALOME_Exception)
 

void SMESH_Mesh_i::ExportDAT const char *  file  )  throw (SALOME::SALOME_Exception)
 

void SMESH_Mesh_i::ExportUNV const char *  file  )  throw (SALOME::SALOME_Exception)
 

void SMESH_Mesh_i::ExportSTL const char *  file,
const bool  isascii
throw (SALOME::SALOME_Exception)
 

SALOME_MED::MESH_ptr SMESH_Mesh_i::GetMEDMesh  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbNodes  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbElements  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbEdges  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbEdgesOfOrder SMESH::ElementOrder  order  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbFaces  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbFacesOfOrder SMESH::ElementOrder  order  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbTriangles  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbTrianglesOfOrder SMESH::ElementOrder  order  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbQuadrangles  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbQuadranglesOfOrder SMESH::ElementOrder  order  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbPolygons  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbVolumes  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbVolumesOfOrder SMESH::ElementOrder  order  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbTetras  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbTetrasOfOrder SMESH::ElementOrder  order  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbHexas  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbHexasOfOrder SMESH::ElementOrder  order  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbPyramids  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbPyramidsOfOrder SMESH::ElementOrder  order  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbPrisms  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbPrismsOfOrder SMESH::ElementOrder  order  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbPolyhedrons  )  throw (SALOME::SALOME_Exception)
 

CORBA::Long SMESH_Mesh_i::NbSubMesh  )  throw (SALOME::SALOME_Exception)
 

SMESH::long_array * SMESH_Mesh_i::GetElementsId  )  throw (SALOME::SALOME_Exception)
 

SMESH::long_array * SMESH_Mesh_i::GetElementsByType SMESH::ElementType  theElemType  )  throw (SALOME::SALOME_Exception)
 

SMESH::long_array * SMESH_Mesh_i::GetNodesId  )  throw (SALOME::SALOME_Exception)
 

SMESH::ElementType SMESH_Mesh_i::GetElementType const CORBA::Long  id,
const bool  iselem
throw (SALOME::SALOME_Exception)
 

SMESH::long_array * SMESH_Mesh_i::GetSubMeshElementsId const CORBA::Long  ShapeID  )  throw (SALOME::SALOME_Exception)
 

Returns ID of elements for given submesh

SMESH::long_array * SMESH_Mesh_i::GetSubMeshNodesId const CORBA::Long  ShapeID,
CORBA::Boolean  all
throw (SALOME::SALOME_Exception)
 

Returns ID of nodes for given submesh If param all==true - returns all nodes, else - returns only nodes on shapes.

SMESH::ElementType SMESH_Mesh_i::GetSubMeshElementType const CORBA::Long  ShapeID  )  throw (SALOME::SALOME_Exception)
 

Returns type of elements for given submesh

char * SMESH_Mesh_i::Dump  ) 
 

SMESH_Hypothesis::Hypothesis_Status SMESH_Mesh_i::addHypothesis GEOM::GEOM_Object_ptr  aSubShapeObject,
SMESH::SMESH_Hypothesis_ptr  anHyp
 

SMESH_Hypothesis::Hypothesis_Status SMESH_Mesh_i::removeHypothesis GEOM::GEOM_Object_ptr  aSubShapeObject,
SMESH::SMESH_Hypothesis_ptr  anHyp
 

int SMESH_Mesh_i::importMEDFile const char *  theFileName,
const char *  theMeshName
 

importMEDFile

Imports mesh data from MED file

SMESH::SMESH_subMesh_ptr SMESH_Mesh_i::createSubMesh GEOM::GEOM_Object_ptr  theSubShapeObject  ) 
 

void SMESH_Mesh_i::removeSubMesh SMESH::SMESH_subMesh_ptr  theSubMesh,
GEOM::GEOM_Object_ptr  theSubShapeObject
 

SMESH::SMESH_GroupBase_ptr SMESH_Mesh_i::createGroup SMESH::ElementType  theElemType,
const char *  theName,
const TopoDS_Shape theShape = TopoDS_Shape()
 

void SMESH_Mesh_i::removeGroup const int  theId  ) 
 

SMESH_Mesh_i.removeGroup

Should be called by ~SMESH_Group_i()

SMESH::SMESH_subMesh_ptr SMESH_Mesh_i::getSubMesh int  shapeID  ) 
 

const map<int, SMESH::SMESH_GroupBase_ptr>& SMESH_Mesh_i.getGroups  ) 
 

SMESH::long_array * SMESH_Mesh_i::GetIDs  )  [virtual]
 

CORBA::Long SMESH_Mesh_i::GetMeshPtr  ) 
 

SMESH::double_array * SMESH_Mesh_i::GetNodeXYZ const CORBA::Long  id  ) 
 

Get XYZ coordinates of node as list of double If there is not node for given ID - returns empty list

SMESH::long_array * SMESH_Mesh_i::GetNodeInverseElements const CORBA::Long  id  ) 
 

For given node returns list of IDs of inverse elements If there is not node for given ID - returns empty list

CORBA::Long SMESH_Mesh_i::GetShapeID const CORBA::Long  id  ) 
 

If given element is node returns IDs of shape from position else - return ID of result shape after FindShape() from SMESH_MeshEditor If there is not element for given ID - returns -1

CORBA::Long SMESH_Mesh_i::GetElemNbNodes const CORBA::Long  id  ) 
 

Returns number of nodes for given element If there is not element for given ID - returns -1

CORBA::Long SMESH_Mesh_i::GetElemNode const CORBA::Long  id,
const CORBA::Long  index
 

Returns ID of node by given index for given element If there is not element for given ID - returns -1 If there is not node for given index - returns -2

CORBA::Boolean SMESH_Mesh_i::IsMediumNode const CORBA::Long  ide,
const CORBA::Long  idn
 

Returns true if given node is medium node in given quadratic element

CORBA::Boolean SMESH_Mesh_i::IsMediumNodeOfAnyElem const CORBA::Long  idn,
SMESH::ElementType  theElemType
 

Returns true if given node is medium node in one of quadratic elements

CORBA::Long SMESH_Mesh_i::ElemNbEdges const CORBA::Long  id  ) 
 

Returns number of edges for given element