summaryrefslogtreecommitdiff
path: root/inc/CPnts_AbscissaPoint.hxx
blob: 2549d762b14738730d978f85ab2b8014d0af6027 (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
// 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 _CPnts_AbscissaPoint_HeaderFile
#define _CPnts_AbscissaPoint_HeaderFile

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

#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _CPnts_MyRootFunction_HeaderFile
#include <CPnts_MyRootFunction.hxx>
#endif
class StdFail_NotDone;
class Standard_ConstructionError;
class Adaptor3d_Curve;
class Adaptor2d_Curve2d;


//! the algorithm computes a point on a curve at a given <br>
//!          distance from another point on the curve <br>
//! <br>
//!          We can instantiates with <br>
//!            Curve from Adaptor3d, Pnt from gp, Vec from gp <br>
//! <br>
//!          or <br>
//!            Curve2d from Adaptor2d, Pnt2d from gp, Vec2d from gp <br>
class CPnts_AbscissaPoint  {
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); 
  }

  //! Computes the length of the Curve <C>. <br>
  Standard_EXPORT   static  Standard_Real Length(const Adaptor3d_Curve& C) ;
  //! Computes the length of the Curve <C>. <br>
  Standard_EXPORT   static  Standard_Real Length(const Adaptor2d_Curve2d& C) ;
  //! Computes the length of the Curve <C> with the given tolerance. <br>
  Standard_EXPORT   static  Standard_Real Length(const Adaptor3d_Curve& C,const Standard_Real Tol) ;
  //! Computes the length of the Curve <C> with the given tolerance. <br>
  Standard_EXPORT   static  Standard_Real Length(const Adaptor2d_Curve2d& C,const Standard_Real Tol) ;
  //! Computes the length of the Curve <C> between <U1> and <U2>. <br>
  Standard_EXPORT   static  Standard_Real Length(const Adaptor3d_Curve& C,const Standard_Real U1,const Standard_Real U2) ;
  //! Computes the length of the Curve <C> between <U1> and <U2>. <br>
  Standard_EXPORT   static  Standard_Real Length(const Adaptor2d_Curve2d& C,const Standard_Real U1,const Standard_Real U2) ;
  //! Computes the length of the Curve <C> between <U1> and <U2> with the given tolerance. <br>
  Standard_EXPORT   static  Standard_Real Length(const Adaptor3d_Curve& C,const Standard_Real U1,const Standard_Real U2,const Standard_Real Tol) ;
  //! Computes the length of the Curve <C> between <U1> and <U2> with the given tolerance. <br>//! creation of a indefinite AbscissaPoint. <br>
  Standard_EXPORT   static  Standard_Real Length(const Adaptor2d_Curve2d& C,const Standard_Real U1,const Standard_Real U2,const Standard_Real Tol) ;
  
  Standard_EXPORT   CPnts_AbscissaPoint();
  //! the algorithm computes a point on a curve <Curve> at the <br>
//!          distance <Abscissa> from the point of parameter <U0>. <br>
//!          <Resolution> is the error allowed in the computation. <br>
//!          The computed point can be outside of the curve 's bounds. <br>
  Standard_EXPORT   CPnts_AbscissaPoint(const Adaptor3d_Curve& C,const Standard_Real Abscissa,const Standard_Real U0,const Standard_Real Resolution);
  //! the algorithm computes a point on a curve <Curve> at the <br>
//!          distance <Abscissa> from the point of parameter <U0>. <br>
//!          <Resolution> is the error allowed in the computation. <br>
//!          The computed point can be outside of the curve 's bounds. <br>
  Standard_EXPORT   CPnts_AbscissaPoint(const Adaptor2d_Curve2d& C,const Standard_Real Abscissa,const Standard_Real U0,const Standard_Real Resolution);
  //! the algorithm computes a point on a curve <Curve> at the <br>
//!          distance <Abscissa> from the point of parameter <U0>. <br>
//!          <Ui> is the starting value used in the iterative process <br>
//!          which find the solution, it must be closed to the final <br>
//!          solution <br>
//!          <Resolution> is the error allowed in the computation. <br>
//!          The computed point can be outside of the curve 's bounds. <br>
  Standard_EXPORT   CPnts_AbscissaPoint(const Adaptor3d_Curve& C,const Standard_Real Abscissa,const Standard_Real U0,const Standard_Real Ui,const Standard_Real Resolution);
  //! the algorithm computes a point on a curve <Curve> at the <br>
//!          distance <Abscissa> from the point of parameter <U0>. <br>
//!          <Ui> is the starting value used in the iterative process <br>
//!          which find the solution, it must be closed to the final <br>
//!          solution <br>
//!          <Resolution> is the error allowed in the computation. <br>
//!          The computed point can be outside of the curve 's bounds. <br>
  Standard_EXPORT   CPnts_AbscissaPoint(const Adaptor2d_Curve2d& C,const Standard_Real Abscissa,const Standard_Real U0,const Standard_Real Ui,const Standard_Real Resolution);
  //! Initializes the resolution function with <C>. <br>
  Standard_EXPORT     void Init(const Adaptor3d_Curve& C) ;
  //! Initializes the resolution function with <C>. <br>
  Standard_EXPORT     void Init(const Adaptor2d_Curve2d& C) ;
  //! Initializes the resolution function with <C>. <br>
  Standard_EXPORT     void Init(const Adaptor3d_Curve& C,const Standard_Real Tol) ;
  //! Initializes the resolution function with <C>. <br>
  Standard_EXPORT     void Init(const Adaptor2d_Curve2d& C,const Standard_Real Tol) ;
  //! Initializes the resolution function with <C> <br>
//!          between U1 and U2. <br>
  Standard_EXPORT     void Init(const Adaptor3d_Curve& C,const Standard_Real U1,const Standard_Real U2) ;
  //! Initializes the resolution function with <C> <br>
//!          between U1 and U2. <br>
  Standard_EXPORT     void Init(const Adaptor2d_Curve2d& C,const Standard_Real U1,const Standard_Real U2) ;
  //! Initializes the resolution function with <C> <br>
//!          between U1 and U2. <br>
  Standard_EXPORT     void Init(const Adaptor3d_Curve& C,const Standard_Real U1,const Standard_Real U2,const Standard_Real Tol) ;
  //! Initializes the resolution function with <C> <br>
//!          between U1 and U2. <br>
  Standard_EXPORT     void Init(const Adaptor2d_Curve2d& C,const Standard_Real U1,const Standard_Real U2,const Standard_Real Tol) ;
  //! Computes the point at the distance <Abscissa> of <br>
//!          the curve. <br>
  Standard_EXPORT     void Perform(const Standard_Real Abscissa,const Standard_Real U0,const Standard_Real Resolution) ;
  //! Computes the point at the distance <Abscissa> of <br>
//!          the curve. <br>
  Standard_EXPORT     void Perform(const Standard_Real Abscissa,const Standard_Real U0,const Standard_Real Ui,const Standard_Real Resolution) ;
  //! Computes the point at the distance <Abscissa> of <br>
//!          the curve; performs more appropriate tolerance managment; <br>
//!          to use this method in right way it is necessary to call <br>
//!          empty consructor. then call method Init with <br>
//!	        Tolerance = Resolution, then call AdvPermorm. <br>
  Standard_EXPORT     void AdvPerform(const Standard_Real Abscissa,const Standard_Real U0,const Standard_Real Ui,const Standard_Real Resolution) ;
  //! True if the computation was successful, False otherwise. <br>
        Standard_Boolean IsDone() const;
  //! Returns the parameter of the solution. <br>
//! <br>
        Standard_Real Parameter() const;
  //! Enforce the solution, used by GCPnts. <br>
//! <br>
        void SetParameter(const Standard_Real P) ;





protected:





private:



Standard_Boolean myDone;
Standard_Real myL;
Standard_Real myParam;
Standard_Real myUMin;
Standard_Real myUMax;
CPnts_MyRootFunction myF;


};


#include <CPnts_AbscissaPoint.lxx>



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


#endif