42cf5bc1 |
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 |