Hi Russell,
> I've noticed some odd behaviour with animation, where it can seemingly
> miss some time steps.
>
> Attached is a sample program that demonstrates this. It creates a
> couple of FlatFields with FunctionTypes (Time->something), adds them to
> a DisplayImplJ3D, then turns on the animation.
>
> Looking at the times in the data, there should be 16 time steps, but
> VisAD only steps through 14 of them. Two are missing, the times at
> "2003-07-21 18:25 +0000" and "2003-07-21 23:25 +0000".
>
> If the program is modified so that it has only one FlatField with all
> the times merged and in order, it will step through all the times.
>
> I'm guessing that this may be to do with the way visad decides which
> elements are close enough to be displayed at the same time step.
>
> So, is this the expected behaviour? How can I get animation over two
> FlatFields with times similar to this using all the discrete time steps?
Thanks for the test program. Yes, this is the expected
behavior. When there are multiple Sets in the data for
a RealType mapped to Animation, those Sets are merged.
The merger constructs the Set with the smallest number
of elements which covers all the elements of each Set
being merged. By "covers" I mean that each element of
each Set will be displayed at least once during the
Animation. In your case, the merged Set doesn't include
"2003-07-21 18:25 +0000" because that value is covered
by "2003-07-21 18:00 +0000", and doesn't include
"2003-07-21 23:25 +0000" because that value is covered
by "2003-07-22 00:00 +0000". If you don't like the
default merged Set, you can override it with the
AnimationControl.setSet() method.
Cheers,
Bill