Salome HOME
projects
/
modules
/
smesh.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0021149: [CEA 445] Wrong mesh dimension
[modules/smesh.git]
/
src
/
DriverMED
/
DriverMED_W_SMESHDS_Mesh.cxx
diff --git
a/src/DriverMED/DriverMED_W_SMESHDS_Mesh.cxx
b/src/DriverMED/DriverMED_W_SMESHDS_Mesh.cxx
index 9c97adb9bfde2b7e230db7da3b570bcfd15a6e96..376d108653228fc6da3242b2cb1cc8de9ff9fd34 100644
(file)
--- a/
src/DriverMED/DriverMED_W_SMESHDS_Mesh.cxx
+++ b/
src/DriverMED/DriverMED_W_SMESHDS_Mesh.cxx
@@
-344,8
+344,8
@@
Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
aMeshName = myMeshName;
}
aMeshName = myMeshName;
}
- //
Mesh
dimension definition
- TInt a
MeshDimension
;
+ //
Space
dimension definition
+ TInt a
SpaceDim
;
TCoordHelperPtr aCoordHelperPtr;
{
bool anIsXDimension = false;
TCoordHelperPtr aCoordHelperPtr;
{
bool anIsXDimension = false;
@@
-376,24
+376,24
@@
Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
anIsXDimension = (aBounds[1] - aBounds[0]) + abs(aBounds[1]) + abs(aBounds[0]) > EPS;
anIsYDimension = (aBounds[3] - aBounds[2]) + abs(aBounds[3]) + abs(aBounds[2]) > EPS;
anIsZDimension = (aBounds[5] - aBounds[4]) + abs(aBounds[5]) + abs(aBounds[4]) > EPS;
anIsXDimension = (aBounds[1] - aBounds[0]) + abs(aBounds[1]) + abs(aBounds[0]) > EPS;
anIsYDimension = (aBounds[3] - aBounds[2]) + abs(aBounds[3]) + abs(aBounds[2]) > EPS;
anIsZDimension = (aBounds[5] - aBounds[4]) + abs(aBounds[5]) + abs(aBounds[4]) > EPS;
- a
MeshDimension
= anIsXDimension + anIsYDimension + anIsZDimension;
- if(!a
MeshDimension
)
- a
MeshDimension
= 3;
+ a
SpaceDim
= anIsXDimension + anIsYDimension + anIsZDimension;
+ if(!a
SpaceDim
)
+ a
SpaceDim
= 3;
// PAL16857(SMESH not conform to the MED convention):
// PAL16857(SMESH not conform to the MED convention):
- if ( a
MeshDimension
== 2 && anIsZDimension ) // 2D only if mesh is in XOY plane
- a
MeshDimension
= 3;
+ if ( a
SpaceDim
== 2 && anIsZDimension ) // 2D only if mesh is in XOY plane
+ a
SpaceDim
= 3;
// PAL18941(a saved study with a mesh belong Z is opened and the mesh is belong X)
// PAL18941(a saved study with a mesh belong Z is opened and the mesh is belong X)
- if ( a
MeshDimension
== 1 && !anIsXDimension ) // 1D only if mesh is along OX
+ if ( a
SpaceDim
== 1 && !anIsXDimension ) // 1D only if mesh is along OX
if ( anIsYDimension ) {
if ( anIsYDimension ) {
- a
MeshDimension
= 2;
+ a
SpaceDim
= 2;
anIsXDimension = true;
} else {
anIsXDimension = true;
} else {
- a
MeshDimension
= 3;
+ a
SpaceDim
= 3;
}
}
SMDS_NodeIteratorPtr aNodesIter = myMesh->nodesIterator();
}
}
SMDS_NodeIteratorPtr aNodesIter = myMesh->nodesIterator();
- switch(a
MeshDimension
){
+ switch(a
SpaceDim
){
case 3:
aCoordHelperPtr.reset(new TCoordHelper(aNodesIter,aXYZGetCoord,aXYZName));
break;
case 3:
aCoordHelperPtr.reset(new TCoordHelper(aNodesIter,aXYZGetCoord,aXYZName));
break;
@@
-415,9
+415,16
@@
Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
break;
}
}
break;
}
}
-
+ TInt aMeshDimension = 0;
+ if ( myMesh->NbEdges() > 0 )
+ aMeshDimension = 1;
+ if ( myMesh->NbFaces() > 0 )
+ aMeshDimension = 2;
+ if ( myMesh->NbVolumes() > 0 )
+ aMeshDimension = 3;
- PMeshInfo aMeshInfo = myMed->CrMeshInfo(aMeshDimension,aMeshName);
+ PMeshInfo aMeshInfo = myMed->CrMeshInfo(aSpaceDim,aMeshName);
+ aMeshInfo->myMeshDim = aMeshDimension;
MESSAGE("Add - aMeshName : "<<aMeshName<<"; "<<aMeshInfo->GetName());
myMed->SetMeshInfo(aMeshInfo);
MESSAGE("Add - aMeshName : "<<aMeshName<<"; "<<aMeshInfo->GetName());
myMed->SetMeshInfo(aMeshInfo);
@@
-494,7
+501,7
@@
Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
{
// coordinates
TCoordSlice aTCoordSlice = aNodeInfo->GetCoordSlice( iNode );
{
// coordinates
TCoordSlice aTCoordSlice = aNodeInfo->GetCoordSlice( iNode );
- for(TInt iCoord = 0; iCoord < a
MeshDimension
; iCoord++){
+ for(TInt iCoord = 0; iCoord < a
SpaceDim
; iCoord++){
aTCoordSlice[iCoord] = aCoordHelperPtr->GetCoord(iCoord);
}
// node number
aTCoordSlice[iCoord] = aCoordHelperPtr->GetCoord(iCoord);
}
// node number
@@
-511,7
+518,7
@@
Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
anElemFamMap.Clear();
// coordinate names and units
anElemFamMap.Clear();
// coordinate names and units
- for (TInt iCoord = 0; iCoord < a
MeshDimension
; iCoord++) {
+ for (TInt iCoord = 0; iCoord < a
SpaceDim
; iCoord++) {
aNodeInfo->SetCoordName( iCoord, aCoordHelperPtr->GetName(iCoord));
aNodeInfo->SetCoordUnit( iCoord, aCoordHelperPtr->GetUnit(iCoord));
}
aNodeInfo->SetCoordName( iCoord, aCoordHelperPtr->GetName(iCoord));
aNodeInfo->SetCoordUnit( iCoord, aCoordHelperPtr->GetUnit(iCoord));
}