// File: BRep_Builder.lxx // Created: Tue Jul 2 11:45:26 1991 // Author: Remi LEQUETTE #include #include #include #include #include //======================================================================= //function : MakeFace //purpose : //======================================================================= inline void BRep_Builder::MakeFace(TopoDS_Face& F) const { Handle(BRep_TFace) TF = new BRep_TFace(); MakeShape(F,TF); } //======================================================================= //function : MakeEdge //purpose : make edge from curve //======================================================================= inline void BRep_Builder::MakeEdge(TopoDS_Edge& E, const Handle(Geom_Curve)& C, const Standard_Real Tol) const { MakeEdge(E); UpdateEdge(E,C,TopLoc_Location(),Tol); } //======================================================================= //function : MakeEdge //purpose : make edge from curve //======================================================================= inline void BRep_Builder::MakeEdge(TopoDS_Edge& E, const Handle(Poly_Polygon3D)& P) const { MakeEdge(E); UpdateEdge(E,P); } //======================================================================= //function : MakeEdge //purpose : make edge from triangulation //======================================================================= inline void BRep_Builder::MakeEdge(TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& P, const Handle(Poly_Triangulation)& T) const { MakeEdge(E); UpdateEdge(E,P,T,TopLoc_Location()); } //======================================================================= //function : MakeEdge //purpose : make edge from triangulation //======================================================================= inline void BRep_Builder::MakeEdge(TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& P, const Handle(Poly_Triangulation)& T, const TopLoc_Location& L) const { MakeEdge(E); UpdateEdge(E,P,T,L); } //======================================================================= //function : MakeEdge //purpose : make edge from curve //======================================================================= inline void BRep_Builder::MakeEdge(TopoDS_Edge& E, const Handle(Geom_Curve)& C, const TopLoc_Location& L, const Standard_Real Tol) const { MakeEdge(E); UpdateEdge(E,C,L,Tol); } //======================================================================= //function : UpdateEdge //purpose : //======================================================================= inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E, const Handle(Geom_Curve)& C, const Standard_Real Tol) const { UpdateEdge(E,C,TopLoc_Location(),Tol); } //======================================================================= //function : UpdateEdge //purpose : //======================================================================= inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C, const TopoDS_Face& F, const Standard_Real Tol) const { TopLoc_Location l; UpdateEdge(E,C,BRep_Tool::Surface(F,l),l,Tol); } //======================================================================= //function : UpdateEdge //purpose : //======================================================================= inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E, const Handle(Geom2d_Curve)& C1, const Handle(Geom2d_Curve)& C2, const TopoDS_Face& F, const Standard_Real Tol) const { TopLoc_Location l; UpdateEdge(E,C1,C2,BRep_Tool::Surface(F,l),l,Tol); } //======================================================================= //function : UpdateEdge //purpose : //======================================================================= inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E, const Handle(Poly_Polygon3D)& P) const { UpdateEdge(E,P,TopLoc_Location()); } //======================================================================= //function : UpdateEdge //purpose : //======================================================================= inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& P, const Handle(Poly_Triangulation)& T) const { UpdateEdge(E,P,T,TopLoc_Location()); } //======================================================================= //function : UpdateEdge //purpose : //======================================================================= inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E, const Handle(Poly_PolygonOnTriangulation)& P1, const Handle(Poly_PolygonOnTriangulation)& P2, const Handle(Poly_Triangulation)& T) const { UpdateEdge(E,P1,P2,T,TopLoc_Location()); } //======================================================================= //function : Range //purpose : //======================================================================= inline void BRep_Builder::Range(const TopoDS_Edge& E, const TopoDS_Face& F, const Standard_Real First, const Standard_Real Last) const { TopLoc_Location l; Range(E,BRep_Tool::Surface(F,l),l,First,Last); } //======================================================================= //function : MakeVertex //purpose : undefined vertex //======================================================================= inline void BRep_Builder::MakeVertex(TopoDS_Vertex& V) const { Handle(BRep_TVertex) TV = new BRep_TVertex(); MakeShape(V,TV); } //======================================================================= //function : MakeVertex //purpose : vertex from 3d point //======================================================================= inline void BRep_Builder::MakeVertex(TopoDS_Vertex& V, const gp_Pnt& P, const Standard_Real Tol) const { MakeVertex(V); UpdateVertex(V,P,Tol); } //======================================================================= //function : UpdateVertex //purpose : update vertex with parameter on edge on face //======================================================================= inline void BRep_Builder::UpdateVertex(const TopoDS_Vertex& V, const Standard_Real Par, const TopoDS_Edge& E, const TopoDS_Face& F, const Standard_Real Tol) const { TopLoc_Location l; UpdateVertex(V,Par,E,BRep_Tool::Surface(F,l),l,Tol); }