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