Copyright (C) 1994, Digital Equipment Corp.
Digital Internal Use Only
Created on Mon Feb 14 16:01:13 PST 1994 by najork
MODULE CameraGO EXPORTS CameraGO, CameraGOPrivate;
IMPORT GO, GOPrivate, Point3, PointProp, PointPropPrivate, RealProp,
RealPropPrivate;
REVEAL
T = Private BRANDED OBJECT
OVERRIDES
init := Init;
needsTransparency := NeedsTransparency;
END;
PROCEDURE Init (self : T) : T =
BEGIN
EVAL GO.T.init (self);
self.flag := FALSE;
RETURN self;
END Init;
PROCEDURE NeedsTransparency (<* UNUSED *> self : T;
<* UNUSED *> t : REAL) : BOOLEAN =
BEGIN
RETURN FALSE;
END NeedsTransparency;
***************************************************************************
Convenience Procedures
***************************************************************************
PROCEDURE SetFrom (o : GO.T; p: Point3.T) =
BEGIN
o.setProp(From.bind(PointProp.NewConst(p)));
END SetFrom;
PROCEDURE SetTo (o : GO.T; p: Point3.T) =
BEGIN
o.setProp(To.bind(PointProp.NewConst(p)));
END SetTo;
PROCEDURE SetUp (o : GO.T; p: Point3.T) =
BEGIN
o.setProp(Up.bind(PointProp.NewConst(p)));
END SetUp;
PROCEDURE SetAspect (o : GO.T; r: REAL) =
BEGIN
o.setProp(Aspect.bind(RealProp.NewConst(r)));
END SetAspect;
***************************************************************************
Module body
***************************************************************************
BEGIN
From := NEW (PointProp.Name).init (Point3.T {0.0, 0.0, 100.0});
To := NEW (PointProp.Name).init (Point3.Origin);
Up := NEW (PointProp.Name).init (Point3.T {0.0, 1.0, 0.0});
Aspect := NEW (RealProp.Name).init (1.0);
END CameraGO.