Project SkyFire Core
SkyFire 5.4.8 server core API documentation
Loading...
Searching...
No Matches
MMAP::TerrainBuilder Class Reference

#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.

Detailed Description

Definition at line 65 of file TerrainBuilder.h.

Constructor & Destructor Documentation

◆ TerrainBuilder() [1/3]

MMAP::TerrainBuilder::TerrainBuilder ( bool skipLiquid)

Definition at line 74 of file TerrainBuilder.cpp.

References m_skipLiquid.

Referenced by TerrainBuilder().

◆ ~TerrainBuilder()

MMAP::TerrainBuilder::~TerrainBuilder ( )

Definition at line 75 of file TerrainBuilder.cpp.

◆ TerrainBuilder() [2/3]

MMAP::TerrainBuilder::TerrainBuilder ( )
private

◆ TerrainBuilder() [3/3]

MMAP::TerrainBuilder::TerrainBuilder ( const TerrainBuilder & tb)
private

References TerrainBuilder().

Member Function Documentation

◆ cleanVertices()

void MMAP::TerrainBuilder::cleanVertices ( G3D::Array< float > & verts,
G3D::Array< int > & tris )
static

◆ copyIndices() [1/2]

void MMAP::TerrainBuilder::copyIndices ( G3D::Array< int > & src,
G3D::Array< int > & dest,
int offset )
static

Definition at line 813 of file TerrainBuilder.cpp.

◆ copyIndices() [2/2]

void MMAP::TerrainBuilder::copyIndices ( std::vector< VMAP::MeshTriangle > & source,
G3D::Array< int > & dest,
int offest,
bool flip )
static

Definition at line 790 of file TerrainBuilder.cpp.

Referenced by MMAP::IntermediateValues::generateObjFile(), and loadVMap().

◆ copyVertices()

void MMAP::TerrainBuilder::copyVertices ( std::vector< G3D::Vector3 > & source,
G3D::Array< float > & dest )
static

Definition at line 779 of file TerrainBuilder.cpp.

Referenced by loadVMap().

◆ getHeightCoord()

void MMAP::TerrainBuilder::getHeightCoord ( int index,
Grid grid,
float xOffset,
float yOffset,
float * coord,
float * v )
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().

◆ getHeightTriangle()

void MMAP::TerrainBuilder::getHeightTriangle ( int square,
Spot triangle,
int * indices,
bool liquid = false )
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().

◆ getLiquidCoord()

void MMAP::TerrainBuilder::getLiquidCoord ( int index,
int index2,
float xOffset,
float yOffset,
float * coord,
float * v )
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().

◆ getLiquidType()

uint8 MMAP::TerrainBuilder::getLiquidType ( int square,
const uint8 liquid_type[16][16] )
private

Get the liquid type for a specific position.

Definition at line 599 of file TerrainBuilder.cpp.

Referenced by loadMap().

◆ getLoopVars()

void MMAP::TerrainBuilder::getLoopVars ( Spot portion,
int & loopStart,
int & loopEnd,
int & loopInc )
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().

◆ isHole()

bool MMAP::TerrainBuilder::isHole ( int square,
uint8 const holes[16][16][8] )
private

Determines if the specific position's triangles should be rendered.

Definition at line 587 of file TerrainBuilder.cpp.

References holes.

Referenced by loadMap().

◆ loadHeightMap()

bool MMAP::TerrainBuilder::loadHeightMap ( uint32 mapID,
uint32 tileX,
uint32 tileY,
G3D::Array< float > & vertices,
G3D::Array< int > & triangles,
Spot portion )
private

Load the map terrain from file.

References holes.

◆ loadMap() [1/2]

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().

◆ loadMap() [2/2]

◆ loadOffMeshConnections()

void MMAP::TerrainBuilder::loadOffMeshConnections ( uint32 mapID,
uint32 tileX,
uint32 tileY,
MeshData & meshData,
const char * offMeshFilePath )

◆ loadVMap()

◆ transform()

void MMAP::TerrainBuilder::transform ( std::vector< G3D::Vector3 > & original,
std::vector< G3D::Vector3 > & transformed,
float scale,
G3D::Matrix3 & rotation,
G3D::Vector3 & position )
static

Definition at line 766 of file TerrainBuilder.cpp.

Referenced by loadVMap().

◆ usesLiquids()

bool MMAP::TerrainBuilder::usesLiquids ( )
inline

Definition at line 75 of file TerrainBuilder.h.

References m_skipLiquid.

Member Data Documentation

◆ m_skipLiquid

bool MMAP::TerrainBuilder::m_skipLiquid
private

Controls whether liquids are loaded.

Definition at line 92 of file TerrainBuilder.h.

Referenced by loadMap(), TerrainBuilder(), and usesLiquids().


The documentation for this class was generated from the following files: