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

7fd59977 | 1 | -- File: CurveTransition.cdl |

2 | -- Created: Thu Jan 30 12:10:21 1992 | |

3 | -- Author: Didier PIFFAULT | |

4 | -- <dpf@sdsun1> | |

5 | ---Copyright: Matra Datavision 1992 | |

6 | ||

7 | ||

8 | class CurveTransition from TopTrans | |

9 | ||

10 | ---Purpose: This algorithm is used to compute the transition | |

11 | -- of a Curve intersecting a curvilinear boundary. | |

12 | -- | |

13 | -- The geometric elements are described locally at | |

14 | -- the intersection point by a second order | |

15 | -- development. | |

16 | -- | |

17 | -- The curve is described by the intersection point, | |

18 | -- the tangent vector and the curvature. | |

19 | -- | |

20 | -- The boundary is described by a set of curve | |

21 | -- elements, a curve element is either : | |

22 | -- | |

23 | -- - A curve. | |

24 | -- | |

25 | -- - A curve and an orientation called a half-curve, | |

26 | -- the boundary of the curve is before or after the | |

27 | -- intersection point depending on the orientation. | |

28 | -- | |

29 | ||

30 | uses | |

31 | ||

32 | Boolean from Standard, | |

33 | Real from Standard, | |

34 | ||

35 | Pnt from gp, | |

36 | Dir from gp, | |

37 | ||

38 | State from TopAbs, | |

39 | Orientation from TopAbs | |

40 | ||

41 | is | |

42 | ||

43 | Create returns CurveTransition from TopTrans; | |

44 | ---Purpose: Create an empty Curve Transition. | |

45 | ||

46 | ||

47 | Reset( me : in out; | |

48 | Tgt : in Dir from gp; -- Tangent at this point | |

49 | Norm : in Dir from gp; -- Normal vector at this point | |

50 | Curv : in Real from Standard);-- Curvature at this point | |

51 | ---Purpose: Initialize a Transition with the local description | |

52 | -- of a Curve. | |

53 | ||

54 | Reset( me : in out; | |

55 | Tgt : in Dir from gp); -- Tangent at this point | |

56 | ---Purpose: Initialize a Transition with the local description | |

57 | -- of a straigth line. | |

58 | ||

59 | Compare(me : in out; | |

60 | Tole : in Real from Standard; -- Cosine tolerance | |

61 | Tang : in Dir from gp; -- Tangent on curve for this point | |

62 | Norm : in Dir from gp; -- Normal vector at this point | |

63 | Curv : in Real from Standard; -- Curvature at this point | |

64 | S : in Orientation from TopAbs; -- transition locale | |

65 | Or : in Orientation from TopAbs);-- orientation de la tangente | |

66 | ---Purpose: Add a curve element to the boundary. If Or is | |

67 | -- REVERSED the curve is before the intersection, | |

68 | -- else if Or is FORWARD the curv is after the | |

69 | -- intersection and if Or is INTERNAL the | |

70 | -- intersection is in the middle of the curv. | |

71 | ||

72 | StateBefore(me) returns State from TopAbs; | |

73 | ---Purpose: returns the state of the curve before the | |

74 | -- intersection, this is the position relative to the | |

75 | -- boundary of a point very close to the intersection | |

76 | -- on the negative side of the tangent. | |

77 | ||

78 | StateAfter(me) returns State from TopAbs; | |

79 | ---Purpose: returns the state of the curve after the | |

80 | -- intersection, this is the position relative to the | |

81 | -- boundary of a point very close to the intersection | |

82 | -- on the positive side of the tangent. | |

83 | ||

84 | ||

85 | ---Implementation functions : | |

86 | ||

87 | IsBefore( me; | |

88 | Tole : in Real from Standard; | |

89 | Angl : in Real from Standard; | |

90 | Nor1 : in Dir from gp; | |

91 | Cur1 : in Real from Standard; | |

92 | Nor2 : in Dir from gp; | |

93 | Cur2 : in Real from Standard) | |

94 | returns Boolean from Standard is private; | |

95 | ---Purpose: Compare two curvature and return true if N1,C1 is | |

96 | -- before N2,C2 in the edge orientation | |

97 | ||

98 | Compare(me; | |

99 | Ang1 : in Real from Standard; | |

100 | Ang2 : in Real from Standard; | |

101 | Tole : in Real from Standard) | |

102 | returns Integer from Standard is private; | |

103 | ---Purpose: Compare two angles at tolerance Tole | |

104 | ||

105 | ||

106 | fields | |

107 | ||

108 | myTgt : Dir from gp; -- Tangent at this point | |

109 | myNorm : Dir from gp; -- Normal vector at this point | |

110 | myCurv : Real; -- Curvature at this point | |

111 | ||

112 | Init : Boolean; | |

113 | ||

114 | TgtFirst : Dir from gp; -- Elements to determine the state | |

115 | NormFirst : Dir from gp; -- | |

116 | CurvFirst : Real; -- before the intersection | |

117 | TranFirst : Orientation from TopAbs; | |

118 | ||

119 | TgtLast : Dir from gp; -- Elements to determine the state | |

120 | NormLast : Dir from gp; -- | |

121 | CurvLast : Real; -- After the intersection | |

122 | TranLast : Orientation from TopAbs; | |

123 | ||

124 | end CurveTransition; |