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

b311480e | 1 | -- Created on: 2000-10-20 |

2 | -- Created by: Julia DOROVSKIKH | |

973c2be1 | 3 | -- Copyright (c) 2000-2014 OPEN CASCADE SAS |

b311480e | 4 | -- |

973c2be1 | 5 | -- This file is part of Open CASCADE Technology software library. |

b311480e | 6 | -- |

d5f74e42 | 7 | -- This library is free software; you can redistribute it and/or modify it under |

8 | -- the terms of the GNU Lesser General Public License version 2.1 as published | |

973c2be1 | 9 | -- by the Free Software Foundation, with special exception defined in the file |

10 | -- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT | |

11 | -- distribution for complete text of the license and disclaimer of any warranty. | |

b311480e | 12 | -- |

973c2be1 | 13 | -- Alternatively, this file may be used under the terms of Open CASCADE |

14 | -- commercial license or contractual agreement. | |

7fd59977 | 15 | |

16 | class MidPointRelation from AIS inherits Relation from AIS | |

17 | ||

18 | ---Purpose: presentation of equal distance to point myMidPoint | |

19 | ||

20 | uses | |

21 | ExtendedString from TCollection, | |

22 | Projector from Prs3d, | |

23 | Presentation from Prs3d, | |

7fd59977 | 24 | PresentationManager3d from PrsMgr, |

25 | Selection from SelectMgr, | |

7fd59977 | 26 | Dir from gp, |

27 | Pnt from gp, | |

28 | Lin from gp, | |

29 | Circ from gp, | |

30 | Elips from gp, | |

31 | Plane from Geom, | |

32 | Transformation from Geom, | |

33 | Shape from TopoDS | |

34 | ||

35 | is | |

36 | Create(aSymmTool : Shape from TopoDS; | |

37 | FirstShape : Shape from TopoDS; | |

38 | SecondShape : Shape from TopoDS; | |

39 | aPlane : Plane from Geom) | |

6e33d3ce | 40 | returns MidPointRelation from AIS; |

7fd59977 | 41 | |

42 | IsMovable(me) returns Boolean from Standard | |

43 | ---C++: inline | |

44 | is redefined; | |

45 | ||

46 | SetTool(me: mutable; aMidPointTool : Shape from TopoDS); | |

47 | ---C++: inline | |

48 | ||

49 | GetTool(me) | |

50 | ---C++: inline | |

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

52 | returns Shape from TopoDS; | |

53 | ||

54 | -- Methods from PresentableObject | |

55 | Compute(me: mutable; | |

56 | aPresentationManager: PresentationManager3d from PrsMgr; | |

6e33d3ce | 57 | aPresentation : Presentation from Prs3d; |

7fd59977 | 58 | aMode : Integer from Standard= 0) |

59 | is redefined static private; | |

60 | ||

61 | Compute(me: mutable; | |

62 | aProjector : Projector from Prs3d; | |

6e33d3ce | 63 | aPresentation: Presentation from Prs3d) |

7fd59977 | 64 | is redefined static private; |

65 | ||

66 | Compute(me: mutable; | |

7fd59977 | 67 | aProjector : Projector from Prs3d; |

68 | aTrsf : Transformation from Geom; | |

6e33d3ce | 69 | aPresentation : Presentation from Prs3d) |

7fd59977 | 70 | is redefined; |

71 | ---Purpose: Computes the presentation according to a point of view | |

72 | -- given by <aProjector>. | |

73 | -- To be Used when the associated degenerated Presentations | |

74 | -- have been transformed by <aTrsf> which is not a Pure | |

75 | -- Translation. The HLR Prs can't be deducted automatically | |

76 | -- WARNING :<aTrsf> must be applied | |

77 | -- to the object to display before computation !!! | |

78 | ||

79 | -- Methods from SelectableObject | |

80 | ComputeSelection(me : mutable; | |

6e33d3ce | 81 | aSelection : Selection from SelectMgr; |

7fd59977 | 82 | aMode : Integer from Standard)is private; |

83 | ||

84 | -- Computation private methods | |

6e33d3ce | 85 | ComputeFaceFromPnt(me: mutable; aprs : Presentation from Prs3d; first : Boolean from Standard) |

7fd59977 | 86 | is private; |

87 | ||

6e33d3ce | 88 | ComputeEdgeFromPnt(me: mutable; aprs : Presentation from Prs3d; first : Boolean from Standard) |

7fd59977 | 89 | is private; |

90 | ||

6e33d3ce | 91 | ComputeVertexFromPnt(me: mutable; aprs : Presentation from Prs3d; first : Boolean from Standard) |

7fd59977 | 92 | is private; |

93 | ||

94 | ||

95 | ComputePointsOnLine(me: mutable; aLin : Lin from gp; | |

96 | first : Boolean from Standard) | |

97 | is private; | |

98 | ||

99 | ComputePointsOnLine(me: mutable; pnt1,pnt2 : Pnt from gp; | |

100 | first : Boolean from Standard) | |

101 | is private; | |

102 | ||

103 | ComputePointsOnCirc(me: mutable; aCirc : Circ from gp; pnt1,pnt2 : Pnt from gp; | |

104 | first : Boolean from Standard) | |

105 | is private; | |

106 | ||

107 | ComputePointsOnElips(me: mutable; anEll : Elips from gp; pnt1,pnt2 : Pnt from gp; | |

108 | first : Boolean from Standard) | |

109 | is private; | |

110 | ---Purpose: ComputePointsOn... methods set myFAttach, myFirstPnt and myLastPnt | |

111 | -- from the following initial data: curve, end points, myMidPoint. | |

112 | -- End points (pnt1 & pnt2) and curve define the trimmed curve. | |

113 | -- If end points are equal, curve is not trimmed (line - special case). | |

114 | -- | |

115 | -- .------. pnt2 | |

116 | -- / \ | |

117 | -- . circle . myLastPnt | |

118 | -- | | | |

119 | -- . pnt1 . myFAttach | |

120 | -- \ arc / . myMidPoint | |

121 | -- .______. myFirstPnt | |

122 | fields | |

123 | myTool : Shape from TopoDS; | |

124 | myMidPoint : Pnt from gp; -- point of symmetry | |

125 | ||

126 | myFAttach : Pnt from gp; -- position on myFShape to be connected with myMidPoint by segment | |

127 | myFirstPnt1 : Pnt from gp; -- points on myFShape, | |

128 | myFirstPnt2 : Pnt from gp; -- defining a segment of it to be drawn | |

129 | ||

130 | mySAttach : Pnt from gp; -- position on mySShape to be connected with myMidPoint by segment | |

131 | mySecondPnt1 : Pnt from gp; -- points on mySShape, | |

132 | mySecondPnt2 : Pnt from gp; -- defining a segment of it to be drawn | |

133 | ||

134 | end MidPointRelation; |