summaryrefslogtreecommitdiff
path: root/inc/GeomFill_SweepSectionGenerator.hxx
blob: fbb4449327ba83988d99193fb94e6adad4ba050c (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
// 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 _GeomFill_SweepSectionGenerator_HeaderFile
#define _GeomFill_SweepSectionGenerator_HeaderFile

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

#ifndef _Handle_Geom_BSplineCurve_HeaderFile
#include <Handle_Geom_BSplineCurve.hxx>
#endif
#ifndef _Handle_Adaptor3d_HCurve_HeaderFile
#include <Handle_Adaptor3d_HCurve.hxx>
#endif
#ifndef _gp_Ax1_HeaderFile
#include <gp_Ax1.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _GeomFill_SequenceOfTrsf_HeaderFile
#include <GeomFill_SequenceOfTrsf.hxx>
#endif
#ifndef _Handle_Geom_Curve_HeaderFile
#include <Handle_Geom_Curve.hxx>
#endif
class Geom_BSplineCurve;
class Adaptor3d_HCurve;
class Standard_RangeError;
class Geom_Curve;
class TColStd_Array1OfReal;
class TColStd_Array1OfInteger;
class TColgp_Array1OfPnt;
class TColgp_Array1OfVec;
class TColgp_Array1OfPnt2d;
class TColgp_Array1OfVec2d;
class gp_Trsf;


//! class for instantiation of AppBlend. <br>
//!          evaluate the sections of a sweep surface. <br>
class GeomFill_SweepSectionGenerator  {
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   GeomFill_SweepSectionGenerator();
  //! Create a sweept surface with a constant radius. <br>
  Standard_EXPORT   GeomFill_SweepSectionGenerator(const Handle(Geom_Curve)& Path,const Standard_Real Radius);
  //! Create a sweept surface with a constant section <br>
  Standard_EXPORT   GeomFill_SweepSectionGenerator(const Handle(Geom_Curve)& Path,const Handle(Geom_Curve)& FirstSect);
  //! Create a sweept surface with an evolving section <br>
//!          The section evoluate from First to Last Section <br>
  Standard_EXPORT   GeomFill_SweepSectionGenerator(const Handle(Geom_Curve)& Path,const Handle(Geom_Curve)& FirstSect,const Handle(Geom_Curve)& LastSect);
  //! Create  a pipe  with  a constant  radius with  2 <br>
//!          guide-line. <br>
  Standard_EXPORT   GeomFill_SweepSectionGenerator(const Handle(Geom_Curve)& Path,const Handle(Geom_Curve)& Curve1,const Handle(Geom_Curve)& Curve2,const Standard_Real Radius);
  //! Create  a pipe  with  a constant  radius with  2 <br>
//!          guide-line. <br>
  Standard_EXPORT   GeomFill_SweepSectionGenerator(const Handle(Adaptor3d_HCurve)& Path,const Handle(Adaptor3d_HCurve)& Curve1,const Handle(Adaptor3d_HCurve)& Curve2,const Standard_Real Radius);
  
  Standard_EXPORT     void Init(const Handle(Geom_Curve)& Path,const Standard_Real Radius) ;
  
  Standard_EXPORT     void Init(const Handle(Geom_Curve)& Path,const Handle(Geom_Curve)& FirstSect) ;
  
  Standard_EXPORT     void Init(const Handle(Geom_Curve)& Path,const Handle(Geom_Curve)& FirstSect,const Handle(Geom_Curve)& LastSect) ;
  
  Standard_EXPORT     void Init(const Handle(Geom_Curve)& Path,const Handle(Geom_Curve)& Curve1,const Handle(Geom_Curve)& Curve2,const Standard_Real Radius) ;
  
  Standard_EXPORT     void Init(const Handle(Adaptor3d_HCurve)& Path,const Handle(Adaptor3d_HCurve)& Curve1,const Handle(Adaptor3d_HCurve)& Curve2,const Standard_Real Radius) ;
  
  Standard_EXPORT     void Perform(const Standard_Boolean Polynomial = Standard_False) ;
  
  Standard_EXPORT     void GetShape(Standard_Integer& NbPoles,Standard_Integer& NbKnots,Standard_Integer& Degree,Standard_Integer& NbPoles2d) const;
  
  Standard_EXPORT     void Knots(TColStd_Array1OfReal& TKnots) const;
  
  Standard_EXPORT     void Mults(TColStd_Array1OfInteger& TMults) const;
  
        Standard_Integer NbSections() const;
  //! Used for the first and last section <br>
//!          The method returns Standard_True if the derivatives <br>
//!          are computed, otherwise it returns Standard_False. <br>
  Standard_EXPORT     Standard_Boolean Section(const Standard_Integer P,TColgp_Array1OfPnt& Poles,TColgp_Array1OfVec& DPoles,TColgp_Array1OfPnt2d& Poles2d,TColgp_Array1OfVec2d& DPoles2d,TColStd_Array1OfReal& Weigths,TColStd_Array1OfReal& DWeigths) const;
  
  Standard_EXPORT     void Section(const Standard_Integer P,TColgp_Array1OfPnt& Poles,TColgp_Array1OfPnt2d& Poles2d,TColStd_Array1OfReal& Weigths) const;
  //! raised if <Index> not in the range [1,NbSections()] <br>
  Standard_EXPORT    const gp_Trsf& Transformation(const Standard_Integer Index) const;
  //! Returns  the parameter of   <P>, to impose  it for the <br>
//!          approximation. <br>
  Standard_EXPORT     Standard_Real Parameter(const Standard_Integer P) const;





protected:





private:



Handle_Geom_BSplineCurve myPath;
Handle_Geom_BSplineCurve myFirstSect;
Handle_Geom_BSplineCurve myLastSect;
Handle_Adaptor3d_HCurve myAdpPath;
Handle_Adaptor3d_HCurve myAdpFirstSect;
Handle_Adaptor3d_HCurve myAdpLastSect;
gp_Ax1 myCircPathAxis;
Standard_Real myRadius;
Standard_Boolean myIsDone;
Standard_Integer myNbSections;
GeomFill_SequenceOfTrsf myTrsfs;
Standard_Integer myType;
Standard_Boolean myPolynomial;


};


#include <GeomFill_SweepSectionGenerator.lxx>



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


#endif