![]() |
TrinityCore
|
#include <TerrainBuilder.h>
Public Member Functions | |
| TerrainBuilder (boost::filesystem::path const &inputDirectory, bool skipLiquid) | |
| void | loadMap (uint32 mapID, uint32 tileX, uint32 tileY, MeshData &meshData, VMAP::VMapManager *vmapManager) |
| bool | loadVMap (uint32 mapID, uint32 tileX, uint32 tileY, MeshData &meshData, VMAP::VMapManager *vmapManager) |
| void | loadVMapModel (VMAP::WorldModel const *worldModel, G3D::Vector3 const &position, G3D::Matrix3 const &rotation, float scale, MeshData &meshData, VMAP::VMapManager *vmapManager) |
| void | loadOffMeshConnections (uint32 mapID, uint32 tileX, uint32 tileY, MeshData &meshData, std::vector< OffMeshData > const &offMeshConnections) |
| bool | usesLiquids () const |
Static Public Member Functions | |
| static void | transformVertices (std::vector< G3D::Vector3 > const &source, std::vector< float > &dest, float scale, G3D::Matrix3 const &rotation, G3D::Vector3 const &position) |
| static void | copyIndices (std::vector< VMAP::MeshTriangle > const &source, std::vector< int > &dest, int offset, bool flip) |
| static void | copyIndices (std::vector< int > const &source, std::vector< int > &dest, int offset) |
| static void | cleanVertices (std::vector< float > &verts, std::vector< int > &tris) |
Private Member Functions | |
| bool | loadMap (uint32 mapID, uint32 tileX, uint32 tileY, MeshData &meshData, VMAP::VMapManager *vmapManager, Spot portion) |
| Loads a portion of a map's terrain. | |
Static Private Member Functions | |
| static void | getLoopVars (Spot portion, int &loopStart, int &loopEnd, int &loopInc) |
| Sets loop variables for selecting only certain parts of a map's terrain. | |
| static void | getHeightCoord (int index, Grid grid, float xOffset, float yOffset, float *coord, float *v) |
| Get the vector coordinate for a specific position. | |
| static void | getHeightTriangle (int square, Spot triangle, int *indices, int offset, bool liquid=false) |
| Get the triangle's vector indices for a specific position. | |
| static bool | isHole (int square, uint8 const (&holes)[16][16][8]) |
| Determines if the specific position's triangles should be rendered. | |
| static void | getLiquidCoord (int index, int index2, float xOffset, float yOffset, float *coord, float *v) |
| Get the liquid vector coordinate for a specific position. | |
| static map_liquidHeaderTypeFlags | getLiquidType (int square, map_liquidHeaderTypeFlags const (&liquid_type)[16][16]) |
| Get the liquid type for a specific position. | |
Private Attributes | |
| boost::filesystem::path | m_inputDirectory |
| bool | m_skipLiquid |
| Controls whether liquids are loaded. | |
Definition at line 82 of file TerrainBuilder.h.
|
explicit |
Definition at line 34 of file TerrainBuilder.cpp.
|
static |
Definition at line 752 of file TerrainBuilder.cpp.
Referenced by MMAP::MapBuilder::buildMeshFromFile(), and MMAP::TileBuilder::buildTile().
|
static |
Definition at line 744 of file TerrainBuilder.cpp.
|
static |
Definition at line 721 of file TerrainBuilder.cpp.
Referenced by MMAP::IntermediateValues::generateObjFile(), and loadVMapModel().
|
inlinestaticprivate |
Get the vector coordinate for a specific position.
Definition at line 469 of file TerrainBuilder.cpp.
References MMAP::GRID_PART_SIZE, MMAP::GRID_V8, MMAP::GRID_V9, MMAP::V8_SIZE, and MMAP::V9_SIZE.
Referenced by loadMap().
|
inlinestaticprivate |
Get the triangle's vector indices for a specific position.
Definition at line 489 of file TerrainBuilder.cpp.
References MMAP::BOTTOM, MMAP::LEFT, MMAP::RIGHT, MMAP::TOP, MMAP::V8_SIZE, MMAP::V9_SIZE, and MMAP::V9_SIZE_SQ.
Referenced by loadMap().
|
inlinestaticprivate |
Get the liquid vector coordinate for a specific position.
Definition at line 536 of file TerrainBuilder.cpp.
References MMAP::GRID_PART_SIZE, and MMAP::V9_SIZE.
Referenced by loadMap().
|
inlinestaticprivate |
Get the liquid type for a specific position.
Definition at line 559 of file TerrainBuilder.cpp.
Referenced by loadMap().
|
staticprivate |
Sets loop variables for selecting only certain parts of a map's terrain.
Definition at line 41 of file TerrainBuilder.cpp.
References MMAP::BOTTOM, MMAP::ENTIRE, MMAP::LEFT, MMAP::RIGHT, MMAP::TOP, MMAP::V8_SIZE, and MMAP::V8_SIZE_SQ.
Referenced by loadMap().
|
inlinestaticprivate |
Determines if the specific position's triangles should be rendered.
Definition at line 546 of file TerrainBuilder.cpp.
Referenced by loadMap().
| void MMAP::TerrainBuilder::loadMap | ( | uint32 | mapID, |
| uint32 | tileX, | ||
| uint32 | tileY, | ||
| MeshData & | meshData, | ||
| VMAP::VMapManager * | vmapManager | ||
| ) |
Definition at line 74 of file TerrainBuilder.cpp.
References MMAP::BOTTOM, MMAP::ENTIRE, MMAP::LEFT, loadMap(), MMAP::RIGHT, and MMAP::TOP.
Referenced by MMAP::TileBuilder::buildTile(), and loadMap().
|
private |
Loads a portion of a map's terrain.
Definition at line 86 of file TerrainBuilder.cpp.
References MMAP::BOTTOM, DarkWater, map_heightHeader::flags, map_liquidHeader::flags, getHeightCoord(), getHeightTriangle(), getLiquidCoord(), getLiquidType(), getLoopVars(), VMAP::VMapManager::getParentMapId(), MMAP::GRID_PART_SIZE, MMAP::GRID_SIZE, MMAP::GRID_V8, MMAP::GRID_V9, map_heightHeader::gridHeight, map_heightHeader::gridMaxHeight, EnumFlag< T >::HasFlag(), map_liquidHeader::height, HeightAsInt16, HeightAsInt8, map_fileheader::heightMapOffset, map_fileheader::holesOffset, map_fileheader::holesSize, MMAP::INVALID_MAP_LIQ_HEIGHT, MMAP::INVALID_MAP_LIQ_HEIGHT_MAX, isHole(), MMAP::LEFT, map_liquidHeader::liquidFlags, map_liquidHeader::liquidLevel, map_fileheader::liquidMapOffset, MMAP::MeshData::liquidTris, map_liquidHeader::liquidType, MMAP::MeshData::liquidType, MMAP::MeshData::liquidVerts, m_inputDirectory, m_skipLiquid, Magma, MapVersionMagic, NAV_AREA_EMPTY, NAV_AREA_MAGMA_SLIME, NAV_AREA_WATER, NoHeight, NoType, NoWater, Ocean, map_liquidHeader::offsetX, map_liquidHeader::offsetY, MMAP::RIGHT, Slime, MMAP::MeshData::solidTris, MMAP::MeshData::solidVerts, Trinity::StringFormat(), TC_LOG_ERROR, MMAP::TOP, MMAP::V8_SIZE_SQ, MMAP::V9_SIZE, MMAP::V9_SIZE_SQ, map_fileheader::versionMagic, Water, and map_liquidHeader::width.
| void MMAP::TerrainBuilder::loadOffMeshConnections | ( | uint32 | mapID, |
| uint32 | tileX, | ||
| uint32 | tileY, | ||
| MeshData & | meshData, | ||
| std::vector< OffMeshData > const & | offMeshConnections | ||
| ) |
Definition at line 790 of file TerrainBuilder.cpp.
References OFFMESH_CONNECTION_FLAG_BIDIRECTIONAL, MMAP::MeshData::offMeshConnectionDirs, MMAP::MeshData::offMeshConnectionRads, MMAP::MeshData::offMeshConnections, MMAP::MeshData::offMeshConnectionsAreas, and MMAP::MeshData::offMeshConnectionsFlags.
Referenced by MMAP::TileBuilder::buildTile().
| bool MMAP::TerrainBuilder::loadVMap | ( | uint32 | mapID, |
| uint32 | tileX, | ||
| uint32 | tileY, | ||
| MeshData & | meshData, | ||
| VMAP::VMapManager * | vmapManager | ||
| ) |
Definition at line 570 of file TerrainBuilder.cpp.
References VMAP::VMapManager::getModelsOnMap(), MMAP::GRID_SIZE, VMAP::VMapManager::loadMap(), loadVMapModel(), m_inputDirectory, Trinity::make_unique_ptr_with_deleter(), VMAP::Success, and VMAP::VMapManager::unloadMap().
Referenced by MMAP::TileBuilder::buildTile().
| void MMAP::TerrainBuilder::loadVMapModel | ( | VMAP::WorldModel const * | worldModel, |
| G3D::Vector3 const & | position, | ||
| G3D::Matrix3 const & | rotation, | ||
| float | scale, | ||
| MeshData & | meshData, | ||
| VMAP::VMapManager * | vmapManager | ||
| ) |
Definition at line 606 of file TerrainBuilder.cpp.
References copyIndices(), flags, VMAP::WmoLiquid::GetFlagsStorage(), VMAP::WorldModel::getGroupModels(), VMAP::WmoLiquid::GetHeightStorage(), VMAP::VMapManager::GetLiquidFlagsPtr, VMAP::WmoLiquid::getPosInfo(), VMAP::WmoLiquid::GetType(), MMAP::GRID_PART_SIZE, EnumFlag< T >::HasFlag(), VMAP::WorldModel::IsM2(), MMAP::MeshData::liquidTris, MMAP::MeshData::liquidType, MMAP::MeshData::liquidVerts, Magma, NAV_AREA_EMPTY, NAV_AREA_MAGMA_SLIME, NAV_AREA_WATER, Ocean, Slime, MMAP::MeshData::solidTris, MMAP::MeshData::solidVerts, transformVertices(), and Water.
Referenced by loadVMap().
|
static |
Definition at line 703 of file TerrainBuilder.cpp.
Referenced by loadVMapModel().
|
inline |
Definition at line 93 of file TerrainBuilder.h.
Referenced by MMAP::TileBuilder::saveMoveMapTileToFile().
|
private |
Definition at line 108 of file TerrainBuilder.h.
Referenced by loadMap(), and loadVMap().
|
private |
Controls whether liquids are loaded.
Definition at line 111 of file TerrainBuilder.h.
Referenced by loadMap().