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 | |
10 | package 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 | |
29 | uses |
30 | Standard, |
31 | TColStd, |
32 | TColgp, |
33 | gp, |
34 | math, |
35 | GeomAbs |
36 | |
37 | is |
38 | |
39 | exception 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 | |
45 | enumeration EquaType |
46 | is Plane, Line, Point, Space, None end; |
47 | |
48 | enumeration 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 | |
159 | end GProp; |