{
return GetFather()->GetElementType( id, iselem );
}
+
+
+//=============================================================================
+/*!
+ * Returns statistic of mesh elements
+ * Result array of number enityties
+ * Inherited from SMESH_IDSource
+ */
+//=============================================================================
+SMESH::long_array* SMESH_subMesh_i::GetMeshInfo()
+{
+ SMESH::long_array_var aRes = new SMESH::long_array();
+ aRes->length(SMESH::Entity_Last);
+ for (int i = SMESH::Entity_Node; i < SMESH::Entity_Last; i++)
+ aRes[i] = 0;
+
+ ::SMESH_subMesh* aSubMesh = _mesh_i->_mapSubMesh[_localId];
+ SMESHDS_SubMesh* aSubMeshDS = 0;
+ if (aSubMesh) aSubMeshDS = aSubMesh->GetSubMeshDS();
+ if (!aSubMeshDS)
+ return aRes._retn();
+
+ // get own number of nodes
+ aRes[ SMESH::Entity_Node ] = aSubMeshDS->NbNodes();
+
+ // get own elements statistic
+ SMESH_Mesh_i::CollectMeshInfo( aSubMeshDS->GetElements(), aRes );
+
+ // get statistic from child sub-meshes
+ TListOfSubMeshes smList;
+ if ( getSubMeshes( aSubMesh, smList ) )
+ for ( TListOfSubMeshes::iterator sm = smList.begin(); sm != smList.end(); ++sm )
+ {
+ aRes[ SMESH::Entity_Node ]+= (*sm)->NbNodes();
+ SMESH_Mesh_i::CollectMeshInfo( (*sm)->GetElements(), aRes );
+ }
+
+ return aRes._retn();
+}