mirror of
https://git.salome-platform.org/gitpub/modules/smesh.git
synced 2025-01-28 14:00:33 +05:00
Fix shape id in GetMediumNode()
This commit is contained in:
parent
e3994c67d1
commit
642cb31553
@ -29,7 +29,6 @@
|
|||||||
bool SMESH_MesherHelper::IsQuadraticSubMesh(const TopoDS_Shape& aSh)
|
bool SMESH_MesherHelper::IsQuadraticSubMesh(const TopoDS_Shape& aSh)
|
||||||
{
|
{
|
||||||
SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
|
SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
|
||||||
myShapeID = meshDS->ShapeToIndex(aSh);
|
|
||||||
// we can create quadratic elements only if all elements
|
// we can create quadratic elements only if all elements
|
||||||
// created on subshapes of given shape are quadratic
|
// created on subshapes of given shape are quadratic
|
||||||
// also we have to fill myNLinkNodeMap
|
// also we have to fill myNLinkNodeMap
|
||||||
@ -91,7 +90,10 @@ bool SMESH_MesherHelper::IsQuadraticSubMesh(const TopoDS_Shape& aSh)
|
|||||||
|
|
||||||
void SMESH_MesherHelper::SetSubShape(const TopoDS_Shape& aSh)
|
void SMESH_MesherHelper::SetSubShape(const TopoDS_Shape& aSh)
|
||||||
{
|
{
|
||||||
|
SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
|
||||||
|
|
||||||
myShape = aSh;
|
myShape = aSh;
|
||||||
|
myShapeID = meshDS->ShapeToIndex(aSh);
|
||||||
|
|
||||||
// treatment of periodic faces
|
// treatment of periodic faces
|
||||||
if ( aSh.ShapeType() == TopAbs_FACE )
|
if ( aSh.ShapeType() == TopAbs_FACE )
|
||||||
@ -100,7 +102,6 @@ void SMESH_MesherHelper::SetSubShape(const TopoDS_Shape& aSh)
|
|||||||
BRepAdaptor_Surface surface( face );
|
BRepAdaptor_Surface surface( face );
|
||||||
if ( surface.IsUPeriodic() || surface.IsVPeriodic() )
|
if ( surface.IsUPeriodic() || surface.IsVPeriodic() )
|
||||||
{
|
{
|
||||||
SMESHDS_Mesh* meshDS = GetMesh()->GetMeshDS();
|
|
||||||
// look for a seam edge
|
// look for a seam edge
|
||||||
for ( TopExp_Explorer exp( face, TopAbs_EDGE ); exp.More(); exp.Next()) {
|
for ( TopExp_Explorer exp( face, TopAbs_EDGE ); exp.More(); exp.Next()) {
|
||||||
const TopoDS_Edge& edge = TopoDS::Edge( exp.Current() );
|
const TopoDS_Edge& edge = TopoDS::Edge( exp.Current() );
|
||||||
@ -314,8 +315,10 @@ const SMDS_MeshNode* SMESH_MesherHelper::GetMediumNode(const SMDS_MeshNode* n1,
|
|||||||
TopoDS_Face F;
|
TopoDS_Face F;
|
||||||
if( myShape.IsNull() )
|
if( myShape.IsNull() )
|
||||||
F = TopoDS::Face(meshDS->IndexToShape(faceID));
|
F = TopoDS::Face(meshDS->IndexToShape(faceID));
|
||||||
else
|
else {
|
||||||
F = TopoDS::Face(myShape);
|
F = TopoDS::Face(myShape);
|
||||||
|
faceID = myShapeID;
|
||||||
|
}
|
||||||
|
|
||||||
gp_XY p1 = GetNodeUV(F,n1,n2);
|
gp_XY p1 = GetNodeUV(F,n1,n2);
|
||||||
gp_XY p2 = GetNodeUV(F,n2,n1);
|
gp_XY p2 = GetNodeUV(F,n2,n1);
|
||||||
@ -357,8 +360,10 @@ const SMDS_MeshNode* SMESH_MesherHelper::GetMediumNode(const SMDS_MeshNode* n1,
|
|||||||
TopoDS_Edge E;
|
TopoDS_Edge E;
|
||||||
if( myShape.IsNull() )
|
if( myShape.IsNull() )
|
||||||
E = TopoDS::Edge(meshDS->IndexToShape(edgeID));
|
E = TopoDS::Edge(meshDS->IndexToShape(edgeID));
|
||||||
else
|
else {
|
||||||
E = TopoDS::Edge(myShape);
|
E = TopoDS::Edge(myShape);
|
||||||
|
edgeID = myShapeID;
|
||||||
|
}
|
||||||
|
|
||||||
double p1 = GetNodeU(E,n1);
|
double p1 = GetNodeU(E,n1);
|
||||||
double p2 = GetNodeU(E,n2);
|
double p2 = GetNodeU(E,n2);
|
||||||
|
Loading…
Reference in New Issue
Block a user