b311480e |
1 | -- Created on: 1991-04-12 |
2 | -- Created by: Michel CHAUVAT |
3 | -- Copyright (c) 1991-1999 Matra Datavision |
973c2be1 |
4 | -- Copyright (c) 1999-2014 OPEN CASCADE SAS |
b311480e |
5 | -- |
973c2be1 |
6 | -- This file is part of Open CASCADE Technology software library. |
b311480e |
7 | -- |
d5f74e42 |
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 |
973c2be1 |
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. |
b311480e |
13 | -- |
973c2be1 |
14 | -- Alternatively, this file may be used under the terms of Open CASCADE |
15 | -- commercial license or contractual agreement. |
b311480e |
16 | |
7fd59977 |
17 | -- Jean-Claude VAUTHIER January 1992 |
7fd59977 |
18 | |
19 | |
424cd6bb |
20 | class Vinert from BRepGProp inherits GProps from GProp |
7fd59977 |
21 | |
22 | --- Purpose : |
23 | -- Computes the global properties of a geometric solid |
24 | -- (3D closed region of space) delimited with : |
25 | -- . a surface |
26 | -- . a point and a surface |
27 | -- . a plane and a surface |
28 | -- |
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, |
32 | -- |
33 | -- The surface 's requirements to evaluate the global properties |
34 | -- are defined in the template SurfaceTool from package GProp. |
35 | |
36 | uses Pnt from gp, |
424cd6bb |
37 | Pln from gp, |
38 | Edge from TopoDS, |
39 | Face from BRepGProp, |
40 | Domain from BRepGProp |
7fd59977 |
41 | is |
42 | |
424cd6bb |
43 | Create returns Vinert; |
7fd59977 |
44 | |
424cd6bb |
45 | Create (S: Face from BRepGProp; VLocation: Pnt from gp) returns Vinert; |
7fd59977 |
46 | --- Purpose : |
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 |
50 | -- surfaces. |
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. |
54 | |
424cd6bb |
55 | Create (S: in out Face from BRepGProp; VLocation: Pnt from gp; Eps: Real) returns Vinert; |
7fd59977 |
56 | --- Purpose : |
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. |
63 | |
424cd6bb |
64 | Create (S: Face from BRepGProp; O: Pnt from gp; VLocation: Pnt from gp) returns Vinert; |
7fd59977 |
65 | --- Purpose : |
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 |
69 | -- surfaces. |
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. |
73 | |
424cd6bb |
74 | Create (S: in out Face from BRepGProp; O: Pnt from gp; VLocation: Pnt from gp; Eps: Real) returns Vinert; |
7fd59977 |
75 | --- Purpose : |
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. |
83 | |
424cd6bb |
84 | Create (S: Face from BRepGProp; Pl: Pln from gp; VLocation: Pnt from gp) returns Vinert; |
7fd59977 |
85 | --- Purpose : |
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 |
89 | -- surfaces. |
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. |
93 | |
424cd6bb |
94 | Create (S: in out Face from BRepGProp; Pl: Pln from gp; VLocation: Pnt from gp; Eps: Real) returns Vinert; |
7fd59977 |
95 | --- Purpose : |
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. |
103 | |
424cd6bb |
104 | -- With Domain from BRepGProp -- |
7fd59977 |
105 | |
424cd6bb |
106 | Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; VLocation: Pnt from gp) returns Vinert; |
7fd59977 |
107 | --- Purpose : |
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 |
111 | -- surfaces. |
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. |
115 | |
424cd6bb |
116 | Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; VLocation: Pnt from gp; Eps: Real) returns Vinert; |
7fd59977 |
117 | --- Purpose : |
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. |
124 | |
424cd6bb |
125 | Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; O: Pnt from gp; VLocation: Pnt from gp) returns Vinert; |
7fd59977 |
126 | --- Purpose : |
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 |
130 | -- surfaces. |
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. |
134 | |
424cd6bb |
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; |
7fd59977 |
136 | --- Purpose : |
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. |
144 | |
424cd6bb |
145 | Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; Pl: Pln from gp; VLocation: Pnt from gp) returns Vinert; |
7fd59977 |
146 | --- Purpose : |
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 |
150 | -- surfaces. |
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. |
154 | |
424cd6bb |
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; |
7fd59977 |
156 | --- Purpose : |
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. |
164 | |
165 | SetLocation(me: in out; VLocation: Pnt from gp); |
166 | |
424cd6bb |
167 | Perform(me: in out; S: Face from BRepGProp); |
168 | Perform(me: in out; S: in out Face from BRepGProp; Eps: Real) returns Real; |
7fd59977 |
169 | |
424cd6bb |
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; |
7fd59977 |
172 | |
424cd6bb |
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; |
7fd59977 |
175 | |
424cd6bb |
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; |
7fd59977 |
178 | |
424cd6bb |
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; |
7fd59977 |
181 | |
424cd6bb |
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; |
7fd59977 |
184 | |
185 | GetEpsilon(me: out) returns Real; |
186 | --- Purpose : |
187 | -- If previously used methods containe Eps parameter |
188 | -- gets actual relative error of the computation, else returns 1.0. |
189 | fields |
190 | |
191 | myEpsilon: Real from Standard; |
192 | |
424cd6bb |
193 | end Vinert; |
7fd59977 |
194 | |
195 | |