0024750: Replace instantiations of TCollection generic classes by NCollection templat...
[occt.git] / src / GProp / GProp.cdl
CommitLineData
b311480e 1-- Created on: 1991-03-12
2-- Created by: Michel CHAUVAT
3-- Copyright (c) 1991-1999 Matra Datavision
973c2be1 4-- Copyright (c) 1999-2014 OPEN CASCADE SAS
b311480e 5--
973c2be1 6-- This file is part of Open CASCADE Technology software library.
b311480e 7--
d5f74e42 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
973c2be1 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.
b311480e 13--
973c2be1 14-- Alternatively, this file may be used under the terms of Open CASCADE
15-- commercial license or contractual agreement.
b311480e 16
7fd59977 17-- JCV - January 1992
7fd59977 18
19
20
21package 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
40uses
41 Standard,
42 TColStd,
43 TColgp,
44 gp,
45 math,
46 GeomAbs
47
48is
49
50exception 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
56enumeration EquaType
57 is Plane, Line, Point, Space, None end;
58
59enumeration 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;
7fd59977 73
74 class PGProps;
7fd59977 75
76 class CelGProps;
7fd59977 77
7fd59977 78 class SelGProps;
7fd59977 79
80 class VelGProps;
7fd59977 81
82 class PrincipalProps;
7fd59977 83
84
7fd59977 85 -- The following abstract classes define templates
86 -- with the minimum of methods required to implement
87 -- the computation of the global properties for a curve
88 -- or a surface.
7fd59977 89
7fd59977 90
91 --
92 -- Class to compute the average plane or line of a set of points.
93 --
94
95 class PEquation;
96
97 --- Purpose : methods of package
98
99 HOperator (G, Q : Pnt from gp; Mass : Real; Operator : out Mat from gp);
100 --- Purpose : Computes the matrix Operator, referred to as the
101-- "Huyghens Operator" of a geometric system at the
102-- point Q of the space, using the following data :
103-- - Mass, i.e. the mass of the system,
104-- - G, the center of mass of the system.
105-- The "Huyghens Operator" is used to compute
106-- Inertia/Q, the matrix of inertia of the system at
107-- the point Q using Huyghens' theorem :
108-- Inertia/Q = Inertia/G + HOperator (Q, G, Mass)
109-- where Inertia/G is the matrix of inertia of the
110-- system relative to its center of mass as returned by
111-- the function MatrixOfInertia on any GProp_GProps object.
112
113
114end GProp;