}
TGeom2SubMesh& aGeom2SubMesh = aMeshOnEntity->myGeom2SubMesh;
- TSubMeshImpl& aSubMesh = aGeom2SubMesh[VTK_VERTEX];
- TCell2Connect& aConnForCellType = aSubMesh.myCell2Connect;
- aConnForCellType.resize(aNbElem);
+ PSubMeshImpl aSubMesh = aGeom2SubMesh[VTK_VERTEX];
+ TCell2Connect& aCell2Connect = aSubMesh->myCell2Connect;
+ aCell2Connect.resize(aNbElem);
for (int iElem = 0; iElem < aNbElem; iElem++)
- aConnForCellType[iElem] = VISU::TConnect(1,iElem);
+ aCell2Connect[iElem] = VISU::TConnect(1,iElem);
theMesh->myIsDone = true;
MED::PPolygoneInfo aPolygoneInfo = theMed->GetPPolygoneInfo(aMeshInfo,aMEntity,aMGeom);
TInt aNbElem = aPolygoneInfo->GetNbElem();
if(aNbElem > 0){
- TSubMeshImpl& aSubMesh = aGeom2SubMesh[aVGeom];
- TCell2Connect& aCell2Connect = aSubMesh.myCell2Connect;
+ PSubMeshImpl aSubMesh = aGeom2SubMesh[VTK_VERTEX];
+ TCell2Connect& aCell2Connect = aSubMesh->myCell2Connect;
aCell2Connect.resize(aNbElem);
for(TInt iElem = 0; iElem < aNbElem; iElem++) {
TInt aNbElem = aPolyedreInfo->GetNbElem();
if(aNbElem > 0){
- TSubMeshImpl& aSubMesh = aGeom2SubMesh[aVGeom];
- TCell2Connect& aCell2Connect = aSubMesh.myCell2Connect;
+ PSubMeshImpl aSubMesh = aGeom2SubMesh[VTK_VERTEX];
+ TCell2Connect& aCell2Connect = aSubMesh->myCell2Connect;
aCell2Connect.resize(aNbElem);
for(TInt iElem = 0; iElem < aNbElem; iElem++){
TInt aNbElem = aCellInfo->GetNbElem();
if(aNbElem > 0){
- TSubMeshImpl& aSubMesh = aGeom2SubMesh[aVGeom];
- TCell2Connect& aCell2Connect = aSubMesh.myCell2Connect;
+ PSubMeshImpl aSubMesh = aGeom2SubMesh[aVGeom];
+ TCell2Connect& aCell2Connect = aSubMesh->myCell2Connect;
aCell2Connect.resize(aNbElem);
TInt aMNbNodes = MEDGeom2NbNodes(aMGeom);
if(MYDEBUG) MESSAGE("LoadPoints - Filling aMeshOnEntity with type NODE_ENTITY");
- TCell2Connect& aCell2Connect = aMeshOnEntity->myGeom2Cell2Connect[VTK_VERTEX];
+ TGeom2SubMesh& aGeom2SubMesh = aMeshOnEntity->myGeom2SubMesh;
+ PSubMeshImpl aSubMesh = aGeom2SubMesh[VTK_VERTEX];
+ TCell2Connect& aCell2Connect = aSubMesh->myCell2Connect;
aCell2Connect.resize(aNbElem);
for(int iElem = 0; iElem < aNbElem; iElem++)
aCell2Connect[iElem] = TConnect(1,iElem);
int iGeomEnd = GetEntity2Geom(aVEntity,aGeomElems);
const SALOME_MED::medEntityMesh& aMEntity = VTKEntityToMED(aVEntity);
const TNamedPointCoords& aCoords = theMesh->myNamedPointCoords;
+ TGeom2SubMesh& aGeom2SubMesh = theMeshOnEntity->myGeom2SubMesh;
int aNbPoints = aCoords.GetNbPoints();
for(int iGeom = 0, aCounter = 0; iGeom < iGeomEnd; iGeom++){
if (iNumElemEnd > 0) {
SALOME_MED::long_array_var conn =
aMedMesh->getConnectivity(SALOME_MED::MED_FULL_INTERLACE,SALOME_MED::MED_NODAL,aMEntity,aGeom);
- TCell2Connect& aCell2Connect = theMeshOnEntity->myGeom2Cell2Connect[aVGeom];
+ PSubMeshImpl aSubMesh = aGeom2SubMesh[aVGeom];
+ TCell2Connect& aCell2Connect = aSubMesh->myCell2Connect;
std::vector<int> aConnect(aMNbNodes);
int aNbConnForElem = conn->length()/iNumElemEnd;
if(theFamily->myIsDone)
return 0;
+ const VISU::TGeom2SubMesh& aGeom2SubMesh = theMeshOnEntity->myGeom2SubMesh;
SALOME_MED::FAMILY_var aMedFamily = theFamily->myFamily;
CORBA::Boolean anIsOnAllElements = aMedFamily->isOnAllElements();
if(!anIsOnAllElements){
SALOME_MED::medGeometryElement aGeom = aGeoms[iGeom];
SALOME_MED::long_array_var aCellNumForType = aMedFamily->getNumber(aGeom);
int aVGeom = MEDGeomToVTK(aGeom);
+
+ int iNumElemEndTmp = 0;
+ TGeom2SubMesh::const_iterator anIter = aGeom2SubMesh.find(aVGeom);
+ if(anIter != aGeom2SubMesh.end()){
+ const VISU::TSubMeshImpl& aSubMesh = anIter->second;
+ const VISU::TCell2Connect& anArray = aSubMesh.myCell2Connect;
+ iNumElemEndTmp = anArray.size();
+ }
+
TSubMeshID& aSubMeshID = theFamily->myGeom2SubMeshID[aVGeom];
- int iNumElemEndTmp = theMeshOnEntity->myGeom2Cell2Connect[aVGeom].size();
+
int iNumElemEnd = aCellNumForType->length();
int aCounter = theMeshOnEntity->myCellsFirstIndex[aGeom].first;
}
}
}else{
- const TGeom2Cell2Connect& aCellsConn = theMeshOnEntity->myGeom2Cell2Connect;
- TGeom2Cell2Connect::const_iterator aCellsConnIter = aCellsConn.begin();
- for(; aCellsConnIter != aCellsConn.end(); aCellsConnIter++){
- int aVGeom = aCellsConnIter->first;
- const TCell2Connect& aCell2Connect = aCellsConnIter->second;
+ const VISU::TGeom2SubMesh& aGeom2SubMesh = theMeshOnEntity->myGeom2SubMesh;
+ VISU::TGeom2SubMesh::const_iterator anIter = aGeom2SubMesh.begin();
+ for(; anIter != aGeom2SubMesh.end(); anIter++){
+ int aVGeom = anIter->first;
+ const VISU::TSubMeshImpl& aSubMesh = anIter->second;
+ const VISU::TCell2Connect& aCell2Connect = aSubMesh.myCell2Connect;
TSubMeshID& aSubMeshID = theFamily->myGeom2SubMeshID[aVGeom];
int iNumElemEnd = aCell2Connect.size();
for(int iNumElem = 0; iNumElem < iNumElemEnd; iNumElem++)