144 std::vector<ModelCamera>
cam;
207 std::vector<ModelAttachment>
atts;
235 void save(pugi::xml_node& parentNode);
236 void load(
const std::string& filepath);
@ TEXTURE_MAX
Maximum number of texture slots per model.
Manages animation playback for a WoWModel, supporting up to 4 queued animations, a secondary (upper-b...
GameFile implementation that reads from a CASC storage archive.
Manages character customisation options (skin, face, hair, etc.).
Composites multiple texture layers into a single character skin texture.
Generic typed container that manages a set of child Component pointers.
Interface for objects that can be drawn and animated in the scene.
Abstract base class representing a file within the game data archive.
Reference-counted item stored in a Manager.
Represents a single render pass (material + geometry) for an M2 model geoset.
Abstract base interface for all 3D model types.
Stores per-race/sex metadata loaded from ChrRaces / ChrModel database tables.
Manages custom tabard design details (icon, border, colours) and provides texture lookup for renderin...
Represents an equipped item on a character model.
Core WoW .m2 model: geometry, animation, textures, and character data.
std::vector< ModelAnimation > anims
std::vector< uint16 > boundTris
GLuint getGLTexture(uint16 tex) const
std::vector< GLuint > replaceTextures
void calcBones(ssize_t anim, size_t time)
uint creatureGeosetDataID
void animate(ssize_t anim)
WoWModel * mergeModel(std::string name, int type=1, bool noRefresh=false)
WoWItem * getItem(CharSlots slot)
std::map< int, std::wstring > getAnimsMap()
std::vector< TextureAnim > texAnims
void displayHeader(ModelHeader &a_header)
void readAnimsFromFile(GameFile *f, std::vector< AFID > &afids, modelAnimData &data, uint32 nAnimations, uint32 ofsAnimation, uint32 nAnimationLookup, uint32 ofsAnimationLookup)
std::vector< ModelColor > colors
std::vector< uint32 > rawIndices
void save(pugi::xml_node &parentNode)
std::vector< glm::vec3 > bounds
std::vector< ModelRenderPass * > rawPasses
std::vector< int > specialTextures
std::vector< ModelEvent > events
int16 keyBoneLookup[BONE_MAX]
void lightsOn(GLuint lbase)
static const size_t ATT_MAX
std::vector< glm::vec4 > particleColorSet
int getItemId(CharSlots slot)
std::vector< uint32 > indices
bool replaceParticleColors
std::vector< AFID > readAFIDSFromFile(GameFile *f)
bool canSetTextureFromFile(int texnum)
void updateTextureList(GameFile *tex, int special)
void load(const std::string &filepath)
std::vector< Bone > bones
std::vector< uint32 > skinFileIDs
std::vector< ModelVertex > rawVertices
std::vector< uint > replacableParticleColorIDs
std::set< WoWModel * > mergedModels
std::vector< ModelRenderPass * > passes
std::vector< uint32 > globalSequences
std::string getNameForTex(uint16 tex)
static bool sortPasses(ModelRenderPass *mrp1, ModelRenderPass *mrp2)
std::vector< RibbonEmitter > ribbons
std::vector< TXID > readTXIDSFromFile(GameFile *f)
void setCreatureGeosetData(std::set< GeosetNum > cgd)
CharModelDetails charModelDetails
std::vector< GLuint > textures
bool isGeosetDisplayed(uint geosetindex)
void updateEmitters(float dt)
std::vector< int16 > animLookups
void unmergeModel(std::string name)
std::vector< ModelGeosetHD * > rawGeosets
static std::string getCGGroupName(CharGeosets cg)
void drawBoundingVolume()
friend std::ostream & operator<<(std::ostream &out, const WoWModel &m)
std::vector< ModelLight > lights
std::vector< particleColorSet > particleColorReplacements
WoWModel * getMergedModel(uint fileID)
std::vector< ParticleSystem > particleSystems
void lightsOff(GLuint lbase)
std::vector< ModelAttachment > atts
std::vector< ModelGeosetHD * > geosets
AnimManager * animManager
std::set< GeosetNum > creatureGeosetData
std::vector< ModelTransparency > transparency
void setGeosetGroupDisplay(CharGeosets group, int val)
std::vector< ModelVertex > origVertices
void showGeoset(uint geosetindex, bool value)
std::vector< ModelCamera > cam
Holds per-model animation metadata: index-to-id mapping, external anim files, and global sequences.
Tracks character-specific model state (hand closure, character flag).
CharGeosets
Character geoset group identifiers (mesh IDs for body/armour regions).
ModelType
Classification of model types.
CharSlots
Character equipment slot indices.