From 7f7549d2f78d1a9336f2f31d5dcf1fc6e89f7422 Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Tue, 1 Oct 2024 23:07:47 +0200 Subject: [PATCH] Add `Foliage.RemoveAllInstances` to clear all instances of foliage #2957 --- Source/Engine/Foliage/Foliage.cpp | 6 ++++++ Source/Engine/Foliage/Foliage.h | 5 +++++ 2 files changed, 11 insertions(+) diff --git a/Source/Engine/Foliage/Foliage.cpp b/Source/Engine/Foliage/Foliage.cpp index 8c0b337ae..427e2260b 100644 --- a/Source/Engine/Foliage/Foliage.cpp +++ b/Source/Engine/Foliage/Foliage.cpp @@ -986,6 +986,12 @@ void Foliage::UpdateCullDistance() #endif } +void Foliage::RemoveAllInstances() +{ + Instances.Clear(); + RebuildClusters(); +} + static float GlobalDensityScale = 1.0f; float Foliage::GetGlobalDensityScale() diff --git a/Source/Engine/Foliage/Foliage.h b/Source/Engine/Foliage/Foliage.h index d10a75a7e..c062279a8 100644 --- a/Source/Engine/Foliage/Foliage.h +++ b/Source/Engine/Foliage/Foliage.h @@ -134,6 +134,11 @@ public: /// API_FUNCTION() void UpdateCullDistance(); + /// + /// Clears all foliage instances. Preserves the foliage types and other properties. + /// + API_FUNCTION() void RemoveAllInstances(); + public: /// /// Gets the global density scale for all foliage instances. The default value is 1. Use values from range 0-1. Lower values decrease amount of foliage instances in-game. Use it to tweak game performance for slower devices.