GGTypes.mesa
Author: Eric Bier on June 4, 1985 4:34:02 pm PDT
Last edited by Bier on June 4, 1985 4:34:07 pm PDT
Contents: Definitions of data structures used to represent two dimensional entities.
GGTypes: CEDAR DEFINITIONS =
BEGIN
Point: TYPE = ARRAY[1..2] OF REAL;
Vector: TYPE = ARRAY[1..2] OF REAL;
Matrix3by3: TYPE = ARRAY [1..3] OF ARRAY [1..3] OF REAL;
Angle: TYPE = REAL;
Edge: TYPE = REF EdgeObj;
EdgeObj: TYPE = RECORD [
line: Line, -- the line which passes through the endpoints of this edge
startIsFirst: BOOL,
start, end: Point];
Line: TYPE = REF LineObj;
LineObj: TYPE = RECORD [
Line equation of the form: y*cos(theta) - x*sin(theta) -d = 0,
where theta is the angle which the line makes with the x axis and d is the distance from the line to the origin.
theta: REAL, -- angle in (-pi..pi]
d: REAL, -- distance from line to origin
c: REAL, -- cos(theta). Cached for convenience.
s: REAL, -- sin(theta). Cached for convenience.
slope: REAL,
yInt: REAL -- for historical (Solidviews) reasons
];
END.