0024774: Convertation of the generic classes to the non-generic. Part 8
[occt.git] / src / BRepGProp / BRepGProp.cdl
1 -- Created on: 1992-12-04
2 -- Created by: Isabelle GRIGNON
3 -- Copyright (c) 1992-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 package BRepGProp 
18
19         ---Purpose: Provides global functions to compute a shape's global
20 -- properties for lines, surfaces or volumes, and bring
21 -- them together with the global properties already
22 -- computed for a geometric system.
23 -- The global properties computed for a system are :
24 -- - its mass,
25 -- - its center of mass,
26 -- - its matrix of inertia,
27 -- - its moment about an axis,
28 -- - its radius of gyration about an axis,
29 -- - and its principal properties of inertia such as
30 --   principal axis, principal moments, principal radius of gyration.
31
32 uses  GProp,
33       BRepAdaptor,
34       BRepTools,
35       BRep,
36       TopExp,
37       TopoDS,
38       Geom2dAdaptor,
39       gp,
40       GeomAbs,
41       TColStd
42
43 is
44
45     class EdgeTool;
46
47     class Face;
48
49     class Domain;
50
51     class Cinert;
52     
53     class Sinert;
54
55     class Vinert;
56
57     class VinertGK;
58
59     class UFunction;
60     class TFunction;
61
62     --
63     --  Package methods to compute global properties.
64     --
65
66     LinearProperties(S : Shape from TopoDS; LProps : in out GProps from GProp);
67         ---Purpose: Computes the linear global properties of the shape S,
68 -- i.e. the global properties induced by each edge of the
69 -- shape S, and brings them together with the global
70 -- properties still retained by the framework LProps. If
71 -- the current system of LProps was empty, its global
72 -- properties become equal to the linear global
73 -- properties of S.
74 -- For this computation no linear density is attached to
75 -- the edges. So, for example, the added mass
76 -- corresponds to the sum of the lengths of the edges of
77 -- S. The density of the composed systems, i.e. that of
78 -- each component of the current system of LProps, and
79 -- that of S which is considered to be equal to 1, must be coherent.
80 -- Note that this coherence cannot be checked. You are
81 -- advised to use a separate framework for each
82 -- density, and then to bring these frameworks together
83 -- into a global one.
84 -- The point relative to which the inertia of the system is
85 -- computed is the reference point of the framework LProps.
86 -- Note: if your programming ensures that the framework
87 -- LProps retains only linear global properties (brought
88 -- together for example, by the function
89 -- LinearProperties) for objects the density of which is
90 -- equal to 1 (or is not defined), the function Mass will
91 -- return the total length of edges of the system analysed by LProps.
92 -- Warning
93 -- No check is performed to verify that the shape S
94 -- retains truly linear properties. If S is simply a vertex, it
95 -- is not considered to present any additional global properties.
96         
97     SurfaceProperties(S : Shape from TopoDS; SProps : in out GProps from GProp);
98         ---Purpose:  Computes the surface global properties of the
99 -- shape S, i.e. the global properties induced by each
100 -- face of the shape S, and brings them together with
101 -- the global properties still retained by the framework
102 -- SProps. If the current system of SProps was empty,
103 -- its global properties become equal to the surface
104 -- global properties of S.
105 -- For this computation, no surface density is attached
106 -- to the faces. Consequently, the added mass
107 -- corresponds to the sum of the areas of the faces of
108 -- S. The density of the component systems, i.e. that
109 -- of each component of the current system of
110 -- SProps, and that of S which is considered to be
111 -- equal to 1, must be coherent.
112 -- Note that this coherence cannot be checked. You
113 -- are advised to use a framework for each different
114 -- value of density, and then to bring these
115 -- frameworks together into a global one.
116 -- The point relative to which the inertia of the system
117 -- is computed is the reference point of the framework SProps.
118 -- Note : if your programming ensures that the
119 -- framework SProps retains only surface global
120 -- properties, brought together, for example, by the
121 -- function SurfaceProperties, for objects the density
122 -- of which is equal to 1 (or is not defined), the
123 -- function Mass will return the total area of faces of
124 -- the system analysed by SProps.
125 -- Warning
126 -- No check is performed to verify that the shape S
127 -- retains truly surface properties. If S is simply a
128 -- vertex, an edge or a wire, it is not considered to
129 -- present any additional global properties.
130         
131     SurfaceProperties(S : Shape from TopoDS; SProps : in out GProps from GProp;  
132                       Eps: Real) returns Real;
133         ---Purpose: Updates <SProps> with the shape <S>, that contains its pricipal properties.
134         --          The surface properties of all the faces in <S> are computed.
135         --          Adaptive 2D Gauss integration is used. 
136         --          Parameter Eps sets maximal relative error of computed mass (area) for each face. 
137         --          Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values 
138         --          for two successive steps of adaptive integration. 
139         --          Method returns estimation of relative error reached for whole shape. 
140         --          WARNING: if Eps > 0.001 algorithm performs non-adaptive integration.          
141         
142  
143 ------------------------ 
144 --  VolumeProperties  --
145 ------------------------ 
146
147         ---Purpose: 
148 -- Computes the global volume properties of the solid
149 -- S, and brings them together with the global
150 -- properties still retained by the framework VProps. If
151 -- the current system of VProps was empty, its global
152 -- properties become equal to the global properties of S for volume.
153 -- For this computation, no volume density is attached
154 -- to the solid. Consequently, the added mass
155 -- corresponds to the volume of S. The density of the
156 -- component systems, i.e. that of each component of
157 -- the current system of VProps, and that of S which
158 -- is considered to be equal to 1, must be coherent to each other.
159 -- Note that this coherence cannot be checked. You
160 -- are advised to use a separate framework for each
161 -- density, and then to bring these frameworks
162 -- together into a global one.
163 -- The point relative to which the inertia of the system
164 -- is computed is the reference point of the framework VProps.
165 -- Note: if your programming ensures that the
166 -- framework VProps retains only global properties of
167 -- volume (brought together for example, by the
168 -- function VolumeProperties) for objects the density
169 -- of which is equal to 1 (or is not defined), the
170 -- function Mass will return the total volume of the
171 -- solids of the system analysed by VProps.
172 -- Warning
173 -- The shape S must represent an object whose
174 -- global volume properties can be computed. It may
175 -- be a finite solid, or a series of finite solids all
176 -- oriented in a coherent way. Nonetheless, S must be
177 -- exempt of any free boundary. Note that these
178 -- conditions of coherence are not checked by this
179 -- algorithm, and results will be false if they are not respected.
180     VolumeProperties(S : Shape from TopoDS; VProps : in out GProps from GProp;  
181                      OnlyClosed: Boolean = Standard_False);
182
183     VolumeProperties(S : Shape from TopoDS; VProps : in out GProps from GProp;  
184                      Eps: Real; OnlyClosed: Boolean = Standard_False) returns Real;
185         ---Purpose: Updates <VProps> with the shape <S>, that contains its pricipal properties.
186         --          The volume properties of all the FORWARD and REVERSED faces in <S> are computed. 
187         --          If OnlyClosed is True then computed faces must belong to closed Shells.
188         --          Adaptive 2D Gauss integration is used. 
189         --          Parameter Eps sets maximal relative error of computed mass (volume) for each face. 
190         --          Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values 
191         --          for two successive steps of adaptive integration. 
192         --          Method returns estimation of relative error reached for whole shape. 
193         --          WARNING: if Eps > 0.001 algorithm performs non-adaptive integration.          
194      
195
196
197
198
199
200 --  ----------------------------------------------------------------------------------------
201     VolumePropertiesGK(S         :        Shape   from TopoDS; 
202                        VProps    : in out GProps  from GProp;  
203                        Eps       :        Real    from Standard = 0.001; 
204                        OnlyClosed:        Boolean from Standard = Standard_False; 
205                        IsUseSpan :        Boolean from Standard = Standard_False; 
206                        CGFlag    :        Boolean from Standard = Standard_False; 
207                        IFlag     :        Boolean from Standard = Standard_False)
208  
209      returns Real;
210         ---Purpose: Updates <VProps> with the shape <S>, that contains its pricipal properties.
211         --          The volume properties of all the FORWARD and REVERSED faces in <S> are computed. 
212         --          If OnlyClosed is True then computed faces must belong to closed Shells.
213         --          Adaptive 2D Gauss integration is used.  
214         --          Parameter IsUseSpan says if it is necessary to define spans on a face. 
215         --          This option has an effect only for BSpline faces.
216         --          Parameter Eps sets maximal relative error of computed property for each face. 
217         --          Error is delivered by the adaptive Gauss-Kronrod method of integral computation 
218         --          that is used for properties computation.
219         --          Method returns estimation of relative error reached for whole shape. 
220         --          Returns negative value if the computation is failed.
221     VolumePropertiesGK(S         :        Shape   from TopoDS; 
222                        VProps    : in out GProps  from GProp; 
223                        thePln:  Pln  from  gp;
224                        Eps       :        Real    from Standard = 0.001; 
225                        OnlyClosed:        Boolean from Standard = Standard_False; 
226                        IsUseSpan :        Boolean from Standard = Standard_False; 
227                        CGFlag    :        Boolean from Standard = Standard_False; 
228                        IFlag     :        Boolean from Standard = Standard_False) 
229      returns Real;
230         
231 end BRepGProp;
232