7fd59977 |
1 | -- File: Aspect_RectangularGrid.cdl |
2 | -- Created: Thu Mar 2 14:23:42 1995 |
3 | -- Author: Jean-Louis Frenkel |
4 | -- <rmi@pernox> |
5 | ---Copyright: Matra Datavision 1995 |
6 | |
7 | class RectangularGrid from Aspect |
8 | inherits Grid from Aspect |
9 | |
10 | uses |
11 | PlaneAngle, Length from Quantity |
12 | |
13 | raises |
14 | NegativeValue,NullValue,NumericError from Standard |
15 | |
16 | is |
17 | |
18 | Create(aXStep, aYStep: Length from Quantity; |
19 | anXOrigin: Length from Quantity = 0; |
20 | anYOrigin: Length from Quantity = 0; |
21 | aFirstAngle: PlaneAngle from Quantity = 0; |
22 | aSecondAngle: PlaneAngle from Quantity = 0; |
23 | aRotationAngle: PlaneAngle from Quantity = 0) |
24 | returns mutable RectangularGrid from Aspect |
25 | ---Purpose: creates a new grid. By default this grid is not |
26 | -- active. |
27 | -- The first angle is given relatively to the horizontal. |
28 | -- The second angle is given relatively to the vertical. |
29 | raises NumericError from Standard; |
30 | ---Warning: raises NumericError from Standard if the two |
31 | -- networks are parallel. |
32 | |
33 | ---Category: grid definition methods |
34 | |
35 | |
36 | SetXStep(me: mutable; aStep: Length from Quantity) |
37 | ---Purpose: defines the x step of the grid. |
38 | raises NegativeValue,NullValue from Standard |
39 | ---Warning: raises an exception is the step is not strictly positive. |
40 | is static; |
41 | |
42 | SetYStep(me: mutable; aStep: Length from Quantity) |
43 | ---Purpose: defines the y step of the grid. |
44 | raises NegativeValue,NullValue from Standard |
45 | ---Warning: raises an exception is the step is not strictly positive. |
46 | is static; |
47 | |
48 | SetAngle(me: mutable; anAngle1: PlaneAngle from Quantity; |
49 | anAngle2: PlaneAngle from Quantity) |
50 | ---Purpose: defines the angle of the second network |
51 | -- the fist angle is given relatively to the horizontal. |
52 | -- the second angle is given relatively to the vertical. |
53 | raises NumericError from Standard |
54 | ---Warning: raises NumericError from Standard if the two |
55 | -- line networks are parallel. |
56 | is static; |
57 | |
58 | SetGridValues(me: mutable; XOrigin, YOrigin: Length from Quantity; |
59 | XStep, YStep: Length from Quantity; |
60 | RotationAngle: PlaneAngle from Quantity) |
61 | is static; |
62 | |
63 | ---Category: Pick methods |
64 | -- |
65 | Compute(me; X,Y: Length from Quantity; gridX, gridY : out Length from Quantity) |
66 | ---Purpose: returns the point of the grid the closest to the point X,Y |
67 | is static; |
68 | |
69 | |
70 | |
71 | ---Category: inquire methods |
72 | |
73 | XStep(me) returns Length from Quantity |
74 | ---Purpose: returns the x step of the grid. |
75 | is static; |
76 | |
77 | YStep(me) returns Length from Quantity |
78 | ---Purpose: returns the x step of the grid. |
79 | is static; |
80 | |
81 | FirstAngle(me) returns PlaneAngle from Quantity |
82 | ---Purpose: returns the x Angle of the grid, relatively to the horizontal. |
83 | is static; |
84 | |
85 | SecondAngle(me) returns PlaneAngle from Quantity |
86 | ---Purpose: returns the y Angle of the grid, relatively to the vertical. |
87 | is static; |
88 | |
89 | |
90 | |
91 | |
92 | ---Category: private methods. |
93 | |
94 | |
95 | Init(me: mutable) |
96 | is redefined static; |
97 | |
98 | CheckAngle(me;alpha,beta: PlaneAngle from Quantity) |
99 | returns Boolean from Standard |
100 | is static private; |
101 | |
102 | fields |
103 | |
104 | myXStep: Length from Quantity; |
105 | myYStep: Length from Quantity; |
106 | myFirstAngle: PlaneAngle from Quantity; |
107 | mySecondAngle: PlaneAngle from Quantity; |
108 | a1,b1,c1: Real from Standard; |
109 | a2,b2,c2: Real from Standard; |
110 | |
111 | |
112 | end RectangularGrid from Aspect; |