-- file: MFOctants.mesa
-- Pascal-to-Mesa translator output, translated at October 31, 1985 4:28:00 pm PST


DIRECTORY
  PascalBasic,
  PascalWizardFiles,
  MFTypes;

MFOctants: DEFINITIONS IMPORTS  =
BEGIN OPEN PascalBasic, PascalWizardFiles, MFTypes;

CurX: Scaled;

CurY: Scaled;
OctantDir: LONG POINTER TO ARRAY PascalInteger[1..8] OF  StrNumber;

CurSpec: Halfword;

TurningNumber: PascalInteger;

CurPen: Halfword;

CurPathType: PascalInteger[0..2];

MaxAllowed: Scaled;
Before: LONG POINTER TO ARRAY PascalInteger[0..MaxWiggle] OF  Scaled;
After: LONG POINTER TO ARRAY PascalInteger[0..MaxWiggle] OF  Scaled;
NodeToRound: LONG POINTER TO ARRAY PascalInteger[0..MaxWiggle] OF  Halfword;

CurRoundingPtr: PascalInteger[0..MaxWiggle];

MaxRoundingPtr: PascalInteger[0..MaxWiggle];

CurGran: Scaled;
OctantNumber: LONG POINTER TO ARRAY PascalInteger[1..8] OF  PascalInteger[1..8];
OctantCode: LONG POINTER TO ARRAY PascalInteger[1..8] OF  PascalInteger[1..8];

RevTurns: PascalBoolean;

 Unskew: PROCEDURE[X,Y: Scaled,Octant: SmallNumber]
;

 Abnegate: PROCEDURE[X,Y: Scaled,OctantBefore,OctantAfter: SmallNumber]
;

--:390----391:-- CrossingPoint: PROCEDURE[A,B,C: PascalInteger] RETURNS[CrossingPointResult: Fraction];

 PrintSpec: PROCEDURE[S: StrNumber];

 PrintStrange: PROCEDURE[S: StrNumber];

--:398----402:----405:-- RemoveCubic: PROCEDURE[P: Halfword];

 SplitCubic: PROCEDURE[P: Halfword,T: Fraction,Xq,Yq: Scaled];

 QuadrantSubdivide: PROCEDURE;

 OctantSubdivide: PROCEDURE
;

 MakeSafe: PROCEDURE
;

 BeforeAndAfter: PROCEDURE[B,A: Scaled,P: Halfword]
;

 GoodVal: PROCEDURE[B,O: Scaled] RETURNS[GoodValResult: Scaled];

--:431----432:-- Compromise: PROCEDURE[U,V: Scaled] RETURNS[CompromiseResult: Scaled]
;

 XyRound: PROCEDURE;

 DiagRound: PROCEDURE;

 NewBoundary: PROCEDURE[P: Halfword,
Octant: SmallNumber];

 MakeSpec: PROCEDURE[H: Halfword,SafetyMargin: Scaled,
Tracing: PascalInteger] RETURNS[MakeSpecResult: Halfword];

END.