<* PRAGMA LL *> INTERFACEClients should not instantiate anVertexSizeAnim ; IMPORT GraphVBT, R2; TYPE Animation = OBJECT METHODS size(t: REAL): R2.T END;
Animation
directly; instead, they
should instantiate a subtype that overrides the size
method.
The size
method returns the width and height of a vertex as a function of
the time parameter t
.
PROCEDURE Register(v: GraphVBT.Vertex; anim: Animation); <* LL = v.graph.mu *>
Register the animationanim
on vertexv
. On the next call tov.graph.animate(t0, t1)
, a series of callsv.setSize(anim.size(t))
is made as an internal time parametert
varies betweent0
andt1
.
PROCEDURE Linear(v: GraphVBT.Vertex; newW, newH: REAL); <* LL = 0 *>
Register an animation that causes the size of vertexv
to change linearly from its current size to the new size(newW, newH)
on the next call tov.graph.animate(0.0, 1.0)
.
END VertexSizeAnim.