1 // Created on: 1993-03-08
2 // Created by: Remi LEQUETTE
3 // Copyright (c) 1993-1999 Matra Datavision
4 // Copyright (c) 1999-2014 OPEN CASCADE SAS
6 // This file is part of Open CASCADE Technology software library.
8 // This library is free software; you can redistribute it and / or modify it
9 // under the terms of the GNU Lesser General Public 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.
14 // Alternatively, this file may be used under the terms of Open CASCADE
15 // commercial license or contractual agreement.
17 //=======================================================================
20 //=======================================================================
22 inline Standard_Real Precision::Angular()
24 #ifdef PRECISION_OBSOLETE
25 static const Standard_Real Precision_Angular = 1.e-12;
26 return Precision_Angular;
33 //=======================================================================
34 //function : Confusion
36 //=======================================================================
38 inline Standard_Real Precision::Confusion()
40 #ifdef PRECISION_OBSOLETE
41 static const Standard_Real Precision_Confusion = 1.e-7;
42 return Precision_Confusion;
49 //=======================================================================
50 //function : SquareConfusion
52 //=======================================================================
53 inline Standard_Real Precision::SquareConfusion()
55 return Confusion() * Confusion();
59 //=======================================================================
60 //function : Intersection
62 //=======================================================================
64 inline Standard_Real Precision::Intersection()
66 #ifdef PRECISION_OBSOLETE
67 static const Standard_Real Precision_Intersection = Precision::Confusion() / 100.;
68 return Precision_Intersection;
70 return Confusion() * 0.01;
75 //=======================================================================
76 //function : Approximation
78 //=======================================================================
80 inline Standard_Real Precision::Approximation()
82 #ifdef PRECISION_OBSOLETE
83 static const Standard_Real Precision_Approximation = Precision::Confusion() * 10.;
84 return Precision_Approximation;
86 return Confusion() * 10.;
91 //=======================================================================
92 //function : Parametric
94 //=======================================================================
96 inline Standard_Real Precision::Parametric(const Standard_Real P,
97 const Standard_Real T)
103 //=======================================================================
104 //function : PConfusion
106 //=======================================================================
108 inline Standard_Real Precision::PConfusion(const Standard_Real T)
110 return Parametric(Confusion(),T);
114 //=======================================================================
115 //function : PIntersection
117 //=======================================================================
119 inline Standard_Real Precision::PIntersection(const Standard_Real T)
121 return Parametric(Intersection(),T);
125 //=======================================================================
126 //function : PApproximation
128 //=======================================================================
130 inline Standard_Real Precision::PApproximation(const Standard_Real T)
132 return Parametric(Approximation(),T);
135 //=======================================================================
136 //function : Parametric
138 //=======================================================================
140 inline Standard_Real Precision::Parametric(const Standard_Real P)
142 #ifdef PRECISION_OBSOLETE
143 static const Standard_Real Precision_DefTangent = 1.e+2;
144 return Parametric(P,Precision_DefTangent);
146 return Parametric(P, 100.);
151 //=======================================================================
152 //function : PConfusion
154 //=======================================================================
156 inline Standard_Real Precision::PConfusion()
158 return Parametric(Confusion());
162 //=======================================================================
163 //function : PIntersection
165 //=======================================================================
167 inline Standard_Real Precision::PIntersection()
169 return Parametric(Intersection());
173 //=======================================================================
174 //function : PApproximation
176 //=======================================================================
178 inline Standard_Real Precision::PApproximation()
180 return Parametric(Approximation());
183 //=======================================================================
184 //function : IsInfinite
186 //=======================================================================
188 inline Standard_Boolean Precision::IsInfinite(const Standard_Real R)
190 return Abs(R) >= (0.5*Precision::Infinite());
193 //=======================================================================
194 //function : IsPositiveInfinite
196 //=======================================================================
198 inline Standard_Boolean Precision::IsPositiveInfinite(const Standard_Real R)
200 return R >= (0.5*Precision::Infinite());
203 //=======================================================================
204 //function : IsNegativeInfinite
206 //=======================================================================
208 inline Standard_Boolean Precision::IsNegativeInfinite(const Standard_Real R)
210 return R <= -(0.5*Precision::Infinite());
214 //=======================================================================
215 //function : Infinite
217 //=======================================================================
219 inline Standard_Real Precision::Infinite()
221 #ifdef PRECISION_OBSOLETE
222 static const Standard_Real Precision_Infinite = 1.e+100;
223 static const Standard_Real Precision_InfiniteValue = 2 * Precision_Infinite;
224 return Precision_InfiniteValue;