<> <> <> <> DIRECTORY SV2d, SVModelTypes; SVCoordSys2d: CEDAR DEFINITIONS = BEGIN CoordSystem2d: TYPE = REF CoordSystem2dObj; CoordSystem2dObj: TYPE = SVModelTypes.CoordSystem2dObj; Matrix3by3: TYPE = SV2d.Matrix3by3; Point2d: TYPE = SV2d.Point2d; Vector2d: TYPE = SV2d.Vector2d; CreateCoordSys: PROC [mat: Matrix3by3, withRespectTo: CoordSystem2d] RETURNS [newCS: CoordSystem2d]; TellCoordSysAboutPad: PROC [cs: CoordSystem2d]; PadToScreen: PROC [padPoint: Point2d, screen: CoordSystem2d] RETURNS [screenPoint: Point2d]; ScreenToPad: PROC [screenPoint: Point2d, screen: CoordSystem2d] RETURNS [padPoint: Point2d]; FindInTermsOfPad: PROC [cs: CoordSystem2d] RETURNS [mat: Matrix3by3]; FindAinTermsOfB: PROC [a: CoordSystem2d, b: CoordSystem2d] RETURNS [aInTermsOfb: Matrix3by3]; FindTranslationOfAinTermsOfB: PROC [a: CoordSystem2d, b: CoordSystem2d] RETURNS [displacements: Vector2d]; PutAinTermsOfB: PROC [a: CoordSystem2d, b: CoordSystem2d] RETURNS [aInTermsOfb: Matrix3by3]; <> PlaceAwrtB: PROC [a: CoordSystem2d, b: CoordSystem2d _ NIL, aWRTb: Matrix3by3]; <> PlaceTranslationAwrtB: PROC [a: CoordSystem2d, b: CoordSystem2d _ NIL, origin: Point2d]; <> TranslateAwrtB: PROC [a: CoordSystem2d, b: CoordSystem2d _ NIL, tx, ty: REAL]; RotateCCWAwrtB: PROC [a: CoordSystem2d, b: CoordSystem2d _ NIL, degrees: REAL]; AlignAwrtB: PROC [a: CoordSystem2d, b: CoordSystem2d _ NIL]; <> AbutAwrtB: PROC [a: CoordSystem2d, b: CoordSystem2d _ NIL]; <> <> <> <> END.