From c1dc67f7e39eb2cec8233ca6a85f42d2c2f6fca3 Mon Sep 17 00:00:00 2001 From: Pavel Rojtberg Date: Sun, 15 Sep 2024 21:31:27 +0200 Subject: [PATCH] Docs: add diagram for the animation system --- Docs/src/images/AnimationSystem.svg | 1 + Docs/src/manual.md | 6 +++++- Docs/src/umldocs/AnimationSystem.puml | 21 +++++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 Docs/src/images/AnimationSystem.svg create mode 100644 Docs/src/umldocs/AnimationSystem.puml diff --git a/Docs/src/images/AnimationSystem.svg b/Docs/src/images/AnimationSystem.svg new file mode 100644 index 00000000000..fd20ae2f848 --- /dev/null +++ b/Docs/src/images/AnimationSystem.svg @@ -0,0 +1 @@ +SceneManagerAnimationContainerSkeletonMeshAnimationAnimationTrackKeyFrameAnimationStateLightAnimableObjectAnimableValuecreateAnimation()create{TYPE}Track()createKeyFrame()apply(timePos)createAnimableValue() \ No newline at end of file diff --git a/Docs/src/manual.md b/Docs/src/manual.md index 653476c274e..b7aa9eea229 100644 --- a/Docs/src/manual.md +++ b/Docs/src/manual.md @@ -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:
@ref SceneNode-Animation
@@ -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. diff --git a/Docs/src/umldocs/AnimationSystem.puml b/Docs/src/umldocs/AnimationSystem.puml new file mode 100644 index 00000000000..d9b4e402367 --- /dev/null +++ b/Docs/src/umldocs/AnimationSystem.puml @@ -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 \ No newline at end of file