summaryrefslogtreecommitdiff
path: root/inc/AppParCurves_MultiBSpCurve.hxx
blob: 813363fc0980fd6e1cce2e376c449c62b629f42b (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
// 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 _AppParCurves_MultiBSpCurve_HeaderFile
#define _AppParCurves_MultiBSpCurve_HeaderFile

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

#ifndef _Handle_TColStd_HArray1OfReal_HeaderFile
#include <Handle_TColStd_HArray1OfReal.hxx>
#endif
#ifndef _Handle_TColStd_HArray1OfInteger_HeaderFile
#include <Handle_TColStd_HArray1OfInteger.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _AppParCurves_MultiCurve_HeaderFile
#include <AppParCurves_MultiCurve.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Standard_OStream_HeaderFile
#include <Standard_OStream.hxx>
#endif
class TColStd_HArray1OfReal;
class TColStd_HArray1OfInteger;
class Standard_OutOfRange;
class Standard_DimensionError;
class Standard_ConstructionError;
class AppParCurves_Array1OfMultiPoint;
class TColStd_Array1OfReal;
class TColStd_Array1OfInteger;
class AppParCurves_MultiCurve;
class gp_Pnt;
class gp_Pnt2d;
class gp_Vec;
class gp_Vec2d;


//! This class describes a MultiBSpCurve approximating a Multiline. <br>
//!    Just as a Multiline is a set of a given number of lines, a MultiBSpCurve is a set <br>
//! of a specified number of bsplines defined by: <br>
//! -   A specified number of MultiPoints - the poles of a specified number of curves <br>
//! -   The degree of approximation identical for each of the specified number of curves. <br>
class AppParCurves_MultiBSpCurve  : public AppParCurves_MultiCurve {
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); 
  }

  //! returns an indefinite MultiBSpCurve. <br>
  Standard_EXPORT   AppParCurves_MultiBSpCurve();
  //! creates a MultiBSpCurve, describing BSpline curves all <br>
//!          containing the same number of MultiPoint. <br>
//!          An exception is raised if Degree < 0. <br>
  Standard_EXPORT   AppParCurves_MultiBSpCurve(const Standard_Integer NbPol);
  //! creates a MultiBSpCurve, describing BSpline curves all <br>
//!          containing the same number of MultiPoint. <br>
//!          Each MultiPoint must have NbCurves Poles. <br>
  Standard_EXPORT   AppParCurves_MultiBSpCurve(const AppParCurves_Array1OfMultiPoint& tabMU,const TColStd_Array1OfReal& Knots,const TColStd_Array1OfInteger& Mults);
  //! creates a MultiBSpCurve, describing BSpline <br>
//!          curves, taking control points from <SC>. <br>
  Standard_EXPORT   AppParCurves_MultiBSpCurve(const AppParCurves_MultiCurve& SC,const TColStd_Array1OfReal& Knots,const TColStd_Array1OfInteger& Mults);
  //! Knots of the multiBSpCurve are assigned to <theknots>. <br>
  Standard_EXPORT     void SetKnots(const TColStd_Array1OfReal& theKnots) ;
  //! Multiplicities of the multiBSpCurve are assigned <br>
//!          to <theMults>. <br>
  Standard_EXPORT     void SetMultiplicities(const TColStd_Array1OfInteger& theMults) ;
  //! Returns an array of Reals containing <br>
//! the multiplicities of curves resulting from the approximation. <br>
  Standard_EXPORT    const TColStd_Array1OfReal& Knots() const;
  //! Returns an array of Reals containing the <br>
//!  multiplicities of curves resulting from the approximation. <br>
  Standard_EXPORT    const TColStd_Array1OfInteger& Multiplicities() const;
  //! returns the degree of the curve(s). <br>
  Standard_EXPORT   virtual  Standard_Integer Degree() const;
  //! returns the value of the point with a parameter U <br>
//!          on the BSpline curve number CuIndex. <br>
//!          An exception is raised if CuIndex <0 or > NbCurves. <br>
//!          An exception is raised if the curve dimension is 2d. <br>
  Standard_EXPORT   virtual  void Value(const Standard_Integer CuIndex,const Standard_Real U,gp_Pnt& Pt) const;
  //! returns the value of the point with a parameter U <br>
//!          on the BSpline curve number CuIndex. <br>
//!          An exception is raised if CuIndex <0 or > NbCurves. <br>
//!          An exception is raised if the curve dimension is 3d. <br>
  Standard_EXPORT   virtual  void Value(const Standard_Integer CuIndex,const Standard_Real U,gp_Pnt2d& Pt) const;
  //! returns the value of the point with a parameter U <br>
//!          on the BSpline curve number CuIndex. <br>
//!          An exception is raised if CuIndex <0 or > NbCurves. <br>
//!          An exception is raised if the curve dimension is 3d. <br>
  Standard_EXPORT   virtual  void D1(const Standard_Integer CuIndex,const Standard_Real U,gp_Pnt& Pt,gp_Vec& V1) const;
  //! returns the value of the point with a parameter U <br>
//!          on the BSpline curve number CuIndex. <br>
//!          An exception is raised if CuIndex <0 or > NbCurves. <br>
//!          An exception is raised if the curve dimension is 2d. <br>
  Standard_EXPORT   virtual  void D1(const Standard_Integer CuIndex,const Standard_Real U,gp_Pnt2d& Pt,gp_Vec2d& V1) const;
  //! returns the value of the point with a parameter U <br>
//!          on the BSpline curve number CuIndex. <br>
//!          An exception is raised if CuIndex <0 or > NbCurves. <br>
//!          An exception is raised if the curve dimension is 3d. <br>
  Standard_EXPORT   virtual  void D2(const Standard_Integer CuIndex,const Standard_Real U,gp_Pnt& Pt,gp_Vec& V1,gp_Vec& V2) const;
  //! returns the value of the point with a parameter U <br>
//!          on the BSpline curve number CuIndex. <br>
//!          An exception is raised if CuIndex <0 or > NbCurves. <br>
//!          An exception is raised if the curve dimension is 2d. <br>
  Standard_EXPORT   virtual  void D2(const Standard_Integer CuIndex,const Standard_Real U,gp_Pnt2d& Pt,gp_Vec2d& V1,gp_Vec2d& V2) const;
  //! Prints on the stream o information on the current <br>
//!          state of the object. <br>
//!          Is used to redefine the operator <<. <br>
  Standard_EXPORT   virtual  void Dump(Standard_OStream& o) const;





protected:





private:



Handle_TColStd_HArray1OfReal myknots;
Handle_TColStd_HArray1OfInteger mymults;
Standard_Integer myDegree;


};





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


#endif