18#ifndef _MMAP_TERRAIN_BUILDER_H
19#define _MMAP_TERRAIN_BUILDER_H
23#include <G3D/Vector3.h>
24#include <boost/filesystem/path.hpp>
85 explicit TerrainBuilder(boost::filesystem::path
const& inputDirectory,
bool skipLiquid);
89 void loadVMapModel(
VMAP::WorldModel const* worldModel, G3D::Vector3
const& position, G3D::Matrix3
const& rotation,
float scale,
91 void loadOffMeshConnections(
uint32 mapID,
uint32 tileX,
uint32 tileY,
MeshData& meshData, std::vector<OffMeshData>
const& offMeshConnections);
96 static void transformVertices(std::vector<G3D::Vector3>
const& source, std::vector<float>& dest,
97 float scale, G3D::Matrix3
const& rotation, G3D::Vector3
const& position);
98 static void copyIndices(std::vector<VMAP::MeshTriangle>
const& source, std::vector<int>& dest,
int offset,
bool flip);
99 static void copyIndices(std::vector<int>
const& source, std::vector<int>& dest,
int offset);
100 static void cleanVertices(std::vector<float>& verts, std::vector<int>& tris);
106 static void getLoopVars(
Spot portion,
int& loopStart,
int& loopEnd,
int& loopInc);
114 static void getHeightCoord(
int index,
Grid grid,
float xOffset,
float yOffset,
float* coord,
float* v);
117 static void getHeightTriangle(
int square,
Spot triangle,
int* indices,
int offset,
bool liquid =
false);
120 static bool isHole(
int square,
uint8 const (&holes)[16][16][8]);
123 static void getLiquidCoord(
int index,
int index2,
float xOffset,
float yOffset,
float* coord,
float* v);
#define TC_MMAPS_COMMON_API
map_liquidHeaderTypeFlags
bool m_skipLiquid
Controls whether liquids are loaded.
boost::filesystem::path m_inputDirectory
static const float GRID_SIZE
static const float INVALID_MAP_LIQ_HEIGHT_MAX
static const float GRID_PART_SIZE
static const float INVALID_MAP_LIQ_HEIGHT
std::unique_ptr< VMAP::VMapManager >(* CreateVMapManager)(uint32 mapId)
static const int V9_SIZE_SQ
static const int V8_SIZE_SQ
std::vector< uint8 > liquidType
std::vector< float > liquidVerts
std::vector< unsigned short > offMeshConnectionsFlags
std::vector< float > solidVerts
std::vector< int > solidTris
std::vector< int > liquidTris
std::vector< float > offMeshConnections
std::vector< unsigned char > offMeshConnectionDirs
std::vector< float > offMeshConnectionRads
std::vector< unsigned char > offMeshConnectionsAreas