summaryrefslogtreecommitdiff
path: root/inc/LocOpe_CurveShapeIntersector.hxx
blob: 0c6319abd3f36ad41b81641a6196474751e9c601 (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
// 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_CurveShapeIntersector_HeaderFile
#define _LocOpe_CurveShapeIntersector_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 _LocOpe_SequenceOfPntFace_HeaderFile
#include <LocOpe_SequenceOfPntFace.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 gp_Ax1;
class TopoDS_Shape;
class gp_Circ;
class LocOpe_PntFace;


//! This  class  provides  the intersection between an <br>
//!          axis  or  a circle and  the  faces of a shape. The <br>
//!          intersection   points  are   sorted in  increasing <br>
//!          parameter along the axis. <br>
class LocOpe_CurveShapeIntersector  {
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_CurveShapeIntersector();
  //! Creates  and performs the intersection     betwwen <br>
//!          <Ax1> and <S>. <br>
      LocOpe_CurveShapeIntersector(const gp_Ax1& Axis,const TopoDS_Shape& S);
  //! Creates  and performs yte intersection     betwwen <br>
//!          <C> and <S>. <br>
      LocOpe_CurveShapeIntersector(const gp_Circ& C,const TopoDS_Shape& S);
  //! Performs the intersection between <Ax1 and <S>. <br>
  Standard_EXPORT     void Init(const gp_Ax1& Axis,const TopoDS_Shape& S) ;
  //! Performs the intersection between <Ax1 and <S>. <br>
  Standard_EXPORT     void Init(const gp_Circ& C,const TopoDS_Shape& S) ;
  //! Returns <Standard_True>  if the  intersection  has <br>
//!          been done. <br>
        Standard_Boolean IsDone() const;
  //! Returns the number of intersection point. <br>
        Standard_Integer NbPoints() const;
  //! Returns the intersection  point  of range <Index>. <br>
//!          The points  are   sorted in increasing  order   of <br>
//!          parameter along the axis. <br>
       const LocOpe_PntFace& Point(const Standard_Integer Index) const;
  //! Searches the   first intersection  point   located <br>
//!          after the  parameter  <From>, 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). <br>
//! <br>
//!          Otherwise, returns <Standard_False>. <br>
  Standard_EXPORT     Standard_Boolean LocalizeAfter(const Standard_Real From,TopAbs_Orientation& Or,Standard_Integer& IndFrom,Standard_Integer& IndTo) const;
  //! Searches  the first intersection point     located <br>
//!          before  the parameter <From>,  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). <br>
//! <br>
//!          Otherwise, returns <Standard_False>. <br>
  Standard_EXPORT     Standard_Boolean LocalizeBefore(const Standard_Real From,TopAbs_Orientation& Or,Standard_Integer& IndFrom,Standard_Integer& IndTo) const;
  //! Searches  the first intersection point     located <br>
//!          after the index <FromInd>  ( >= FromInd + 1), wich <br>
//!          orientation   is   not TopAbs_EXTERNAL.   If found, <br>
//!          returns   <Standard_True>.   <Or>  contains    the <br>
//!          orientation of the  point, <IndFrom>  and  <IndTo> <br>
//!          represents the interval  of index in  the sequence <br>
//!          of  intersection  point     corresponding to   the <br>
//!          point. (IndFrom <= IndTo). <br>
//! <br>
//!          Otherwise, returns <Standard_False>. <br>
  Standard_EXPORT     Standard_Boolean LocalizeAfter(const Standard_Integer FromInd,TopAbs_Orientation& Or,Standard_Integer& IndFrom,Standard_Integer& IndTo) const;
  //! Searches the  first  intersection   point  located <br>
//!          before the index <FromInd>  ( <= FromInd -1), wich <br>
//!          orientation is   not TopAbs_EXTERNAL.   If   found, <br>
//!          returns   <Standard_True>.  <Or>  contains     the <br>
//!          orientation  of the  point,  <IndFrom> and <IndTo> <br>
//!          represents the interval  of index  in the sequence <br>
//!          of  intersection  point corresponding to the point <br>
//!          (IndFrom <= IndTo). <br>
//! <br>
//!          Otherwise, returns <Standard_False>. <br>
  Standard_EXPORT     Standard_Boolean LocalizeBefore(const Standard_Integer FromInd,TopAbs_Orientation& Or,Standard_Integer& IndFrom,Standard_Integer& IndTo) const;





protected:





private:



Standard_Boolean myDone;
LocOpe_SequenceOfPntFace myPoints;


};


#include <LocOpe_CurveShapeIntersector.lxx>



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


#endif