daaf396fd9b464a8eff1d52b38b52d6047bf1201
[occt.git] / src / GProp / GProp_VGProps.cdl
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
5 --
6 -- This file is part of Open CASCADE Technology software library.
7 --
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.
13 --
14 -- Alternatively, this file may be used under the terms of Open CASCADE
15 -- commercial license or contractual agreement.
16
17 --              Jean-Claude VAUTHIER January 1992
18
19
20 generic class VGProps from GProp (Arc as any;
21                                   Face as any;
22                                   Domain as any)
23 inherits GProps
24
25         --- Purpose :
26         --  Computes the global properties of a geometric solid 
27         --  (3D closed region of space) delimited with :
28         --  . a surface
29         --  . a point and a surface
30         --  . a plane and a surface
31         --  
32         --  The surface can be :
33         --  . a surface limited with its parametric values U-V,
34         --  . a surface limited in U-V space with its curves of restriction,
35         --  
36         --  The surface 's requirements to evaluate the global properties
37         --  are defined in the template SurfaceTool from package GProp.
38
39 uses    Pnt      from gp,
40         Pln      from gp
41 is
42
43   Create returns VGProps;
44   
45   Create (S: Face; VLocation: Pnt from gp) returns VGProps;
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         
55   Create (S: in out Face; VLocation: Pnt from gp; Eps: Real) returns VGProps; 
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
64   Create (S: Face; O: Pnt from gp; VLocation: Pnt from gp) returns VGProps;
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         
74   Create (S: in out Face; O: Pnt from gp; VLocation: Pnt from gp; Eps: Real) returns VGProps;
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      
84   Create (S: Face; Pl: Pln from gp; VLocation: Pnt from gp) returns VGProps;
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         
94   Create (S: in out Face; Pl: Pln from gp; VLocation: Pnt from gp; Eps: Real) returns VGProps;
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
104         --  With  Domain  -- 
105
106   Create (S: in out Face; D : in out Domain; VLocation: Pnt from gp) returns VGProps;
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         
116   Create (S: in out Face; D : in out Domain; VLocation: Pnt from gp; Eps: Real) returns VGProps; 
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
125   Create (S: in out Face; D : in out Domain; O: Pnt from gp; VLocation: Pnt from gp) returns VGProps;
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         
135   Create (S: in out Face; D : in out Domain; O: Pnt from gp; VLocation: Pnt from gp; Eps: Real) returns VGProps;
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      
145   Create (S: in out Face; D : in out Domain; Pl: Pln from gp; VLocation: Pnt from gp) returns VGProps;
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         
155   Create (S: in out Face; D : in out Domain; Pl: Pln from gp; VLocation: Pnt from gp; Eps: Real) returns VGProps;
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   
167   Perform(me: in out; S: Face);
168   Perform(me: in out; S: in out Face; Eps: Real) returns Real;
169
170   Perform(me: in out; S: Face; O : Pnt from gp);
171   Perform(me: in out; S: in out Face; O : Pnt from gp; Eps: Real) returns Real;
172
173   Perform(me: in out; S: Face; Pl : Pln from gp);
174   Perform(me: in out; S: in out Face; Pl : Pln from gp; Eps: Real) returns Real;
175
176   Perform(me: in out; S: in out  Face; D : in out Domain);
177   Perform(me: in out; S: in out Face; D : in out Domain;  Eps: Real) returns Real;
178
179   Perform(me: in out; S: in out Face; D : in out Domain;  O : Pnt from gp);
180   Perform(me: in out; S: in out Face; D : in out Domain;  O : Pnt from gp; Eps: Real) returns Real;
181
182   Perform(me: in out; S: in out Face; D : in out Domain;  Pl : Pln from gp);
183   Perform(me: in out; S: in out Face; D : in out Domain;  Pl : Pln from gp; Eps: Real) returns Real;
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
193 end VGProps;
194
195