summaryrefslogtreecommitdiff
path: root/inc/LocOpe_CSIntersector.hxx
blob: 0bc8276f86a46754f5a2c812edd7fa59de8c10f4 (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
173
// 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 _LocOpe_CSIntersector_HeaderFile
#define _LocOpe_CSIntersector_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 _TopoDS_Shape_HeaderFile
#include <TopoDS_Shape.hxx>
#endif
#ifndef _Standard_Address_HeaderFile
#include <Standard_Address.hxx>
#endif
#ifndef _Standard_Integer_HeaderFile
#include <Standard_Integer.hxx>
#endif
#ifndef _Standard_Real_HeaderFile
#include <Standard_Real.hxx>
#endif
#ifndef _TopAbs_Orientation_HeaderFile
#include <TopAbs_Orientation.hxx>
#endif
class StdFail_NotDone;
class Standard_OutOfRange;
class TopoDS_Shape;
class LocOpe_SequenceOfLin;
class LocOpe_SequenceOfCirc;
class TColGeom_SequenceOfCurve;
class LocOpe_PntFace;


//! This class provides the intersection between a set <br>
//!          of axis or a circle and the faces of a shape.  The <br>
//!          intersection  points  are   sorted  in  increasing <br>
//!          parameter along each axis or circle. <br>
class LocOpe_CSIntersector  {
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>
      LocOpe_CSIntersector();
  //! Creates  and performs the intersection     betwwen <br>
//!          <Ax1> and <S>. <br>
      LocOpe_CSIntersector(const TopoDS_Shape& S);
  //! Performs the intersection between <Ax1 and <S>. <br>
  Standard_EXPORT     void Init(const TopoDS_Shape& S) ;
  
  Standard_EXPORT     void Perform(const LocOpe_SequenceOfLin& Slin) ;
  
  Standard_EXPORT     void Perform(const LocOpe_SequenceOfCirc& Scir) ;
  
  Standard_EXPORT     void Perform(const TColGeom_SequenceOfCurve& Scur) ;
  //! Returns <Standard_True>  if the  intersection  has <br>
//!          been done. <br>
        Standard_Boolean IsDone() const;
  //! Returns  the number of   intersection point on the <br>
//!          element of range <I>. <br>
  Standard_EXPORT     Standard_Integer NbPoints(const Standard_Integer I) const;
  //! Returns the intersection point of range <Index> on <br>
//!          element of range   <I>. The points   are sorted in <br>
//!          increasing order of parameter along the axis. <br>
  Standard_EXPORT    const LocOpe_PntFace& Point(const Standard_Integer I,const Standard_Integer Index) const;
  //! On  the element of range   <I>, searches the first <br>
//!          intersection   point  located after  the parameter <br>
//!          <From>,   wich orientation is not TopAbs_EXTERNAL. <br>
//!          If  found, returns <Standard_True>.  <Or> contains <br>
//!          the orientation    of  the  point,  <IndFrom>  and <br>
//!          <IndTo> represents  the interval  of index in  the <br>
//!          sequence  of intersection  point corresponding  to <br>
//!          the  point. (IndFrom <=   IndTo). <Tol> is used to <br>
//!          determine if 2 parameters are equal. <br>
//! <br>
//!          Otherwise, returns <Standard_False>. <br>
  Standard_EXPORT     Standard_Boolean LocalizeAfter(const Standard_Integer I,const Standard_Real From,const Standard_Real Tol,TopAbs_Orientation& Or,Standard_Integer& IndFrom,Standard_Integer& IndTo) const;
  //! On the element  of range  <I>, searches the  first <br>
//!          intersection point   located before  the parameter <br>
//!          <From>,  wich orientation  is not TopAbs_EXTERNAL. <br>
//!          If found,  returns <Standard_True>.  <Or> contains <br>
//!          the   orientation  of   the point,  <IndFrom>  and <br>
//!          <IndTo> represents the interval   of index in  the <br>
//!          sequence of  intersection  point corresponding  to <br>
//!          the point (IndFrom  <=  IndTo). <Tol> is   used to <br>
//!          determine if 2 parameters are equal. <br>
//! <br>
//!          Otherwise, returns <Standard_False>. <br>
  Standard_EXPORT     Standard_Boolean LocalizeBefore(const Standard_Integer I,const Standard_Real From,const Standard_Real Tol,TopAbs_Orientation& Or,Standard_Integer& IndFrom,Standard_Integer& IndTo) const;
  //! On the  element of  range <I>, searches  the first <br>
//!          intersection      point  located after the   index <br>
//!          <FromInd> ( >=  FromInd + 1), wich  orientation is <br>
//!          not    TopAbs_EXTERNAL.      If    found,  returns <br>
//!          <Standard_True>.  <Or> contains the orientation of <br>
//!          the  point, <IndFrom>  and <IndTo> represents  the <br>
//!          interval of index in  the sequence of intersection <br>
//!          point corresponding   to the  point.  (IndFrom  <= <br>
//!          IndTo). <Tol> is used to determine if 2 parameters <br>
//!          are equal. <br>
//! <br>
//!          Otherwise, returns <Standard_False>. <br>
  Standard_EXPORT     Standard_Boolean LocalizeAfter(const Standard_Integer I,const Standard_Integer FromInd,const Standard_Real Tol,TopAbs_Orientation& Or,Standard_Integer& IndFrom,Standard_Integer& IndTo) const;
  //! On  the element of  range  <I>, searches the first <br>
//!          intersection  point    located  before  the  index <br>
//!          <FromInd>  (  <= FromInd -1),  wich orientation is <br>
//!          not   TopAbs_EXTERNAL.  If    found,       returns <br>
//!          <Standard_True>.  <Or> contains the orientation of <br>
//!          the  point, <IndFrom>  and  <IndTo> represents the <br>
//!          interval of  index in the sequence of intersection <br>
//!          point  corresponding to   the  point  (IndFrom  <= <br>
//!          IndTo). <Tol> is used to determine if 2 parameters <br>
//!          are equal. <br>
//! <br>
//!          Otherwise, returns <Standard_False>. <br>
  Standard_EXPORT     Standard_Boolean LocalizeBefore(const Standard_Integer I,const Standard_Integer FromInd,const Standard_Real Tol,TopAbs_Orientation& Or,Standard_Integer& IndFrom,Standard_Integer& IndTo) const;
  
  Standard_EXPORT     void Destroy() ;
~LocOpe_CSIntersector()
{
  Destroy();
}





protected:





private:



Standard_Boolean myDone;
TopoDS_Shape myShape;
Standard_Address myPoints;
Standard_Integer myNbelem;


};


#include <LocOpe_CSIntersector.lxx>



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


#endif