-- Path.mesa -- Last changed by Doug Wyatt, September 15, 1980 4:33 PM DIRECTORY Vector USING [Vec], Cubic USING [Coeffs], Area USING [Handle], Pipe USING [Handle], Clipper USING [Handle]; Path: DEFINITIONS = { Handle: TYPE = LONG POINTER TO Object; EnterPoint: PROCEDURE[self: Handle, v: Vector.Vec] = INLINE { self.procs.EnterPoint[self,@v] }; EnterCubic: PROCEDURE[self: Handle, c: Cubic.Coeffs] = INLINE { self.procs.EnterCubic[self,@c] }; Close: PROCEDURE[self: Handle] = INLINE { self.procs.Close[self] }; Boundary: PROCEDURE[self: Handle] RETURNS[Area.Handle] = INLINE { RETURN[self.procs.Boundary[self]] }; Generate: PROCEDURE[self: Handle, clipper: Clipper.Handle, pipe: Pipe.Handle] = INLINE { self.procs.Generate[self,clipper,pipe] }; Free: PROCEDURE[selfPtr: LONG POINTER TO Handle] = INLINE { self: Handle=selfPtr^; selfPtr^_NIL; self.procs.Free[self] }; Object: PRIVATE TYPE = RECORD [ procs: LONG POINTER TO READONLY Procs, data: LONG POINTER TO Data ]; Procs: PRIVATE TYPE = RECORD [ EnterPoint: PROCEDURE[self: Handle, v: POINTER TO Vector.Vec], EnterCubic: PROCEDURE[self: Handle, c: POINTER TO Cubic.Coeffs], Close: PROCEDURE[self: Handle], Boundary: PROCEDURE[self: Handle] RETURNS[Area.Handle], Generate: PROCEDURE[self: Handle, clipper: Clipper.Handle, pipe: Pipe.Handle], Free: PROCEDURE[self: Handle] ]; Data: PRIVATE TYPE; }.(670)