Commit | Line | Data |
---|---|---|

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 | ||

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; | |

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 | ||

114 | end GProp; |