0027232: Configuration - fix mblen missing building issue on Android
[occt.git] / src / HLRBRep / HLRBRep.hxx
1 // Created on: 1992-10-14
2 // Created by: Christophe MARION
3 // Copyright (c) 1992-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
5 //
6 // This file is part of Open CASCADE Technology software library.
7 //
8 // This library is free software; you can redistribute it and/or modify it under
9 // the terms of the GNU Lesser General Public License version 2.1 as published
10 // by the Free Software Foundation, with special exception defined in the file
11 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
12 // distribution for complete text of the license and disclaimer of any warranty.
13 //
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
16
17 #ifndef _HLRBRep_HeaderFile
18 #define _HLRBRep_HeaderFile
19
20 #include <Standard.hxx>
21 #include <Standard_DefineAlloc.hxx>
22 #include <Standard_Handle.hxx>
23
24 #include <Standard_Real.hxx>
25 class TopoDS_Edge;
26 class HLRBRep_Curve;
27 class HLRBRep_CurveTool;
28 class HLRBRep_BCurveTool;
29 class HLRBRep_Curve;
30 class HLRBRep_SurfaceTool;
31 class HLRBRep_BSurfaceTool;
32 class HLRBRep_Surface;
33 class HLRBRep_CLPropsATool;
34 class HLRBRep_CLProps;
35 class HLRBRep_SLPropsATool;
36 class HLRBRep_SLProps;
37 class HLRBRep_CInter;
38 class HLRBRep_LineTool;
39 class HLRBRep_InterCSurf;
40 class HLRBRep_EdgeFaceTool;
41 class HLRBRep_Intersector;
42 class HLRBRep_EdgeData;
43 class HLRBRep_FaceData;
44 class HLRBRep_FaceIterator;
45 class HLRBRep_Data;
46 class HLRBRep_ShapeToHLR;
47 class HLRBRep_HLRToShape;
48 class HLRBRep_ShapeBounds;
49 class HLRBRep_EdgeInterferenceTool;
50 class HLRBRep_VertexList;
51 class HLRBRep_EdgeIList;
52 class HLRBRep_AreaLimit;
53 class HLRBRep_EdgeBuilder;
54 class HLRBRep_Hider;
55 class HLRBRep_InternalAlgo;
56 class HLRBRep_Algo;
57 class HLRBRep_PolyAlgo;
58 class HLRBRep_BiPoint;
59 class HLRBRep_BiPnt2D;
60 class HLRBRep_PolyHLRToShape;
61 class HLRBRep_TheCurveLocatorOfTheProjPCurOfCInter;
62 class HLRBRep_PCLocFOfTheLocateExtPCOfTheProjPCurOfCInter;
63 class HLRBRep_TheLocateExtPCOfTheProjPCurOfCInter;
64 class HLRBRep_TheProjPCurOfCInter;
65 class HLRBRep_MyImpParToolOfTheIntersectorOfTheIntConicCurveOfCInter;
66 class HLRBRep_TheIntersectorOfTheIntConicCurveOfCInter;
67 class HLRBRep_TheIntConicCurveOfCInter;
68 class HLRBRep_IntConicCurveOfCInter;
69 class HLRBRep_ThePolygon2dOfTheIntPCurvePCurveOfCInter;
70 class HLRBRep_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfCInter;
71 class HLRBRep_ExactIntersectionPointOfTheIntPCurvePCurveOfCInter;
72 class HLRBRep_TheIntPCurvePCurveOfCInter;
73 class HLRBRep_ThePolygonOfInterCSurf;
74 class HLRBRep_ThePolygonToolOfInterCSurf;
75 class HLRBRep_ThePolyhedronOfInterCSurf;
76 class HLRBRep_ThePolyhedronToolOfInterCSurf;
77 class HLRBRep_TheInterferenceOfInterCSurf;
78 class HLRBRep_TheCSFunctionOfInterCSurf;
79 class HLRBRep_TheExactInterCSurf;
80 class HLRBRep_TheQuadCurvFuncOfTheQuadCurvExactInterCSurf;
81 class HLRBRep_TheQuadCurvExactInterCSurf;
82
83
84 //! Hidden Lines Removal
85 //! algorithms on the BRep DataStructure.
86 //!
87 //! The class PolyAlgo  is used to remove Hidden lines
88 //! on Shapes with Triangulations.
89 class HLRBRep 
90 {
91 public:
92
93   DEFINE_STANDARD_ALLOC
94
95   
96   Standard_EXPORT static TopoDS_Edge MakeEdge (const HLRBRep_Curve& ec, const Standard_Real U1, const Standard_Real U2);
97   
98   Standard_EXPORT static TopoDS_Edge MakeEdge3d (const HLRBRep_Curve& ec, const Standard_Real U1, const Standard_Real U2);
99   
100   Standard_EXPORT static void PolyHLRAngleAndDeflection (const Standard_Real InAngl, Standard_Real& OutAngl, Standard_Real& OutDefl);
101
102
103
104
105 protected:
106
107
108
109
110
111 private:
112
113
114
115
116 friend class HLRBRep_CurveTool;
117 friend class HLRBRep_BCurveTool;
118 friend class HLRBRep_Curve;
119 friend class HLRBRep_SurfaceTool;
120 friend class HLRBRep_BSurfaceTool;
121 friend class HLRBRep_Surface;
122 friend class HLRBRep_CLPropsATool;
123 friend class HLRBRep_CLProps;
124 friend class HLRBRep_SLPropsATool;
125 friend class HLRBRep_SLProps;
126 friend class HLRBRep_CInter;
127 friend class HLRBRep_LineTool;
128 friend class HLRBRep_InterCSurf;
129 friend class HLRBRep_EdgeFaceTool;
130 friend class HLRBRep_Intersector;
131 friend class HLRBRep_EdgeData;
132 friend class HLRBRep_FaceData;
133 friend class HLRBRep_FaceIterator;
134 friend class HLRBRep_Data;
135 friend class HLRBRep_ShapeToHLR;
136 friend class HLRBRep_HLRToShape;
137 friend class HLRBRep_ShapeBounds;
138 friend class HLRBRep_EdgeInterferenceTool;
139 friend class HLRBRep_VertexList;
140 friend class HLRBRep_EdgeIList;
141 friend class HLRBRep_AreaLimit;
142 friend class HLRBRep_EdgeBuilder;
143 friend class HLRBRep_Hider;
144 friend class HLRBRep_InternalAlgo;
145 friend class HLRBRep_Algo;
146 friend class HLRBRep_PolyAlgo;
147 friend class HLRBRep_BiPoint;
148 friend class HLRBRep_BiPnt2D;
149 friend class HLRBRep_PolyHLRToShape;
150 friend class HLRBRep_TheCurveLocatorOfTheProjPCurOfCInter;
151 friend class HLRBRep_PCLocFOfTheLocateExtPCOfTheProjPCurOfCInter;
152 friend class HLRBRep_TheLocateExtPCOfTheProjPCurOfCInter;
153 friend class HLRBRep_TheProjPCurOfCInter;
154 friend class HLRBRep_MyImpParToolOfTheIntersectorOfTheIntConicCurveOfCInter;
155 friend class HLRBRep_TheIntersectorOfTheIntConicCurveOfCInter;
156 friend class HLRBRep_TheIntConicCurveOfCInter;
157 friend class HLRBRep_IntConicCurveOfCInter;
158 friend class HLRBRep_ThePolygon2dOfTheIntPCurvePCurveOfCInter;
159 friend class HLRBRep_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfCInter;
160 friend class HLRBRep_ExactIntersectionPointOfTheIntPCurvePCurveOfCInter;
161 friend class HLRBRep_TheIntPCurvePCurveOfCInter;
162 friend class HLRBRep_ThePolygonOfInterCSurf;
163 friend class HLRBRep_ThePolygonToolOfInterCSurf;
164 friend class HLRBRep_ThePolyhedronOfInterCSurf;
165 friend class HLRBRep_ThePolyhedronToolOfInterCSurf;
166 friend class HLRBRep_TheInterferenceOfInterCSurf;
167 friend class HLRBRep_TheCSFunctionOfInterCSurf;
168 friend class HLRBRep_TheExactInterCSurf;
169 friend class HLRBRep_TheQuadCurvFuncOfTheQuadCurvExactInterCSurf;
170 friend class HLRBRep_TheQuadCurvExactInterCSurf;
171
172 };
173
174
175
176
177
178
179
180 #endif // _HLRBRep_HeaderFile