WoW Model Viewer
Your premiere tool for viewing, equipping and animating World of Warcraft models.
Loading...
Searching...
No Matches
AnimManager.h
Go to the documentation of this file.
1/*
2 * AnimManager.h
3 *
4 * Created on: 19 oct. 2013
5 *
6 */
7
8#pragma once
9
10#include "modelheaders.h" // ModelAnimation
11
14{
15 short Loops;
16 size_t AnimID;
17};
18
19class WoWModel;
20
24{
26
27 bool Paused;
28
30
31 size_t Frame; // Frame number we're up to in the current animation
33
37
38 ssize_t AnimIDMouth;
39 size_t FrameMouth;
40
41 short Count; // Total index of animations
42 short PlayIndex; // Current animation index we're upto
43 short CurLoop; // Current loop that we're upto.
44
45 float Speed; // The speed of which to multiply the time given for Tick();
47
48public:
51 void SetCount(int count);
52 void AddAnim(unsigned int id, short loop); // Adds an animation to our array.
53 void SetAnim(short index, unsigned int id, short loop);
54 // sets one of the 4 existing animations and changes it (not really used currently)
55
56 void SetSecondary(int id)
57 {
58 AnimIDSecondary = id;
60 }
61
63 ssize_t GetSecondaryID() { return AnimIDSecondary; }
64 size_t GetSecondaryFrame() { return FrameSecondary; }
65 void SetSecondaryCount(int count) { SecondaryCount = count; }
66 size_t GetSecondaryCount() { return SecondaryCount; }
67
68 // For independent mouth movement.
69 void SetMouth(int id)
70 {
71 AnimIDMouth = id;
72 FrameMouth = 0;
73 }
74
75 void ClearMouth() { AnimIDMouth = -1; }
76 ssize_t GetMouthID() { return AnimIDMouth; }
77 size_t GetMouthFrame() { return FrameMouth; }
78
79 void SetMouthSpeed(float speed)
80 {
81 mouthSpeed = speed;
82 }
83
84 void Play(); // Players the animation, and reconfigures if nothing currently inputed
85 void Stop(); // Stops and resets the animation
86 void Pause(bool force = false);
87 // Toggles 'Pause' of the animation, use force to pause the animation no matter what.
88
89 void Next(); // Plays the 'next' animation or loop
90 void Prev(); // Plays the 'previous' animation or loop
91
92 int Tick(int time);
93
94 size_t GetFrameCount();
95 size_t GetFrame() { return Frame; }
96 void SetFrame(size_t f);
97 void SetSpeed(float speed) { Speed = speed; }
98 float GetSpeed() { return Speed; }
99
100 void PrevFrame();
101 void NextFrame();
102
103 void Clear();
104 void Reset() { Count = 0; }
105
106 bool IsPaused() { return Paused; }
107
108 size_t GetAnim() { return animList[PlayIndex].AnimID; }
109
110 void ForceModelUpdate(float dt);
111};
Manages animation playback for a WoWModel, supporting up to 4 queued animations, a secondary (upper-b...
Definition AnimManager.h:24
size_t GetFrameCount()
void SetSecondary(int id)
Definition AnimManager.h:56
ssize_t GetSecondaryID()
Definition AnimManager.h:63
void SetAnim(short index, unsigned int id, short loop)
size_t TotalFrames
Definition AnimManager.h:32
void Pause(bool force=false)
void SetSecondaryCount(int count)
Definition AnimManager.h:65
size_t GetSecondaryFrame()
Definition AnimManager.h:64
size_t SecondaryCount
Definition AnimManager.h:36
size_t FrameSecondary
Definition AnimManager.h:35
AnimInfo animList[4]
Definition AnimManager.h:29
ssize_t AnimIDMouth
Definition AnimManager.h:38
bool IsPaused()
ssize_t GetMouthID()
Definition AnimManager.h:76
size_t GetSecondaryCount()
Definition AnimManager.h:66
WoWModel & model
Definition AnimManager.h:25
size_t GetAnim()
void SetFrame(size_t f)
int Tick(int time)
short CurLoop
Definition AnimManager.h:43
void SetMouthSpeed(float speed)
Definition AnimManager.h:79
void ClearSecondary()
Definition AnimManager.h:62
void AddAnim(unsigned int id, short loop)
float mouthSpeed
Definition AnimManager.h:46
void SetMouth(int id)
Definition AnimManager.h:69
ssize_t AnimIDSecondary
Definition AnimManager.h:34
void SetCount(int count)
void SetSpeed(float speed)
Definition AnimManager.h:97
float GetSpeed()
Definition AnimManager.h:98
size_t FrameMouth
Definition AnimManager.h:39
size_t GetFrame()
Definition AnimManager.h:95
void ForceModelUpdate(float dt)
short PlayIndex
Definition AnimManager.h:42
size_t Frame
Definition AnimManager.h:31
void ClearMouth()
Definition AnimManager.h:75
size_t GetMouthFrame()
Definition AnimManager.h:77
Core WoW .m2 model: geometry, animation, textures, and character data.
Definition WoWModel.h:50
Stores loop count and animation ID for a single animation slot.
Definition AnimManager.h:14
short Loops
Number of loops to play.
Definition AnimManager.h:15
size_t AnimID
Animation identifier.
Definition AnimManager.h:16