PETypes.mesa
Written by Darlene Plebon on August 16, 1983 12:03 pm
DIRECTORY
GraphicsBasic USING [Vec];
PETypes: CEDAR DEFINITIONS =
BEGIN
Types for the Path Editor.
Point: TYPE = GraphicsBasic.Vec;    -- coordinates of the point
Vertex: TYPE = REF VertexRec;
VertexRec: TYPE = RECORD [
point: Point,         -- coordinates of the vertex
fixed: BOOLEANFALSE     -- is this vertex constrained?
];
VertexList: TYPE = VertexNode;
VertexNode: TYPE = REF VertexNodeRec;
VertexNodeRec: TYPE = RECORD [
preceding: VertexNode ← NIL,    -- the preceding node in the list
first: Vertex ← NIL,       -- the data for this node
rest: VertexNode ← NIL      -- the next node in the list
];
Segment: TYPE = REF SegmentRec;
SegmentRec: TYPE = RECORD [
type: SegmentType ← curveTo,
fp: Vertex ← NIL,       -- first point (last vertex of previous segment)
vertices: VertexList ← NIL,
refresh: BOOLEANTRUE     -- can refresh process run on this segment?
];
SegmentType: TYPE = {moveTo, curveTo};
SegmentList: TYPE = SegmentNode;
SegmentNode: TYPE = REF SegmentNodeRec;
SegmentNodeRec: TYPE = RECORD [
preceding: SegmentNode ← NIL,   -- the preceding node in the list
first: Segment ← NIL,      -- the data for this node
rest: SegmentNode ← NIL     -- the next node in the list
];
Trajectory: TYPE = REF TrajectoryRec;
TrajectoryRec: TYPE = RECORD [
segments: SegmentList ← NIL,
refresh: BOOLEANTRUE     -- can refresh process run on this trajectory?
];
TrajectoryList: TYPE = TrajectoryNode;
TrajectoryNode: TYPE = REF TrajectoryNodeRec;
TrajectoryNodeRec: TYPE = RECORD [
preceding: TrajectoryNode ← NIL,   -- the preceding node in the list
first: Trajectory ← NIL,      -- the data for this node
rest: TrajectoryNode ← NIL     -- the next node in the list
];
END.