0030675: Visualization - remove redundant proxy classes in hierarchy of PrsMgr_Presen...
[occt.git] / src / IntTools / IntTools.hxx
1 // Created on: 2000-05-18
2 // Created by: Peter KURNEV
3 // Copyright (c) 2000-2014 OPEN CASCADE SAS
4 //
5 // This file is part of Open CASCADE Technology software library.
6 //
7 // This library is free software; you can redistribute it and/or modify it under
8 // the terms of the GNU Lesser General Public License version 2.1 as published
9 // by the Free Software Foundation, with special exception defined in the file
10 // OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
11 // distribution for complete text of the license and disclaimer of any warranty.
12 //
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
15
16 #ifndef _IntTools_HeaderFile
17 #define _IntTools_HeaderFile
18
19 #include <Standard.hxx>
20 #include <Standard_DefineAlloc.hxx>
21 #include <Standard_Handle.hxx>
22
23 #include <Standard_Real.hxx>
24 #include <IntTools_SequenceOfRoots.hxx>
25 #include <Standard_Integer.hxx>
26 class TopoDS_Edge;
27 class gp_Pnt;
28 class Geom_Curve;
29 class BRepAdaptor_Curve;
30 class IntTools_CArray1OfReal;
31 class IntTools_Context;
32 class IntTools_ShrunkRange;
33 class IntTools_Range;
34 class IntTools_CommonPrt;
35 class IntTools_Root;
36 class IntTools_EdgeEdge;
37 class IntTools_EdgeFace;
38 class IntTools_FClass2d;
39 class IntTools_MarkedRangeSet;
40 class IntTools_BaseRangeSample;
41 class IntTools_CurveRangeSample;
42 class IntTools_SurfaceRangeSample;
43 class IntTools_CurveRangeLocalizeData;
44 class IntTools_SurfaceRangeLocalizeData;
45 class IntTools_BeanFaceIntersector;
46 class IntTools_Curve;
47 class IntTools_PntOnFace;
48 class IntTools_PntOn2Faces;
49 class IntTools_TopolTool;
50 class IntTools_FaceFace;
51 class IntTools_Tools;
52 class IntTools_CArray1;
53 class IntTools_CArray1OfInteger;
54 class IntTools_CArray1OfReal;
55 class IntTools_CurveRangeSampleMapHasher;
56 class IntTools_SurfaceRangeSampleMapHasher;
57
58
59 //! Contains classes for intersection and classification
60 //! purposes and accompanying classes
61 class IntTools 
62 {
63 public:
64
65   DEFINE_STANDARD_ALLOC
66
67   
68   //! returns the length of the edge;
69   Standard_EXPORT static Standard_Real Length (const TopoDS_Edge& E);
70   
71   //! Remove from  the  sequence aSeq the Roots  that  have
72   //! values ti and tj such as  |ti-tj]  <  anEpsT.
73   Standard_EXPORT static void RemoveIdenticalRoots (IntTools_SequenceOfRoots& aSeq, const Standard_Real anEpsT);
74   
75   //! Sort the sequence aSeq of the Roots to arrange the
76   //! Roons  in  increasing  order
77   Standard_EXPORT static void SortRoots (IntTools_SequenceOfRoots& aSeq, const Standard_Real anEpsT);
78   
79   //! Find the states (before  and  after) for  each  Root
80   //! from  the sequence aSeq
81   Standard_EXPORT static void FindRootStates (IntTools_SequenceOfRoots& aSeq, const Standard_Real anEpsNull);
82   
83   Standard_EXPORT static Standard_Integer Parameter (const gp_Pnt& P, const Handle(Geom_Curve)& Curve, Standard_Real& aParm);
84   
85   Standard_EXPORT static Standard_Integer GetRadius (const BRepAdaptor_Curve& C, const Standard_Real t1, const Standard_Real t3, Standard_Real& R);
86   
87   Standard_EXPORT static Standard_Integer PrepareArgs (BRepAdaptor_Curve& C, const Standard_Real tMax, const Standard_Real tMin, const Standard_Integer Discret, const Standard_Real Deflect, IntTools_CArray1OfReal& anArgs);
88
89
90
91
92 protected:
93
94
95
96
97
98 private:
99
100
101
102
103 friend class IntTools_Context;
104 friend class IntTools_ShrunkRange;
105 friend class IntTools_Range;
106 friend class IntTools_CommonPrt;
107 friend class IntTools_Root;
108 friend class IntTools_EdgeEdge;
109 friend class IntTools_EdgeFace;
110 friend class IntTools_FClass2d;
111 friend class IntTools_MarkedRangeSet;
112 friend class IntTools_BaseRangeSample;
113 friend class IntTools_CurveRangeSample;
114 friend class IntTools_SurfaceRangeSample;
115 friend class IntTools_CurveRangeLocalizeData;
116 friend class IntTools_SurfaceRangeLocalizeData;
117 friend class IntTools_BeanFaceIntersector;
118 friend class IntTools_Curve;
119 friend class IntTools_PntOnFace;
120 friend class IntTools_PntOn2Faces;
121 friend class IntTools_TopolTool;
122 friend class IntTools_FaceFace;
123 friend class IntTools_Tools;
124 friend class IntTools_CArray1;
125 friend class IntTools_CArray1OfInteger;
126 friend class IntTools_CArray1OfReal;
127 friend class IntTools_CurveRangeSampleMapHasher;
128 friend class IntTools_SurfaceRangeSampleMapHasher;
129
130 };
131
132
133
134
135
136
137
138 #endif // _IntTools_HeaderFile