mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-03-01 10:25:37 +05:00
untabify
This commit is contained in:
parent
4d5accf2df
commit
708462a58f
@ -28,7 +28,7 @@
|
|||||||
#include "DriverMED_Family.h"
|
#include "DriverMED_Family.h"
|
||||||
#include "MED_Factory.hxx"
|
#include "MED_Factory.hxx"
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
@ -139,11 +139,11 @@ DriverMED_Family
|
|||||||
DriverMED_FamilyPtrList
|
DriverMED_FamilyPtrList
|
||||||
DriverMED_Family
|
DriverMED_Family
|
||||||
::MakeFamilies(const SMESHDS_SubMeshPtrMap& theSubMeshes,
|
::MakeFamilies(const SMESHDS_SubMeshPtrMap& theSubMeshes,
|
||||||
const SMESHDS_GroupBasePtrList& theGroups,
|
const SMESHDS_GroupBasePtrList& theGroups,
|
||||||
const bool doGroupOfNodes,
|
const bool doGroupOfNodes,
|
||||||
const bool doGroupOfEdges,
|
const bool doGroupOfEdges,
|
||||||
const bool doGroupOfFaces,
|
const bool doGroupOfFaces,
|
||||||
const bool doGroupOfVolumes)
|
const bool doGroupOfVolumes)
|
||||||
{
|
{
|
||||||
DriverMED_FamilyPtrList aFamilies;
|
DriverMED_FamilyPtrList aFamilies;
|
||||||
|
|
||||||
@ -189,7 +189,7 @@ DriverMED_Family
|
|||||||
aFamilies.erase(aCurrIter);
|
aFamilies.erase(aCurrIter);
|
||||||
}
|
}
|
||||||
if (aFam2->IsEmpty())
|
if (aFam2->IsEmpty())
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// The rest elements of family
|
// The rest elements of family
|
||||||
@ -218,7 +218,7 @@ DriverMED_Family
|
|||||||
aFam1->Split(aFam2, aCommon);
|
aFam1->Split(aFam2, aCommon);
|
||||||
if (!aCommon->IsEmpty())
|
if (!aCommon->IsEmpty())
|
||||||
{
|
{
|
||||||
aCommon->SetGroupAttributVal(0);
|
aCommon->SetGroupAttributVal(0);
|
||||||
aFamilies.push_back(aCommon);
|
aFamilies.push_back(aCommon);
|
||||||
}
|
}
|
||||||
if (aFam1->IsEmpty())
|
if (aFam1->IsEmpty())
|
||||||
@ -226,7 +226,7 @@ DriverMED_Family
|
|||||||
aFamilies.erase(aCurrIter);
|
aFamilies.erase(aCurrIter);
|
||||||
}
|
}
|
||||||
if (aFam2->IsEmpty())
|
if (aFam2->IsEmpty())
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// The rest elements of group
|
// The rest elements of group
|
||||||
@ -310,7 +310,7 @@ DriverMED_Family
|
|||||||
//=============================================================================
|
//=============================================================================
|
||||||
MED::PFamilyInfo
|
MED::PFamilyInfo
|
||||||
DriverMED_Family::GetFamilyInfo(const MED::PWrapper& theWrapper,
|
DriverMED_Family::GetFamilyInfo(const MED::PWrapper& theWrapper,
|
||||||
const MED::PMeshInfo& theMeshInfo) const
|
const MED::PMeshInfo& theMeshInfo) const
|
||||||
{
|
{
|
||||||
ostringstream aStr;
|
ostringstream aStr;
|
||||||
aStr << "FAM_" << myId;
|
aStr << "FAM_" << myId;
|
||||||
@ -332,20 +332,20 @@ DriverMED_Family::GetFamilyInfo(const MED::PWrapper& theWrapper,
|
|||||||
MED::PFamilyInfo anInfo;
|
MED::PFamilyInfo anInfo;
|
||||||
if(myId == 0 || myGroupAttributVal == 0){
|
if(myId == 0 || myGroupAttributVal == 0){
|
||||||
anInfo = theWrapper->CrFamilyInfo(theMeshInfo,
|
anInfo = theWrapper->CrFamilyInfo(theMeshInfo,
|
||||||
aValue,
|
aValue,
|
||||||
myId,
|
myId,
|
||||||
myGroupNames);
|
myGroupNames);
|
||||||
}else{
|
}else{
|
||||||
MED::TStringVector anAttrDescs (1, ""); // 1 attribute with empty description,
|
MED::TStringVector anAttrDescs (1, ""); // 1 attribute with empty description,
|
||||||
MED::TIntVector anAttrIds (1, myId); // Id=0,
|
MED::TIntVector anAttrIds (1, myId); // Id=0,
|
||||||
MED::TIntVector anAttrVals (1, myGroupAttributVal);
|
MED::TIntVector anAttrVals (1, myGroupAttributVal);
|
||||||
anInfo = theWrapper->CrFamilyInfo(theMeshInfo,
|
anInfo = theWrapper->CrFamilyInfo(theMeshInfo,
|
||||||
aValue,
|
aValue,
|
||||||
myId,
|
myId,
|
||||||
myGroupNames,
|
myGroupNames,
|
||||||
anAttrDescs,
|
anAttrDescs,
|
||||||
anAttrIds,
|
anAttrIds,
|
||||||
anAttrVals);
|
anAttrVals);
|
||||||
}
|
}
|
||||||
|
|
||||||
// cout << endl;
|
// cout << endl;
|
||||||
@ -413,7 +413,7 @@ void DriverMED_Family::Init (SMESHDS_GroupBase* theGroup)
|
|||||||
DriverMED_FamilyPtrList
|
DriverMED_FamilyPtrList
|
||||||
DriverMED_Family
|
DriverMED_Family
|
||||||
::SplitByType (SMESHDS_SubMesh* theSubMesh,
|
::SplitByType (SMESHDS_SubMesh* theSubMesh,
|
||||||
const int theId)
|
const int theId)
|
||||||
{
|
{
|
||||||
DriverMED_FamilyPtrList aFamilies;
|
DriverMED_FamilyPtrList aFamilies;
|
||||||
DriverMED_FamilyPtr aNodesFamily (new DriverMED_Family);
|
DriverMED_FamilyPtr aNodesFamily (new DriverMED_Family);
|
||||||
|
@ -68,16 +68,16 @@ class MESHDRIVERMED_EXPORT DriverMED_Family
|
|||||||
static
|
static
|
||||||
DriverMED_FamilyPtrList
|
DriverMED_FamilyPtrList
|
||||||
MakeFamilies (const SMESHDS_SubMeshPtrMap& theSubMeshes,
|
MakeFamilies (const SMESHDS_SubMeshPtrMap& theSubMeshes,
|
||||||
const SMESHDS_GroupBasePtrList& theGroups,
|
const SMESHDS_GroupBasePtrList& theGroups,
|
||||||
const bool doGroupOfNodes,
|
const bool doGroupOfNodes,
|
||||||
const bool doGroupOfEdges,
|
const bool doGroupOfEdges,
|
||||||
const bool doGroupOfFaces,
|
const bool doGroupOfFaces,
|
||||||
const bool doGroupOfVolumes);
|
const bool doGroupOfVolumes);
|
||||||
|
|
||||||
//! Create TFamilyInfo for this family
|
//! Create TFamilyInfo for this family
|
||||||
MED::PFamilyInfo
|
MED::PFamilyInfo
|
||||||
GetFamilyInfo (const MED::PWrapper& theWrapper,
|
GetFamilyInfo (const MED::PWrapper& theWrapper,
|
||||||
const MED::PMeshInfo& theMeshInfo) const;
|
const MED::PMeshInfo& theMeshInfo) const;
|
||||||
|
|
||||||
//! Returns elements of this family
|
//! Returns elements of this family
|
||||||
const ElementsSet& GetElements () const;
|
const ElementsSet& GetElements () const;
|
||||||
@ -113,7 +113,7 @@ class MESHDRIVERMED_EXPORT DriverMED_Family
|
|||||||
static
|
static
|
||||||
DriverMED_FamilyPtrList
|
DriverMED_FamilyPtrList
|
||||||
SplitByType(SMESHDS_SubMesh* theSubMesh,
|
SplitByType(SMESHDS_SubMesh* theSubMesh,
|
||||||
const int theId);
|
const int theId);
|
||||||
|
|
||||||
|
|
||||||
/*! Remove from <Elements> elements, common with <by>,
|
/*! Remove from <Elements> elements, common with <by>,
|
||||||
@ -121,7 +121,7 @@ class MESHDRIVERMED_EXPORT DriverMED_Family
|
|||||||
Create family <common> from common elements, with combined groups list.
|
Create family <common> from common elements, with combined groups list.
|
||||||
*/
|
*/
|
||||||
void Split (DriverMED_FamilyPtr by,
|
void Split (DriverMED_FamilyPtr by,
|
||||||
DriverMED_FamilyPtr common);
|
DriverMED_FamilyPtr common);
|
||||||
|
|
||||||
//! Check, if this family has empty list of elements
|
//! Check, if this family has empty list of elements
|
||||||
bool IsEmpty () const;
|
bool IsEmpty () const;
|
||||||
|
@ -79,9 +79,9 @@ DriverMED_R_SMESHDS_Mesh
|
|||||||
aResult = DRS_EMPTY;
|
aResult = DRS_EMPTY;
|
||||||
if(TInt aNbMeshes = aMed->GetNbMeshes()){
|
if(TInt aNbMeshes = aMed->GetNbMeshes()){
|
||||||
for(int iMesh = 0; iMesh < aNbMeshes; iMesh++){
|
for(int iMesh = 0; iMesh < aNbMeshes; iMesh++){
|
||||||
// Reading the MED mesh
|
// Reading the MED mesh
|
||||||
//---------------------
|
//---------------------
|
||||||
PMeshInfo aMeshInfo = aMed->GetPMeshInfo(iMesh+1);
|
PMeshInfo aMeshInfo = aMed->GetPMeshInfo(iMesh+1);
|
||||||
|
|
||||||
std::string aMeshName;
|
std::string aMeshName;
|
||||||
if (myMeshId != -1) {
|
if (myMeshId != -1) {
|
||||||
@ -91,76 +91,76 @@ DriverMED_R_SMESHDS_Mesh
|
|||||||
} else {
|
} else {
|
||||||
aMeshName = myMeshName;
|
aMeshName = myMeshName;
|
||||||
}
|
}
|
||||||
if(MYDEBUG) MESSAGE("Perform - aMeshName : "<<aMeshName<<"; "<<aMeshInfo->GetName());
|
if(MYDEBUG) MESSAGE("Perform - aMeshName : "<<aMeshName<<"; "<<aMeshInfo->GetName());
|
||||||
if(aMeshName != aMeshInfo->GetName()) continue;
|
if(aMeshName != aMeshInfo->GetName()) continue;
|
||||||
aResult = DRS_OK;
|
aResult = DRS_OK;
|
||||||
|
|
||||||
//TInt aMeshDim = aMeshInfo->GetDim();
|
//TInt aMeshDim = aMeshInfo->GetDim();
|
||||||
|
|
||||||
// Reading MED families to the temporary structure
|
// Reading MED families to the temporary structure
|
||||||
//------------------------------------------------
|
//------------------------------------------------
|
||||||
TErr anErr;
|
TErr anErr;
|
||||||
TInt aNbFams = aMed->GetNbFamilies(aMeshInfo);
|
TInt aNbFams = aMed->GetNbFamilies(aMeshInfo);
|
||||||
if(MYDEBUG) MESSAGE("Read " << aNbFams << " families");
|
if(MYDEBUG) MESSAGE("Read " << aNbFams << " families");
|
||||||
for (TInt iFam = 0; iFam < aNbFams; iFam++) {
|
for (TInt iFam = 0; iFam < aNbFams; iFam++) {
|
||||||
PFamilyInfo aFamilyInfo = aMed->GetPFamilyInfo(aMeshInfo,iFam+1,&anErr);
|
PFamilyInfo aFamilyInfo = aMed->GetPFamilyInfo(aMeshInfo,iFam+1,&anErr);
|
||||||
if(anErr >= 0){
|
if(anErr >= 0){
|
||||||
TInt aFamId = aFamilyInfo->GetId();
|
TInt aFamId = aFamilyInfo->GetId();
|
||||||
if(MYDEBUG) MESSAGE("Family " << aFamId << " :");
|
if(MYDEBUG) MESSAGE("Family " << aFamId << " :");
|
||||||
|
|
||||||
DriverMED_FamilyPtr aFamily (new DriverMED_Family);
|
DriverMED_FamilyPtr aFamily (new DriverMED_Family);
|
||||||
|
|
||||||
TInt aNbGrp = aFamilyInfo->GetNbGroup();
|
TInt aNbGrp = aFamilyInfo->GetNbGroup();
|
||||||
if(MYDEBUG) MESSAGE("belong to " << aNbGrp << " groups");
|
if(MYDEBUG) MESSAGE("belong to " << aNbGrp << " groups");
|
||||||
bool isAttrOk = false;
|
bool isAttrOk = false;
|
||||||
if(aFamilyInfo->GetNbAttr() == aNbGrp)
|
if(aFamilyInfo->GetNbAttr() == aNbGrp)
|
||||||
isAttrOk = true;
|
isAttrOk = true;
|
||||||
for (TInt iGr = 0; iGr < aNbGrp; iGr++) {
|
for (TInt iGr = 0; iGr < aNbGrp; iGr++) {
|
||||||
std::string aGroupName = aFamilyInfo->GetGroupName(iGr);
|
std::string aGroupName = aFamilyInfo->GetGroupName(iGr);
|
||||||
if(isAttrOk){
|
if(isAttrOk){
|
||||||
TInt anAttrVal = aFamilyInfo->GetAttrVal(iGr);
|
TInt anAttrVal = aFamilyInfo->GetAttrVal(iGr);
|
||||||
aFamily->SetGroupAttributVal(anAttrVal);
|
aFamily->SetGroupAttributVal(anAttrVal);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(MYDEBUG) MESSAGE(aGroupName);
|
if(MYDEBUG) MESSAGE(aGroupName);
|
||||||
aFamily->AddGroupName(aGroupName);
|
aFamily->AddGroupName(aGroupName);
|
||||||
|
|
||||||
}
|
}
|
||||||
aFamily->SetId( aFamId );
|
aFamily->SetId( aFamId );
|
||||||
myFamilies[aFamId] = aFamily;
|
myFamilies[aFamId] = aFamily;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aMeshInfo->GetType() == MED::eSTRUCTURE){
|
if (aMeshInfo->GetType() == MED::eSTRUCTURE){
|
||||||
/*bool aRes = */buildMeshGrille(aMed,aMeshInfo);
|
/*bool aRes = */buildMeshGrille(aMed,aMeshInfo);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reading MED nodes to the corresponding SMDS structure
|
// Reading MED nodes to the corresponding SMDS structure
|
||||||
//------------------------------------------------------
|
//------------------------------------------------------
|
||||||
PNodeInfo aNodeInfo = aMed->GetPNodeInfo(aMeshInfo);
|
PNodeInfo aNodeInfo = aMed->GetPNodeInfo(aMeshInfo);
|
||||||
if (!aNodeInfo) {
|
if (!aNodeInfo) {
|
||||||
aResult = DRS_FAIL;
|
aResult = DRS_FAIL;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
PCoordHelper aCoordHelper = GetCoordHelper(aNodeInfo);
|
PCoordHelper aCoordHelper = GetCoordHelper(aNodeInfo);
|
||||||
|
|
||||||
EBooleen anIsNodeNum = aNodeInfo->IsElemNum();
|
EBooleen anIsNodeNum = aNodeInfo->IsElemNum();
|
||||||
TInt aNbElems = aNodeInfo->GetNbElem();
|
TInt aNbElems = aNodeInfo->GetNbElem();
|
||||||
if(MYDEBUG) MESSAGE("Perform - aNodeInfo->GetNbElem() = "<<aNbElems<<"; anIsNodeNum = "<<anIsNodeNum);
|
if(MYDEBUG) MESSAGE("Perform - aNodeInfo->GetNbElem() = "<<aNbElems<<"; anIsNodeNum = "<<anIsNodeNum);
|
||||||
DriverMED_FamilyPtr aFamily;
|
DriverMED_FamilyPtr aFamily;
|
||||||
for(TInt iElem = 0; iElem < aNbElems; iElem++){
|
for(TInt iElem = 0; iElem < aNbElems; iElem++){
|
||||||
TCCoordSlice aCoordSlice = aNodeInfo->GetCoordSlice(iElem);
|
TCCoordSlice aCoordSlice = aNodeInfo->GetCoordSlice(iElem);
|
||||||
double aCoords[3] = {0.0, 0.0, 0.0};
|
double aCoords[3] = {0.0, 0.0, 0.0};
|
||||||
for(TInt iDim = 0; iDim < 3; iDim++)
|
for(TInt iDim = 0; iDim < 3; iDim++)
|
||||||
aCoords[iDim] = aCoordHelper->GetCoord(aCoordSlice,iDim);
|
aCoords[iDim] = aCoordHelper->GetCoord(aCoordSlice,iDim);
|
||||||
const SMDS_MeshNode* aNode;
|
const SMDS_MeshNode* aNode;
|
||||||
if(anIsNodeNum) {
|
if(anIsNodeNum) {
|
||||||
aNode = myMesh->AddNodeWithID
|
aNode = myMesh->AddNodeWithID
|
||||||
(aCoords[0],aCoords[1],aCoords[2],aNodeInfo->GetElemNum(iElem));
|
(aCoords[0],aCoords[1],aCoords[2],aNodeInfo->GetElemNum(iElem));
|
||||||
} else {
|
} else {
|
||||||
aNode = myMesh->AddNode
|
aNode = myMesh->AddNode
|
||||||
(aCoords[0],aCoords[1],aCoords[2]);
|
(aCoords[0],aCoords[1],aCoords[2]);
|
||||||
}
|
}
|
||||||
//cout<<aNode->GetID()<<": "<<aNode->X()<<", "<<aNode->Y()<<", "<<aNode->Z()<<endl;
|
//cout<<aNode->GetID()<<": "<<aNode->X()<<", "<<aNode->Y()<<", "<<aNode->Z()<<endl;
|
||||||
@ -174,44 +174,44 @@ DriverMED_R_SMESHDS_Mesh
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Reading pre information about all MED cells
|
// Reading pre information about all MED cells
|
||||||
//--------------------------------------------
|
//--------------------------------------------
|
||||||
typedef MED::TVector<int> TNodeIds;
|
typedef MED::TVector<int> TNodeIds;
|
||||||
bool takeNumbers = true; // initially we trust the numbers from file
|
bool takeNumbers = true; // initially we trust the numbers from file
|
||||||
MED::TEntityInfo aEntityInfo = aMed->GetEntityInfo(aMeshInfo);
|
MED::TEntityInfo aEntityInfo = aMed->GetEntityInfo(aMeshInfo);
|
||||||
MED::TEntityInfo::iterator anEntityIter = aEntityInfo.begin();
|
MED::TEntityInfo::iterator anEntityIter = aEntityInfo.begin();
|
||||||
for(; anEntityIter != aEntityInfo.end(); anEntityIter++){
|
for(; anEntityIter != aEntityInfo.end(); anEntityIter++){
|
||||||
const EEntiteMaillage& anEntity = anEntityIter->first;
|
const EEntiteMaillage& anEntity = anEntityIter->first;
|
||||||
if(anEntity == eNOEUD) continue;
|
if(anEntity == eNOEUD) continue;
|
||||||
// Reading MED cells to the corresponding SMDS structure
|
// Reading MED cells to the corresponding SMDS structure
|
||||||
//------------------------------------------------------
|
//------------------------------------------------------
|
||||||
const MED::TGeom2Size& aGeom2Size = anEntityIter->second;
|
const MED::TGeom2Size& aGeom2Size = anEntityIter->second;
|
||||||
MED::TGeom2Size::const_iterator aGeom2SizeIter = aGeom2Size.begin();
|
MED::TGeom2Size::const_iterator aGeom2SizeIter = aGeom2Size.begin();
|
||||||
for(; aGeom2SizeIter != aGeom2Size.end(); aGeom2SizeIter++){
|
for(; aGeom2SizeIter != aGeom2Size.end(); aGeom2SizeIter++){
|
||||||
const EGeometrieElement& aGeom = aGeom2SizeIter->first;
|
const EGeometrieElement& aGeom = aGeom2SizeIter->first;
|
||||||
|
|
||||||
switch(aGeom) {
|
switch(aGeom) {
|
||||||
// case ePOINT1: ## PAL16410
|
// case ePOINT1: ## PAL16410
|
||||||
// break;
|
// break;
|
||||||
case ePOLYGONE: {
|
case ePOLYGONE: {
|
||||||
PPolygoneInfo aPolygoneInfo = aMed->GetPPolygoneInfo(aMeshInfo,anEntity,aGeom);
|
PPolygoneInfo aPolygoneInfo = aMed->GetPPolygoneInfo(aMeshInfo,anEntity,aGeom);
|
||||||
EBooleen anIsElemNum = takeNumbers ? aPolygoneInfo->IsElemNum() : eFAUX;
|
EBooleen anIsElemNum = takeNumbers ? aPolygoneInfo->IsElemNum() : eFAUX;
|
||||||
|
|
||||||
TInt aNbElem = aPolygoneInfo->GetNbElem();
|
TInt aNbElem = aPolygoneInfo->GetNbElem();
|
||||||
for(TInt iElem = 0; iElem < aNbElem; iElem++){
|
for(TInt iElem = 0; iElem < aNbElem; iElem++){
|
||||||
MED::TCConnSlice aConnSlice = aPolygoneInfo->GetConnSlice(iElem);
|
MED::TCConnSlice aConnSlice = aPolygoneInfo->GetConnSlice(iElem);
|
||||||
TInt aNbConn = aPolygoneInfo->GetNbConn(iElem);
|
TInt aNbConn = aPolygoneInfo->GetNbConn(iElem);
|
||||||
TNodeIds aNodeIds(aNbConn);
|
TNodeIds aNodeIds(aNbConn);
|
||||||
#ifdef _EDF_NODE_IDS_
|
#ifdef _EDF_NODE_IDS_
|
||||||
if(anIsNodeNum)
|
if(anIsNodeNum)
|
||||||
for(TInt iConn = 0; iConn < aNbConn; iConn++)
|
for(TInt iConn = 0; iConn < aNbConn; iConn++)
|
||||||
aNodeIds[iConn] = aNodeInfo->GetElemNum(aConnSlice[iConn] - 1);
|
aNodeIds[iConn] = aNodeInfo->GetElemNum(aConnSlice[iConn] - 1);
|
||||||
else
|
else
|
||||||
for(TInt iConn = 0; iConn < aNbConn; iConn++)
|
for(TInt iConn = 0; iConn < aNbConn; iConn++)
|
||||||
aNodeIds[iConn] = aConnSlice[iConn];
|
aNodeIds[iConn] = aConnSlice[iConn];
|
||||||
#else
|
#else
|
||||||
for(TInt iConn = 0; iConn < aNbConn; iConn++)
|
for(TInt iConn = 0; iConn < aNbConn; iConn++)
|
||||||
aNodeIds[iConn] = aConnSlice[iConn];
|
aNodeIds[iConn] = aConnSlice[iConn];
|
||||||
#endif
|
#endif
|
||||||
bool isRenum = false;
|
bool isRenum = false;
|
||||||
SMDS_MeshElement* anElement = NULL;
|
SMDS_MeshElement* anElement = NULL;
|
||||||
@ -221,12 +221,12 @@ DriverMED_R_SMESHDS_Mesh
|
|||||||
try{
|
try{
|
||||||
#endif
|
#endif
|
||||||
if(anIsElemNum){
|
if(anIsElemNum){
|
||||||
TInt anElemId = aPolygoneInfo->GetElemNum(iElem);
|
TInt anElemId = aPolygoneInfo->GetElemNum(iElem);
|
||||||
anElement = myMesh->AddPolygonalFaceWithID(aNodeIds,anElemId);
|
anElement = myMesh->AddPolygonalFaceWithID(aNodeIds,anElemId);
|
||||||
}
|
}
|
||||||
if(!anElement){
|
if(!anElement){
|
||||||
std::vector<const SMDS_MeshNode*> aNodes(aNbConn);
|
std::vector<const SMDS_MeshNode*> aNodes(aNbConn);
|
||||||
for(TInt iConn = 0; iConn < aNbConn; iConn++)
|
for(TInt iConn = 0; iConn < aNbConn; iConn++)
|
||||||
aNodes[iConn] = FindNode(myMesh,aNodeIds[iConn]);
|
aNodes[iConn] = FindNode(myMesh,aNodeIds[iConn]);
|
||||||
anElement = myMesh->AddPolygonalFace(aNodes);
|
anElement = myMesh->AddPolygonalFace(aNodes);
|
||||||
isRenum = anIsElemNum;
|
isRenum = anIsElemNum;
|
||||||
@ -256,80 +256,80 @@ DriverMED_R_SMESHDS_Mesh
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ePOLYEDRE: {
|
case ePOLYEDRE: {
|
||||||
PPolyedreInfo aPolyedreInfo = aMed->GetPPolyedreInfo(aMeshInfo,anEntity,aGeom);
|
PPolyedreInfo aPolyedreInfo = aMed->GetPPolyedreInfo(aMeshInfo,anEntity,aGeom);
|
||||||
EBooleen anIsElemNum = takeNumbers ? aPolyedreInfo->IsElemNum() : eFAUX;
|
EBooleen anIsElemNum = takeNumbers ? aPolyedreInfo->IsElemNum() : eFAUX;
|
||||||
|
|
||||||
TInt aNbElem = aPolyedreInfo->GetNbElem();
|
TInt aNbElem = aPolyedreInfo->GetNbElem();
|
||||||
for(TInt iElem = 0; iElem < aNbElem; iElem++){
|
for(TInt iElem = 0; iElem < aNbElem; iElem++){
|
||||||
MED::TCConnSliceArr aConnSliceArr = aPolyedreInfo->GetConnSliceArr(iElem);
|
MED::TCConnSliceArr aConnSliceArr = aPolyedreInfo->GetConnSliceArr(iElem);
|
||||||
TInt aNbFaces = aConnSliceArr.size();
|
TInt aNbFaces = aConnSliceArr.size();
|
||||||
typedef MED::TVector<int> TQuantities;
|
typedef MED::TVector<int> TQuantities;
|
||||||
TQuantities aQuantities(aNbFaces);
|
TQuantities aQuantities(aNbFaces);
|
||||||
TInt aNbNodes = aPolyedreInfo->GetNbNodes(iElem);
|
TInt aNbNodes = aPolyedreInfo->GetNbNodes(iElem);
|
||||||
TNodeIds aNodeIds(aNbNodes);
|
TNodeIds aNodeIds(aNbNodes);
|
||||||
for(TInt iFace = 0, iNode = 0; iFace < aNbFaces; iFace++){
|
for(TInt iFace = 0, iNode = 0; iFace < aNbFaces; iFace++){
|
||||||
MED::TCConnSlice aConnSlice = aConnSliceArr[iFace];
|
MED::TCConnSlice aConnSlice = aConnSliceArr[iFace];
|
||||||
TInt aNbConn = aConnSlice.size();
|
TInt aNbConn = aConnSlice.size();
|
||||||
aQuantities[iFace] = aNbConn;
|
aQuantities[iFace] = aNbConn;
|
||||||
#ifdef _EDF_NODE_IDS_
|
#ifdef _EDF_NODE_IDS_
|
||||||
if(anIsNodeNum)
|
if(anIsNodeNum)
|
||||||
for(TInt iConn = 0; iConn < aNbConn; iConn++)
|
for(TInt iConn = 0; iConn < aNbConn; iConn++)
|
||||||
aNodeIds[iNode++] = aNodeInfo->GetElemNum(aConnSlice[iConn] - 1);
|
aNodeIds[iNode++] = aNodeInfo->GetElemNum(aConnSlice[iConn] - 1);
|
||||||
else
|
else
|
||||||
for(TInt iConn = 0; iConn < aNbConn; iConn++)
|
for(TInt iConn = 0; iConn < aNbConn; iConn++)
|
||||||
aNodeIds[iNode++] = aConnSlice[iConn];
|
aNodeIds[iNode++] = aConnSlice[iConn];
|
||||||
#else
|
#else
|
||||||
for(TInt iConn = 0; iConn < aNbConn; iConn++)
|
for(TInt iConn = 0; iConn < aNbConn; iConn++)
|
||||||
aNodeIds[iNode++] = aConnSlice[iConn];
|
aNodeIds[iNode++] = aConnSlice[iConn];
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isRenum = false;
|
bool isRenum = false;
|
||||||
SMDS_MeshElement* anElement = NULL;
|
SMDS_MeshElement* anElement = NULL;
|
||||||
TInt aFamNum = aPolyedreInfo->GetFamNum(iElem);
|
TInt aFamNum = aPolyedreInfo->GetFamNum(iElem);
|
||||||
|
|
||||||
#ifndef _DEXCEPT_
|
#ifndef _DEXCEPT_
|
||||||
try{
|
try{
|
||||||
#endif
|
#endif
|
||||||
if(anIsElemNum){
|
if(anIsElemNum){
|
||||||
TInt anElemId = aPolyedreInfo->GetElemNum(iElem);
|
TInt anElemId = aPolyedreInfo->GetElemNum(iElem);
|
||||||
anElement = myMesh->AddPolyhedralVolumeWithID(aNodeIds,aQuantities,anElemId);
|
anElement = myMesh->AddPolyhedralVolumeWithID(aNodeIds,aQuantities,anElemId);
|
||||||
}
|
}
|
||||||
if(!anElement){
|
if(!anElement){
|
||||||
std::vector<const SMDS_MeshNode*> aNodes(aNbNodes);
|
std::vector<const SMDS_MeshNode*> aNodes(aNbNodes);
|
||||||
for(TInt iConn = 0; iConn < aNbNodes; iConn++)
|
for(TInt iConn = 0; iConn < aNbNodes; iConn++)
|
||||||
aNodes[iConn] = FindNode(myMesh,aNodeIds[iConn]);
|
aNodes[iConn] = FindNode(myMesh,aNodeIds[iConn]);
|
||||||
anElement = myMesh->AddPolyhedralVolume(aNodes,aQuantities);
|
anElement = myMesh->AddPolyhedralVolume(aNodes,aQuantities);
|
||||||
isRenum = anIsElemNum;
|
isRenum = anIsElemNum;
|
||||||
}
|
}
|
||||||
#ifndef _DEXCEPT_
|
#ifndef _DEXCEPT_
|
||||||
}catch(const std::exception& exc){
|
}catch(const std::exception& exc){
|
||||||
aResult = DRS_FAIL;
|
aResult = DRS_FAIL;
|
||||||
}catch(...){
|
}catch(...){
|
||||||
aResult = DRS_FAIL;
|
aResult = DRS_FAIL;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if(!anElement){
|
if(!anElement){
|
||||||
aResult = DRS_WARN_SKIP_ELEM;
|
aResult = DRS_WARN_SKIP_ELEM;
|
||||||
}else{
|
}else{
|
||||||
if(isRenum){
|
if(isRenum){
|
||||||
anIsElemNum = eFAUX;
|
anIsElemNum = eFAUX;
|
||||||
takeNumbers = false;
|
takeNumbers = false;
|
||||||
if (aResult < DRS_WARN_RENUMBER)
|
if (aResult < DRS_WARN_RENUMBER)
|
||||||
aResult = DRS_WARN_RENUMBER;
|
aResult = DRS_WARN_RENUMBER;
|
||||||
}
|
}
|
||||||
if ( checkFamilyID ( aFamily, aFamNum )) {
|
if ( checkFamilyID ( aFamily, aFamNum )) {
|
||||||
// Save reference to this element from its family
|
// Save reference to this element from its family
|
||||||
aFamily->AddElement(anElement);
|
aFamily->AddElement(anElement);
|
||||||
aFamily->SetType(anElement->GetType());
|
aFamily->SetType(anElement->GetType());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default: {
|
default: {
|
||||||
PCellInfo aCellInfo = aMed->GetPCellInfo(aMeshInfo,anEntity,aGeom);
|
PCellInfo aCellInfo = aMed->GetPCellInfo(aMeshInfo,anEntity,aGeom);
|
||||||
EBooleen anIsElemNum = takeNumbers ? aCellInfo->IsElemNum() : eFAUX;
|
EBooleen anIsElemNum = takeNumbers ? aCellInfo->IsElemNum() : eFAUX;
|
||||||
TInt aNbElems = aCellInfo->GetNbElem();
|
TInt aNbElems = aCellInfo->GetNbElem();
|
||||||
@ -747,10 +747,10 @@ std::list<std::string> DriverMED_R_SMESHDS_Mesh::GetMeshNames(Status& theStatus)
|
|||||||
|
|
||||||
if (TInt aNbMeshes = aMed->GetNbMeshes()) {
|
if (TInt aNbMeshes = aMed->GetNbMeshes()) {
|
||||||
for (int iMesh = 0; iMesh < aNbMeshes; iMesh++) {
|
for (int iMesh = 0; iMesh < aNbMeshes; iMesh++) {
|
||||||
// Reading the MED mesh
|
// Reading the MED mesh
|
||||||
//---------------------
|
//---------------------
|
||||||
PMeshInfo aMeshInfo = aMed->GetPMeshInfo(iMesh+1);
|
PMeshInfo aMeshInfo = aMed->GetPMeshInfo(iMesh+1);
|
||||||
aMeshNames.push_back(aMeshInfo->GetName());
|
aMeshNames.push_back(aMeshInfo->GetName());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}catch(const std::exception& exc){
|
}catch(const std::exception& exc){
|
||||||
@ -807,10 +807,10 @@ void DriverMED_R_SMESHDS_Mesh::GetGroup(SMESHDS_Group* theGroup)
|
|||||||
for (; anElemsIter != anElements.end(); anElemsIter++)
|
for (; anElemsIter != anElements.end(); anElemsIter++)
|
||||||
{
|
{
|
||||||
element = *anElemsIter;
|
element = *anElemsIter;
|
||||||
theGroup->SMDSGroup().Add(element);
|
theGroup->SMDSGroup().Add(element);
|
||||||
int aGroupAttrVal = aFamily->GetGroupAttributVal();
|
int aGroupAttrVal = aFamily->GetGroupAttributVal();
|
||||||
if( aGroupAttrVal != 0)
|
if( aGroupAttrVal != 0)
|
||||||
theGroup->SetColorGroup(aGroupAttrVal);
|
theGroup->SetColorGroup(aGroupAttrVal);
|
||||||
}
|
}
|
||||||
if ( element )
|
if ( element )
|
||||||
theGroup->SetType( theGroup->SMDSGroup().GetType() );
|
theGroup->SetType( theGroup->SMDSGroup().GetType() );
|
||||||
@ -924,7 +924,7 @@ bool DriverMED_R_SMESHDS_Mesh::checkFamilyID(DriverMED_FamilyPtr & aFamily, int
|
|||||||
* \return TRUE, if successfully. Else FALSE
|
* \return TRUE, if successfully. Else FALSE
|
||||||
*/
|
*/
|
||||||
bool DriverMED_R_SMESHDS_Mesh::buildMeshGrille(const MED::PWrapper& theWrapper,
|
bool DriverMED_R_SMESHDS_Mesh::buildMeshGrille(const MED::PWrapper& theWrapper,
|
||||||
const MED::PMeshInfo& theMeshInfo)
|
const MED::PMeshInfo& theMeshInfo)
|
||||||
{
|
{
|
||||||
bool res = true;
|
bool res = true;
|
||||||
|
|
||||||
@ -944,10 +944,10 @@ bool DriverMED_R_SMESHDS_Mesh::buildMeshGrille(const MED::PWrapper& theWrapper,
|
|||||||
if((aGrilleInfo->myFamNumNode).size() > 0){
|
if((aGrilleInfo->myFamNumNode).size() > 0){
|
||||||
TInt aFamNum = aGrilleInfo->GetFamNumNode(iNode);
|
TInt aFamNum = aGrilleInfo->GetFamNumNode(iNode);
|
||||||
if ( checkFamilyID ( aFamily, aFamNum ))
|
if ( checkFamilyID ( aFamily, aFamNum ))
|
||||||
{
|
{
|
||||||
aFamily->AddElement(aNode);
|
aFamily->AddElement(aNode);
|
||||||
aFamily->SetType(SMDSAbs_Node);
|
aFamily->SetType(SMDSAbs_Node);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -959,38 +959,38 @@ bool DriverMED_R_SMESHDS_Mesh::buildMeshGrille(const MED::PWrapper& theWrapper,
|
|||||||
switch(aGrilleInfo->GetGeom()){
|
switch(aGrilleInfo->GetGeom()){
|
||||||
case MED::eSEG2:
|
case MED::eSEG2:
|
||||||
if(aNodeIds.size() != 2){
|
if(aNodeIds.size() != 2){
|
||||||
res = false;
|
res = false;
|
||||||
EXCEPTION(std::runtime_error,"buildMeshGrille Error. Incorrect size of ids 2!="<<aNodeIds.size());
|
EXCEPTION(std::runtime_error,"buildMeshGrille Error. Incorrect size of ids 2!="<<aNodeIds.size());
|
||||||
}
|
}
|
||||||
anElement = myMesh->AddEdgeWithID(aNodeIds[0],
|
anElement = myMesh->AddEdgeWithID(aNodeIds[0],
|
||||||
aNodeIds[1],
|
aNodeIds[1],
|
||||||
iCell);
|
iCell);
|
||||||
break;
|
break;
|
||||||
case MED::eQUAD4:
|
case MED::eQUAD4:
|
||||||
if(aNodeIds.size() != 4){
|
if(aNodeIds.size() != 4){
|
||||||
res = false;
|
res = false;
|
||||||
EXCEPTION(std::runtime_error,"buildMeshGrille Error. Incorrect size of ids 4!="<<aNodeIds.size());
|
EXCEPTION(std::runtime_error,"buildMeshGrille Error. Incorrect size of ids 4!="<<aNodeIds.size());
|
||||||
}
|
}
|
||||||
anElement = myMesh->AddFaceWithID(aNodeIds[0],
|
anElement = myMesh->AddFaceWithID(aNodeIds[0],
|
||||||
aNodeIds[2],
|
aNodeIds[2],
|
||||||
aNodeIds[3],
|
aNodeIds[3],
|
||||||
aNodeIds[1],
|
aNodeIds[1],
|
||||||
iCell);
|
iCell);
|
||||||
break;
|
break;
|
||||||
case MED::eHEXA8:
|
case MED::eHEXA8:
|
||||||
if(aNodeIds.size() != 8){
|
if(aNodeIds.size() != 8){
|
||||||
res = false;
|
res = false;
|
||||||
EXCEPTION(std::runtime_error,"buildMeshGrille Error. Incorrect size of ids 8!="<<aNodeIds.size());
|
EXCEPTION(std::runtime_error,"buildMeshGrille Error. Incorrect size of ids 8!="<<aNodeIds.size());
|
||||||
}
|
}
|
||||||
anElement = myMesh->AddVolumeWithID(aNodeIds[0],
|
anElement = myMesh->AddVolumeWithID(aNodeIds[0],
|
||||||
aNodeIds[2],
|
aNodeIds[2],
|
||||||
aNodeIds[3],
|
aNodeIds[3],
|
||||||
aNodeIds[1],
|
aNodeIds[1],
|
||||||
aNodeIds[4],
|
aNodeIds[4],
|
||||||
aNodeIds[6],
|
aNodeIds[6],
|
||||||
aNodeIds[7],
|
aNodeIds[7],
|
||||||
aNodeIds[5],
|
aNodeIds[5],
|
||||||
iCell);
|
iCell);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@ -999,8 +999,8 @@ bool DriverMED_R_SMESHDS_Mesh::buildMeshGrille(const MED::PWrapper& theWrapper,
|
|||||||
if((aGrilleInfo->myFamNum).size() > 0){
|
if((aGrilleInfo->myFamNum).size() > 0){
|
||||||
TInt aFamNum = aGrilleInfo->GetFamNum(iCell);
|
TInt aFamNum = aGrilleInfo->GetFamNum(iCell);
|
||||||
if ( checkFamilyID ( aFamily, aFamNum )){
|
if ( checkFamilyID ( aFamily, aFamNum )){
|
||||||
aFamily->AddElement(anElement);
|
aFamily->AddElement(anElement);
|
||||||
aFamily->SetType(anElement->GetType());
|
aFamily->SetType(anElement->GetType());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,7 @@ class MESHDRIVERMED_EXPORT DriverMED_R_SMESHDS_Mesh: public Driver_SMESHDS_Mesh
|
|||||||
bool checkFamilyID(DriverMED_FamilyPtr & aFamily, int anID) const;
|
bool checkFamilyID(DriverMED_FamilyPtr & aFamily, int anID) const;
|
||||||
|
|
||||||
bool buildMeshGrille(const MED::PWrapper& theWrapper,
|
bool buildMeshGrille(const MED::PWrapper& theWrapper,
|
||||||
const MED::PMeshInfo& theMeshInfo);
|
const MED::PMeshInfo& theMeshInfo);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::string myMeshName;
|
std::string myMeshName;
|
||||||
|
@ -54,7 +54,7 @@ DriverMED_W_SMESHDS_Mesh::DriverMED_W_SMESHDS_Mesh():
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
void DriverMED_W_SMESHDS_Mesh::SetFile(const std::string& theFileName,
|
void DriverMED_W_SMESHDS_Mesh::SetFile(const std::string& theFileName,
|
||||||
MED::EVersion theId)
|
MED::EVersion theId)
|
||||||
{
|
{
|
||||||
myMed = CrWrapper(theFileName,theId);
|
myMed = CrWrapper(theFileName,theId);
|
||||||
Driver_SMESHDS_Mesh::SetFile(theFileName);
|
Driver_SMESHDS_Mesh::SetFile(theFileName);
|
||||||
@ -189,9 +189,9 @@ namespace{
|
|||||||
TUnit* myUnit;
|
TUnit* myUnit;
|
||||||
public:
|
public:
|
||||||
TCoordHelper(const SMDS_NodeIteratorPtr& theNodeIter,
|
TCoordHelper(const SMDS_NodeIteratorPtr& theNodeIter,
|
||||||
TGetCoord* theGetCoord,
|
TGetCoord* theGetCoord,
|
||||||
TName* theName,
|
TName* theName,
|
||||||
TUnit* theUnit = aUnit):
|
TUnit* theUnit = aUnit):
|
||||||
myNodeIter(theNodeIter),
|
myNodeIter(theNodeIter),
|
||||||
myGetCoord(theGetCoord),
|
myGetCoord(theGetCoord),
|
||||||
myName(theName),
|
myName(theName),
|
||||||
@ -200,7 +200,7 @@ namespace{
|
|||||||
virtual ~TCoordHelper(){}
|
virtual ~TCoordHelper(){}
|
||||||
bool Next(){
|
bool Next(){
|
||||||
return myNodeIter->more() &&
|
return myNodeIter->more() &&
|
||||||
(myCurrentNode = myNodeIter->next());
|
(myCurrentNode = myNodeIter->next());
|
||||||
}
|
}
|
||||||
const SMDS_MeshNode* GetNode(){
|
const SMDS_MeshNode* GetNode(){
|
||||||
return myCurrentNode;
|
return myCurrentNode;
|
||||||
@ -352,33 +352,33 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
|
|||||||
bool anIsYDimension = false;
|
bool anIsYDimension = false;
|
||||||
bool anIsZDimension = false;
|
bool anIsZDimension = false;
|
||||||
{
|
{
|
||||||
SMDS_NodeIteratorPtr aNodesIter = myMesh->nodesIterator();
|
SMDS_NodeIteratorPtr aNodesIter = myMesh->nodesIterator();
|
||||||
double aBounds[6];
|
double aBounds[6];
|
||||||
if(aNodesIter->more()){
|
if(aNodesIter->more()){
|
||||||
const SMDS_MeshNode* aNode = aNodesIter->next();
|
const SMDS_MeshNode* aNode = aNodesIter->next();
|
||||||
aBounds[0] = aBounds[1] = aNode->X();
|
aBounds[0] = aBounds[1] = aNode->X();
|
||||||
aBounds[2] = aBounds[3] = aNode->Y();
|
aBounds[2] = aBounds[3] = aNode->Y();
|
||||||
aBounds[4] = aBounds[5] = aNode->Z();
|
aBounds[4] = aBounds[5] = aNode->Z();
|
||||||
}
|
}
|
||||||
while(aNodesIter->more()){
|
while(aNodesIter->more()){
|
||||||
const SMDS_MeshNode* aNode = aNodesIter->next();
|
const SMDS_MeshNode* aNode = aNodesIter->next();
|
||||||
aBounds[0] = min(aBounds[0],aNode->X());
|
aBounds[0] = min(aBounds[0],aNode->X());
|
||||||
aBounds[1] = max(aBounds[1],aNode->X());
|
aBounds[1] = max(aBounds[1],aNode->X());
|
||||||
|
|
||||||
aBounds[2] = min(aBounds[2],aNode->Y());
|
aBounds[2] = min(aBounds[2],aNode->Y());
|
||||||
aBounds[3] = max(aBounds[3],aNode->Y());
|
aBounds[3] = max(aBounds[3],aNode->Y());
|
||||||
|
|
||||||
aBounds[4] = min(aBounds[4],aNode->Z());
|
aBounds[4] = min(aBounds[4],aNode->Z());
|
||||||
aBounds[5] = max(aBounds[5],aNode->Z());
|
aBounds[5] = max(aBounds[5],aNode->Z());
|
||||||
}
|
}
|
||||||
|
|
||||||
double EPS = 1.0E-7;
|
double EPS = 1.0E-7;
|
||||||
anIsXDimension = (aBounds[1] - aBounds[0]) + abs(aBounds[1]) + abs(aBounds[0]) > 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;
|
anIsYDimension = (aBounds[3] - aBounds[2]) + abs(aBounds[3]) + abs(aBounds[2]) > EPS;
|
||||||
anIsZDimension = (aBounds[5] - aBounds[4]) + abs(aBounds[5]) + abs(aBounds[4]) > EPS;
|
anIsZDimension = (aBounds[5] - aBounds[4]) + abs(aBounds[5]) + abs(aBounds[4]) > EPS;
|
||||||
aMeshDimension = anIsXDimension + anIsYDimension + anIsZDimension;
|
aMeshDimension = anIsXDimension + anIsYDimension + anIsZDimension;
|
||||||
if(!aMeshDimension)
|
if(!aMeshDimension)
|
||||||
aMeshDimension = 3;
|
aMeshDimension = 3;
|
||||||
// PAL16857(SMESH not conform to the MED convention):
|
// PAL16857(SMESH not conform to the MED convention):
|
||||||
if ( aMeshDimension == 2 && anIsZDimension ) // 2D only if mesh is in XOY plane
|
if ( aMeshDimension == 2 && anIsZDimension ) // 2D only if mesh is in XOY plane
|
||||||
aMeshDimension = 3;
|
aMeshDimension = 3;
|
||||||
@ -395,24 +395,24 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
|
|||||||
SMDS_NodeIteratorPtr aNodesIter = myMesh->nodesIterator();
|
SMDS_NodeIteratorPtr aNodesIter = myMesh->nodesIterator();
|
||||||
switch(aMeshDimension){
|
switch(aMeshDimension){
|
||||||
case 3:
|
case 3:
|
||||||
aCoordHelperPtr.reset(new TCoordHelper(aNodesIter,aXYZGetCoord,aXYZName));
|
aCoordHelperPtr.reset(new TCoordHelper(aNodesIter,aXYZGetCoord,aXYZName));
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if(anIsXDimension && anIsYDimension)
|
if(anIsXDimension && anIsYDimension)
|
||||||
aCoordHelperPtr.reset(new TCoordHelper(aNodesIter,aXYGetCoord,aXYName));
|
aCoordHelperPtr.reset(new TCoordHelper(aNodesIter,aXYGetCoord,aXYName));
|
||||||
if(anIsYDimension && anIsZDimension)
|
if(anIsYDimension && anIsZDimension)
|
||||||
aCoordHelperPtr.reset(new TCoordHelper(aNodesIter,aYZGetCoord,aYZName));
|
aCoordHelperPtr.reset(new TCoordHelper(aNodesIter,aYZGetCoord,aYZName));
|
||||||
if(anIsXDimension && anIsZDimension)
|
if(anIsXDimension && anIsZDimension)
|
||||||
aCoordHelperPtr.reset(new TCoordHelper(aNodesIter,aXZGetCoord,aXZName));
|
aCoordHelperPtr.reset(new TCoordHelper(aNodesIter,aXZGetCoord,aXZName));
|
||||||
break;
|
break;
|
||||||
case 1:
|
case 1:
|
||||||
if(anIsXDimension)
|
if(anIsXDimension)
|
||||||
aCoordHelperPtr.reset(new TCoordHelper(aNodesIter,aXGetCoord,aXName));
|
aCoordHelperPtr.reset(new TCoordHelper(aNodesIter,aXGetCoord,aXName));
|
||||||
if(anIsYDimension)
|
if(anIsYDimension)
|
||||||
aCoordHelperPtr.reset(new TCoordHelper(aNodesIter,aYGetCoord,aYName));
|
aCoordHelperPtr.reset(new TCoordHelper(aNodesIter,aYGetCoord,aYName));
|
||||||
if(anIsZDimension)
|
if(anIsZDimension)
|
||||||
aCoordHelperPtr.reset(new TCoordHelper(aNodesIter,aZGetCoord,aZName));
|
aCoordHelperPtr.reset(new TCoordHelper(aNodesIter,aZGetCoord,aZName));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -495,7 +495,7 @@ Driver_Mesh::Status DriverMED_W_SMESHDS_Mesh::Perform()
|
|||||||
// coordinates
|
// coordinates
|
||||||
TCoordSlice aTCoordSlice = aNodeInfo->GetCoordSlice( iNode );
|
TCoordSlice aTCoordSlice = aNodeInfo->GetCoordSlice( iNode );
|
||||||
for(TInt iCoord = 0; iCoord < aMeshDimension; iCoord++){
|
for(TInt iCoord = 0; iCoord < aMeshDimension; iCoord++){
|
||||||
aTCoordSlice[iCoord] = aCoordHelperPtr->GetCoord(iCoord);
|
aTCoordSlice[iCoord] = aCoordHelperPtr->GetCoord(iCoord);
|
||||||
}
|
}
|
||||||
// node number
|
// node number
|
||||||
int aNodeID = aCoordHelperPtr->GetID();
|
int aNodeID = aCoordHelperPtr->GetID();
|
||||||
|
Loading…
Reference in New Issue
Block a user