|
Project SkyFire Core
SkyFire 5.4.8 server core API documentation
|
#include <TerrainBuilder.h>
Public Member Functions | |
| void | loadMap (uint32 mapID, uint32 tileX, uint32 tileY, MeshData &meshData) |
| void | loadOffMeshConnections (uint32 mapID, uint32 tileX, uint32 tileY, MeshData &meshData, const char *offMeshFilePath) |
| bool | loadVMap (uint32 mapID, uint32 tileX, uint32 tileY, MeshData &meshData) |
| TerrainBuilder (bool skipLiquid) | |
| bool | usesLiquids () |
| ~TerrainBuilder () | |
Static Public Member Functions | |
| static void | cleanVertices (G3D::Array< float > &verts, G3D::Array< int > &tris) |
| static void | copyIndices (G3D::Array< int > &src, G3D::Array< int > &dest, int offset) |
| static void | copyIndices (std::vector< VMAP::MeshTriangle > &source, G3D::Array< int > &dest, int offest, bool flip) |
| static void | copyVertices (std::vector< G3D::Vector3 > &source, G3D::Array< float > &dest) |
| static void | transform (std::vector< G3D::Vector3 > &original, std::vector< G3D::Vector3 > &transformed, float scale, G3D::Matrix3 &rotation, G3D::Vector3 &position) |
Private Member Functions | |
| void | getHeightCoord (int index, Grid grid, float xOffset, float yOffset, float *coord, float *v) |
| Get the vector coordinate for a specific position. | |
| void | getHeightTriangle (int square, Spot triangle, int *indices, bool liquid=false) |
| Get the triangle's vector indices for a specific position. | |
| void | getLiquidCoord (int index, int index2, float xOffset, float yOffset, float *coord, float *v) |
| Get the liquid vector coordinate for a specific position. | |
| uint8 | getLiquidType (int square, const uint8 liquid_type[16][16]) |
| Get the liquid type for a specific position. | |
| void | getLoopVars (Spot portion, int &loopStart, int &loopEnd, int &loopInc) |
| Sets loop variables for selecting only certain parts of a map's terrain. | |
| bool | isHole (int square, uint8 const holes[16][16][8]) |
| Determines if the specific position's triangles should be rendered. | |
| bool | loadHeightMap (uint32 mapID, uint32 tileX, uint32 tileY, G3D::Array< float > &vertices, G3D::Array< int > &triangles, Spot portion) |
| Load the map terrain from file. | |
| bool | loadMap (uint32 mapID, uint32 tileX, uint32 tileY, MeshData &meshData, Spot portion) |
| Loads a portion of a map's terrain. | |
| TerrainBuilder () | |
| TerrainBuilder (const TerrainBuilder &tb) | |
Private Attributes | |
| bool | m_skipLiquid |
| Controls whether liquids are loaded. | |
Definition at line 65 of file TerrainBuilder.h.
| MMAP::TerrainBuilder::TerrainBuilder | ( | bool | skipLiquid | ) |
Definition at line 74 of file TerrainBuilder.cpp.
References m_skipLiquid.
Referenced by TerrainBuilder().
| MMAP::TerrainBuilder::~TerrainBuilder | ( | ) |
Definition at line 75 of file TerrainBuilder.cpp.
|
private |
|
private |
References TerrainBuilder().
|
static |
Definition at line 821 of file TerrainBuilder.cpp.
Referenced by MMAP::MapBuilder::buildMeshFromFile(), and MMAP::MapBuilder::buildTile().
|
static |
Definition at line 813 of file TerrainBuilder.cpp.
|
static |
Definition at line 790 of file TerrainBuilder.cpp.
Referenced by MMAP::IntermediateValues::generateObjFile(), and loadVMap().
|
static |
Definition at line 779 of file TerrainBuilder.cpp.
Referenced by loadVMap().
|
private |
Get the vector coordinate for a specific position.
Definition at line 512 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().
|
private |
Get the triangle's vector indices for a specific position.
Definition at line 532 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().
|
private |
Get the liquid vector coordinate for a specific position.
Definition at line 578 of file TerrainBuilder.cpp.
References MMAP::GRID_PART_SIZE, and MMAP::V9_SIZE.
Referenced by loadMap().
Get the liquid type for a specific position.
Definition at line 599 of file TerrainBuilder.cpp.
Referenced by loadMap().
|
private |
Sets loop variables for selecting only certain parts of a map's terrain.
Definition at line 78 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().
|
private |
Determines if the specific position's triangles should be rendered.
Definition at line 587 of file TerrainBuilder.cpp.
References holes.
Referenced by loadMap().
|
private |
Load the map terrain from file.
References holes.
| void MMAP::TerrainBuilder::loadMap | ( | uint32 | mapID, |
| uint32 | tileX, | ||
| uint32 | tileY, | ||
| MeshData & | meshData ) |
Definition at line 111 of file TerrainBuilder.cpp.
References MMAP::BOTTOM, MMAP::ENTIRE, MMAP::LEFT, loadMap(), MMAP::RIGHT, and MMAP::TOP.
Referenced by loadMap().
|
private |
Loads a portion of a map's terrain.
Definition at line 123 of file TerrainBuilder.cpp.
References MMAP::BOTTOM, map_heightHeader::flags, map_liquidHeader::flags, getHeightCoord(), getHeightTriangle(), getLiquidCoord(), getLiquidType(), getLoopVars(), MMAP::GRID_PART_SIZE, MMAP::GRID_SIZE, MMAP::GRID_V8, MMAP::GRID_V9, map_heightHeader::gridHeight, map_heightHeader::gridMaxHeight, map_liquidHeader::height, map_fileheader::heightMapOffset, holes, map_fileheader::holesOffset, map_fileheader::holesSize, MMAP::INVALID_MAP_LIQ_HEIGHT, MMAP::INVALID_MAP_LIQ_HEIGHT_MAX, isHole(), map_liquidHeader::liquidLevel, map_fileheader::liquidMapOffset, MMAP::MeshData::liquidTris, MMAP::MeshData::liquidType, MMAP::MeshData::liquidVerts, m_skipLiquid, MAP_HEIGHT_AS_INT16, MAP_HEIGHT_AS_INT8, MAP_HEIGHT_NO_HEIGHT, MAP_LIQUID_NO_HEIGHT, MAP_LIQUID_NO_TYPE, MAP_LIQUID_TYPE_DARK_WATER, MAP_LIQUID_TYPE_MAGMA, MAP_LIQUID_TYPE_NO_WATER, MAP_LIQUID_TYPE_OCEAN, MAP_LIQUID_TYPE_SLIME, MAP_LIQUID_TYPE_WATER, MMAP::MAP_VERSION_MAGIC, NAV_MAGMA, NAV_SLIME, NAV_WATER, map_liquidHeader::offsetX, map_liquidHeader::offsetY, MMAP::MeshData::solidTris, MMAP::MeshData::solidVerts, MMAP::TOP, V8, MMAP::V8_SIZE_SQ, V9, MMAP::V9_SIZE, MMAP::V9_SIZE_SQ, map_fileheader::versionMagic, and map_liquidHeader::width.
| void MMAP::TerrainBuilder::loadOffMeshConnections | ( | uint32 | mapID, |
| uint32 | tileX, | ||
| uint32 | tileY, | ||
| MeshData & | meshData, | ||
| const char * | offMeshFilePath ) |
Definition at line 865 of file TerrainBuilder.cpp.
References MMAP::MeshData::offMeshConnectionDirs, MMAP::MeshData::offMeshConnectionRads, MMAP::MeshData::offMeshConnections, MMAP::MeshData::offMeshConnectionsAreas, and MMAP::MeshData::offMeshConnectionsFlags.
| bool MMAP::TerrainBuilder::loadVMap | ( | uint32 | mapID, |
| uint32 | tileX, | ||
| uint32 | tileY, | ||
| MeshData & | meshData ) |
Definition at line 610 of file TerrainBuilder.cpp.
References copyIndices(), copyVertices(), VMAP::WmoLiquid::GetFlagsStorage(), VMAP::WorldModel::getGroupModels(), VMAP::WmoLiquid::GetHeightStorage(), VMAP::WmoLiquid::getPosInfo(), VMAP::WmoLiquid::GetType(), VMAP::ModelInstance::getWorldModel(), MMAP::GRID_PART_SIZE, MMAP::GRID_SIZE, VMAP::ModelSpawn::iPos, VMAP::ModelSpawn::iRot, VMAP::ModelSpawn::iScale, MMAP::MeshData::liquidTris, MMAP::MeshData::liquidType, MMAP::MeshData::liquidVerts, VMAP::IVMapManager::loadMap(), VMAP::ModelSpawn::name, NAV_EMPTY, NAV_MAGMA, NAV_SLIME, NAV_WATER, MMAP::MeshData::solidTris, MMAP::MeshData::solidVerts, transform(), VMAP::IVMapManager::unloadMap(), and VMAP::VMAP_LOAD_RESULT_ERROR.
|
static |
Definition at line 766 of file TerrainBuilder.cpp.
Referenced by loadVMap().
|
inline |
Definition at line 75 of file TerrainBuilder.h.
References m_skipLiquid.
|
private |
Controls whether liquids are loaded.
Definition at line 92 of file TerrainBuilder.h.
Referenced by loadMap(), TerrainBuilder(), and usesLiquids().