GOPrivate; 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
goto all descendants of
go) that depend on
go.adjust(time) reevaluates all property values attached to
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.