summaryrefslogtreecommitdiff
path: root/inc/FilletSurf_Builder.hxx
blob: c14c6ef0d956a8db30e977e65928d9a7416ad70c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
// This file is generated by WOK (CPPExt).
// Please do not edit this file; modify original file instead.
// The copyright and license terms as defined for the original file apply to 
// this header file considered to be the "object code" form of the original source.

#ifndef _FilletSurf_Builder_HeaderFile
#define _FilletSurf_Builder_HeaderFile

#ifndef _Standard_HeaderFile
#include <Standard.hxx>
#endif
#ifndef _Standard_Macro_HeaderFile
#include <Standard_Macro.hxx>
#endif

#ifndef _FilletSurf_InternalBuilder_HeaderFile
#include <FilletSurf_InternalBuilder.hxx>
#endif
#ifndef _FilletSurf_StatusDone_HeaderFile
#include <FilletSurf_StatusDone.hxx>
#endif
#ifndef _FilletSurf_ErrorTypeStatus_HeaderFile
#include <FilletSurf_ErrorTypeStatus.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Handle_Geom_Surface_HeaderFile
#include <Handle_Geom_Surface.hxx>
#endif
#ifndef _Handle_Geom_Curve_HeaderFile
#include <Handle_Geom_Curve.hxx>
#endif
#ifndef _Handle_Geom2d_Curve_HeaderFile
#include <Handle_Geom2d_Curve.hxx>
#endif
#ifndef _FilletSurf_StatusType_HeaderFile
#include <FilletSurf_StatusType.hxx>
#endif
#ifndef _Handle_Geom_TrimmedCurve_HeaderFile
#include <Handle_Geom_TrimmedCurve.hxx>
#endif
class StdFail_NotDone;
class Standard_OutOfRange;
class TopoDS_Shape;
class TopTools_ListOfShape;
class Geom_Surface;
class TopoDS_Face;
class Geom_Curve;
class Geom2d_Curve;
class Geom_TrimmedCurve;


//!  API giving the  following  geometric information about fillets <br>
//!            list of corresponding NUBS surfaces <br>
//!            for each surface: <br>
//!               the 2  support faces <br>
//!               on each face: the 3d curve and the corresponding 2d curve <br>
//!               the 2d curves on the fillet <br>
//!            status of start and end section of the fillet <br>
//!            first and last parameter on edge of the fillet. <br>
class FilletSurf_Builder  {
public:

  void* operator new(size_t,void* anAddress) 
  {
    return anAddress;
  }
  void* operator new(size_t size) 
  {
    return Standard::Allocate(size); 
  }
  void  operator delete(void *anAddress) 
  {
    if (anAddress) Standard::Free((Standard_Address&)anAddress); 
  }

  //! initialize  of the informations necessary for  the <br>
//!          computation of  the fillet on the <br>
//!          Shape S from a list of edges E and a radius R. <br>
//! <br>
//!           Ta is the angular tolerance <br>
//!		 Tapp3d is the 3d approximation tolerance <br>
//!		 Tapp2d is the 2d approximation tolerance <br>
//! <br>
//! <br>
//! <br>
  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);
  //!---Purpose computation  of the fillet (list of NUBS) <br>
  Standard_EXPORT     void Perform() ;
  
  Standard_EXPORT     void Simulate() ;
  //! gives the status about the computation of the fillet <br>
//!          returns: <br>
//!          IsOK :no problem during the computation <br>
//!          IsNotOk: no result is produced <br>
//!          IsPartial: the result is partial <br>
  Standard_EXPORT     FilletSurf_StatusDone IsDone() const;
  //! gives    informations     about  error   status     if <br>
//!          IsDone=IsNotOk <br>
//!          returns <br>
//!          EdgeNotG1: the edges are not G1 <br>
//!          FacesNotG1 : two connected faces on a same support are <br>
//!          not  G1 <br>
//!          EdgeNotOnShape: the  edge   is  not on  shape <br>
//!          NotSharpEdge: the  edge is not sharp <br>
//!          PbFilletCompute: problem during the computation of the fillet <br>
  Standard_EXPORT     FilletSurf_ErrorTypeStatus StatusError() const;
  //! gives the number of NUBS surfaces  of the Fillet. <br>
  Standard_EXPORT     Standard_Integer NbSurface() const;
  //! gives the NUBS surface of index Index. <br>
  Standard_EXPORT    const Handle_Geom_Surface& SurfaceFillet(const Standard_Integer Index) const;
  //! gives  the  3d  tolerance reached during approximation <br>
//!          of surface of index Index <br>
  Standard_EXPORT     Standard_Real TolApp3d(const Standard_Integer Index) const;
  //!gives the first support  face relative to SurfaceFillet(Index); <br>
  Standard_EXPORT    const TopoDS_Face& SupportFace1(const Standard_Integer Index) const;
  //!gives the second support  face relative to SurfaceFillet(Index); <br>
  Standard_EXPORT    const TopoDS_Face& SupportFace2(const Standard_Integer Index) const;
  //!    gives  the 3d curve  of SurfaceFillet(Index)  on SupportFace1(Index) <br>
  Standard_EXPORT    const Handle_Geom_Curve& CurveOnFace1(const Standard_Integer Index) const;
  //! gives the     3d  curve of  SurfaceFillet(Index) on SupportFace2(Index) <br>
  Standard_EXPORT    const Handle_Geom_Curve& CurveOnFace2(const Standard_Integer Index) const;
  //!gives the  PCurve associated to CurvOnSup1(Index)  on the support face <br>
  Standard_EXPORT    const Handle_Geom2d_Curve& PCurveOnFace1(const Standard_Integer Index) const;
  //! gives the PCurve associated to CurveOnFace1(Index) on the Fillet <br>
  Standard_EXPORT    const Handle_Geom2d_Curve& PCurve1OnFillet(const Standard_Integer Index) const;
  //! gives the PCurve  associated to CurveOnSup2(Index) on  the  support face <br>
  Standard_EXPORT    const Handle_Geom2d_Curve& PCurveOnFace2(const Standard_Integer Index) const;
  //! gives the PCurve  associated to CurveOnSup2(Index) on  the  fillet <br>
  Standard_EXPORT    const Handle_Geom2d_Curve& PCurve2OnFillet(const Standard_Integer Index) const;
  //!gives the parameter of the fillet  on the first edge. <br>
  Standard_EXPORT     Standard_Real FirstParameter() const;
  //! gives the  parameter of the fillet  on the last edge <br>
  Standard_EXPORT     Standard_Real LastParameter() const;
  
  Standard_EXPORT     FilletSurf_StatusType StartSectionStatus() const;
  
  Standard_EXPORT     FilletSurf_StatusType EndSectionStatus() const;
  
  Standard_EXPORT     Standard_Integer NbSection(const Standard_Integer IndexSurf) const;
  
  Standard_EXPORT     void Section(const Standard_Integer IndexSurf,const Standard_Integer IndexSec,Handle(Geom_TrimmedCurve)& Circ) const;





protected:





private:



FilletSurf_InternalBuilder myIntBuild;
FilletSurf_StatusDone myisdone;
FilletSurf_ErrorTypeStatus myerrorstatus;


};





// other Inline functions and methods (like "C++: function call" methods)


#endif