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

b311480e | 1 | -- Created on: 1993-03-17 |

2 | -- Created by: Laurent BUCHARD | |

3 | -- Copyright (c) 1993-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. | |

7fd59977 | 16 | |

17 | generic class Approx from ApproxInt ( | |

18 | ThePSurface as any; | |

19 | ThePSurfaceTool as any; | |

20 | TheISurface as any; | |

21 | TheISurfaceTool as any; | |

22 | TheWLine as Transient) | |

23 | ||

24 | uses | |

25 | MCurvesToBSpCurve from Approx, | |

26 | MultiBSpCurve from AppParCurves, | |

27 | Pnt from gp, | |

28 | Pnt2d from gp, | |

29 | Vec from gp, | |

30 | Vec2d from gp, | |

31 | ParametrizationType from Approx | |

32 | ||

33 | raises | |

34 | OutOfRange from Standard, | |

35 | NotDone from StdFail | |

36 | ||

37 | class ThePrmPrmSvSurfaces instantiates PrmPrmSvSurfaces from ApproxInt ( | |

38 | ThePSurface, | |

39 | ThePSurfaceTool, | |

40 | TheWLine); | |

41 | ||

42 | class TheImpPrmSvSurfaces instantiates ImpPrmSvSurfaces from ApproxInt ( | |

43 | ThePSurface, | |

44 | ThePSurfaceTool, | |

45 | TheISurface, | |

46 | TheISurfaceTool, | |

47 | TheWLine); | |

48 | ||

49 | class TheMultiLine instantiates MultiLine from ApproxInt ( | |

50 | TheWLine, | |

51 | SvSurfaces from ApproxInt); | |

52 | ||

53 | class TheMultiLineTool instantiates MultiLineTool from ApproxInt( | |

54 | TheMultiLine, | |

55 | SvSurfaces from ApproxInt); | |

56 | ||

57 | class TheComputeLine instantiates BSplComputeLine from Approx ( | |

58 | TheMultiLine, | |

59 | TheMultiLineTool); | |

60 | ||

61 | class TheComputeLineBezier instantiates ComputeLine from Approx ( | |

62 | TheMultiLine, | |

63 | TheMultiLineTool); | |

64 | ||

65 | is | |

66 | ||

67 | Create | |

68 | returns Approx from ApproxInt; | |

69 | ||

70 | Perform(me: in out; | |

71 | Surf1,Surf2 : ThePSurface; | |

72 | aLine : TheWLine; | |

73 | ApproxXYZ : Boolean from Standard = Standard_True; | |

74 | ApproxU1V1 : Boolean from Standard = Standard_True; | |

75 | ApproxU2V2 : Boolean from Standard = Standard_True; | |

76 | indicemin : Integer from Standard = 0; | |

77 | indicemax : Integer from Standard = 0) | |

78 | is static; | |

79 | ||

80 | Perform(me: in out; | |

81 | aLine : TheWLine; | |

82 | ApproxXYZ : Boolean from Standard = Standard_True; | |

83 | ApproxU1V1 : Boolean from Standard = Standard_True; | |

84 | ApproxU2V2 : Boolean from Standard = Standard_True; | |

85 | indicemin : Integer from Standard = 0; | |

86 | indicemax : Integer from Standard = 0) | |

87 | is static; | |

88 | ||

89 | ||

90 | SetParameters(me: in out; Tol3d : Real from Standard; | |

91 | Tol2d : Real from Standard; | |

92 | DegMin : Integer from Standard; | |

93 | DegMax : Integer from Standard; | |

94 | NbIterMax : Integer from Standard; | |

95 | ApproxWithTangency : Boolean from Standard = Standard_True; | |

96 | Parametrization : ParametrizationType from Approx = Approx_ChordLength) | |

97 | is static; | |

98 | ||

99 | SetParameters(me: in out; Tol3d : Real from Standard; | |

100 | Tol2d : Real from Standard; | |

101 | RelativeTol : Boolean from Standard; | |

102 | DegMin : Integer from Standard; | |

103 | DegMax : Integer from Standard; | |

104 | NbIterMax : Integer from Standard; | |

105 | NbPntMax : Integer from Standard; | |

106 | ApproxWithTangency : Boolean from Standard = Standard_True; | |

107 | Parametrization : ParametrizationType from Approx = Approx_ChordLength) | |

108 | is static; | |

109 | ||

110 | Perform(me:in out) | |

111 | is static; | |

112 | ||

113 | TolReached3d(me) returns Real from Standard | |

114 | is static; | |

115 | ||

116 | TolReached2d(me) returns Real from Standard | |

117 | is static; | |

118 | ||

119 | IsDone(me) returns Boolean from Standard | |

120 | is static; | |

121 | ||

122 | NbMultiCurves(me) returns Integer from Standard | |

123 | is static ; | |

124 | ||

125 | Value(me; Index: Integer from Standard) | |

126 | ---C++: return const & | |

127 | returns MultiBSpCurve from AppParCurves | |

128 | is static; | |

129 | ||

130 | ||

131 | ||

132 | ---- private methods | |

133 | ||

134 | Perform(me: in out ;Surf1 : ThePSurface; | |

135 | Surf2 : TheISurface; | |

136 | aLine : TheWLine; | |

137 | ApproxXYZ : Boolean from Standard; | |

138 | ApproxU1V1 : Boolean from Standard; | |

139 | ApproxU2V2 : Boolean from Standard; | |

140 | indicemin : Integer from Standard; | |

141 | indicemax : Integer from Standard) | |

142 | ||

143 | is static private; | |

144 | ||

145 | Perform(me: in out ;Surf1 : TheISurface; | |

146 | Surf2 : ThePSurface; | |

147 | aLine : TheWLine; | |

148 | ApproxXYZ : Boolean from Standard; | |

149 | ApproxU1V1 : Boolean from Standard; | |

150 | ApproxU2V2 : Boolean from Standard; | |

151 | indicemin : Integer from Standard; | |

152 | indicemax : Integer from Standard) | |

153 | is static private; | |

154 | ||

155 | UpdateTolReached(me: in out) | |

156 | is static private; | |

157 | ||

158 | fields | |

159 | myComputeLine : TheComputeLine from ApproxInt; | |

160 | myComputeLineBezier : TheComputeLineBezier from ApproxInt; | |

161 | myBezToBSpl : MCurvesToBSpCurve from Approx; | |

162 | myTolReached : Boolean from Standard; | |

163 | myApproxBez : Boolean from Standard; | |

164 | ||

165 | myWithTangency : Boolean from Standard; | |

166 | myTol3d : Real from Standard; | |

167 | myTol2d : Real from Standard; | |

168 | myRelativeTol : Boolean from Standard; | |

169 | myDegMin : Integer from Standard; | |

170 | myDegMax : Integer from Standard; | |

171 | myNbPntMax : Integer from Standard; | |

172 | myNbIterMax : Integer from Standard; | |

173 | ||

174 | myMinFactorXYZ : Real from Standard; | |

175 | myMinFactorUV : Real from Standard; | |

176 | myTolReached3d : Real from Standard; | |

177 | myTolReached2d : Real from Standard; | |

178 | ||

179 | end Approx; |