summaryrefslogtreecommitdiff
path: root/inc/Extrema_ExtPExtS.hxx
blob: 25d45bab7f61e098bd00a2cc6257aff1d9855fba (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
// 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 _Extrema_ExtPExtS_HeaderFile
#define _Extrema_ExtPExtS_HeaderFile

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

#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _Extrema_FuncExtPS_HeaderFile
#include <Extrema_FuncExtPS.hxx>
#endif
#ifndef _Handle_Adaptor3d_HCurve_HeaderFile
#include <Handle_Adaptor3d_HCurve.hxx>
#endif
#ifndef _Adaptor3d_SurfacePtr_HeaderFile
#include <Adaptor3d_SurfacePtr.hxx>
#endif
#ifndef _gp_Vec_HeaderFile
#include <gp_Vec.hxx>
#endif
#ifndef _gp_Ax2_HeaderFile
#include <gp_Ax2.hxx>
#endif
#ifndef _Extrema_GenExtPS_HeaderFile
#include <Extrema_GenExtPS.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Extrema_POnSurf_HeaderFile
#include <Extrema_POnSurf.hxx>
#endif
class Adaptor3d_HCurve;
class StdFail_NotDone;
class Standard_OutOfRange;
class gp_Pnt;
class Adaptor3d_SurfaceOfLinearExtrusion;
class Extrema_POnSurf;
class gp_Ax2;


//! It calculates all the extremum (minimum and <br>
//!          maximum) distances between a point and a linear <br>
//!          extrusion surface. <br>
class Extrema_ExtPExtS  {
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); 
  }

  
  Standard_EXPORT   Extrema_ExtPExtS();
  //! It calculates all the distances between a point <br>
//!          from gp and a Surface. <br>
  Standard_EXPORT   Extrema_ExtPExtS(const gp_Pnt& P,const Adaptor3d_SurfaceOfLinearExtrusion& S,const Standard_Real Umin,const Standard_Real Usup,const Standard_Real Vmin,const Standard_Real Vsup,const Standard_Real TolU,const Standard_Real TolV);
  //! It calculates all the distances between a point <br>
//!          from gp and a Surface. <br>
  Standard_EXPORT   Extrema_ExtPExtS(const gp_Pnt& P,const Adaptor3d_SurfaceOfLinearExtrusion& S,const Standard_Real TolU,const Standard_Real TolV);
  //! Initializes the fields of the algorithm. <br>
  Standard_EXPORT     void Initialize(const Adaptor3d_SurfaceOfLinearExtrusion& S,const Standard_Real Uinf,const Standard_Real Usup,const Standard_Real Vinf,const Standard_Real Vsup,const Standard_Real TolU,const Standard_Real TolV) ;
  
  Standard_EXPORT     void Perform(const gp_Pnt& P) ;
  //! Returns True if the distances are found. <br>
  Standard_EXPORT     Standard_Boolean IsDone() const;
  //! Returns the number of extremum distances. <br>
  Standard_EXPORT     Standard_Integer NbExt() const;
  //! Returns the value of the Nth resulting square distance. <br>
  Standard_EXPORT     Standard_Real SquareDistance(const Standard_Integer N) const;
  //! Returns the point of the Nth resulting distance. <br>
  Standard_EXPORT     Extrema_POnSurf Point(const Standard_Integer N) const;





protected:





private:

  
  Standard_EXPORT     void MakePreciser(Standard_Real& U,const gp_Pnt& P,const Standard_Boolean isMin,const gp_Ax2& OrtogSection) const;


Standard_Real myuinf;
Standard_Real myusup;
Standard_Real mytolu;
Standard_Real myvinf;
Standard_Real myvsup;
Standard_Real mytolv;
Standard_Real myVRange;
Extrema_FuncExtPS myF;
Handle_Adaptor3d_HCurve myC;
Adaptor3d_SurfacePtr myS;
gp_Vec myDirection;
gp_Ax2 myPosition;
Extrema_GenExtPS myExtPS;
Standard_Boolean myIsAnalyticallyComputable;
Standard_Boolean myDone;
Standard_Integer myNbExt;
Standard_Real mySqDist[4];
Extrema_POnSurf myPoint[4];


};





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


#endif