//=======================================================================
void visitEdges (const Handle (IMeshTools_ShapeVisitor)& theVisitor,
const TopoDS_Shape& theShape,
+ const Standard_Boolean isResetLocation,
const TopAbs_ShapeEnum theToFind,
const TopAbs_ShapeEnum theToAvoid = TopAbs_SHAPE)
{
continue;
}
- theVisitor->Visit (aEdge);
+ theVisitor->Visit (isResetLocation ?
+ TopoDS::Edge (aEdge.Located (TopLoc_Location ())) :
+ aEdge);
}
}
}
const Handle (IMeshTools_ShapeVisitor)& theVisitor)
{
// Explore all free edges in shape.
- visitEdges (theVisitor, GetShape (), TopAbs_EDGE, TopAbs_FACE);
+ visitEdges (theVisitor, GetShape (), Standard_True, TopAbs_EDGE, TopAbs_FACE);
// Explore all related to some face edges in shape.
// make array of faces suitable for processing (excluding faces without surface)
}
// Explore all edges in face.
- visitEdges (theVisitor, aFace, TopAbs_EDGE);
+ visitEdges (theVisitor, aFace, Standard_False, TopAbs_EDGE);
// Store only forward faces in order to prevent inverse issue.
theVisitor->Visit (TopoDS::Face (aFace.Oriented (TopAbs_FORWARD)));
--- /dev/null
+puts "========="
+puts "0031131: Mesh - location of Wire affects Poly_Polygon3D"
+puts "========="
+puts ""
+
+vertex v1 0 0 0
+vertex v2 10 0 0
+vertex v3 10 10 0
+edge e12 v1 v2
+edge e23 v2 v3
+wire w e12 e23
+tcopy w w0
+copy w w11
+copy w w12
+copy w w13
+ttranslate w12 0 0 10
+ttranslate w13 0 0 20
+compound w11 w12 w13 c
+incmesh c 1
+vclear
+vinit View1
+vdefaults -autoTriang 0
+explode w11 v
+#vdisplay w11 w0 w11_1 w11_2 w11_3
+vdisplay w11 w11_1 w11_2 w11_3
+vfit
+
+bounding w11 -save xmin ymin zmin xmax ymax zmax
+checkpoint Min [list [dval xmin] [dval ymin] [dval zmin]] { -1 -1 -1 } 0.0001
+checkpoint Max [list [dval xmax] [dval ymax] [dval zmax]] { 11 11 1 } 0.0001
+
+checkview -screenshot -3d -path ${imagedir}/${test_image}.png