1 // Created on: 1993-03-08
2 // Created by: Remi LEQUETTE
3 // Copyright (c) 1993-1999 Matra Datavision
4 // Copyright (c) 1999-2012 OPEN CASCADE SAS
6 // The content of this file is subject to the Open CASCADE Technology Public
7 // License Version 6.5 (the "License"). You may not use the content of this file
8 // except in compliance with the License. Please obtain a copy of the License
9 // at http://www.opencascade.org and read it completely before using this file.
11 // The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 // main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
14 // The Original Code and all software distributed under the License is
15 // distributed on an "AS IS" basis, without warranty of any kind, and the
16 // Initial Developer hereby disclaims all such warranties, including without
17 // limitation, any warranties of merchantability, fitness for a particular
18 // purpose or non-infringement. Please see the License for the specific terms
19 // and conditions governing the rights and limitations under the License.
23 //=======================================================================
26 //=======================================================================
28 inline Standard_Real Precision::Angular()
30 #ifdef PRECISION_OBSOLETE
31 static const Standard_Real Precision_Angular = 1.e-12;
32 return Precision_Angular;
39 //=======================================================================
40 //function : Confusion
42 //=======================================================================
44 inline Standard_Real Precision::Confusion()
46 #ifdef PRECISION_OBSOLETE
47 static const Standard_Real Precision_Confusion = 1.e-7;
48 return Precision_Confusion;
55 //=======================================================================
56 //function : SquareConfusion
58 //=======================================================================
59 inline Standard_Real Precision::SquareConfusion()
61 return Confusion() * Confusion();
65 //=======================================================================
66 //function : Intersection
68 //=======================================================================
70 inline Standard_Real Precision::Intersection()
72 #ifdef PRECISION_OBSOLETE
73 static const Standard_Real Precision_Intersection = Precision::Confusion() / 100.;
74 return Precision_Intersection;
76 return Confusion() * 0.01;
81 //=======================================================================
82 //function : Approximation
84 //=======================================================================
86 inline Standard_Real Precision::Approximation()
88 #ifdef PRECISION_OBSOLETE
89 static const Standard_Real Precision_Approximation = Precision::Confusion() * 10.;
90 return Precision_Approximation;
92 return Confusion() * 10.;
97 //=======================================================================
98 //function : Parametric
100 //=======================================================================
102 inline Standard_Real Precision::Parametric(const Standard_Real P,
103 const Standard_Real T)
109 //=======================================================================
110 //function : PConfusion
112 //=======================================================================
114 inline Standard_Real Precision::PConfusion(const Standard_Real T)
116 return Parametric(Confusion(),T);
120 //=======================================================================
121 //function : PIntersection
123 //=======================================================================
125 inline Standard_Real Precision::PIntersection(const Standard_Real T)
127 return Parametric(Intersection(),T);
131 //=======================================================================
132 //function : PApproximation
134 //=======================================================================
136 inline Standard_Real Precision::PApproximation(const Standard_Real T)
138 return Parametric(Approximation(),T);
141 //=======================================================================
142 //function : Parametric
144 //=======================================================================
146 inline Standard_Real Precision::Parametric(const Standard_Real P)
148 #ifdef PRECISION_OBSOLETE
149 static const Standard_Real Precision_DefTangent = 1.e+2;
150 return Parametric(P,Precision_DefTangent);
152 return Parametric(P, 100.);
157 //=======================================================================
158 //function : PConfusion
160 //=======================================================================
162 inline Standard_Real Precision::PConfusion()
164 return Parametric(Confusion());
168 //=======================================================================
169 //function : PIntersection
171 //=======================================================================
173 inline Standard_Real Precision::PIntersection()
175 return Parametric(Intersection());
179 //=======================================================================
180 //function : PApproximation
182 //=======================================================================
184 inline Standard_Real Precision::PApproximation()
186 return Parametric(Approximation());
189 //=======================================================================
190 //function : IsInfinite
192 //=======================================================================
194 inline Standard_Boolean Precision::IsInfinite(const Standard_Real R)
196 return Abs(R) >= (0.5*Precision::Infinite());
199 //=======================================================================
200 //function : IsPositiveInfinite
202 //=======================================================================
204 inline Standard_Boolean Precision::IsPositiveInfinite(const Standard_Real R)
206 return R >= (0.5*Precision::Infinite());
209 //=======================================================================
210 //function : IsNegativeInfinite
212 //=======================================================================
214 inline Standard_Boolean Precision::IsNegativeInfinite(const Standard_Real R)
216 return R <= -(0.5*Precision::Infinite());
220 //=======================================================================
221 //function : Infinite
223 //=======================================================================
225 inline Standard_Real Precision::Infinite()
227 #ifdef PRECISION_OBSOLETE
228 static const Standard_Real Precision_Infinite = 1.e+100;
229 static const Standard_Real Precision_InfiniteValue = 2 * Precision_Infinite;
230 return Precision_InfiniteValue;