WoW Model Viewer
Your premiere tool for viewing, equipping and animating World of Warcraft models.
Loading...
Searching...
No Matches
AnimationPanel.h
Go to the documentation of this file.
1#pragma once
2
3#include <functional>
4#include <set>
5#include <string>
6#include <vector>
7
8class GameFile;
9class WoWModel;
10
11namespace AnimationPanel
12{
13
16{
17 std::string label;
18 int animIndex = 0;
19};
20
24{
25 std::string label;
26 GameFile* tex[3] = {nullptr, nullptr, nullptr};
27 int base = 0;
28 size_t count = 0;
29 std::set<int> creatureGeosetData;
30};
31
34{
35 // Model accessor
36 std::function<WoWModel*()> getLoadedModel;
37
38 // Animation state (pointers into AppState)
39 std::vector<AnimEntry>* animEntries = nullptr;
40 int* selectedAnimCombo = nullptr;
41 float* animSpeed = nullptr;
42 int* loopCount = nullptr;
43 bool* lockAnims = nullptr;
44 int* selectedSecondaryAnim = nullptr;
45 int* selectedMouthAnim = nullptr;
46 float* mouthSpeed = nullptr;
47
48 // Skin state (pointers into AppState)
49 std::vector<SkinEntry>* skinEntries = nullptr;
50 int* selectedSkin = nullptr;
51 int blpSkin[3] = {-1, -1, -1}; // copied in, copied out
52 std::function<void(WoWModel*, int)> applySkin;
53};
54
56void draw(DrawContext& ctx);
57
58} // namespace AnimationPanel
Abstract base class representing a file within the game data archive.
Definition GameFile.h:12
Core WoW .m2 model: geometry, animation, textures, and character data.
Definition WoWModel.h:50
void draw(DrawContext &ctx)
Draw the Animation panel contents (call between ImGui::Begin / End).
Reusable animation entry — matches CharacterViewerPanel::AnimEntry.
Per-frame context passed by the caller so the panel never touches globals.
std::function< void(WoWModel *, int)> applySkin
std::vector< SkinEntry > * skinEntries
std::vector< AnimEntry > * animEntries
std::function< WoWModel *()> getLoadedModel
std::set< int > creatureGeosetData