diff --git a/Source/Engine/Terrain/Terrain.cpp b/Source/Engine/Terrain/Terrain.cpp index 38d1865bb..3b00818c2 100644 --- a/Source/Engine/Terrain/Terrain.cpp +++ b/Source/Engine/Terrain/Terrain.cpp @@ -36,6 +36,7 @@ Terrain::~Terrain() void Terrain::UpdateBounds() { + PROFILE_CPU(); _box = BoundingBox(_transform.Translation, _transform.Translation); for (int32 i = 0; i < _patches.Count(); i++) { @@ -48,6 +49,7 @@ void Terrain::UpdateBounds() void Terrain::CacheNeighbors() { + PROFILE_CPU(); for (int32 pathIndex = 0; pathIndex < _patches.Count(); pathIndex++) { const auto patch = _patches[pathIndex]; diff --git a/Source/Engine/Terrain/TerrainChunk.cpp b/Source/Engine/Terrain/TerrainChunk.cpp index 1241935e5..fbb80c27d 100644 --- a/Source/Engine/Terrain/TerrainChunk.cpp +++ b/Source/Engine/Terrain/TerrainChunk.cpp @@ -192,7 +192,7 @@ bool TerrainChunk::Intersects(const Ray& ray, float& distance) void TerrainChunk::UpdateBounds() { const Vector3 boundsExtent = _patch->_terrain->_boundsExtent; - const float size = _patch->_terrain->_chunkSize * TERRAIN_UNITS_PER_VERTEX; + const float size = (float)_patch->_terrain->_chunkSize * TERRAIN_UNITS_PER_VERTEX; Transform terrainTransform = _patch->_terrain->_transform; Transform localTransform; diff --git a/Source/Engine/Terrain/TerrainPatch.cpp b/Source/Engine/Terrain/TerrainPatch.cpp index 791e93c7f..552238e9e 100644 --- a/Source/Engine/Terrain/TerrainPatch.cpp +++ b/Source/Engine/Terrain/TerrainPatch.cpp @@ -951,7 +951,7 @@ bool TerrainPatch::SetupHeightMap(int32 heightMapLength, const float* heightMap, chunk._yHeight = chunkHeights[chunkIndex]; chunk.UpdateTransform(); } - UpdateBounds(); + _terrain->UpdateBounds(); UpdateCollision(); #if TERRAIN_UPDATING @@ -1431,7 +1431,7 @@ bool TerrainPatch::ModifyHeightMap(const float* samples, const Int2& modifiedOff chunk._yHeight = chunkHeights[chunkIndex]; chunk.UpdateTransform(); } - UpdateBounds(); + _terrain->UpdateBounds(); return UpdateHeightData(info, modifiedOffset, modifiedSize, wasHeightRangeChanged); } @@ -2108,9 +2108,8 @@ void TerrainPatch::UpdatePostManualDeserialization() { auto& chunk = Chunks[chunkIndex]; chunk.UpdateTransform(); - chunk.UpdateBounds(); } - UpdateBounds(); + _terrain->UpdateBounds(); ScopeLock lock(_collisionLocker);