Skip to content

Commit

Permalink
Docs: add diagram for the animation system
Browse files Browse the repository at this point in the history
  • Loading branch information
paroj committed Sep 15, 2024
1 parent 7f0f99e commit c1dc67f
Show file tree
Hide file tree
Showing 3 changed files with 27 additions and 1 deletion.
1 change: 1 addition & 0 deletions Docs/src/images/AnimationSystem.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 5 additions & 1 deletion Docs/src/manual.md
Original file line number Diff line number Diff line change
Expand Up @@ -762,7 +762,7 @@ Despite their power, additive lighting techniques have an additional limitation;

@page Animation Animation

OGRE supports a pretty flexible animation system that allows you to script animation for several different purposes:
OGRE supports a pretty flexible keyframe based animation system that allows you to script animation for several different purposes:

<dl compact="compact">
<dt>@ref SceneNode-Animation</dt> <dd>
Expand All @@ -778,6 +778,10 @@ Using OGRE’s extensible class structure to animate any value.

@tableofcontents

The diagram below shows the relationship between the different animation classes in OGRE:

![](AnimationSystem.svg)

# Animation State {#Animation-State}

When an entity with any kind of animation is created, an 'animation state' object is assigned to each animation. This allows you to control both the weight and the time position (where applicable) for applying the animation to that specific entity. You can reuse the same animation definitions across multiple entities, and OGRE handles the internal management of this reuse.
Expand Down
21 changes: 21 additions & 0 deletions Docs/src/umldocs/AnimationSystem.puml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
@startuml
'left to right direction
hide members
hide methods

SceneManager --|> AnimationContainer
Skeleton --|> AnimationContainer
Mesh --|> AnimationContainer

AnimationContainer --> Animation : createAnimation()

Animation --> AnimationTrack : create{TYPE}Track()
AnimationTrack -right-> KeyFrame : createKeyFrame()


AnimationState .right.> Animation: apply(timePos)

Light --|> AnimableObject
AnimableObject --> AnimableValue: createAnimableValue()

@enduml

0 comments on commit c1dc67f

Please sign in to comment.