0031939: Coding - correction of spelling errors in comments
[occt.git] / src / FilletSurf / FilletSurf_Builder.hxx
1 // Created on: 1996-07-26
2 // Created by: Maria PUMBORIOS
3 // Copyright (c) 1996-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 //
6 // This file is part of Open CASCADE Technology software library.
7 //
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.
13 //
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
16
17 #ifndef _FilletSurf_Builder_HeaderFile
18 #define _FilletSurf_Builder_HeaderFile
19
20 #include <Standard.hxx>
21 #include <Standard_DefineAlloc.hxx>
22 #include <Standard_Handle.hxx>
23
24 #include <FilletSurf_InternalBuilder.hxx>
25 #include <FilletSurf_StatusDone.hxx>
26 #include <FilletSurf_ErrorTypeStatus.hxx>
27 #include <TopTools_ListOfShape.hxx>
28 #include <Standard_Real.hxx>
29 #include <Standard_Integer.hxx>
30 #include <FilletSurf_StatusType.hxx>
31 class StdFail_NotDone;
32 class Standard_OutOfRange;
33 class TopoDS_Shape;
34 class Geom_Surface;
35 class TopoDS_Face;
36 class Geom_Curve;
37 class Geom2d_Curve;
38 class Geom_TrimmedCurve;
39
40
41 //! API giving the  following  geometric information about fillets
42 //! list of corresponding NUBS surfaces
43 //! for each surface:
44 //! the 2  support faces
45 //! on each face: the 3d curve and the corresponding 2d curve
46 //! the 2d curves on the fillet
47 //! status of start and end section of the fillet
48 //! first and last parameter on edge of the fillet.
49 class FilletSurf_Builder 
50 {
51 public:
52
53   DEFINE_STANDARD_ALLOC
54
55   
56   //! initialize  of the information  necessary for  the
57   //! computation of  the fillet on the
58   //! Shape S from a list of edges E and a radius R.
59   //!
60   //! Ta is the angular tolerance
61   //! Tapp3d is the 3d approximation tolerance
62   //! Tapp2d is the 2d approximation tolerance
63   Standard_EXPORT FilletSurf_Builder(const TopoDS_Shape& S, const TopTools_ListOfShape& E, const Standard_Real R, const Standard_Real Ta = 1.0e-2, const Standard_Real Tapp3d = 1.0e-4, const Standard_Real Tapp2d = 1.0e-5);
64   
65   //! ---Purpose computation  of the fillet (list of NUBS)
66   Standard_EXPORT void Perform();
67   
68   Standard_EXPORT void Simulate();
69   
70   //! gives the status about the computation of the fillet
71   //! returns:
72   //! IsOK :no problem during the computation
73   //! IsNotOk: no result is produced
74   //! IsPartial: the result is partial
75   Standard_EXPORT FilletSurf_StatusDone IsDone() const;
76   
77   //! gives    information     about   error   status     if
78   //! IsDone=IsNotOk
79   //! returns
80   //! EdgeNotG1: the edges are not G1
81   //! FacesNotG1 : two connected faces on a same support are
82   //! not  G1
83   //! EdgeNotOnShape: the  edge   is  not on  shape
84   //! NotSharpEdge: the  edge is not sharp
85   //! PbFilletCompute: problem during the computation of the fillet
86   Standard_EXPORT FilletSurf_ErrorTypeStatus StatusError() const;
87   
88   //! gives the number of NUBS surfaces  of the Fillet.
89   Standard_EXPORT Standard_Integer NbSurface() const;
90   
91   //! gives the NUBS surface of index Index.
92   Standard_EXPORT const Handle(Geom_Surface)& SurfaceFillet (const Standard_Integer Index) const;
93   
94   //! gives  the  3d  tolerance reached during approximation
95   //! of surface of index Index
96   Standard_EXPORT Standard_Real TolApp3d (const Standard_Integer Index) const;
97   
98   //! gives the first support  face relative to SurfaceFillet(Index);
99   Standard_EXPORT const TopoDS_Face& SupportFace1 (const Standard_Integer Index) const;
100   
101   //! gives the second support  face relative to SurfaceFillet(Index);
102   Standard_EXPORT const TopoDS_Face& SupportFace2 (const Standard_Integer Index) const;
103   
104   //! gives  the 3d curve  of SurfaceFillet(Index)  on SupportFace1(Index)
105   Standard_EXPORT const Handle(Geom_Curve)& CurveOnFace1 (const Standard_Integer Index) const;
106   
107   //! gives the     3d  curve of  SurfaceFillet(Index) on SupportFace2(Index)
108   Standard_EXPORT const Handle(Geom_Curve)& CurveOnFace2 (const Standard_Integer Index) const;
109   
110   //! gives the  PCurve associated to CurvOnSup1(Index)  on the support face
111   Standard_EXPORT const Handle(Geom2d_Curve)& PCurveOnFace1 (const Standard_Integer Index) const;
112   
113   //! gives the PCurve associated to CurveOnFace1(Index) on the Fillet
114   Standard_EXPORT const Handle(Geom2d_Curve)& PCurve1OnFillet (const Standard_Integer Index) const;
115   
116   //! gives the PCurve  associated to CurveOnSup2(Index) on  the  support face
117   Standard_EXPORT const Handle(Geom2d_Curve)& PCurveOnFace2 (const Standard_Integer Index) const;
118   
119   //! gives the PCurve  associated to CurveOnSup2(Index) on  the  fillet
120   Standard_EXPORT const Handle(Geom2d_Curve)& PCurve2OnFillet (const Standard_Integer Index) const;
121   
122   //! gives the parameter of the fillet  on the first edge.
123   Standard_EXPORT Standard_Real FirstParameter() const;
124   
125   //! gives the  parameter of the fillet  on the last edge
126   Standard_EXPORT Standard_Real LastParameter() const;
127   
128   Standard_EXPORT FilletSurf_StatusType StartSectionStatus() const;
129   
130   Standard_EXPORT FilletSurf_StatusType EndSectionStatus() const;
131   
132   Standard_EXPORT Standard_Integer NbSection (const Standard_Integer IndexSurf) const;
133   
134   Standard_EXPORT void Section (const Standard_Integer IndexSurf, const Standard_Integer IndexSec, Handle(Geom_TrimmedCurve)& Circ) const;
135
136
137
138
139 protected:
140
141
142
143
144
145 private:
146
147
148
149   FilletSurf_InternalBuilder myIntBuild;
150   FilletSurf_StatusDone myisdone;
151   FilletSurf_ErrorTypeStatus myerrorstatus;
152
153
154 };
155
156
157
158
159
160
161
162 #endif // _FilletSurf_Builder_HeaderFile