#pragma once #include "parser/Adt/AdtChunkLocation.hpp" #include "parser/Wmo/Wmo.hpp" #include "utility/BoundingBox.hpp" #include "utility/Matrix.hpp" #include "utility/Vector.hpp" #include #include #include namespace parser { class WmoInstance { public: const math::Matrix TransformMatrix; math::BoundingBox Bounds; const Wmo* const Model; std::set AdtChunks; const unsigned int DoodadSet; const unsigned int NameSet; WmoInstance(const Wmo* wmo, unsigned int doodadSet, unsigned int nameSet, const math::BoundingBox& bounds, const math::Matrix& transformMatrix); math::Vertex TransformVertex(const math::Vertex& vertex) const; void BuildTriangles(std::vector& vertices, std::vector& indices) const; void BuildLiquidTriangles(std::vector& vertices, std::vector& indices) const; void BuildDoodadTriangles(std::vector& vertices, std::vector& indices) const; // note: this assembles the triangles from all doodads in this // wmo into one collection }; } // namespace parser