18#ifndef _MMAP_TERRAIN_BUILDER_H
19#define _MMAP_TERRAIN_BUILDER_H
25#include <G3D/Vector3.h>
104 static void transform(std::vector<G3D::Vector3>
const& source, std::vector<G3D::Vector3>& transformed,
105 float scale, G3D::Matrix3
const& rotation, G3D::Vector3
const& position);
106 static void copyVertices(std::vector<G3D::Vector3>
const& source, G3D::Array<float>& dest);
107 static void copyIndices(std::vector<VMAP::MeshTriangle>
const& source, G3D::Array<int>& dest,
int offset,
bool flip);
108 static void copyIndices(G3D::Array<int>
const& source, G3D::Array<int>& dest,
int offset);
109 static void cleanVertices(G3D::Array<float> &verts, G3D::Array<int> &tris);
115 void getLoopVars(
Spot portion,
int &loopStart,
int &loopEnd,
int &loopInc);
124 void getHeightCoord(
int index,
Grid grid,
float xOffset,
float yOffset,
float* coord,
float* v);
133 void getLiquidCoord(
int index,
int index2,
float xOffset,
float yOffset,
float* coord,
float* v);
map_liquidHeaderTypeFlags
uint8 holes[ADT_CELLS_PER_GRID][ADT_CELLS_PER_GRID][8]
TerrainBuilder(TerrainBuilder const &tb)=delete
void loadOffMeshConnections(uint32 mapID, uint32 tileX, uint32 tileY, MeshData &meshData, std::vector< OffMeshData > const &offMeshConnections)
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.
static void copyIndices(std::vector< VMAP::MeshTriangle > const &source, G3D::Array< int > &dest, int offset, bool flip)
static void cleanVertices(G3D::Array< float > &verts, G3D::Array< int > &tris)
bool m_skipLiquid
Controls whether liquids are loaded.
void getHeightTriangle(int square, Spot triangle, int *indices, bool liquid=false)
Get the triangle's vector indices for a specific position.
void loadMap(uint32 mapID, uint32 tileX, uint32 tileY, MeshData &meshData)
void getLiquidCoord(int index, int index2, float xOffset, float yOffset, float *coord, float *v)
Get the liquid vector coordinate for a specific position.
static void transform(std::vector< G3D::Vector3 > const &source, std::vector< G3D::Vector3 > &transformed, float scale, G3D::Matrix3 const &rotation, G3D::Vector3 const &position)
bool loadVMap(uint32 mapID, uint32 tileX, uint32 tileY, MeshData &meshData)
void getHeightCoord(int index, Grid grid, float xOffset, float yOffset, float *coord, float *v)
Get the vector coordinate for a specific position.
static void copyVertices(std::vector< G3D::Vector3 > const &source, G3D::Array< float > &dest)
void getLoopVars(Spot portion, int &loopStart, int &loopEnd, int &loopInc)
Sets loop variables for selecting only certain parts of a map's terrain.
map_liquidHeaderTypeFlags getLiquidType(int square, map_liquidHeaderTypeFlags const (&liquid_type)[16][16])
Get the liquid type for a specific position.
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
static const int V9_SIZE_SQ
static const int V8_SIZE_SQ
G3D::Array< float > liquidVerts
G3D::Array< float > offMeshConnectionRads
G3D::Array< unsigned char > offMeshConnectionDirs
G3D::Array< float > offMeshConnections
G3D::Array< unsigned short > offMeshConnectionsFlags
G3D::Array< float > solidVerts
G3D::Array< int > liquidTris
G3D::Array< int > solidTris
G3D::Array< unsigned char > offMeshConnectionsAreas
G3D::Array< uint8 > liquidType