summaryrefslogtreecommitdiff
path: root/inc/AppParCurves_MultiCurve.hxx
blob: 4b90246207ebc060d1027a8ae3b9bb7d2615b953 (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
// 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_MultiCurve_HeaderFile
#define _AppParCurves_MultiCurve_HeaderFile

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

#ifndef _Handle_AppParCurves_HArray1OfMultiPoint_HeaderFile
#include <Handle_AppParCurves_HArray1OfMultiPoint.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Standard_OStream_HeaderFile
#include <Standard_OStream.hxx>
#endif
class AppParCurves_HArray1OfMultiPoint;
class Standard_OutOfRange;
class Standard_DimensionError;
class Standard_ConstructionError;
class AppParCurves_Array1OfMultiPoint;
class AppParCurves_MultiPoint;
class TColgp_Array1OfPnt;
class TColgp_Array1OfPnt2d;
class gp_Pnt;
class gp_Pnt2d;
class gp_Vec;
class gp_Vec2d;


//! This class describes a MultiCurve approximating a Multiline. <br>
//!          As a Multiline is a set of n lines, a MultiCurve is a set <br>
//!          of n curves. These curves are Bezier curves. <br>
//!          A MultiCurve is composed of m MultiPoint. <br>
//!          The approximating degree of these n curves is the same for <br>
//!          each one. <br>
class 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 MultiCurve. <br>
  Standard_EXPORT   AppParCurves_MultiCurve();
  //! creates a MultiCurve, describing Bezier curves all <br>
//!          containing the same number of MultiPoint. <br>
//!          An exception is raised if Degree < 0. <br>
  Standard_EXPORT   AppParCurves_MultiCurve(const Standard_Integer NbPol);
  //! creates a MultiCurve, describing Bezier curves all <br>
//!          containing the same number of MultiPoint. <br>
//!          Each MultiPoint must have NbCurves Poles. <br>
  Standard_EXPORT   AppParCurves_MultiCurve(const AppParCurves_Array1OfMultiPoint& tabMU);
  
  Standard_EXPORT   virtual  void Delete() ;
Standard_EXPORT virtual ~AppParCurves_MultiCurve(){Delete();}
  //! The number of poles of the MultiCurve <br>
//!          will be set to <nbPoles>. <br>
  Standard_EXPORT     void SetNbPoles(const Standard_Integer nbPoles) ;
  //! sets the MultiPoint of range Index to the value <br>
//!          <MPoint>. <br>
//!          An exception is raised if Index <0 or Index >NbMPoint. <br>
  Standard_EXPORT     void SetValue(const Standard_Integer Index,const AppParCurves_MultiPoint& MPoint) ;
  //! Returns the number of curves resulting from the <br>
//! approximation of a MultiLine. <br>
  Standard_EXPORT     Standard_Integer NbCurves() const;
  //!  Returns the number of poles on curves resulting from the approximation of a MultiLine. <br>
  Standard_EXPORT   virtual  Standard_Integer NbPoles() const;
  //! returns the degree of the curves. <br>
  Standard_EXPORT   virtual  Standard_Integer Degree() const;
  //! returns the dimension of the CuIndex curve. <br>
//!          An exception is raised if CuIndex<0 or CuIndex>NbCurves. <br>
  Standard_EXPORT     Standard_Integer Dimension(const Standard_Integer CuIndex) const;
  //! returns the Pole array of the curve of range CuIndex. <br>
//!          An exception is raised if the dimension of the curve <br>
//!          is 2d. <br>
  Standard_EXPORT     void Curve(const Standard_Integer CuIndex,TColgp_Array1OfPnt& TabPnt) const;
  //! returns the Pole array of the curve of range CuIndex. <br>
//!          An exception is raised if the dimension of the curve <br>
//!          is 3d. <br>
  Standard_EXPORT     void Curve(const Standard_Integer CuIndex,TColgp_Array1OfPnt2d& TabPnt) const;
  //! returns the Index MultiPoint. <br>
//!          An exception is raised if Index <0 or Index >Degree+1. <br>
  Standard_EXPORT    const AppParCurves_MultiPoint& Value(const Standard_Integer Index) const;
  //! returns the Nieme pole of the CuIndex curve. <br>
//!          the curve must be a 3D curve. <br>
  Standard_EXPORT    const gp_Pnt& Pole(const Standard_Integer CuIndex,const Standard_Integer Nieme) const;
  //! returns the Nieme pole of the CuIndex curve. <br>
//!          the curve must be a 2D curve. <br>
  Standard_EXPORT    const gp_Pnt2d& Pole2d(const Standard_Integer CuIndex,const Standard_Integer Nieme) const;
  //! Applies a transformation to the curve of range <br>
//!          <CuIndex>. <br>
//!          newx = x + dx*oldx <br>
//!          newy = y + dy*oldy    for all points of the curve. <br>
//!          newz = z + dz*oldz <br>
  Standard_EXPORT     void Transform(const Standard_Integer CuIndex,const Standard_Real x,const Standard_Real dx,const Standard_Real y,const Standard_Real dy,const Standard_Real z,const Standard_Real dz) ;
  //! Applies a transformation to the Curve of range <br>
//!          <CuIndex>. <br>
//!          newx = x + dx*oldx <br>
//!          newy = y + dy*oldy    for all points of the curve. <br>
  Standard_EXPORT     void Transform2d(const Standard_Integer CuIndex,const Standard_Real x,const Standard_Real dx,const Standard_Real y,const Standard_Real dy) ;
  //! returns the value of the point with a parameter U <br>
//!          on the Bezier 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 Bezier 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 Bezier 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 Bezier 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 Bezier 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 Bezier 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:



Handle_AppParCurves_HArray1OfMultiPoint tabPoint;


private:





};





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


#endif