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
9 // under the terms of the GNU Lesser General Public 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.
17 #include <BRepFilletAPI_MakeFillet2d.ixx>
19 //=======================================================================
20 //function : BRepFilletAPI_MakeFillet2d
22 //=======================================================================
24 BRepFilletAPI_MakeFillet2d::BRepFilletAPI_MakeFillet2d()
28 //=======================================================================
29 //function : BRepFilletAPI_MakeFillet2d
31 //=======================================================================
33 BRepFilletAPI_MakeFillet2d::BRepFilletAPI_MakeFillet2d(const TopoDS_Face& F)
38 //=======================================================================
41 //=======================================================================
43 void BRepFilletAPI_MakeFillet2d::Init(const TopoDS_Face& F)
48 //=======================================================================
51 //=======================================================================
53 void BRepFilletAPI_MakeFillet2d::Init(const TopoDS_Face& RefFace, const TopoDS_Face& ModFace)
55 myMakeChFi2d.Init(RefFace, ModFace);
58 //=======================================================================
59 //function : AddFillet
61 //=======================================================================
63 TopoDS_Edge BRepFilletAPI_MakeFillet2d::AddFillet(const TopoDS_Vertex& V, const Standard_Real Radius)
65 return myMakeChFi2d.AddFillet(V, Radius);
68 //=======================================================================
69 //function : ModifyFillet
71 //=======================================================================
73 TopoDS_Edge BRepFilletAPI_MakeFillet2d::ModifyFillet(const TopoDS_Edge& Fillet, const Standard_Real Radius)
75 return myMakeChFi2d.ModifyFillet(Fillet, Radius);
78 //=======================================================================
79 //function : RemoveFillet
81 //=======================================================================
83 TopoDS_Vertex BRepFilletAPI_MakeFillet2d::RemoveFillet(const TopoDS_Edge& Fillet)
85 return myMakeChFi2d.RemoveFillet(Fillet);
88 //=======================================================================
89 //function : AddChamfer
91 //=======================================================================
93 TopoDS_Edge BRepFilletAPI_MakeFillet2d::AddChamfer(const TopoDS_Edge& E1, const TopoDS_Edge& E2, const Standard_Real D1, const Standard_Real D2)
95 return myMakeChFi2d.AddChamfer(E1, E2, D1, D2);
98 //=======================================================================
99 //function : AddChamfer
101 //=======================================================================
103 TopoDS_Edge BRepFilletAPI_MakeFillet2d::AddChamfer(const TopoDS_Edge& E, const TopoDS_Vertex& V, const Standard_Real D, const Standard_Real Ang)
105 return myMakeChFi2d.AddChamfer(E, V, D, Ang);
108 //=======================================================================
109 //function : ModifyChamfer
111 //=======================================================================
113 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)
115 return myMakeChFi2d.ModifyChamfer(Chamfer, E1, E2, D1, D2);
118 //=======================================================================
119 //function : ModifyChamfer
121 //=======================================================================
123 TopoDS_Edge BRepFilletAPI_MakeFillet2d::ModifyChamfer(const TopoDS_Edge& Chamfer, const TopoDS_Edge& E, const Standard_Real D, const Standard_Real Ang)
125 return myMakeChFi2d.ModifyChamfer(Chamfer, E, D, Ang);
128 //=======================================================================
129 //function : RemoveChamfer
131 //=======================================================================
133 TopoDS_Vertex BRepFilletAPI_MakeFillet2d::RemoveChamfer(const TopoDS_Edge& Chamfer)
135 return myMakeChFi2d.RemoveChamfer(Chamfer);
138 //=======================================================================
139 //function : BasisEdge
141 //=======================================================================
143 const TopoDS_Edge& BRepFilletAPI_MakeFillet2d::BasisEdge(const TopoDS_Edge& E) const
145 return myMakeChFi2d.BasisEdge(E);
149 //=======================================================================
152 //=======================================================================
154 void BRepFilletAPI_MakeFillet2d::Build()
156 // test if the operation is done
157 if (Status() == ChFi2d_IsDone) {
159 myShape = myMakeChFi2d.Result();
165 //=======================================================================
166 //function : Modified
168 //=======================================================================
170 const TopTools_ListOfShape& BRepFilletAPI_MakeFillet2d::Modified(const TopoDS_Shape& E)
173 myGenerated.Append(DescendantEdge(TopoDS::Edge(E)));
177 //=======================================================================
178 //function : NbCurves
180 //=======================================================================
182 Standard_Integer BRepFilletAPI_MakeFillet2d::NbCurves() const
184 return NbFillet() + NbChamfer();
187 //=======================================================================
188 //function : NewEdges
190 //=======================================================================
192 const TopTools_ListOfShape& BRepFilletAPI_MakeFillet2d::NewEdges(const Standard_Integer I)
196 myGenerated.Append(FilletEdges()(I));
198 myGenerated.Append(ChamferEdges()(I-NbFillet()));