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
|
// 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
#include <Standard.hxx>
#include <Standard_DefineAlloc.hxx>
#include <Standard_Macro.hxx>
#include <Standard_Boolean.hxx>
#include <TopoDS_Shape.hxx>
#include <Standard_Address.hxx>
#include <Standard_Integer.hxx>
#include <Standard_Real.hxx>
#include <TopAbs_Orientation.hxx>
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
//! of axis or a circle and the faces of a shape. The
//! intersection points are sorted in increasing
//! parameter along each axis or circle.
class LocOpe_CSIntersector
{
public:
DEFINE_STANDARD_ALLOC
//! Empty constructor.
LocOpe_CSIntersector();
//! Creates and performs the intersection betwwen
//! <Ax1> and <S>.
LocOpe_CSIntersector(const TopoDS_Shape& S);
//! Performs the intersection between <Ax1 and <S>.
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
//! been done.
Standard_Boolean IsDone() const;
//! Returns the number of intersection point on the
//! element of range <I>.
Standard_EXPORT Standard_Integer NbPoints (const Standard_Integer I) const;
//! Returns the intersection point of range <Index> on
//! element of range <I>. The points are sorted in
//! increasing order of parameter along the axis.
Standard_EXPORT const LocOpe_PntFace& Point (const Standard_Integer I, const Standard_Integer Index) const;
//! On the element of range <I>, searches the first
//! intersection point located after the parameter
//! <From>, wich orientation is not TopAbs_EXTERNAL.
//! If found, returns <Standard_True>. <Or> contains
//! the orientation of the point, <IndFrom> and
//! <IndTo> represents the interval of index in the
//! sequence of intersection point corresponding to
//! the point. (IndFrom <= IndTo). <Tol> is used to
//! determine if 2 parameters are equal.
//!
//! Otherwise, returns <Standard_False>.
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
//! intersection point located before the parameter
//! <From>, wich orientation is not TopAbs_EXTERNAL.
//! If found, returns <Standard_True>. <Or> contains
//! the orientation of the point, <IndFrom> and
//! <IndTo> represents the interval of index in the
//! sequence of intersection point corresponding to
//! the point (IndFrom <= IndTo). <Tol> is used to
//! determine if 2 parameters are equal.
//!
//! Otherwise, returns <Standard_False>.
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
//! intersection point located after the index
//! <FromInd> ( >= FromInd + 1), wich orientation is
//! not TopAbs_EXTERNAL. If found, returns
//! <Standard_True>. <Or> contains the orientation of
//! the point, <IndFrom> and <IndTo> represents the
//! interval of index in the sequence of intersection
//! point corresponding to the point. (IndFrom <=
//! IndTo). <Tol> is used to determine if 2 parameters
//! are equal.
//!
//! Otherwise, returns <Standard_False>.
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
//! intersection point located before the index
//! <FromInd> ( <= FromInd -1), wich orientation is
//! not TopAbs_EXTERNAL. If found, returns
//! <Standard_True>. <Or> contains the orientation of
//! the point, <IndFrom> and <IndTo> represents the
//! interval of index in the sequence of intersection
//! point corresponding to the point (IndFrom <=
//! IndTo). <Tol> is used to determine if 2 parameters
//! are equal.
//!
//! Otherwise, returns <Standard_False>.
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>
#endif // _LocOpe_CSIntersector_HeaderFile
|