0026506: Change class BRepLib_CheckCurveOnSurface
[occt.git] / src / IntTools / IntTools.hxx
CommitLineData
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>
26class TopoDS_Edge;
27class gp_Pnt;
28class Geom_Curve;
29class BRepAdaptor_Curve;
30class IntTools_CArray1OfReal;
31class IntTools_Context;
32class IntTools_ShrunkRange;
33class IntTools_Range;
34class IntTools_CommonPrt;
35class IntTools_Root;
36class IntTools_EdgeEdge;
37class IntTools_EdgeFace;
38class IntTools_FClass2d;
39class IntTools_MarkedRangeSet;
40class IntTools_BaseRangeSample;
41class IntTools_CurveRangeSample;
42class IntTools_SurfaceRangeSample;
43class IntTools_CurveRangeLocalizeData;
44class IntTools_SurfaceRangeLocalizeData;
45class IntTools_BeanFaceIntersector;
46class IntTools_Curve;
47class IntTools_PntOnFace;
48class IntTools_PntOn2Faces;
49class IntTools_TopolTool;
50class IntTools_FaceFace;
51class IntTools_Tools;
52class IntTools_CArray1;
53class IntTools_CArray1OfInteger;
54class IntTools_CArray1OfReal;
55class IntTools_CurveRangeSampleMapHasher;
56class IntTools_SurfaceRangeSampleMapHasher;
57
58
59//! Contains classes for intersection and classification
60//! purposes and accompanying classes
61class IntTools
62{
63public:
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
92protected:
93
94
95
96
97
98private:
99
100
101
102
103friend class IntTools_Context;
104friend class IntTools_ShrunkRange;
105friend class IntTools_Range;
106friend class IntTools_CommonPrt;
107friend class IntTools_Root;
108friend class IntTools_EdgeEdge;
109friend class IntTools_EdgeFace;
110friend class IntTools_FClass2d;
111friend class IntTools_MarkedRangeSet;
112friend class IntTools_BaseRangeSample;
113friend class IntTools_CurveRangeSample;
114friend class IntTools_SurfaceRangeSample;
115friend class IntTools_CurveRangeLocalizeData;
116friend class IntTools_SurfaceRangeLocalizeData;
117friend class IntTools_BeanFaceIntersector;
118friend class IntTools_Curve;
119friend class IntTools_PntOnFace;
120friend class IntTools_PntOn2Faces;
121friend class IntTools_TopolTool;
122friend class IntTools_FaceFace;
123friend class IntTools_Tools;
124friend class IntTools_CArray1;
125friend class IntTools_CArray1OfInteger;
126friend class IntTools_CArray1OfReal;
127friend class IntTools_CurveRangeSampleMapHasher;
128friend class IntTools_SurfaceRangeSampleMapHasher;
129
130};
131
132
133
134
135
136
137
138#endif // _IntTools_HeaderFile