TrinityCore
Loading...
Searching...
No Matches
VMAP::StaticMapTree Class Reference

#include <MapTree.h>

Public Member Functions

 StaticMapTree (uint32 mapID, std::string const &basePath)
 
 ~StaticMapTree ()
 Make sure to call unloadMap() to unregister acquired model references before destroying.
 
bool isInLineOfSight (G3D::Vector3 const &pos1, G3D::Vector3 const &pos2, ModelIgnoreFlags ignoreFlags) const
 
bool getObjectHitPos (G3D::Vector3 const &pos1, G3D::Vector3 const &pos2, G3D::Vector3 &pResultHitPos, float pModifyDist) const
 
float getHeight (G3D::Vector3 const &pPos, float maxSearchDist) const
 
bool GetLocationInfo (G3D::Vector3 const &pos, StaticMapTreeLocationInfo &info) const
 
LoadResult InitMap (std::string const &fname)
 
void UnloadMap ()
 
LoadResult LoadMapTile (uint32 tileX, uint32 tileY, VMapManager *vm)
 
void UnloadMapTile (uint32 tileX, uint32 tileY)
 
uint32 numLoadedTiles () const
 
std::span< ModelInstance const > getModelInstances () const
 

Static Public Member Functions

static uint32 packTileID (uint32 tileX, uint32 tileY)
 
static void unpackTileID (uint32 ID, uint32 &tileX, uint32 &tileY)
 
static LoadResult CanLoadMap (std::string const &basePath, uint32 mapID, uint32 tileX, uint32 tileY, VMapManager *vm)
 

Private Types

typedef std::unordered_map< uint32, std::vector< uint32 > > loadedTileMap
 

Private Member Functions

bool getIntersectionTime (G3D::Ray const &pRay, float &pMaxDist, bool pStopAtFirstHit, ModelIgnoreFlags ignoreFlags) const
 
 StaticMapTree (StaticMapTree const &right)=delete
 
StaticMapTree & operator= (StaticMapTree const &right)=delete
 

Private Attributes

uint32 iMapID
 
BIH iTree
 
std::vector< ModelInstance > iTreeValues
 
loadedTileMap iLoadedTiles
 
std::string iBasePath
 

Detailed Description

Definition at line 46 of file MapTree.h.

Member Typedef Documentation

◆ loadedTileMap

typedef std::unordered_map<uint32, std::vector<uint32> > VMAP::StaticMapTree::loadedTileMap
private

Definition at line 48 of file MapTree.h.

Constructor & Destructor Documentation

◆ StaticMapTree() [1/2]

VMAP::StaticMapTree::StaticMapTree ( uint32  mapID,
std::string const &  basePath 
)

Definition at line 78 of file MapTree.cpp.

References iBasePath.

◆ ~StaticMapTree()

VMAP::StaticMapTree::~StaticMapTree ( )
default

Make sure to call unloadMap() to unregister acquired model references before destroying.

◆ StaticMapTree() [2/2]

VMAP::StaticMapTree::StaticMapTree ( StaticMapTree const &  right)
privatedelete

Member Function Documentation

◆ CanLoadMap()

LoadResult VMAP::StaticMapTree::CanLoadMap ( std::string const &  basePath,
uint32  mapID,
uint32  tileX,
uint32  tileY,
VMapManager *  vm 
)
static

◆ getHeight()

float VMAP::StaticMapTree::getHeight ( G3D::Vector3 const &  pPos,
float  maxSearchDist 
) const

Definition at line 176 of file MapTree.cpp.

References getIntersectionTime(), and VMAP::Nothing.

◆ getIntersectionTime()

bool VMAP::StaticMapTree::getIntersectionTime ( G3D::Ray const &  pRay,
float &  pMaxDist,
bool  pStopAtFirstHit,
ModelIgnoreFlags  ignoreFlags 
) const
private

If intersection is found within pMaxDist, sets pMaxDist to intersection distance and returns true. Else, pMaxDist is not modified and returns false;

Definition at line 95 of file MapTree.cpp.

References VMAP::MapRayCallback::didHit(), BIH::intersectRay(), iTree, and iTreeValues.

Referenced by getHeight(), getObjectHitPos(), and isInLineOfSight().

◆ GetLocationInfo()

bool VMAP::StaticMapTree::GetLocationInfo ( G3D::Vector3 const &  pos,
StaticMapTreeLocationInfo &  info 
) const

◆ getModelInstances()

std::span< ModelInstance const > VMAP::StaticMapTree::getModelInstances ( ) const

Definition at line 403 of file MapTree.cpp.

References iTreeValues.

◆ getObjectHitPos()

bool VMAP::StaticMapTree::getObjectHitPos ( G3D::Vector3 const &  pos1,
G3D::Vector3 const &  pos2,
G3D::Vector3 &  pResultHitPos,
float  pModifyDist 
) const

When moving from pos1 to pos2 check if we hit an object. Return true and the position if we hit one Return the hit pos or the original dest pos

Definition at line 131 of file MapTree.cpp.

References ASSERT, getIntersectionTime(), and VMAP::Nothing.

◆ InitMap()

◆ isInLineOfSight()

bool VMAP::StaticMapTree::isInLineOfSight ( G3D::Vector3 const &  pos1,
G3D::Vector3 const &  pos2,
ModelIgnoreFlags  ignoreFlags 
) const

Definition at line 106 of file MapTree.cpp.

References ASSERT, and getIntersectionTime().

◆ LoadMapTile()

◆ numLoadedTiles()

uint32 VMAP::StaticMapTree::numLoadedTiles ( ) const
inline

Definition at line 80 of file MapTree.h.

◆ operator=()

StaticMapTree & VMAP::StaticMapTree::operator= ( StaticMapTree const &  right)
privatedelete

◆ packTileID()

static uint32 VMAP::StaticMapTree::packTileID ( uint32  tileX,
uint32  tileY 
)
inlinestatic

◆ UnloadMap()

void VMAP::StaticMapTree::UnloadMap ( )

Definition at line 279 of file MapTree.cpp.

References iLoadedTiles, and iTreeValues.

◆ UnloadMapTile()

void VMAP::StaticMapTree::UnloadMapTile ( uint32  tileX,
uint32  tileY 
)

◆ unpackTileID()

static void VMAP::StaticMapTree::unpackTileID ( uint32  ID,
uint32 &  tileX,
uint32 &  tileY 
)
inlinestatic

Member Data Documentation

◆ iBasePath

std::string VMAP::StaticMapTree::iBasePath
private

Definition at line 58 of file MapTree.h.

Referenced by InitMap(), LoadMapTile(), and StaticMapTree().

◆ iLoadedTiles

loadedTileMap VMAP::StaticMapTree::iLoadedTiles
private

Definition at line 57 of file MapTree.h.

Referenced by LoadMapTile(), UnloadMap(), and UnloadMapTile().

◆ iMapID

uint32 VMAP::StaticMapTree::iMapID
private

Definition at line 50 of file MapTree.h.

Referenced by LoadMapTile(), and UnloadMapTile().

◆ iTree

BIH VMAP::StaticMapTree::iTree
private

Definition at line 51 of file MapTree.h.

Referenced by getIntersectionTime(), GetLocationInfo(), and InitMap().

◆ iTreeValues

std::vector<ModelInstance> VMAP::StaticMapTree::iTreeValues
private

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