1 -- Created on: 1991-04-12
2 -- Created by: Michel CHAUVAT
3 -- Copyright (c) 1991-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 under
9 -- the terms of the GNU Lesser General Public License 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 -- Jean-Claude VAUTHIER January 1992
20 class Vinert from BRepGProp inherits GProps from GProp
23 -- Computes the global properties of a geometric solid
24 -- (3D closed region of space) delimited with :
26 -- . a point and a surface
27 -- . a plane and a surface
29 -- The surface can be :
30 -- . a surface limited with its parametric values U-V,
31 -- . a surface limited in U-V space with its curves of restriction,
33 -- The surface 's requirements to evaluate the global properties
34 -- are defined in the template SurfaceTool from package GProp.
43 Create returns Vinert;
45 Create (S: Face from BRepGProp; VLocation: Pnt from gp) returns Vinert;
47 -- Computes the global properties of a region of 3D space
48 -- delimited with the surface <S> and the point VLocation. S can be closed
49 -- The method is quick and its precision is enough for many cases of analytical
51 -- Non-adaptive 2D Gauss integration with predefined numbers of Gauss points
52 -- is used. Numbers of points depend on types of surfaces and curves.
53 -- Errror of the computation is not calculated.
55 Create (S: in out Face from BRepGProp; VLocation: Pnt from gp; Eps: Real) returns Vinert;
57 -- Computes the global properties of a region of 3D space
58 -- delimited with the surface <S> and the point VLocation. S can be closed
59 -- Adaptive 2D Gauss integration is used.
60 -- Parameter Eps sets maximal relative error of computed mass (volume) for face.
61 -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values
62 -- for two successive steps of adaptive integration.
64 Create (S: Face from BRepGProp; O: Pnt from gp; VLocation: Pnt from gp) returns Vinert;
66 -- Computes the global properties of the region of 3D space
67 -- delimited with the surface <S> and the point VLocation.
68 -- The method is quick and its precision is enough for many cases of analytical
70 -- Non-adaptive 2D Gauss integration with predefined numbers of Gauss points
71 -- is used. Numbers of points depend on types of surfaces and curves.
72 -- Error of the computation is not calculated.
74 Create (S: in out Face from BRepGProp; O: Pnt from gp; VLocation: Pnt from gp; Eps: Real) returns Vinert;
76 -- Computes the global properties of the region of 3D space
77 -- delimited with the surface <S> and the point VLocation.
78 -- Adaptive 2D Gauss integration is used.
79 -- Parameter Eps sets maximal relative error of computed mass (volume) for face.
80 -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values
81 -- for two successive steps of adaptive integration.
82 -- WARNING: if Eps > 0.001 algorithm performs non-adaptive integration.
84 Create (S: Face from BRepGProp; Pl: Pln from gp; VLocation: Pnt from gp) returns Vinert;
86 -- Computes the global properties of the region of 3D space
87 -- delimited with the surface <S> and the plane Pln.
88 -- The method is quick and its precision is enough for many cases of analytical
90 -- Non-adaptive 2D Gauss integration with predefined numbers of Gauss points
91 -- is used. Numbers of points depend on types of surfaces and curves.
92 -- Error of the computation is not calculated.
94 Create (S: in out Face from BRepGProp; Pl: Pln from gp; VLocation: Pnt from gp; Eps: Real) returns Vinert;
96 -- Computes the global properties of the region of 3D space
97 -- delimited with the surface <S> and the plane Pln.
98 -- Adaptive 2D Gauss integration is used.
99 -- Parameter Eps sets maximal relative error of computed mass (volume) for face.
100 -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values
101 -- for two successive steps of adaptive integration.
102 -- WARNING: if Eps > 0.001 algorithm performs non-adaptive integration.
104 -- With Domain from BRepGProp --
106 Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; VLocation: Pnt from gp) returns Vinert;
108 -- Computes the global properties of a region of 3D space
109 -- delimited with the surface <S> and the point VLocation. S can be closed
110 -- The method is quick and its precision is enough for many cases of analytical
112 -- Non-adaptive 2D Gauss integration with predefined numbers of Gauss points
113 -- is used. Numbers of points depend on types of surfaces and curves.
114 -- Errror of the computation is not calculated.
116 Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; VLocation: Pnt from gp; Eps: Real) returns Vinert;
118 -- Computes the global properties of a region of 3D space
119 -- delimited with the surface <S> and the point VLocation. S can be closed
120 -- Adaptive 2D Gauss integration is used.
121 -- Parameter Eps sets maximal relative error of computed mass (volume) for face.
122 -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values
123 -- for two successive steps of adaptive integration.
125 Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; O: Pnt from gp; VLocation: Pnt from gp) returns Vinert;
127 -- Computes the global properties of the region of 3D space
128 -- delimited with the surface <S> and the point VLocation.
129 -- The method is quick and its precision is enough for many cases of analytical
131 -- Non-adaptive 2D Gauss integration with predefined numbers of Gauss points
132 -- is used. Numbers of points depend on types of surfaces and curves.
133 -- Error of the computation is not calculated.
135 Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; O: Pnt from gp; VLocation: Pnt from gp; Eps: Real) returns Vinert;
137 -- Computes the global properties of the region of 3D space
138 -- delimited with the surface <S> and the point VLocation.
139 -- Adaptive 2D Gauss integration is used.
140 -- Parameter Eps sets maximal relative error of computed mass (volume) for face.
141 -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values
142 -- for two successive steps of adaptive integration.
143 -- WARNING: if Eps > 0.001 algorithm performs non-adaptive integration.
145 Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; Pl: Pln from gp; VLocation: Pnt from gp) returns Vinert;
147 -- Computes the global properties of the region of 3D space
148 -- delimited with the surface <S> and the plane Pln.
149 -- The method is quick and its precision is enough for many cases of analytical
151 -- Non-adaptive 2D Gauss integration with predefined numbers of Gauss points
152 -- is used. Numbers of points depend on types of surfaces and curves.
153 -- Error of the computation is not calculated.
155 Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; Pl: Pln from gp; VLocation: Pnt from gp; Eps: Real) returns Vinert;
157 -- Computes the global properties of the region of 3D space
158 -- delimited with the surface <S> and the plane Pln.
159 -- Adaptive 2D Gauss integration is used.
160 -- Parameter Eps sets maximal relative error of computed mass (volume) for face.
161 -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values
162 -- for two successive steps of adaptive integration.
163 -- WARNING: if Eps > 0.001 algorithm performs non-adaptive integration.
165 SetLocation(me: in out; VLocation: Pnt from gp);
167 Perform(me: in out; S: Face from BRepGProp);
168 Perform(me: in out; S: in out Face from BRepGProp; Eps: Real) returns Real;
170 Perform(me: in out; S: Face from BRepGProp; O : Pnt from gp);
171 Perform(me: in out; S: in out Face from BRepGProp; O : Pnt from gp; Eps: Real) returns Real;
173 Perform(me: in out; S: Face from BRepGProp; Pl : Pln from gp);
174 Perform(me: in out; S: in out Face from BRepGProp; Pl : Pln from gp; Eps: Real) returns Real;
176 Perform(me: in out; S: in out Face from BRepGProp; D : in out Domain from BRepGProp);
177 Perform(me: in out; S: in out Face from BRepGProp; D : in out Domain from BRepGProp; Eps: Real) returns Real;
179 Perform(me: in out; S: in out Face from BRepGProp; D : in out Domain from BRepGProp; O : Pnt from gp);
180 Perform(me: in out; S: in out Face from BRepGProp; D : in out Domain from BRepGProp; O : Pnt from gp; Eps: Real) returns Real;
182 Perform(me: in out; S: in out Face from BRepGProp; D : in out Domain from BRepGProp; Pl : Pln from gp);
183 Perform(me: in out; S: in out Face from BRepGProp; D : in out Domain from BRepGProp; Pl : Pln from gp; Eps: Real) returns Real;
185 GetEpsilon(me: out) returns Real;
187 -- If previously used methods containe Eps parameter
188 -- gets actual relative error of the computation, else returns 1.0.
191 myEpsilon: Real from Standard;