1 // Created on: 2000-05-18
2 // Created by: Peter KURNEV
3 // Copyright (c) 2000-2014 OPEN CASCADE SAS
5 // This file is part of Open CASCADE Technology software library.
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.
13 // Alternatively, this file may be used under the terms of Open CASCADE
14 // commercial license or contractual agreement.
16 #ifndef _IntTools_HeaderFile
17 #define _IntTools_HeaderFile
19 #include <Standard.hxx>
20 #include <Standard_DefineAlloc.hxx>
21 #include <Standard_Handle.hxx>
23 #include <Standard_Real.hxx>
24 #include <IntTools_SequenceOfRoots.hxx>
25 #include <Standard_Integer.hxx>
29 class BRepAdaptor_Curve;
30 class IntTools_CArray1OfReal;
31 class IntTools_Context;
32 class IntTools_ShrunkRange;
34 class IntTools_CommonPrt;
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;
47 class IntTools_PntOnFace;
48 class IntTools_PntOn2Faces;
49 class IntTools_TopolTool;
50 class IntTools_FaceFace;
52 class IntTools_CArray1;
53 class IntTools_CArray1OfInteger;
54 class IntTools_CArray1OfReal;
55 class IntTools_CurveRangeSampleMapHasher;
56 class IntTools_SurfaceRangeSampleMapHasher;
59 //! Contains classes for intersection and classification
60 //! purposes and accompanying classes
68 //! returns the length of the edge;
69 Standard_EXPORT static Standard_Real Length (const TopoDS_Edge& E);
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);
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);
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);
83 Standard_EXPORT static Standard_Integer Parameter (const gp_Pnt& P, const Handle(Geom_Curve)& Curve, Standard_Real& aParm);
85 Standard_EXPORT static Standard_Integer GetRadius (const BRepAdaptor_Curve& C, const Standard_Real t1, const Standard_Real t3, Standard_Real& R);
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);
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;
138 #endif // _IntTools_HeaderFile