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