Commit Graph

6 Commits

Author SHA1 Message Date
jjspace 09a719b8fb
run prettier v3 2024-09-20 11:24:24 -04:00
Gabby Getz 0d5ff05df9 Update examples and CHANGES.md 2023-03-17 15:27:17 -04:00
Gabby Getz 3f6608f66e Use top level await in Sandcastle 2023-02-03 11:38:55 -05:00
Sanjeet Suhag a4a3b783d8 Sets the Sandcastle startup function as a property to the window 2022-05-23 15:14:50 -04:00
markw65 f8a859c744 More code review fixes 2022-05-10 14:10:38 -07:00
markw65 cd8bfda192 Add support for explicit control over model animations
Cesium currently only supports time based animation. This can
be inconvenient if the phase of the animation is related to
something other than time (eg distance along a path of an
object moving at a variable speed).

This came up before in #7361, but the author was persuaded that
it was better to use nodeTransformations to explicitly control
the model. That was (just) doable with that example, because
there were just 3 pairs of wheels, all of which needed the
exact same, relatively trivial, transformations. The proposed
solution was also cumbersome, relying on modifying `multiplier`
on the fly, with the downside that modifying multiplier also
reset the phase of the animation.

For more complex models, with less uniform animations, this
approach isn't really doable - especially if you want the same
code to work for multiple models.

This adds an animationTime function to ModelAnimation. If set,
it's used by ModelAnimationCollection.update to compute the
localAnimationTime, rather than using the current clock time.

I also added an animateWhilePaused property to
ModelAnimationCollection. When false (the default), we continue
to do the short circuit exit from ModelAnimationCollection.update
when the scene time hasn't changed. When true, a suitable
animationTime function can continue to animate the model, even when
scene time is paused.

The new sandcastle example is just a clone of Time Dynamic Wheels,
rewritten to use Cesium_Man.glb, and the new functionality.
2022-05-10 13:55:31 -07:00