1 // Created on: 1995-08-31
2 // Created by: Remi LEQUETTE
3 // Copyright (c) 1995-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
6 // This file is part of Open CASCADE Technology software library.
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
18 #include <BRepFilletAPI_MakeFillet2d.hxx>
19 #include <TopoDS_Edge.hxx>
20 #include <TopoDS_Face.hxx>
21 #include <TopoDS_Shape.hxx>
22 #include <TopoDS_Vertex.hxx>
24 //=======================================================================
25 //function : BRepFilletAPI_MakeFillet2d
27 //=======================================================================
28 BRepFilletAPI_MakeFillet2d::BRepFilletAPI_MakeFillet2d()
32 //=======================================================================
33 //function : BRepFilletAPI_MakeFillet2d
35 //=======================================================================
37 BRepFilletAPI_MakeFillet2d::BRepFilletAPI_MakeFillet2d(const TopoDS_Face& F)
42 //=======================================================================
45 //=======================================================================
47 void BRepFilletAPI_MakeFillet2d::Init(const TopoDS_Face& F)
52 //=======================================================================
55 //=======================================================================
57 void BRepFilletAPI_MakeFillet2d::Init(const TopoDS_Face& RefFace, const TopoDS_Face& ModFace)
59 myMakeChFi2d.Init(RefFace, ModFace);
62 //=======================================================================
63 //function : AddFillet
65 //=======================================================================
67 TopoDS_Edge BRepFilletAPI_MakeFillet2d::AddFillet(const TopoDS_Vertex& V, const Standard_Real Radius)
69 return myMakeChFi2d.AddFillet(V, Radius);
72 //=======================================================================
73 //function : ModifyFillet
75 //=======================================================================
77 TopoDS_Edge BRepFilletAPI_MakeFillet2d::ModifyFillet(const TopoDS_Edge& Fillet, const Standard_Real Radius)
79 return myMakeChFi2d.ModifyFillet(Fillet, Radius);
82 //=======================================================================
83 //function : RemoveFillet
85 //=======================================================================
87 TopoDS_Vertex BRepFilletAPI_MakeFillet2d::RemoveFillet(const TopoDS_Edge& Fillet)
89 return myMakeChFi2d.RemoveFillet(Fillet);
92 //=======================================================================
93 //function : AddChamfer
95 //=======================================================================
97 TopoDS_Edge BRepFilletAPI_MakeFillet2d::AddChamfer(const TopoDS_Edge& E1, const TopoDS_Edge& E2, const Standard_Real D1, const Standard_Real D2)
99 return myMakeChFi2d.AddChamfer(E1, E2, D1, D2);
102 //=======================================================================
103 //function : AddChamfer
105 //=======================================================================
107 TopoDS_Edge BRepFilletAPI_MakeFillet2d::AddChamfer(const TopoDS_Edge& E, const TopoDS_Vertex& V, const Standard_Real D, const Standard_Real Ang)
109 return myMakeChFi2d.AddChamfer(E, V, D, Ang);
112 //=======================================================================
113 //function : ModifyChamfer
115 //=======================================================================
117 TopoDS_Edge BRepFilletAPI_MakeFillet2d::ModifyChamfer(const TopoDS_Edge& Chamfer, const TopoDS_Edge& E1, const TopoDS_Edge& E2, const Standard_Real D1, const Standard_Real D2)
119 return myMakeChFi2d.ModifyChamfer(Chamfer, E1, E2, D1, D2);
122 //=======================================================================
123 //function : ModifyChamfer
125 //=======================================================================
127 TopoDS_Edge BRepFilletAPI_MakeFillet2d::ModifyChamfer(const TopoDS_Edge& Chamfer, const TopoDS_Edge& E, const Standard_Real D, const Standard_Real Ang)
129 return myMakeChFi2d.ModifyChamfer(Chamfer, E, D, Ang);
132 //=======================================================================
133 //function : RemoveChamfer
135 //=======================================================================
137 TopoDS_Vertex BRepFilletAPI_MakeFillet2d::RemoveChamfer(const TopoDS_Edge& Chamfer)
139 return myMakeChFi2d.RemoveChamfer(Chamfer);
142 //=======================================================================
143 //function : BasisEdge
145 //=======================================================================
147 const TopoDS_Edge& BRepFilletAPI_MakeFillet2d::BasisEdge(const TopoDS_Edge& E) const
149 return myMakeChFi2d.BasisEdge(E);
153 //=======================================================================
156 //=======================================================================
158 void BRepFilletAPI_MakeFillet2d::Build()
160 // test if the operation is done
161 if (Status() == ChFi2d_IsDone) {
163 myShape = myMakeChFi2d.Result();
169 //=======================================================================
170 //function : Modified
172 //=======================================================================
174 const TopTools_ListOfShape& BRepFilletAPI_MakeFillet2d::Modified(const TopoDS_Shape& E)
177 myGenerated.Append(DescendantEdge(TopoDS::Edge(E)));
181 //=======================================================================
182 //function : NbCurves
184 //=======================================================================
186 Standard_Integer BRepFilletAPI_MakeFillet2d::NbCurves() const
188 return NbFillet() + NbChamfer();
191 //=======================================================================
192 //function : NewEdges
194 //=======================================================================
196 const TopTools_ListOfShape& BRepFilletAPI_MakeFillet2d::NewEdges(const Standard_Integer I)
200 myGenerated.Append(FilletEdges()(I));
202 myGenerated.Append(ChamferEdges()(I-NbFillet()));