|
WoW Model Viewer
Your premiere tool for viewing, equipping and animating World of Warcraft models.
|
Core WoW .m2 model: geometry, animation, textures, and character data. More...
#include <WoWModel.h>
Public Types | |
| typedef std::vector< glm::vec4 > | particleColorSet |
| typedef int | GeosetNum |
Public Types inherited from Container< WoWItem > | |
| typedef std::unordered_set< WoWItem * >::iterator | iterator |
Public Member Functions | |
| uint | nbLights () const |
| WoWModel (GameFile *file, bool forceAnim=false) | |
| ~WoWModel () | |
| void | reset () |
| void | update (int dt) |
| void | drawBones () |
| void | drawBoundingVolume () |
| void | drawParticles () |
| void | draw () |
| void | updateEmitters (float dt) |
| void | setLOD (int index) |
| void | setupAtt (int id) |
| void | setupAtt2 (int id) |
| WoWItem * | getItem (CharSlots slot) |
| int | getItemId (CharSlots slot) |
| bool | isWearingARobe () |
| void | updateTextureList (GameFile *tex, int special) |
| void | displayHeader (ModelHeader &a_header) |
| bool | canSetTextureFromFile (int texnum) |
| std::map< int, std::wstring > | getAnimsMap () |
| void | save (pugi::xml_node &parentNode) |
| void | load (const std::string &filepath) |
| void | showGeoset (uint geosetindex, bool value) |
| void | hideAllGeosets () |
| bool | isGeosetDisplayed (uint geosetindex) |
| void | setGeosetGroupDisplay (CharGeosets group, int val) |
| void | setCreatureGeosetData (std::set< GeosetNum > cgd) |
| WoWModel * | mergeModel (std::string name, int type=1, bool noRefresh=false) |
| WoWModel * | mergeModel (uint fileID, int type=1, bool noRefresh=false) |
| WoWModel * | mergeModel (WoWModel *model, int type=1, bool noRefresh=false) |
| void | unmergeModel (std::string name) |
| void | unmergeModel (uint fileID) |
| void | unmergeModel (WoWModel *model) |
| WoWModel * | getMergedModel (uint fileID) |
| void | refresh () |
| std::string | getNameForTex (uint16 tex) |
| GLuint | getGLTexture (uint16 tex) const |
| void | dumpTextureStatus () |
Public Member Functions inherited from ManagedItem | |
| ManagedItem (std::string n) | |
| virtual | ~ManagedItem () |
| void | addref () |
| bool | delref () |
| void | setItemName (std::string name) |
| const std::string & | itemName () const |
| int | refCount () |
Public Member Functions inherited from Displayable | |
| virtual | ~Displayable () |
Public Member Functions inherited from Model | |
| Model ()=default | |
| virtual | ~Model ()=0 |
Public Member Functions inherited from Container< WoWItem > | |
| Container () | |
| virtual | ~Container () |
| virtual bool | addChild (WoWItem *child) |
| virtual bool | removeChild (WoWItem *child) |
| void | removeAllChildren () |
| virtual void | onChildAdded (WoWItem *) |
| virtual void | onChildRemoved (WoWItem *) |
| int | removeAllChildrenOfType () |
| unsigned int | nbChildren () const |
| bool | findChildComponent (Component *child, bool recursive=false) |
| Component * | getChild (unsigned int index) |
| const Component * | getChild (unsigned int index) const |
| iterator | begin () |
| iterator | end () |
Public Member Functions inherited from Component | |
| Component () | |
| virtual | ~Component () |
| virtual bool | addChild (Component *) |
| Add a child component to this node. | |
| virtual bool | removeChild (Component *) |
| Remove a child component from this node. | |
| void | setParentComponent (Component *) |
| Set the parent of this component. | |
| virtual void | onParentSet (Component *) |
| Called after the parent has been set; override for custom logic. | |
| const Component * | parent () const |
| Get the parent component (const). | |
| Component * | parent () |
| Get the parent component. | |
| template<class DataType > | |
| const DataType * | firstParentOfType () |
| Walk up the parent chain and return the first ancestor of the given type. | |
| void | ref () |
| Increment the reference counter. | |
| void | unref () |
| Decrement the reference counter; deletes this when it reaches zero. | |
| void | setName (const std::string &name) |
| std::string | name () const |
| virtual void | onNameChanged () |
| void | print (int l_depth=0) |
| virtual void | doPrint () |
| void | copy (const Component &component, bool) |
Static Public Member Functions | |
| static std::string | getCGGroupName (CharGeosets cg) |
Static Public Attributes | |
| static const size_t | ATT_MAX = 60 |
Private Member Functions | |
| void | drawModel () |
| void | initCommon () |
| bool | isAnimated () |
| void | initAnimated () |
| void | initStatic () |
| void | initRaceInfos () |
| void | animate (ssize_t anim) |
| void | calcBones (ssize_t anim, size_t time) |
| void | lightsOn (GLuint lbase) |
| void | lightsOff (GLuint lbase) |
| void | refreshMerging () |
| void | restoreRawGeosets () |
| std::vector< AFID > | readAFIDSFromFile (GameFile *f) |
| void | readAnimsFromFile (GameFile *f, std::vector< AFID > &afids, modelAnimData &data, uint32 nAnimations, uint32 ofsAnimation, uint32 nAnimationLookup, uint32 ofsAnimationLookup) |
| std::vector< TXID > | readTXIDSFromFile (GameFile *f) |
Static Private Member Functions | |
| static bool | sortPasses (ModelRenderPass *mrp1, ModelRenderPass *mrp2) |
Private Attributes | |
| GLuint | vbuf |
| GLuint | nbuf |
| GLuint | tbuf |
| size_t | vbufsize |
| GLuint | dlist |
| bool | forceAnim |
| std::vector< GLuint > | textures |
| std::vector< int > | specialTextures |
| std::vector< GLuint > | replaceTextures |
| std::vector< uint16 > | boundTris |
| std::vector< glm::vec3 > | bounds |
| std::set< WoWModel * > | mergedModels |
| std::vector< ModelVertex > | rawVertices |
| std::vector< uint32 > | rawIndices |
| std::vector< ModelRenderPass * > | rawPasses |
| std::vector< ModelGeosetHD * > | rawGeosets |
| std::vector< uint32 > | skinFileIDs |
| std::vector< uint32 > | globalSequences |
| std::vector< ParticleSystem > | particleSystems |
| std::vector< RibbonEmitter > | ribbons |
| std::vector< TextureAnim > | texAnims |
| std::vector< ModelColor > | colors |
| std::vector< ModelTransparency > | transparency |
| std::vector< ModelLight > | lights |
| std::vector< ModelEvent > | events |
| bool | animGeometry |
| bool | animBones |
Friends | |
| class | ModelRenderPass |
| std::ostream & | operator<< (std::ostream &out, const WoWModel &m) |
Core WoW .m2 model: geometry, animation, textures, and character data.
Loaded from a CASCFile, this class owns vertex buffers, bones, animations, render passes, particle emitters, character details, and equipment items.
Definition at line 49 of file WoWModel.h.
| typedef int WoWModel::GeosetNum |
Definition at line 134 of file WoWModel.h.
| typedef std::vector<glm::vec4> WoWModel::particleColorSet |
Definition at line 126 of file WoWModel.h.
| WoWModel::WoWModel | ( | GameFile * | file, |
| bool | forceAnim = false |
||
| ) |
| WoWModel::~WoWModel | ( | ) |
|
private |
Definition at line 1612 of file WoWModel.cpp.
|
private |
Definition at line 1427 of file WoWModel.cpp.
| bool WoWModel::canSetTextureFromFile | ( | int | texnum | ) |
Definition at line 3846 of file WoWModel.cpp.
| void WoWModel::displayHeader | ( | ModelHeader & | a_header | ) |
|
inlinevirtual |
Reimplemented from Displayable.
Definition at line 1818 of file WoWModel.cpp.
| void WoWModel::drawBones | ( | ) |
| void WoWModel::drawBoundingVolume | ( | ) |
|
inlineprivate |
| void WoWModel::drawParticles | ( | ) |
| void WoWModel::dumpTextureStatus | ( | ) |
| std::map< int, std::wstring > WoWModel::getAnimsMap | ( | ) |
|
static |
| GLuint WoWModel::getGLTexture | ( | uint16 | tex | ) | const |
| int WoWModel::getItemId | ( | CharSlots | slot | ) |
Definition at line 1996 of file WoWModel.cpp.
Definition at line 4041 of file WoWModel.cpp.
| std::string WoWModel::getNameForTex | ( | uint16 | tex | ) |
Definition at line 4408 of file WoWModel.cpp.
| void WoWModel::hideAllGeosets | ( | ) |
Definition at line 4452 of file WoWModel.cpp.
|
private |
Definition at line 965 of file WoWModel.cpp.
|
private |
Definition at line 411 of file WoWModel.cpp.
|
private |
Definition at line 842 of file WoWModel.cpp.
|
private |
Definition at line 825 of file WoWModel.cpp.
|
private |
Definition at line 323 of file WoWModel.cpp.
| bool WoWModel::isGeosetDisplayed | ( | uint | geosetindex | ) |
| bool WoWModel::isWearingARobe | ( | ) |
Definition at line 2006 of file WoWModel.cpp.
|
private |
Definition at line 1872 of file WoWModel.cpp.
|
private |
Definition at line 1864 of file WoWModel.cpp.
| void WoWModel::load | ( | const std::string & | filepath | ) |
| WoWModel * WoWModel::mergeModel | ( | std::string | name, |
| int | type = 1, |
||
| bool | noRefresh = false |
||
| ) |
Definition at line 3988 of file WoWModel.cpp.
|
inline |
Definition at line 119 of file WoWModel.h.
Definition at line 885 of file WoWModel.cpp.
|
private |
Definition at line 903 of file WoWModel.cpp.
Definition at line 869 of file WoWModel.cpp.
| void WoWModel::refresh | ( | ) |
Definition at line 4266 of file WoWModel.cpp.
|
private |
Definition at line 4051 of file WoWModel.cpp.
|
inlinevirtual |
Reimplemented from Displayable.
Definition at line 187 of file WoWModel.h.
|
private |
| void WoWModel::save | ( | pugi::xml_node & | parentNode | ) |
| void WoWModel::setCreatureGeosetData | ( | std::set< GeosetNum > | cgd | ) |
Definition at line 3950 of file WoWModel.cpp.
| void WoWModel::setGeosetGroupDisplay | ( | CharGeosets | group, |
| int | val | ||
| ) |
Definition at line 3929 of file WoWModel.cpp.
| void WoWModel::setLOD | ( | int | index | ) |
Definition at line 1238 of file WoWModel.cpp.
|
virtual |
Reimplemented from Displayable.
Definition at line 1911 of file WoWModel.cpp.
|
virtual |
Reimplemented from Displayable.
Definition at line 1919 of file WoWModel.cpp.
| void WoWModel::showGeoset | ( | uint | geosetindex, |
| bool | value | ||
| ) |
|
staticprivate |
| void WoWModel::unmergeModel | ( | std::string | name | ) |
Definition at line 4228 of file WoWModel.cpp.
| void WoWModel::unmergeModel | ( | uint | fileID | ) |
| void WoWModel::unmergeModel | ( | WoWModel * | model | ) |
|
virtual |
Reimplemented from Displayable.
Definition at line 2017 of file WoWModel.cpp.
| void WoWModel::updateEmitters | ( | float | dt | ) |
| void WoWModel::updateTextureList | ( | GameFile * | tex, |
| int | special | ||
| ) |
Definition at line 2024 of file WoWModel.cpp.
|
friend |
Definition at line 223 of file WoWModel.h.
|
friend |
Definition at line 4458 of file WoWModel.cpp.
| float WoWModel::alpha_ |
Definition at line 159 of file WoWModel.h.
| size_t WoWModel::anim |
Definition at line 185 of file WoWModel.h.
| bool WoWModel::animated |
Definition at line 172 of file WoWModel.h.
|
private |
Definition at line 104 of file WoWModel.h.
| bool WoWModel::animcalc |
Definition at line 184 of file WoWModel.h.
|
private |
Definition at line 104 of file WoWModel.h.
| std::vector<int16> WoWModel::animLookups |
Definition at line 179 of file WoWModel.h.
| AnimManager* WoWModel::animManager |
Definition at line 180 of file WoWModel.h.
| std::vector<ModelAnimation> WoWModel::anims |
Definition at line 178 of file WoWModel.h.
| size_t WoWModel::animtime |
Definition at line 185 of file WoWModel.h.
|
static |
Definition at line 208 of file WoWModel.h.
Definition at line 209 of file WoWModel.h.
| std::vector<ModelAttachment> WoWModel::atts |
Definition at line 207 of file WoWModel.h.
| std::vector<Bone> WoWModel::bones |
Definition at line 181 of file WoWModel.h.
|
private |
Definition at line 80 of file WoWModel.h.
|
private |
Definition at line 79 of file WoWModel.h.
| bool WoWModel::bSheathe |
Definition at line 220 of file WoWModel.h.
| std::vector<ModelCamera> WoWModel::cam |
Definition at line 144 of file WoWModel.h.
| CharDetails WoWModel::cd |
Definition at line 214 of file WoWModel.h.
| CharModelDetails WoWModel::charModelDetails |
Definition at line 213 of file WoWModel.h.
|
private |
Definition at line 99 of file WoWModel.h.
| std::set<GeosetNum> WoWModel::creatureGeosetData |
Definition at line 218 of file WoWModel.h.
| uint WoWModel::creatureGeosetDataID |
Definition at line 219 of file WoWModel.h.
| size_t WoWModel::currentAnim |
Definition at line 183 of file WoWModel.h.
|
private |
Definition at line 56 of file WoWModel.h.
|
private |
Definition at line 102 of file WoWModel.h.
|
private |
Definition at line 57 of file WoWModel.h.
| GameFile* WoWModel::gamefile |
Definition at line 112 of file WoWModel.h.
| std::vector<ModelGeosetHD*> WoWModel::geosets |
Definition at line 149 of file WoWModel.h.
|
private |
Definition at line 95 of file WoWModel.h.
| bool WoWModel::hasCamera |
Definition at line 168 of file WoWModel.h.
| bool WoWModel::hasParticles |
Definition at line 169 of file WoWModel.h.
| ModelHeader WoWModel::header |
Definition at line 217 of file WoWModel.h.
| bool WoWModel::ind |
Definition at line 167 of file WoWModel.h.
| std::vector<uint32> WoWModel::indices |
Definition at line 139 of file WoWModel.h.
| RaceInfos WoWModel::infos |
Definition at line 215 of file WoWModel.h.
| bool WoWModel::isMount |
Definition at line 171 of file WoWModel.h.
| bool WoWModel::isWMO |
Definition at line 170 of file WoWModel.h.
Definition at line 210 of file WoWModel.h.
|
private |
Definition at line 101 of file WoWModel.h.
| std::string WoWModel::lodname |
Definition at line 146 of file WoWModel.h.
|
private |
Definition at line 83 of file WoWModel.h.
| int WoWModel::mergedModelType |
Definition at line 117 of file WoWModel.h.
| bool WoWModel::mirrored_ |
Definition at line 221 of file WoWModel.h.
| std::string WoWModel::modelname |
Definition at line 145 of file WoWModel.h.
| ModelType WoWModel::modelType |
Definition at line 212 of file WoWModel.h.
|
private |
Definition at line 52 of file WoWModel.h.
| glm::vec3* WoWModel::normals |
Definition at line 136 of file WoWModel.h.
| bool WoWModel::ok |
Definition at line 166 of file WoWModel.h.
| std::vector<ModelVertex> WoWModel::origVertices |
Definition at line 132 of file WoWModel.h.
| std::vector<particleColorSet> WoWModel::particleColorReplacements |
Definition at line 130 of file WoWModel.h.
|
private |
Definition at line 96 of file WoWModel.h.
| std::vector<ModelRenderPass*> WoWModel::passes |
Definition at line 148 of file WoWModel.h.
| glm::vec3 WoWModel::pos_ |
Definition at line 163 of file WoWModel.h.
| float WoWModel::rad |
Definition at line 175 of file WoWModel.h.
|
private |
Definition at line 89 of file WoWModel.h.
|
private |
Definition at line 87 of file WoWModel.h.
|
private |
Definition at line 88 of file WoWModel.h.
|
private |
Definition at line 86 of file WoWModel.h.
| std::vector<uint> WoWModel::replacableParticleColorIDs |
Definition at line 114 of file WoWModel.h.
| bool WoWModel::replaceParticleColors |
Definition at line 115 of file WoWModel.h.
|
private |
Definition at line 64 of file WoWModel.h.
|
private |
Definition at line 97 of file WoWModel.h.
| glm::vec3 WoWModel::rot_ |
Definition at line 164 of file WoWModel.h.
| float WoWModel::scale_ |
Definition at line 160 of file WoWModel.h.
| bool WoWModel::showBones |
Definition at line 153 of file WoWModel.h.
| bool WoWModel::showBounds |
Definition at line 154 of file WoWModel.h.
| bool WoWModel::showModel |
Definition at line 157 of file WoWModel.h.
| bool WoWModel::showParticles |
Definition at line 156 of file WoWModel.h.
| bool WoWModel::showTexture |
Definition at line 158 of file WoWModel.h.
| bool WoWModel::showWireframe |
Definition at line 155 of file WoWModel.h.
|
private |
Definition at line 90 of file WoWModel.h.
|
private |
Definition at line 63 of file WoWModel.h.
|
private |
Definition at line 52 of file WoWModel.h.
| TabardDetails WoWModel::td |
Definition at line 216 of file WoWModel.h.
| CharTexture WoWModel::tex |
Definition at line 194 of file WoWModel.h.
|
private |
Definition at line 98 of file WoWModel.h.
| glm::vec2* WoWModel::texCoords |
Definition at line 137 of file WoWModel.h.
|
private |
Definition at line 62 of file WoWModel.h.
| float WoWModel::trans |
Definition at line 176 of file WoWModel.h.
|
private |
Definition at line 100 of file WoWModel.h.
|
private |
Definition at line 52 of file WoWModel.h.
|
private |
Definition at line 53 of file WoWModel.h.
| glm::vec3* WoWModel::vertices |
Definition at line 138 of file WoWModel.h.