CARLA
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Private Attributes | Friends | List of all members
FSparseHighDetailMap Class Reference

#include <CustomTerrainPhysicsComponent.h>

Public Member Functions

void Clear ()
 
 FSparseHighDetailMap (float ParticleDiameter=0.02f, float Depth=0.4f)
 
float GetHeight (FDVector Position)
 
std::vector< uint64_t > GetIntersectingTiles (const FOrientedBox &OBox)
 
std::vector< uint64_t > GetLoadedTilesInRange (FDVector Position, float Radius)
 
std::vector< FParticle * > GetParticlesInBox (const FOrientedBox &OBox)
 
std::vector< FParticle * > GetParticlesInRadius (FDVector Position, float Radius)
 
std::vector< FParticle * > GetParticlesInTileRadius (FDVector Position, float Radius)
 
FDenseTile & GetTile (FDVector Position)
 
FDenseTile & GetTile (uint32_t Tile_X, uint32_t Tile_Y)
 
FDenseTile & GetTile (uint64_t TileId)
 
uint64_t GetTileId (FDVector Position)
 
uint64_t GetTileId (uint32_t Tile_X, uint32_t Tile_Y)
 
uint64_t GetTileId (uint64_t TileId)
 
std::vector< uint64_t > GetTileIdInCache ()
 
std::vector< uint64_t > GetTileIdInMap ()
 
FDVector GetTilePosition (uint32_t Tile_X, uint32_t Tile_Y)
 
FDVector GetTilePosition (uint64_t TileId)
 
float GetTileSize () const
 
FIntVector GetVectorTileId (FDVector Position)
 
FIntVector GetVectorTileId (uint64_t TileId)
 
void Init (uint32 NewTextureSize, float NewAffectedRadius, float ParticleDiameter, float Depth, float NewFloorHeight)
 
void InitializeMap (UHeightMapDataAsset *DataAsset, FDVector Origin, FDVector MapSize, float Size, float ScaleZ)
 
FDenseTile & InitializeRegion (uint32_t Tile_X, uint32_t Tile_Y)
 
FDenseTile & InitializeRegion (uint64_t TileId)
 
FDenseTile & InitializeRegionInCache (uint64_t TileId)
 
void LockMutex ()
 
void SaveMap ()
 
void UnLockMutex ()
 
void Update (FVector Position, float RadiusX, float RadiusY)
 
void UpdateHeightMap (UHeightMapDataAsset *DataAsset, FDVector Origin, FDVector MapSize, float Size, float ScaleZ)
 
void UpdateMaps (FDVector Position, float RadiusX, float RadiusY, float CacheRadiusX, float CacheRadiusY)
 

Public Attributes

std::unordered_map< uint64_t, FDenseTile > CacheMap
 
FCriticalSection Lock_Particles
 
std::unordered_map< uint64_t, FDenseTile > Map
 
FString SavePath
 

Private Attributes

float AffectedRadius = 0.0f
 
FDVector Extension
 
float FloorHeight = 0.0f
 
FHeightMapData Heightmap
 
FCriticalSection Lock_CacheMap
 
FCriticalSection Lock_GetTile
 
FCriticalSection Lock_Map
 
FCriticalSection Lock_Position
 
float ParticleSize = 0.02f
 
FVector PositionToUpdate
 
float TerrainDepth = 0.4f
 
uint32 TextureSize = 0
 
FDVector Tile0Position
 
float TileSize = 1.f
 
std::unordered_map< uint64_t, FDenseTile > TilesToWrite
 

Friends

struct FTilesWorker
 

Detailed Description

Definition at line 113 of file CustomTerrainPhysicsComponent.h.

Constructor & Destructor Documentation

◆ FSparseHighDetailMap()

FSparseHighDetailMap::FSparseHighDetailMap ( float  ParticleDiameter = 0.02f,
float  Depth = 0.4f 
)
inline

Definition at line 118 of file CustomTerrainPhysicsComponent.h.

Member Function Documentation

◆ Clear()

void FSparseHighDetailMap::Clear ( )

Definition at line 766 of file CustomTerrainPhysicsComponent.cpp.

References FHeightMapData::Clear(), Heightmap, and Map.

◆ GetHeight()

float FSparseHighDetailMap::GetHeight ( FDVector  Position)
inline

Definition at line 160 of file CustomTerrainPhysicsComponent.h.

References FHeightMapData::GetHeight(), Heightmap, and Position.

◆ GetIntersectingTiles()

std::vector< uint64_t > FSparseHighDetailMap::GetIntersectingTiles ( const FOrientedBox &  OBox)

◆ GetLoadedTilesInRange()

std::vector< uint64_t > FSparseHighDetailMap::GetLoadedTilesInRange ( FDVector  Position,
float  Radius 
)

◆ GetParticlesInBox()

std::vector< FParticle * > FSparseHighDetailMap::GetParticlesInBox ( const FOrientedBox &  OBox)

◆ GetParticlesInRadius()

std::vector< FParticle * > FSparseHighDetailMap::GetParticlesInRadius ( FDVector  Position,
float  Radius 
)

◆ GetParticlesInTileRadius()

std::vector< FParticle * > FSparseHighDetailMap::GetParticlesInTileRadius ( FDVector  Position,
float  Radius 
)

◆ GetTile() [1/3]

FDenseTile & FSparseHighDetailMap::GetTile ( FDVector  Position)

Definition at line 651 of file CustomTerrainPhysicsComponent.cpp.

References GetTile(), GetTileId(), and Position.

◆ GetTile() [2/3]

FDenseTile & FSparseHighDetailMap::GetTile ( uint32_t  Tile_X,
uint32_t  Tile_Y 
)

◆ GetTile() [3/3]

FDenseTile & FSparseHighDetailMap::GetTile ( uint64_t  TileId)

◆ GetTileId() [1/3]

uint64_t FSparseHighDetailMap::GetTileId ( FDVector  Position)

◆ GetTileId() [2/3]

uint64_t FSparseHighDetailMap::GetTileId ( uint32_t  Tile_X,
uint32_t  Tile_Y 
)

◆ GetTileId() [3/3]

uint64_t FSparseHighDetailMap::GetTileId ( uint64_t  TileId)

◆ GetTileIdInCache()

std::vector< uint64_t > FSparseHighDetailMap::GetTileIdInCache ( )
inline

Definition at line 197 of file CustomTerrainPhysicsComponent.h.

References CacheMap.

◆ GetTileIdInMap()

std::vector< uint64_t > FSparseHighDetailMap::GetTileIdInMap ( )
inline

Definition at line 188 of file CustomTerrainPhysicsComponent.h.

References Map.

◆ GetTilePosition() [1/2]

FDVector FSparseHighDetailMap::GetTilePosition ( uint32_t  Tile_X,
uint32_t  Tile_Y 
)

Definition at line 644 of file CustomTerrainPhysicsComponent.cpp.

References FloorHeight, Position, Tile0Position, and TileSize.

◆ GetTilePosition() [2/2]

FDVector FSparseHighDetailMap::GetTilePosition ( uint64_t  TileId)

◆ GetTileSize()

float FSparseHighDetailMap::GetTileSize ( ) const
inline

Definition at line 133 of file CustomTerrainPhysicsComponent.h.

References TileSize.

◆ GetVectorTileId() [1/2]

FIntVector FSparseHighDetailMap::GetVectorTileId ( FDVector  Position)

Definition at line 691 of file CustomTerrainPhysicsComponent.cpp.

References Position, Tile0Position, TileSize, FDVector::X, and FDVector::Y.

Referenced by Update(), and UpdateMaps().

◆ GetVectorTileId() [2/2]

FIntVector FSparseHighDetailMap::GetVectorTileId ( uint64_t  TileId)

Definition at line 697 of file CustomTerrainPhysicsComponent.cpp.

◆ Init()

void FSparseHighDetailMap::Init ( uint32  NewTextureSize,
float  NewAffectedRadius,
float  ParticleDiameter,
float  Depth,
float  NewFloorHeight 
)
inline

◆ InitializeMap()

void FSparseHighDetailMap::InitializeMap ( UHeightMapDataAsset *  DataAsset,
FDVector  Origin,
FDVector  MapSize,
float  Size,
float  ScaleZ 
)

◆ InitializeRegion() [1/2]

FDenseTile & FSparseHighDetailMap::InitializeRegion ( uint32_t  Tile_X,
uint32_t  Tile_Y 
)

Definition at line 704 of file CustomTerrainPhysicsComponent.cpp.

References GetTileId(), and InitializeRegion().

Referenced by GetTile(), and InitializeRegion().

◆ InitializeRegion() [2/2]

FDenseTile & FSparseHighDetailMap::InitializeRegion ( uint64_t  TileId)

◆ InitializeRegionInCache()

FDenseTile & FSparseHighDetailMap::InitializeRegionInCache ( uint64_t  TileId)

◆ LockMutex()

void FSparseHighDetailMap::LockMutex ( )
inline

Definition at line 178 of file CustomTerrainPhysicsComponent.h.

References Lock_Map.

◆ SaveMap()

void FSparseHighDetailMap::SaveMap ( )

Definition at line 906 of file CustomTerrainPhysicsComponent.cpp.

References CacheMap, Map, SaveMap(), and SavePath.

Referenced by SaveMap().

◆ UnLockMutex()

void FSparseHighDetailMap::UnLockMutex ( )
inline

Definition at line 183 of file CustomTerrainPhysicsComponent.h.

References Lock_Map.

◆ Update()

void FSparseHighDetailMap::Update ( FVector  Position,
float  RadiusX,
float  RadiusY 
)

◆ UpdateHeightMap()

void FSparseHighDetailMap::UpdateHeightMap ( UHeightMapDataAsset *  DataAsset,
FDVector  Origin,
FDVector  MapSize,
float  Size,
float  ScaleZ 
)

◆ UpdateMaps()

void FSparseHighDetailMap::UpdateMaps ( FDVector  Position,
float  RadiusX,
float  RadiusY,
float  CacheRadiusX,
float  CacheRadiusY 
)

Friends And Related Symbol Documentation

◆ FTilesWorker

friend struct FTilesWorker
friend

Definition at line 116 of file CustomTerrainPhysicsComponent.h.

Member Data Documentation

◆ AffectedRadius

float FSparseHighDetailMap::AffectedRadius = 0.0f
private

◆ CacheMap

std::unordered_map<uint64_t, FDenseTile> FSparseHighDetailMap::CacheMap

◆ Extension

FDVector FSparseHighDetailMap::Extension
private

◆ FloorHeight

float FSparseHighDetailMap::FloorHeight = 0.0f
private

Definition at line 219 of file CustomTerrainPhysicsComponent.h.

Referenced by GetTilePosition(), and Init().

◆ Heightmap

FHeightMapData FSparseHighDetailMap::Heightmap
private

◆ Lock_CacheMap

FCriticalSection FSparseHighDetailMap::Lock_CacheMap
private

Definition at line 224 of file CustomTerrainPhysicsComponent.h.

Referenced by GetTile(), InitializeRegionInCache(), and UpdateMaps().

◆ Lock_GetTile

FCriticalSection FSparseHighDetailMap::Lock_GetTile
private

Definition at line 225 of file CustomTerrainPhysicsComponent.h.

Referenced by GetTile().

◆ Lock_Map

FCriticalSection FSparseHighDetailMap::Lock_Map
private

Definition at line 223 of file CustomTerrainPhysicsComponent.h.

Referenced by LockMutex(), UnLockMutex(), and UpdateMaps().

◆ Lock_Particles

FCriticalSection FSparseHighDetailMap::Lock_Particles

Definition at line 210 of file CustomTerrainPhysicsComponent.h.

◆ Lock_Position

FCriticalSection FSparseHighDetailMap::Lock_Position
private

Definition at line 226 of file CustomTerrainPhysicsComponent.h.

◆ Map

std::unordered_map<uint64_t, FDenseTile> FSparseHighDetailMap::Map

◆ ParticleSize

float FSparseHighDetailMap::ParticleSize = 0.02f
private

◆ PositionToUpdate

FVector FSparseHighDetailMap::PositionToUpdate
private

Definition at line 222 of file CustomTerrainPhysicsComponent.h.

Referenced by Update().

◆ SavePath

FString FSparseHighDetailMap::SavePath

◆ TerrainDepth

float FSparseHighDetailMap::TerrainDepth = 0.4f
private

◆ TextureSize

uint32 FSparseHighDetailMap::TextureSize = 0
private

◆ Tile0Position

FDVector FSparseHighDetailMap::Tile0Position
private

◆ TileSize

float FSparseHighDetailMap::TileSize = 1.f
private

◆ TilesToWrite

std::unordered_map<uint64_t, FDenseTile> FSparseHighDetailMap::TilesToWrite
private

Definition at line 212 of file CustomTerrainPhysicsComponent.h.


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