Anonymous (not verified) Tue, 05/30/2000 - 16:14 Forums: Other usage issuesHow can we create an Edge on a Face or a surface, linking 2 existing Vertices, with criterion such as for example being the shortest Edge as possible? Thanx Guillen Antonio Fri, 07/28/2000 - 14:33 TopoDS_Face Face =TopoDS::Face(XX); Handle (Geom_Surface) Surface = BRep_Tool::Surface (Face); TopoDS_Vertex VFrom = TopoDS::Vertex (YY); TopoDS_Vertex VTo = TopoDS::Vertex (ZZ); gp_Pnt PFrom = BRep_Tool::Pnt(VFrom); gp_Pnt PTo = BRep_Tool::Pnt(VTo); TopoDS_Edge Result; BRep_Builder Builder; Builder.MakeEdge (Result); Handle (Geom2d_Curve) OriginalCurve = Handle (Geom2d_Curve)::DownCast(aGeometryForTheEdge); Handle (Geom2d_Curve) Curve = Handle (Geom2d_Curve)::DownCast(OriginalCurve->Copy()); Handle (Geom2d_Curve) Curve1 = Handle (Geom2d_Curve)::DownCast(Curve->Transformed (TheTransformation)); Builder.UpdateEdge (Result, Curve1, Face, BRepBuilderAPI::Precision()); VFrom.Orientation (TopAbs_FORWARD); VTo.Orientation (TopAbs_REVERSED); Builder.Add(Result, VFrom); Builder.Add(Result, VTo); Builder.Range (Result, Face, Curve1->FirstParameter(), Curve1->LastParameter()); Standard_Boolean Curve3dIsBuilt; Curve3dIsBuilt = BRepLib::BuildCurve3d(Result); return Result; Log in to post comments
Fri, 07/28/2000 - 14:33
TopoDS_Face Face =TopoDS::Face(XX); Handle (Geom_Surface) Surface = BRep_Tool::Surface (Face);
TopoDS_Vertex VFrom = TopoDS::Vertex (YY);
TopoDS_Vertex VTo = TopoDS::Vertex (ZZ); gp_Pnt PFrom = BRep_Tool::Pnt(VFrom); gp_Pnt PTo = BRep_Tool::Pnt(VTo); TopoDS_Edge Result; BRep_Builder Builder; Builder.MakeEdge (Result); Handle (Geom2d_Curve) OriginalCurve = Handle (Geom2d_Curve)::DownCast(aGeometryForTheEdge);
Handle (Geom2d_Curve) Curve = Handle (Geom2d_Curve)::DownCast(OriginalCurve->Copy());
Handle (Geom2d_Curve) Curve1 = Handle (Geom2d_Curve)::DownCast(Curve->Transformed (TheTransformation));
Builder.UpdateEdge (Result, Curve1, Face, BRepBuilderAPI::Precision()); VFrom.Orientation (TopAbs_FORWARD); VTo.Orientation (TopAbs_REVERSED); Builder.Add(Result, VFrom); Builder.Add(Result, VTo);
Builder.Range (Result, Face, Curve1->FirstParameter(), Curve1->LastParameter()); Standard_Boolean Curve3dIsBuilt; Curve3dIsBuilt = BRepLib::BuildCurve3d(Result);
return Result;