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
Fix for bug IPAL10313 (It is impossible to select "Start point" from 3D viewer in...
[modules/smesh.git]
/
src
/
StdMeshers
/
StdMeshers_Hexa_3D.cxx
diff --git
a/src/StdMeshers/StdMeshers_Hexa_3D.cxx
b/src/StdMeshers/StdMeshers_Hexa_3D.cxx
index 1eea74196f8767b1d71ec5e8cace95727ea3354b..a3ed4f11a7142cca9be57bc944b2e49de2af9d57 100644
(file)
--- a/
src/StdMeshers/StdMeshers_Hexa_3D.cxx
+++ b/
src/StdMeshers/StdMeshers_Hexa_3D.cxx
@@
-90,6
+90,8
@@
StdMeshers_Hexa_3D::StdMeshers_Hexa_3D(int hypId, int studyId,
StdMeshers_Hexa_3D::~StdMeshers_Hexa_3D()
{
MESSAGE("StdMeshers_Hexa_3D::~StdMeshers_Hexa_3D");
StdMeshers_Hexa_3D::~StdMeshers_Hexa_3D()
{
MESSAGE("StdMeshers_Hexa_3D::~StdMeshers_Hexa_3D");
+ for (int i = 0; i < 6; i++)
+ StdMeshers_Quadrangle_2D::QuadDelete(_quads[i]);
}
//=============================================================================
}
//=============================================================================
@@
-169,7
+171,7
@@
bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh & aMesh,
// 0. - shape and face mesh verification
// 0.1 - shape must be a solid (or a shell) with 6 faces
// 0. - shape and face mesh verification
// 0.1 - shape must be a solid (or a shell) with 6 faces
- MESSAGE("---");
+
//
MESSAGE("---");
vector < SMESH_subMesh * >meshFaces;
for (TopExp_Explorer exp(aShape, TopAbs_FACE); exp.More(); exp.Next())
vector < SMESH_subMesh * >meshFaces;
for (TopExp_Explorer exp(aShape, TopAbs_FACE); exp.More(); exp.Next())
@@
-404,16
+406,7
@@
bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh & aMesh,
int nbz = _cube.quad_Y0->nbPts[0];
if (cy0.a1 != 0.) nbz = _cube.quad_Y0->nbPts[1];
int nbz = _cube.quad_Y0->nbPts[0];
if (cy0.a1 != 0.) nbz = _cube.quad_Y0->nbPts[1];
-// int nbx = _cube.quad_Y0->nbPts[0];
-// int nby = _cube.quad_Y0->nbPts[1];
-// int nbz;
-// if (cx0.a1 != 0)
-// nbz = _cube.quad_X0->nbPts[1];
-// else
-// nbz = _cube.quad_X0->nbPts[0];
- //SCRUTE(nbx);
- //SCRUTE(nby);
- //SCRUTE(nbz);
+
int i1, j1, nbxyz = nbx * nby * nbz;
Point3DStruct *np = new Point3DStruct[nbxyz];
int i1, j1, nbxyz = nbx * nby * nbz;
Point3DStruct *np = new Point3DStruct[nbxyz];
@@
-613,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
// - 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;
Pt3 p000, p001, p010, p011, p100, p101, p110, p111;
Pt3 px00, px01, px10, px11;
@@
-697,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;
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);
}
}
}
}
}
}
@@
-762,9
+744,7
@@
bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh & aMesh,
np[n7].node,
np[n6].node);
np[n7].node,
np[n6].node);
- meshDS->SetMeshElementOnShape(elt, aShell);
-
-
+ meshDS->SetMeshElementOnShape(elt, shapeID);
}
}
if ( np ) delete [] np;
}
}
if ( np ) delete [] np;
@@
-1069,7
+1049,7
@@
bool ComputePentahedralMesh(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
//printf(" ComputePentahedralMesh HERE\n");
//
bool bOK;
//printf(" ComputePentahedralMesh HERE\n");
//
bool bOK;
- int iErr;
+
//
int iErr;
StdMeshers_Penta_3D anAlgo;
//
bOK=anAlgo.Compute(aMesh, aShape);
StdMeshers_Penta_3D anAlgo;
//
bOK=anAlgo.Compute(aMesh, aShape);