1fb6d6274321303d359bc04c88d9f423a3fb6dae
[occt.git] / src / BRepExtrema / BRepExtrema_ExtCF.hxx
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
46 class BRepAdaptor_HSurface;
47 class TopoDS_Edge;
48 class TopoDS_Face;
49 class gp_Pnt;
50
51
52 class 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