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
|