summaryrefslogtreecommitdiff
path: root/inc/FilletSurf_InternalBuilder.hxx
blob: c1d15d037ba2df5dc58be104439be4c00aad3d64 (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
177
178
179
180
181
182
183
184
185
186
187
188
189
// 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_InternalBuilder_HeaderFile
#define _FilletSurf_InternalBuilder_HeaderFile

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

#ifndef _ChFi3d_FilBuilder_HeaderFile
#include <ChFi3d_FilBuilder.hxx>
#endif
#ifndef _ChFi3d_FilletShape_HeaderFile
#include <ChFi3d_FilletShape.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Handle_ChFiDS_HElSpine_HeaderFile
#include <Handle_ChFiDS_HElSpine.hxx>
#endif
#ifndef _Handle_ChFiDS_Spine_HeaderFile
#include <Handle_ChFiDS_Spine.hxx>
#endif
#ifndef _Handle_BRepAdaptor_HSurface_HeaderFile
#include <Handle_BRepAdaptor_HSurface.hxx>
#endif
#ifndef _Handle_Adaptor3d_TopolTool_HeaderFile
#include <Handle_Adaptor3d_TopolTool.hxx>
#endif
#ifndef _Handle_BRepAdaptor_HCurve2d_HeaderFile
#include <Handle_BRepAdaptor_HCurve2d.hxx>
#endif
#ifndef _TopAbs_Orientation_HeaderFile
#include <TopAbs_Orientation.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 TopoDS_Shape;
class TopTools_ListOfShape;
class ChFiDS_SequenceOfSurfData;
class ChFiDS_HElSpine;
class ChFiDS_Spine;
class BRepAdaptor_HSurface;
class Adaptor3d_TopolTool;
class math_Vector;
class BRepAdaptor_HCurve2d;
class Geom_Surface;
class TopoDS_Face;
class Geom_Curve;
class Geom2d_Curve;
class Geom_TrimmedCurve;


//!  This class is private. It is  used by the class Builder <br>
//!           from FilletSurf. It computes geometric information about fillets. <br>
class FilletSurf_InternalBuilder  : public ChFi3d_FilBuilder {
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); 
  }

  
  Standard_EXPORT   FilletSurf_InternalBuilder(const TopoDS_Shape& S,const ChFi3d_FilletShape FShape = ChFi3d_Polynomial,const Standard_Real Ta = 1.0e-2,const Standard_Real Tapp3d = 1.0e-4,const Standard_Real Tapp2d = 1.0e-5);
  //! Initializes the contour with a list of Edges <br>
//! 0 : no problem <br>
//! 1 : empty list <br>
//! 2 : the edges are not G1 <br>
//! 3 : two connected faces on a same support are not G1 <br>
//! 4 : the  edge   is  not on  shape <br>
//! 5 :  NotSharpEdge: the  edge is not sharp <br>
  Standard_EXPORT     Standard_Integer Add(const TopTools_ListOfShape& E,const Standard_Real R) ;
  
  Standard_EXPORT     void Perform() ;
  
  Standard_EXPORT     Standard_Boolean Done() 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 the 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>
//! <br>
//! <br>
//! <br>
  Standard_EXPORT     Standard_Real FirstParameter() const;
  //! gives the  parameter of the fillet  on the last edge <br>
//! <br>
  Standard_EXPORT     Standard_Real LastParameter() const;
  
  Standard_EXPORT     FilletSurf_StatusType StartSectionStatus() const;
  
  Standard_EXPORT     FilletSurf_StatusType EndSectionStatus() const;
  
  Standard_EXPORT     void Simulate() ;
  
  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:

  //! This  method calculates the elements of construction of the <br>
//!          fillet (constant or evolutive). <br>
//! <br>
  Standard_EXPORT   virtual  Standard_Boolean PerformSurf(ChFiDS_SequenceOfSurfData& SeqData,const Handle(ChFiDS_HElSpine)& Guide,const Handle(ChFiDS_Spine)& Spine,const Standard_Integer Choix,const Handle(BRepAdaptor_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& I1,const Handle(BRepAdaptor_HSurface)& S2,const Handle(Adaptor3d_TopolTool)& I2,const Standard_Real MaxStep,const Standard_Real Fleche,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const Standard_Boolean RecOnS1,const Standard_Boolean RecOnS2,const math_Vector& Soldep,Standard_Boolean& Intf,Standard_Boolean& Intl) ;
  
  Standard_EXPORT   virtual  void PerformSurf(ChFiDS_SequenceOfSurfData& SeqData,const Handle(ChFiDS_HElSpine)& Guide,const Handle(ChFiDS_Spine)& Spine,const Standard_Integer Choix,const Handle(BRepAdaptor_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& I1,const Handle(BRepAdaptor_HCurve2d)& PC1,const Handle(BRepAdaptor_HSurface)& Sref1,const Handle(BRepAdaptor_HCurve2d)& PCref1,Standard_Boolean& Decroch1,const Handle(BRepAdaptor_HSurface)& S2,const Handle(Adaptor3d_TopolTool)& I2,const TopAbs_Orientation Or2,const Standard_Real MaxStep,const Standard_Real Fleche,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const Standard_Boolean RecP,const Standard_Boolean RecS,const Standard_Boolean RecRst,const math_Vector& Soldep) ;
  
  Standard_EXPORT   virtual  void PerformSurf(ChFiDS_SequenceOfSurfData& SeqData,const Handle(ChFiDS_HElSpine)& Guide,const Handle(ChFiDS_Spine)& Spine,const Standard_Integer Choix,const Handle(BRepAdaptor_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& I1,const TopAbs_Orientation Or1,const Handle(BRepAdaptor_HSurface)& S2,const Handle(Adaptor3d_TopolTool)& I2,const Handle(BRepAdaptor_HCurve2d)& PC2,const Handle(BRepAdaptor_HSurface)& Sref2,const Handle(BRepAdaptor_HCurve2d)& PCref2,Standard_Boolean& Decroch2,const Standard_Real MaxStep,const Standard_Real Fleche,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const Standard_Boolean RecP,const Standard_Boolean RecS,const Standard_Boolean RecRst,const math_Vector& Soldep) ;
  
  Standard_EXPORT   virtual  void PerformSurf(ChFiDS_SequenceOfSurfData& Data,const Handle(ChFiDS_HElSpine)& Guide,const Handle(ChFiDS_Spine)& Spine,const Standard_Integer Choix,const Handle(BRepAdaptor_HSurface)& S1,const Handle(Adaptor3d_TopolTool)& I1,const Handle(BRepAdaptor_HCurve2d)& PC1,const Handle(BRepAdaptor_HSurface)& Sref1,const Handle(BRepAdaptor_HCurve2d)& PCref1,Standard_Boolean& Decroch1,const TopAbs_Orientation Or1,const Handle(BRepAdaptor_HSurface)& S2,const Handle(Adaptor3d_TopolTool)& I2,const Handle(BRepAdaptor_HCurve2d)& PC2,const Handle(BRepAdaptor_HSurface)& Sref2,const Handle(BRepAdaptor_HCurve2d)& PCref2,Standard_Boolean& Decroch2,const TopAbs_Orientation Or2,const Standard_Real MaxStep,const Standard_Real Fleche,const Standard_Real TolGuide,Standard_Real& First,Standard_Real& Last,const Standard_Boolean Inside,const Standard_Boolean Appro,const Standard_Boolean Forward,const Standard_Boolean RecP1,const Standard_Boolean RecRst1,const Standard_Boolean RecP2,const Standard_Boolean RecRst2,const math_Vector& Soldep) ;




private:





};





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


#endif