summaryrefslogtreecommitdiff
path: root/inc/BRepClass3d_Intersector3d.hxx
blob: 9e1948e75bd7d5ea76b6cb495d177a83350a4952 (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
// 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 _BRepClass3d_Intersector3d_HeaderFile
#define _BRepClass3d_Intersector3d_HeaderFile

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

#ifndef _gp_Pnt_HeaderFile
#include <gp_Pnt.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _IntCurveSurface_TransitionOnCurve_HeaderFile
#include <IntCurveSurface_TransitionOnCurve.hxx>
#endif
#ifndef _Standard_Boolean_HeaderFile
#include <Standard_Boolean.hxx>
#endif
#ifndef _TopAbs_State_HeaderFile
#include <TopAbs_State.hxx>
#endif
#ifndef _TopoDS_Face_HeaderFile
#include <TopoDS_Face.hxx>
#endif
class gp_Lin;
class TopoDS_Face;
class gp_Pnt;



class BRepClass3d_Intersector3d  {
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); 
  }

  //! Empty constructor. <br>
  Standard_EXPORT   BRepClass3d_Intersector3d();
  //! Perform the intersection between the <br>
//!          segment L(0) ... L(Prm) and the Shape <Sh>. <br>
//! <br>
//!          Only the point with the smallest parameter on the <br>
//!          line is returned. <br>
//! <br>
//!          The Tolerance <Tol> is used to determine if the <br>
//!          first point of the segment is near the face. In <br>
//!          that case, the parameter of the intersection point <br>
//!          on the line can be a negative value (greater than -Tol). <br>
  Standard_EXPORT     void Perform(const gp_Lin& L,const Standard_Real Prm,const Standard_Real Tol,const TopoDS_Face& F) ;
  //! True is returned when the intersection have been computed. <br>
        Standard_Boolean IsDone() const;
  //! True is returned if a point has been found. <br>
        Standard_Boolean HasAPoint() const;
  //! Returns the U parameter of the intersection point <br>
//!          on the surface. <br>
        Standard_Real UParameter() const;
  //! Returns the V parameter of the intersection point <br>
//!          on the surface. <br>
        Standard_Real VParameter() const;
  //! Returns the parameter of the intersection point <br>
//!          on the line. <br>
        Standard_Real WParameter() const;
  //! Returns the geometric point of the intersection <br>
//!          between the line and the surface. <br>
       const gp_Pnt& Pnt() const;
  //! Returns the transition of the line on the surface. <br>
        IntCurveSurface_TransitionOnCurve Transition() const;
  //! Returns the state of the point on the face. <br>
//!          The values can be either TopAbs_IN <br>
//!             ( the point is in the face) <br>
//!           or TopAbs_ON <br>
//!             ( the point is on a boudary of the face). <br>
        TopAbs_State State() const;
  //! Returns the significant face used to determine <br>
//!          the intersection. <br>
//! <br>
       const TopoDS_Face& Face() const;





protected:





private:



gp_Pnt pnt;
Standard_Real U;
Standard_Real V;
Standard_Real W;
IntCurveSurface_TransitionOnCurve transition;
Standard_Boolean done;
Standard_Boolean hasapoint;
TopAbs_State state;
TopoDS_Face face;


};


#include <BRepClass3d_Intersector3d.lxx>



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


#endif