0024774: Convertation of the generic classes to the non-generic. Part 8
[occt.git] / src / GProp / GProp.cdl
1 -- Created on: 1991-03-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 --              JCV - January 1992
18
19
20
21 package GProp
22
23         --- Purpose: 
24         --  This package defines algorithmes to compute the global properties 
25         --  of a set of points, a curve, a surface, a solid (non infinite 
26         --  region of space delimited with geometric entities), a compound
27         --  geometric system (heterogeneous composition of the previous 
28         --  entities).
29         --    
30         --  Global properties are :
31         --  . length, area, volume,
32         --  . centre of mass,
33         --  . axis of inertia,
34         --  . moments of inertia,
35         --  . radius of gyration.
36         --  
37         --  It provides  also a class to  compile the average point or
38         --  line of a set of points.
39
40 uses 
41     Standard, 
42     TColStd, 
43     TColgp, 
44     gp, 
45     math, 
46     GeomAbs
47
48 is
49
50 exception UndefinedAxis inherits DomainError;
51         --- Purpose :  
52         --  This exception is raised when a method makes reference to
53         --  an undefined inertia axis of symmetry.
54         
55
56 enumeration EquaType
57     is      Plane, Line, Point, Space, None end;
58
59 enumeration ValueType
60     is      Mass,  
61             CenterMassX, CenterMassY, CenterMassZ, 
62             InertiaXX, InertiaYY, InertiaZZ, 
63             InertiaXY, InertiaXZ, InertiaYZ, 
64             Unknown 
65     end;
66
67
68
69         --- Purpose : Algorithmes :
70
71
72   class GProps;
73         --- Purpose :
74         --  Computes the global properties of a compound geometric 
75         --  system in 3d space.  It gives facilities to compose the
76         --  properties of hetegogeneous elements of the system 
77         --  (PGProps, CGProps, SGProps, VGProps or GProps). A density 
78         --  can be associated with each component of the system.
79
80
81        class PGProps;
82            --- Purpose :
83            --  Computes the global properties of a set of points in 3d.
84            --  This class inherits GProps.
85
86        class CelGProps;
87            ---Purpose :
88            --   Computes the global properties  of a gp curve in 3d 
89            --   This class inherits GProps.
90
91        class SelGProps;
92            ---Purpose :
93            --   Computes the global properties and the area of a bounded
94            --   elementary surface in 3d. This class inherits GProps.
95
96        class VelGProps;
97            ---Purpose :
98            --   Computes the global properties and the volume of a region
99            --   of space. the region of space is defined by an elementary 
100            --   surface. This class inherits GProps.
101
102
103   class PrincipalProps;
104         ---Purpose :
105         --  Returns the principal inertia properties of a GProps. 
106
107
108
109
110         --- Purpose :  
111         --  The following abstract classes define templates
112         --  with the minimum of methods required to implement 
113         --  the computation of the global properties for a curve
114         --  or a surface.
115   
116   
117   --
118   --   Class to compute the average plane or line of a set of points.
119   --   
120   
121   class PEquation;
122     
123         --- Purpose : methods of package
124  
125   HOperator (G, Q : Pnt from gp; Mass : Real; Operator : out Mat from gp);
126         --- Purpose : Computes the matrix Operator, referred to as the
127 -- "Huyghens Operator" of a geometric system at the
128 -- point Q of the space, using the following data :
129 -- - Mass, i.e. the mass of the system,
130 -- - G, the center of mass of the system.
131 --   The "Huyghens Operator" is used to compute
132 -- Inertia/Q, the matrix of inertia of the system at
133 -- the point Q using Huyghens' theorem :
134 --    Inertia/Q = Inertia/G + HOperator (Q, G, Mass)
135 -- where Inertia/G is the matrix of inertia of the
136 -- system relative to its center of mass as returned by
137 -- the function MatrixOfInertia on any GProp_GProps object.
138
139
140 end GProp;