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: BOOLEAN ← FALSE -- 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: BOOLEAN ← TRUE -- 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: BOOLEAN ← TRUE -- 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.