vbtkitutils/src/Pts.m3


Copyright (C) 1994, Digital Equipment Corp.

MODULE Pts;

IMPORT Axis, VBT;

PROCEDURE ToScreenPixels (v: VBT.T; pts: REAL; ax: Axis.T): INTEGER =
  VAR st := VBT.ScreenTypeOf(v);
  BEGIN
    IF st = NIL THEN
      RETURN 0
    ELSE
      RETURN ROUND(pts * MMPerInch * st.res[ax] / PtsPerInch)
    END
  END ToScreenPixels;

PROCEDURE ToPixels (v: VBT.T; pts: REAL; ax: Axis.T): REAL  =
  VAR st := VBT.ScreenTypeOf(v);
  BEGIN
    IF st = NIL THEN
      RETURN 0.0
    ELSE
      RETURN pts * MMPerInch * st.res[ax] / PtsPerInch
    END
  END ToPixels;

PROCEDURE FromPixels (v: VBT.T; pixels: REAL; ax: Axis.T): REAL  =
  VAR st := VBT.ScreenTypeOf(v);
  BEGIN
    IF st = NIL THEN
      RETURN 0.0
    ELSE
      RETURN pixels * PtsPerInch / (MMPerInch * st.res[ax])
    END
  END FromPixels;

PROCEDURE FromMM (mm: REAL): REAL =
  BEGIN
    RETURN mm * PtsPerInch / MMPerInch;
  END FromMM;

PROCEDURE ToMM (pts: REAL): REAL =
  BEGIN
    RETURN pts * MMPerInch / PtsPerInch
  END ToMM;

BEGIN
END Pts.