From 2ac338d5787e31ab89824bf36610920e022c21f7 Mon Sep 17 00:00:00 2001 From: eap Date: Wed, 7 Sep 2005 04:42:49 +0000 Subject: [PATCH] PAL9022. Attach generated mesh elements to whatever meshed shape, SHELL or SOLID --- src/StdMeshers/StdMeshers_Hexa_3D.cxx | 21 ++++----------------- src/StdMeshers/StdMeshers_Penta_3D.cxx | 19 ++++--------------- 2 files changed, 8 insertions(+), 32 deletions(-) diff --git a/src/StdMeshers/StdMeshers_Hexa_3D.cxx b/src/StdMeshers/StdMeshers_Hexa_3D.cxx index 597c35404..a3ed4f11a 100644 --- a/src/StdMeshers/StdMeshers_Hexa_3D.cxx +++ b/src/StdMeshers/StdMeshers_Hexa_3D.cxx @@ -606,17 +606,7 @@ bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh & aMesh, // - compute the point 3D // - store the point 3D in SMESHDS, store its ID in 3D structure - TopoDS_Shell aShell; - TopExp_Explorer exp(aShape, TopAbs_SHELL); - if (exp.More()) - { - aShell = TopoDS::Shell(exp.Current()); - } - else - { - MESSAGE("no shell..."); - ASSERT(0); - } + int shapeID = meshDS->ShapeToIndex( aShape ); Pt3 p000, p001, p010, p011, p100, p101, p110, p111; Pt3 px00, px01, px10, px11; @@ -690,8 +680,7 @@ bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh & aMesh, SMDS_MeshNode * node = meshDS->AddNode(X[0], X[1], X[2]); np[ijk].node = node; - //meshDS->SetNodeInVolume(node, TopoDS::Solid(aShape)); - meshDS->SetNodeInVolume(node, aShell); + meshDS->SetNodeInVolume(node, shapeID); } } } @@ -755,9 +744,7 @@ bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh & aMesh, np[n7].node, np[n6].node); - meshDS->SetMeshElementOnShape(elt, aShell); - - + meshDS->SetMeshElementOnShape(elt, shapeID); } } if ( np ) delete [] np; @@ -1062,7 +1049,7 @@ bool ComputePentahedralMesh(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape) //printf(" ComputePentahedralMesh HERE\n"); // bool bOK; - int iErr; + //int iErr; StdMeshers_Penta_3D anAlgo; // bOK=anAlgo.Compute(aMesh, aShape); diff --git a/src/StdMeshers/StdMeshers_Penta_3D.cxx b/src/StdMeshers/StdMeshers_Penta_3D.cxx index e1a4c028f..ad6ebc831 100644 --- a/src/StdMeshers/StdMeshers_Penta_3D.cxx +++ b/src/StdMeshers/StdMeshers_Penta_3D.cxx @@ -60,10 +60,6 @@ using namespace std; typedef map < int, int, less >::iterator \ StdMeshers_IteratorOfDataMapOfIntegerInteger; -//======================================================================= -// -// StdMeshers_Penta_3D -// //======================================================================= //function : StdMeshers_Penta_3D //purpose : @@ -597,17 +593,10 @@ void StdMeshers_Penta_3D::MakeVolumeMesh() // int i, j, ij, ik, i1, i2, aSSID; // - TopoDS_Shell aShell; - TopExp_Explorer aExp; - // SMESH_Mesh* pMesh =GetMesh(); SMESHDS_Mesh* meshDS=pMesh->GetMeshDS(); // - aExp.Init(myShape, TopAbs_SHELL); - for (; aExp.More(); aExp.Next()){ - aShell=TopoDS::Shell(aExp.Current()); - break; - } + int shapeID = meshDS->ShapeToIndex( myShape ); // // 1. Set Node In Volume ik=myISize-1; @@ -618,7 +607,7 @@ void StdMeshers_Penta_3D::MakeVolumeMesh() aSSID=aTN.ShapeSupportID(); if (aSSID==SMESH_Block::ID_NONE) { SMDS_MeshNode* aNode=(SMDS_MeshNode*)aTN.Node(); - meshDS->SetNodeInVolume(aNode, aShell); + meshDS->SetNodeInVolume(aNode, shapeID); } } } @@ -714,7 +703,7 @@ void StdMeshers_Penta_3D::MakeVolumeMesh() default: continue; } - meshDS->SetMeshElementOnShape(aV, aShell); + meshDS->SetMeshElementOnShape(aV, shapeID); } } } @@ -873,7 +862,7 @@ void StdMeshers_Penta_3D::CreateNode(const bool bIsUpperLayer, { myErrorStatus=0; // - int iErr; + // int iErr; double aX, aY, aZ; // gp_Pnt aP; -- 2.30.2