Copyright (C) 1994, Digital Equipment Corp.
Created by Marc Najork
INTERFACEGOPrivate ; IMPORT GraphicsBase, KeyCBStack, MouseCBStack, PositionCBStack, Prop, PropList; FROM GO IMPORT T, Public; REVEAL T <: Private; TYPE Private = Public BRANDED OBJECT props : PropList.T; trans : REAL; (* FIRST(REAL) means: no transmission coeff in props *) name : TEXT; mouseCBstack : MouseCBStack.T; positionCBstack : PositionCBStack.T; keyCBstack : KeyCBStack.T; damaged : BOOLEAN; dl : INTEGER := 0; METHODS draw (base : GraphicsBase.T); needsTransparency (t : REAL) : BOOLEAN; damageIfDependent (pn : Prop.Name); adjust (time : LONGREAL); undamage(); END;
go.damageIfDependent(pn) leaves a damage trail from go to all
descendants of go (including go) that depend on pn.
go.adjust(time) reevaluates all property values attached to go and
its descendants, based on the given time. It also might add damages to
the scene, either to go or to some of its children. Damaging a node
causes damage to all its ancestors as well.
go.undamage erases the damage-flags of go and its descendents.
END GOPrivate.