Warning, /include/opencascade/BRep_Builder.lxx is written in an unsupported language. File is not indexed.
0001 // Created on: 1991-07-02
0002 // Created by: Remi LEQUETTE
0003 // Copyright (c) 1991-1999 Matra Datavision
0004 // Copyright (c) 1999-2014 OPEN CASCADE SAS
0005 //
0006 // This file is part of Open CASCADE Technology software library.
0007 //
0008 // This library is free software; you can redistribute it and/or modify it under
0009 // the terms of the GNU Lesser General Public License version 2.1 as published
0010 // by the Free Software Foundation, with special exception defined in the file
0011 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
0012 // distribution for complete text of the license and disclaimer of any warranty.
0013 //
0014 // Alternatively, this file may be used under the terms of Open CASCADE
0015 // commercial license or contractual agreement.
0016
0017 #include <TopoDS_Face.hxx>
0018 #include <TopoDS_Vertex.hxx>
0019 #include <BRep_TFace.hxx>
0020 #include <BRep_TVertex.hxx>
0021 #include <BRep_Tool.hxx>
0022
0023
0024 //=======================================================================
0025 //function : MakeFace
0026 //purpose :
0027 //=======================================================================
0028
0029 inline void BRep_Builder::MakeFace(TopoDS_Face& F) const
0030 {
0031 Handle(BRep_TFace) TF = new BRep_TFace();
0032 MakeShape(F,TF);
0033 }
0034
0035
0036 //=======================================================================
0037 //function : MakeEdge
0038 //purpose : make edge from curve
0039 //=======================================================================
0040
0041 inline void BRep_Builder::MakeEdge(TopoDS_Edge& E,
0042 const Handle(Geom_Curve)& C,
0043 const Standard_Real Tol) const
0044 {
0045 MakeEdge(E);
0046 UpdateEdge(E,C,TopLoc_Location(),Tol);
0047 }
0048
0049
0050 //=======================================================================
0051 //function : MakeEdge
0052 //purpose : make edge from curve
0053 //=======================================================================
0054
0055 inline void BRep_Builder::MakeEdge(TopoDS_Edge& E,
0056 const Handle(Poly_Polygon3D)& P) const
0057 {
0058 MakeEdge(E);
0059 UpdateEdge(E,P);
0060 }
0061
0062 //=======================================================================
0063 //function : MakeEdge
0064 //purpose : make edge from triangulation
0065 //=======================================================================
0066
0067 inline void BRep_Builder::MakeEdge(TopoDS_Edge& E,
0068 const Handle(Poly_PolygonOnTriangulation)& P,
0069 const Handle(Poly_Triangulation)& T) const
0070 {
0071 MakeEdge(E);
0072 UpdateEdge(E,P,T,TopLoc_Location());
0073 }
0074
0075
0076 //=======================================================================
0077 //function : MakeEdge
0078 //purpose : make edge from triangulation
0079 //=======================================================================
0080
0081 inline void BRep_Builder::MakeEdge(TopoDS_Edge& E,
0082 const Handle(Poly_PolygonOnTriangulation)& P,
0083 const Handle(Poly_Triangulation)& T,
0084 const TopLoc_Location& L) const
0085 {
0086 MakeEdge(E);
0087 UpdateEdge(E,P,T,L);
0088 }
0089
0090
0091 //=======================================================================
0092 //function : MakeEdge
0093 //purpose : make edge from curve
0094 //=======================================================================
0095
0096 inline void BRep_Builder::MakeEdge(TopoDS_Edge& E,
0097 const Handle(Geom_Curve)& C,
0098 const TopLoc_Location& L,
0099 const Standard_Real Tol) const
0100 {
0101 MakeEdge(E);
0102 UpdateEdge(E,C,L,Tol);
0103 }
0104
0105
0106 //=======================================================================
0107 //function : UpdateEdge
0108 //purpose :
0109 //=======================================================================
0110
0111 inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
0112 const Handle(Geom_Curve)& C,
0113 const Standard_Real Tol) const
0114 {
0115 UpdateEdge(E,C,TopLoc_Location(),Tol);
0116 }
0117
0118
0119 //=======================================================================
0120 //function : UpdateEdge
0121 //purpose :
0122 //=======================================================================
0123
0124 inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
0125 const Handle(Geom2d_Curve)& C,
0126 const TopoDS_Face& F,
0127 const Standard_Real Tol) const
0128 {
0129 TopLoc_Location l;
0130 UpdateEdge(E,C,BRep_Tool::Surface(F,l),l,Tol);
0131 }
0132
0133
0134 //=======================================================================
0135 //function : UpdateEdge
0136 //purpose :
0137 //=======================================================================
0138
0139 inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
0140 const Handle(Geom2d_Curve)& C1,
0141 const Handle(Geom2d_Curve)& C2,
0142 const TopoDS_Face& F,
0143 const Standard_Real Tol) const
0144 {
0145 TopLoc_Location l;
0146 UpdateEdge(E,C1,C2,BRep_Tool::Surface(F,l),l,Tol);
0147 }
0148
0149
0150 //=======================================================================
0151 //function : UpdateEdge
0152 //purpose :
0153 //=======================================================================
0154
0155 inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
0156 const Handle(Poly_Polygon3D)& P) const
0157 {
0158 UpdateEdge(E,P,TopLoc_Location());
0159 }
0160
0161
0162 //=======================================================================
0163 //function : UpdateEdge
0164 //purpose :
0165 //=======================================================================
0166
0167 inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
0168 const Handle(Poly_PolygonOnTriangulation)& P,
0169 const Handle(Poly_Triangulation)& T) const
0170 {
0171 UpdateEdge(E,P,T,TopLoc_Location());
0172 }
0173
0174
0175 //=======================================================================
0176 //function : UpdateEdge
0177 //purpose :
0178 //=======================================================================
0179
0180 inline void BRep_Builder::UpdateEdge(const TopoDS_Edge& E,
0181 const Handle(Poly_PolygonOnTriangulation)& P1,
0182 const Handle(Poly_PolygonOnTriangulation)& P2,
0183 const Handle(Poly_Triangulation)& T) const
0184 {
0185 UpdateEdge(E,P1,P2,T,TopLoc_Location());
0186 }
0187
0188
0189 //=======================================================================
0190 //function : Range
0191 //purpose :
0192 //=======================================================================
0193
0194 inline void BRep_Builder::Range(const TopoDS_Edge& E,
0195 const TopoDS_Face& F,
0196 const Standard_Real First,
0197 const Standard_Real Last) const
0198 {
0199 TopLoc_Location l;
0200 Range(E,BRep_Tool::Surface(F,l),l,First,Last);
0201 }
0202
0203
0204 //=======================================================================
0205 //function : MakeVertex
0206 //purpose : undefined vertex
0207 //=======================================================================
0208
0209 inline void BRep_Builder::MakeVertex(TopoDS_Vertex& V) const
0210 {
0211 Handle(BRep_TVertex) TV = new BRep_TVertex();
0212 MakeShape(V,TV);
0213 }
0214
0215
0216 //=======================================================================
0217 //function : MakeVertex
0218 //purpose : vertex from 3d point
0219 //=======================================================================
0220
0221 inline void BRep_Builder::MakeVertex(TopoDS_Vertex& V,
0222 const gp_Pnt& P,
0223 const Standard_Real Tol) const
0224 {
0225 MakeVertex(V);
0226 UpdateVertex(V,P,Tol);
0227 }
0228
0229
0230 //=======================================================================
0231 //function : UpdateVertex
0232 //purpose : update vertex with parameter on edge on face
0233 //=======================================================================
0234
0235 inline void BRep_Builder::UpdateVertex(const TopoDS_Vertex& V,
0236 const Standard_Real Par,
0237 const TopoDS_Edge& E,
0238 const TopoDS_Face& F,
0239 const Standard_Real Tol) const
0240 {
0241 TopLoc_Location l;
0242 UpdateVertex(V,Par,E,BRep_Tool::Surface(F,l),l,Tol);
0243 }