summaryrefslogtreecommitdiff
path: root/inc/AppParCurves_MultiPoint.hxx
blob: 45ff70d22d86eff41f1aaeba1c9bd163718fbed9 (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
// 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_MultiPoint_HeaderFile
#define _AppParCurves_MultiPoint_HeaderFile

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

#ifndef _Handle_MMgt_TShared_HeaderFile
#include <Handle_MMgt_TShared.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 MMgt_TShared;
class Standard_OutOfRange;
class Standard_DimensionError;
class TColgp_Array1OfPnt;
class TColgp_Array1OfPnt2d;
class gp_Pnt;
class gp_Pnt2d;


//! This class describes Points composing a MultiPoint. <br>
//!          These points can be 2D or 3D. The user must first give the <br>
//!          3D Points and then the 2D Points. <br>
//!          They are Poles of a Bezier Curve. <br>
//! This class is used either to define data input or <br>
//! results when performing the approximation of several lines in parallel. <br>
class AppParCurves_MultiPoint  {
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); 
  }

  //! creates an indefinite MultiPoint. <br>
  Standard_EXPORT   AppParCurves_MultiPoint();
  //! constructs a set of Points used to approximate a <br>
//!          Multiline. <br>
//!          These Points can be of 2 or 3 dimensions. <br>
//!          Points will be initialized with SetPoint and SetPoint2d. <br>
//!          NbPoints is the number of 3D Points. <br>
//!          NbPoints2d is the number of 2D Points. <br>
  Standard_EXPORT   AppParCurves_MultiPoint(const Standard_Integer NbPoints,const Standard_Integer NbPoints2d);
  //! creates a MultiPoint only composed of 3D points. <br>
  Standard_EXPORT   AppParCurves_MultiPoint(const TColgp_Array1OfPnt& tabP);
  //! creates a MultiPoint only composed of 2D points. <br>
  Standard_EXPORT   AppParCurves_MultiPoint(const TColgp_Array1OfPnt2d& tabP2d);
  //! constructs a set of Points used to approximate a <br>
//!          Multiline. <br>
//!          These Points can be of 2 or 3 dimensions. <br>
//!          Points will be initialized with SetPoint and SetPoint2d. <br>
//!          NbPoints is the total number of Points. <br>
  Standard_EXPORT   AppParCurves_MultiPoint(const TColgp_Array1OfPnt& tabP,const TColgp_Array1OfPnt2d& tabP2d);
  
  Standard_EXPORT   virtual  void Delete() ;
Standard_EXPORT virtual ~AppParCurves_MultiPoint(){Delete();}
  //! the 3d Point of range Index of this MultiPoint is <br>
//!          set to <Point>. <br>
//!          An exception is raised if Index < 0 or <br>
//!          Index > number of 3d Points. <br>
  Standard_EXPORT     void SetPoint(const Standard_Integer Index,const gp_Pnt& Point) ;
  //! returns the 3d Point of range Index. <br>
//!          An exception is raised if Index < 0 or <br>
//!          Index < number of 3d Points. <br>
  Standard_EXPORT    const gp_Pnt& Point(const Standard_Integer Index) const;
  //! The 2d Point of range Index is set to <Point>. <br>
//!          An exception is raised if Index > 3d Points or <br>
//!          Index > total number of Points. <br>
  Standard_EXPORT     void SetPoint2d(const Standard_Integer Index,const gp_Pnt2d& Point) ;
  //! returns the 2d Point of range Index. <br>
//!          An exception is raised if index <= number of <br>
//!          3d Points or Index > total number of Points. <br>
  Standard_EXPORT    const gp_Pnt2d& Point2d(const Standard_Integer Index) const;
  //! returns the dimension of the point of range Index. <br>
//!          An exception is raised if Index <0 or Index > NbCurves. <br>
        Standard_Integer Dimension(const Standard_Integer Index) const;
  //! returns the number of points of dimension 3D. <br>
        Standard_Integer NbPoints() const;
  //! returns the number of points of dimension 2D. <br>
        Standard_Integer NbPoints2d() 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) ;
  //! 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_MMgt_TShared ttabPoint;
Handle_MMgt_TShared ttabPoint2d;
Standard_Integer nbP;
Standard_Integer nbP2d;


private:





};


#include <AppParCurves_MultiPoint.lxx>



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


#endif