Copyright (C) 1992, Digital Equipment Corporation
All rights reserved.
See the file COPYRIGHT for a full description.
Last modified on Tue Jun 16 18:30:07 PDT 1992 by muller
modified on Tue Apr 7 14:17:09 PDT 1992 by sclafani
modified on Wed Nov 20 23:13:53 PST 1991 by mhb
Created by Marc H. Brown before Mar 1988
INTERFACE Cube;
IMPORT VBT;
TYPE
T <: REFANY;
PROCEDURE New (vbt: VBT.T): T;
(* Create a new cube. *)
PROCEDURE SetStyle (cube: T; style: INTEGER);
(* Set the viewing style. Doesn't change any matrices. *)
PROCEDURE SetSpin (cube: T; degree: INTEGER);
(* Set the number of degrees to spin the cube at each step. /degree/
should be a factor of 360. Re-orients the cube to its initial
position. *)
PROCEDURE SetView (cube: T; mu, theta, phi: REAL);
(* Set the viewing parameters. *)
PROCEDURE SetProjection (cube: T; persp: BOOLEAN; d: REAL);
(* Set the viewing projection. If perspective, then d is the distance to
the screen. *)
PROCEDURE SetImage (cube: T; dblBuffer: BOOLEAN; w: REAL);
(* Viewing screen is (-w,-w) to (w,w) and it will go to VBT.Domain. This
should be called whenever /w/, VBT.Domain, or the double-buffering
option is changed. *)
PROCEDURE Advance (cube: T);
(* Rotate the cube one notch. If the cube has made a complete revolution,
use the initial position of the cube to avoid accumulation of rounding
errors. *)
PROCEDURE Display (cube: T);
(* Draw the current cube. This is the only routine that actually does
the transformation of the cube. *)
END Cube.