summaryrefslogtreecommitdiff
path: root/inc/Approx_SameParameter.hxx
blob: 71a2e7f0dcd3c009c7cafbeeb077b6fee7e7b5d1 (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
// 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 _Approx_SameParameter_HeaderFile
#define _Approx_SameParameter_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 _Handle_Geom2d_BSplineCurve_HeaderFile
#include <Handle_Geom2d_BSplineCurve.hxx>
#endif
#ifndef _Handle_Adaptor2d_HCurve2d_HeaderFile
#include <Handle_Adaptor2d_HCurve2d.hxx>
#endif
#ifndef _Handle_Adaptor3d_HCurve_HeaderFile
#include <Handle_Adaptor3d_HCurve.hxx>
#endif
#ifndef _Handle_Adaptor3d_HSurface_HeaderFile
#include <Handle_Adaptor3d_HSurface.hxx>
#endif
#ifndef _Handle_Geom_Curve_HeaderFile
#include <Handle_Geom_Curve.hxx>
#endif
#ifndef _Handle_Geom2d_Curve_HeaderFile
#include <Handle_Geom2d_Curve.hxx>
#endif
#ifndef _Handle_Geom_Surface_HeaderFile
#include <Handle_Geom_Surface.hxx>
#endif
class Geom2d_BSplineCurve;
class Adaptor2d_HCurve2d;
class Adaptor3d_HCurve;
class Adaptor3d_HSurface;
class Standard_OutOfRange;
class Standard_ConstructionError;
class Geom_Curve;
class Geom2d_Curve;
class Geom_Surface;


//! Approximation of a  PCurve  on a surface to  make  its <br>
//!          parameter be the same that the parameter of a given 3d <br>
//!          reference curve. <br>
class Approx_SameParameter  {
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); 
  }

  
//!  Warning: the C3D and C2D must have the same parametric domain. <br>
//! <br>
  Standard_EXPORT   Approx_SameParameter(const Handle(Geom_Curve)& C3D,const Handle(Geom2d_Curve)& C2D,const Handle(Geom_Surface)& S,const Standard_Real Tol);
  
  Standard_EXPORT   Approx_SameParameter(const Handle(Adaptor3d_HCurve)& C3D,const Handle(Geom2d_Curve)& C2D,const Handle(Adaptor3d_HSurface)& S,const Standard_Real Tol);
  
//!  Warning: the C3D and C2D must have the same parametric domain. <br>
//! <br>
  Standard_EXPORT   Approx_SameParameter(const Handle(Adaptor3d_HCurve)& C3D,const Handle(Adaptor2d_HCurve2d)& C2D,const Handle(Adaptor3d_HSurface)& S,const Standard_Real Tol);
  
        Standard_Boolean IsDone() const;
  
        Standard_Real TolReached() const;
  //! Tells whether the original data  had already the  same <br>
//!          parameter up to  the tolerance :  in that case nothing <br>
//!          is done. <br>
        Standard_Boolean IsSameParameter() const;
  //! Returns the 2D  curve that has  the same parameter  as <br>
//!          the  3D curve once evaluated on  the surface up to the <br>
//!          specified tolerance <br>
        Handle_Geom2d_BSplineCurve Curve2d() const;





protected:





private:

  //! Compute the Pcurve (internal use only). <br>
  Standard_EXPORT     void Build(const Standard_Real Tol) ;


Standard_Boolean mySameParameter;
Standard_Boolean myDone;
Standard_Real myTolReached;
Handle_Geom2d_BSplineCurve myCurve2d;
Handle_Adaptor2d_HCurve2d myHCurve2d;
Handle_Adaptor3d_HCurve myC3d;
Handle_Adaptor3d_HSurface mySurf;


};


#include <Approx_SameParameter.lxx>



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


#endif