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

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