0022795: Make possible to display some presentable objects in overlay of others,...
[occt.git] / src / BRepExtrema / BRepExtrema_ExtCF.hxx
CommitLineData
92d1589b
A
1// This file is generated by WOK (CPPExt).
2// Please do not edit this file; modify original file instead.
3// The copyright and license terms as defined for the original file apply to
4// this header file considered to be the "object code" form of the original source.
5
6#ifndef _BRepExtrema_ExtCF_HeaderFile
7#define _BRepExtrema_ExtCF_HeaderFile
8
9#ifndef _Standard_HeaderFile
10#include <Standard.hxx>
11#endif
12#ifndef _Standard_Macro_HeaderFile
13#include <Standard_Macro.hxx>
14#endif
15
16#ifndef _Extrema_ExtCS_HeaderFile
17#include <Extrema_ExtCS.hxx>
18#endif
19#ifndef _Standard_Integer_HeaderFile
20#include <Standard_Integer.hxx>
21#endif
22#ifndef _TColStd_SequenceOfReal_HeaderFile
23#include <TColStd_SequenceOfReal.hxx>
24#endif
25#ifndef _Extrema_SequenceOfPOnSurf_HeaderFile
26#include <Extrema_SequenceOfPOnSurf.hxx>
27#endif
28#ifndef _Extrema_SequenceOfPOnCurv_HeaderFile
29#include <Extrema_SequenceOfPOnCurv.hxx>
30#endif
31#ifndef _Handle_BRepAdaptor_HSurface_HeaderFile
32#include <Handle_BRepAdaptor_HSurface.hxx>
33#endif
34#ifndef _Standard_Boolean_HeaderFile
35#include <Standard_Boolean.hxx>
36#endif
37#ifndef _Standard_Real_HeaderFile
38#include <Standard_Real.hxx>
39#endif
40#ifndef _Extrema_POnCurv_HeaderFile
41#include <Extrema_POnCurv.hxx>
42#endif
43#ifndef _Extrema_POnSurf_HeaderFile
44#include <Extrema_POnSurf.hxx>
45#endif
46class BRepAdaptor_HSurface;
47class TopoDS_Edge;
48class TopoDS_Face;
49class gp_Pnt;
50
51
52class BRepExtrema_ExtCF
53{
54 public:
55
56 void* operator new(size_t,void* anAddress)
57 {
58 return anAddress;
59 }
60 void* operator new(size_t size)
61 {
62 return Standard::Allocate(size);
63 }
64 void operator delete(void *anAddress)
65 {
66 if (anAddress) Standard::Free((Standard_Address&)anAddress);
67 }
68
69 Standard_EXPORT BRepExtrema_ExtCF()
70 {
71 }
72 //! It calculates all the distances. <br>
73 Standard_EXPORT BRepExtrema_ExtCF(const TopoDS_Edge& V,const TopoDS_Face& E);
74
75 Standard_EXPORT void Initialize(const TopoDS_Face& E);
76 //! An exception is raised if the fields have not been initialized. <br>
77 //! Be careful: this method uses the Face only for classify not for the fields. <br>
78 Standard_EXPORT void Perform(const TopoDS_Edge& V,const TopoDS_Face& F);
79 //! True if the distances are found. <br>
80 Standard_EXPORT Standard_Boolean IsDone() const
81 {
82 return myExtCS.IsDone();
83 }
84 //! Returns the number of extremum distances. <br>
85 Standard_EXPORT Standard_Integer NbExt() const
86 {
87 return mySqDist.Length();
88 }
89 //! Returns the value of the <N>th extremum square distance. <br>
90 Standard_EXPORT Standard_Real SquareDistance(const Standard_Integer N) const
91 {
92 return mySqDist.Value(N);
93 }
94 //! Returns True if the curve is on a parallel surface. <br>
95 Standard_EXPORT Standard_Boolean IsParallel() const
96 {
97 return myExtCS.IsParallel();
98 }
99 //! Returns the parameters on the Edge of the <N>th extremum distance. <br>
100 Standard_EXPORT Standard_Real ParameterOnEdge(const Standard_Integer N) const
101 {
102 return myPointsOnC.Value(N).Parameter();
103 }
104 //! Returns the parameters on the Face of the <N>th extremum distance. <br>
105 Standard_EXPORT void ParameterOnFace(const Standard_Integer N,Standard_Real& U,Standard_Real& V) const
106 {
107 myPointsOnS.Value(N).Parameter(U, V);
108 }
109 //! Returns the Point of the <N>th extremum distance. <br>
110 Standard_EXPORT gp_Pnt PointOnEdge(const Standard_Integer N) const
111 {
112 return myPointsOnC.Value(N).Value();
113 }
114 //! Returns the Point of the <N>th extremum distance. <br>
115 Standard_EXPORT gp_Pnt PointOnFace(const Standard_Integer N) const
116 {
117 return myPointsOnS.Value(N).Value();
118 }
119
120 private:
121
122 Extrema_ExtCS myExtCS;
123 TColStd_SequenceOfReal mySqDist;
124 Extrema_SequenceOfPOnSurf myPointsOnS;
125 Extrema_SequenceOfPOnCurv myPointsOnC;
126 Handle_BRepAdaptor_HSurface myHS;
127};
128
129#endif