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

b311480e | 1 | -- Created on: 1991-04-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 | -- Jean-Claude VAUTHIER January 1992 |

7fd59977 | 18 | |

19 | ||

424cd6bb | 20 | class Vinert from BRepGProp inherits GProps from GProp |

7fd59977 | 21 | |

22 | --- Purpose : | |

23 | -- Computes the global properties of a geometric solid | |

24 | -- (3D closed region of space) delimited with : | |

25 | -- . a surface | |

26 | -- . a point and a surface | |

27 | -- . a plane and a surface | |

28 | -- | |

29 | -- The surface can be : | |

30 | -- . a surface limited with its parametric values U-V, | |

31 | -- . a surface limited in U-V space with its curves of restriction, | |

32 | -- | |

33 | -- The surface 's requirements to evaluate the global properties | |

34 | -- are defined in the template SurfaceTool from package GProp. | |

35 | ||

36 | uses Pnt from gp, | |

424cd6bb | 37 | Pln from gp, |

38 | Edge from TopoDS, | |

39 | Face from BRepGProp, | |

40 | Domain from BRepGProp | |

7fd59977 | 41 | is |

42 | ||

424cd6bb | 43 | Create returns Vinert; |

7fd59977 | 44 | |

424cd6bb | 45 | Create (S: Face from BRepGProp; VLocation: Pnt from gp) returns Vinert; |

7fd59977 | 46 | --- Purpose : |

47 | -- Computes the global properties of a region of 3D space | |

48 | -- delimited with the surface <S> and the point VLocation. S can be closed | |

49 | -- The method is quick and its precision is enough for many cases of analytical | |

50 | -- surfaces. | |

51 | -- Non-adaptive 2D Gauss integration with predefined numbers of Gauss points | |

52 | -- is used. Numbers of points depend on types of surfaces and curves. | |

53 | -- Errror of the computation is not calculated. | |

54 | ||

424cd6bb | 55 | Create (S: in out Face from BRepGProp; VLocation: Pnt from gp; Eps: Real) returns Vinert; |

7fd59977 | 56 | --- Purpose : |

57 | -- Computes the global properties of a region of 3D space | |

58 | -- delimited with the surface <S> and the point VLocation. S can be closed | |

59 | -- Adaptive 2D Gauss integration is used. | |

60 | -- Parameter Eps sets maximal relative error of computed mass (volume) for face. | |

61 | -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values | |

62 | -- for two successive steps of adaptive integration. | |

63 | ||

424cd6bb | 64 | Create (S: Face from BRepGProp; O: Pnt from gp; VLocation: Pnt from gp) returns Vinert; |

7fd59977 | 65 | --- Purpose : |

66 | -- Computes the global properties of the region of 3D space | |

67 | -- delimited with the surface <S> and the point VLocation. | |

68 | -- The method is quick and its precision is enough for many cases of analytical | |

69 | -- surfaces. | |

70 | -- Non-adaptive 2D Gauss integration with predefined numbers of Gauss points | |

71 | -- is used. Numbers of points depend on types of surfaces and curves. | |

72 | -- Error of the computation is not calculated. | |

73 | ||

424cd6bb | 74 | Create (S: in out Face from BRepGProp; O: Pnt from gp; VLocation: Pnt from gp; Eps: Real) returns Vinert; |

7fd59977 | 75 | --- Purpose : |

76 | -- Computes the global properties of the region of 3D space | |

77 | -- delimited with the surface <S> and the point VLocation. | |

78 | -- Adaptive 2D Gauss integration is used. | |

79 | -- Parameter Eps sets maximal relative error of computed mass (volume) for face. | |

80 | -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values | |

81 | -- for two successive steps of adaptive integration. | |

82 | -- WARNING: if Eps > 0.001 algorithm performs non-adaptive integration. | |

83 | ||

424cd6bb | 84 | Create (S: Face from BRepGProp; Pl: Pln from gp; VLocation: Pnt from gp) returns Vinert; |

7fd59977 | 85 | --- Purpose : |

86 | -- Computes the global properties of the region of 3D space | |

87 | -- delimited with the surface <S> and the plane Pln. | |

88 | -- The method is quick and its precision is enough for many cases of analytical | |

89 | -- surfaces. | |

90 | -- Non-adaptive 2D Gauss integration with predefined numbers of Gauss points | |

91 | -- is used. Numbers of points depend on types of surfaces and curves. | |

92 | -- Error of the computation is not calculated. | |

93 | ||

424cd6bb | 94 | Create (S: in out Face from BRepGProp; Pl: Pln from gp; VLocation: Pnt from gp; Eps: Real) returns Vinert; |

7fd59977 | 95 | --- Purpose : |

96 | -- Computes the global properties of the region of 3D space | |

97 | -- delimited with the surface <S> and the plane Pln. | |

98 | -- Adaptive 2D Gauss integration is used. | |

99 | -- Parameter Eps sets maximal relative error of computed mass (volume) for face. | |

100 | -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values | |

101 | -- for two successive steps of adaptive integration. | |

102 | -- WARNING: if Eps > 0.001 algorithm performs non-adaptive integration. | |

103 | ||

424cd6bb | 104 | -- With Domain from BRepGProp -- |

7fd59977 | 105 | |

424cd6bb | 106 | Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; VLocation: Pnt from gp) returns Vinert; |

7fd59977 | 107 | --- Purpose : |

108 | -- Computes the global properties of a region of 3D space | |

109 | -- delimited with the surface <S> and the point VLocation. S can be closed | |

110 | -- The method is quick and its precision is enough for many cases of analytical | |

111 | -- surfaces. | |

112 | -- Non-adaptive 2D Gauss integration with predefined numbers of Gauss points | |

113 | -- is used. Numbers of points depend on types of surfaces and curves. | |

114 | -- Errror of the computation is not calculated. | |

115 | ||

424cd6bb | 116 | Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; VLocation: Pnt from gp; Eps: Real) returns Vinert; |

7fd59977 | 117 | --- Purpose : |

118 | -- Computes the global properties of a region of 3D space | |

119 | -- delimited with the surface <S> and the point VLocation. S can be closed | |

120 | -- Adaptive 2D Gauss integration is used. | |

121 | -- Parameter Eps sets maximal relative error of computed mass (volume) for face. | |

122 | -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values | |

123 | -- for two successive steps of adaptive integration. | |

124 | ||

424cd6bb | 125 | Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; O: Pnt from gp; VLocation: Pnt from gp) returns Vinert; |

7fd59977 | 126 | --- Purpose : |

127 | -- Computes the global properties of the region of 3D space | |

128 | -- delimited with the surface <S> and the point VLocation. | |

129 | -- The method is quick and its precision is enough for many cases of analytical | |

130 | -- surfaces. | |

131 | -- Non-adaptive 2D Gauss integration with predefined numbers of Gauss points | |

132 | -- is used. Numbers of points depend on types of surfaces and curves. | |

133 | -- Error of the computation is not calculated. | |

134 | ||

424cd6bb | 135 | Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; O: Pnt from gp; VLocation: Pnt from gp; Eps: Real) returns Vinert; |

7fd59977 | 136 | --- Purpose : |

137 | -- Computes the global properties of the region of 3D space | |

138 | -- delimited with the surface <S> and the point VLocation. | |

139 | -- Adaptive 2D Gauss integration is used. | |

140 | -- Parameter Eps sets maximal relative error of computed mass (volume) for face. | |

141 | -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values | |

142 | -- for two successive steps of adaptive integration. | |

143 | -- WARNING: if Eps > 0.001 algorithm performs non-adaptive integration. | |

144 | ||

424cd6bb | 145 | Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; Pl: Pln from gp; VLocation: Pnt from gp) returns Vinert; |

7fd59977 | 146 | --- Purpose : |

147 | -- Computes the global properties of the region of 3D space | |

148 | -- delimited with the surface <S> and the plane Pln. | |

149 | -- The method is quick and its precision is enough for many cases of analytical | |

150 | -- surfaces. | |

151 | -- Non-adaptive 2D Gauss integration with predefined numbers of Gauss points | |

152 | -- is used. Numbers of points depend on types of surfaces and curves. | |

153 | -- Error of the computation is not calculated. | |

154 | ||

424cd6bb | 155 | Create (S: in out Face from BRepGProp; D : in out Domain from BRepGProp; Pl: Pln from gp; VLocation: Pnt from gp; Eps: Real) returns Vinert; |

7fd59977 | 156 | --- Purpose : |

157 | -- Computes the global properties of the region of 3D space | |

158 | -- delimited with the surface <S> and the plane Pln. | |

159 | -- Adaptive 2D Gauss integration is used. | |

160 | -- Parameter Eps sets maximal relative error of computed mass (volume) for face. | |

161 | -- Error is calculated as Abs((M(i+1)-M(i))/M(i+1)), M(i+1) and M(i) are values | |

162 | -- for two successive steps of adaptive integration. | |

163 | -- WARNING: if Eps > 0.001 algorithm performs non-adaptive integration. | |

164 | ||

165 | SetLocation(me: in out; VLocation: Pnt from gp); | |

166 | ||

424cd6bb | 167 | Perform(me: in out; S: Face from BRepGProp); |

168 | Perform(me: in out; S: in out Face from BRepGProp; Eps: Real) returns Real; | |

7fd59977 | 169 | |

424cd6bb | 170 | Perform(me: in out; S: Face from BRepGProp; O : Pnt from gp); |

171 | Perform(me: in out; S: in out Face from BRepGProp; O : Pnt from gp; Eps: Real) returns Real; | |

7fd59977 | 172 | |

424cd6bb | 173 | Perform(me: in out; S: Face from BRepGProp; Pl : Pln from gp); |

174 | Perform(me: in out; S: in out Face from BRepGProp; Pl : Pln from gp; Eps: Real) returns Real; | |

7fd59977 | 175 | |

424cd6bb | 176 | Perform(me: in out; S: in out Face from BRepGProp; D : in out Domain from BRepGProp); |

177 | Perform(me: in out; S: in out Face from BRepGProp; D : in out Domain from BRepGProp; Eps: Real) returns Real; | |

7fd59977 | 178 | |

424cd6bb | 179 | Perform(me: in out; S: in out Face from BRepGProp; D : in out Domain from BRepGProp; O : Pnt from gp); |

180 | Perform(me: in out; S: in out Face from BRepGProp; D : in out Domain from BRepGProp; O : Pnt from gp; Eps: Real) returns Real; | |

7fd59977 | 181 | |

424cd6bb | 182 | Perform(me: in out; S: in out Face from BRepGProp; D : in out Domain from BRepGProp; Pl : Pln from gp); |

183 | Perform(me: in out; S: in out Face from BRepGProp; D : in out Domain from BRepGProp; Pl : Pln from gp; Eps: Real) returns Real; | |

7fd59977 | 184 | |

185 | GetEpsilon(me: out) returns Real; | |

186 | --- Purpose : | |

187 | -- If previously used methods containe Eps parameter | |

188 | -- gets actual relative error of the computation, else returns 1.0. | |

189 | fields | |

190 | ||

191 | myEpsilon: Real from Standard; | |

192 | ||

424cd6bb | 193 | end Vinert; |

7fd59977 | 194 | |

195 |