Agrarsense
|
#include <InstancedRendererManager.h>
Public Member Functions | |
AInstancedRendererManager (const FObjectInitializer &ObjectInitializer) | |
virtual void | BeginPlay () override |
virtual void | EndPlay (const EEndPlayReason::Type EndPlayReason) override |
bool | AddActorToInstancedRendering (AInstancedActor *InstancedActor) |
bool | AppendISM (UInstancedStaticMeshComponent *ISM) |
bool | AppendOrCreateISM (UInstancedStaticMeshComponent *ISM) |
void | SpawnAllInstancesBackToActors () |
bool | SpawnInstanceBackToActor (UInstancedStaticMeshComponent *ISM, int32 Index, bool OnlyTree) |
void | ExportTreesAsCSV () |
void | DestroyOverlappingInstancesBox (UInstancedStaticMeshComponent *ISM, FBox AreaBox, bool OnlyTrees) |
void | SetInstancedRendering (bool Visible) |
TArray< AInstancedActorRenderer * > | GetAllInstancedActorRendererActors () const |
int32 | GetTotalInstanceCount () |
Protected Attributes | |
TArray< AInstancedActorRenderer * > | InstancedRenderers |
int32 | TotalInstanceCount = 0 |
Static Private Attributes | |
static AInstancedRendererManager * | Instance = nullptr |
Manages all AInstancedActorRenderer actors. Handles adding/removing instances, spawning them back into actors, and toggling visibility.
Definition at line 20 of file InstancedRendererManager.h.
AInstancedRendererManager::AInstancedRendererManager | ( | const FObjectInitializer & | ObjectInitializer | ) |
Definition at line 15 of file InstancedRendererManager.cpp.
bool AInstancedRendererManager::AddActorToInstancedRendering | ( | AInstancedActor * | InstancedActor | ) |
Adds an AInstancedActor to the appropriate instanced renderer.
Definition at line 47 of file InstancedRendererManager.cpp.
References AInstancedActor::AlternativeMaterial, AInstancedActor::GetStaticMeshComponent(), AInstancedActor::InstanceAdded(), InstancedRenderers, AInstancedActorRenderer::SetupFromInstancedActor(), and AInstancedActor::UpdateTransformAutomatically().
Referenced by AInstancedActor::AddToInstancedRendering().
bool AInstancedRendererManager::AppendISM | ( | UInstancedStaticMeshComponent * | ISM | ) |
Appends an existing Instanced Static Mesh (ISM) to a matching AInstancedActorRenderer instance.
Definition at line 115 of file InstancedRendererManager.cpp.
References InstancedRenderers.
Referenced by AppendOrCreateISM().
bool AInstancedRendererManager::AppendOrCreateISM | ( | UInstancedStaticMeshComponent * | ISM | ) |
Appends an existing Instanced Static Mesh (ISM) to a matching AInstancedActorRenderer instance. If no matching renderer exists, creates a new one.
Definition at line 151 of file InstancedRendererManager.cpp.
References AppendISM(), AInstancedActorRenderer::GetInstancedStaticMeshComponent(), InstancedRenderers, and Transform.
|
overridevirtual |
Definition at line 20 of file InstancedRendererManager.cpp.
void AInstancedRendererManager::DestroyOverlappingInstancesBox | ( | UInstancedStaticMeshComponent * | ISM, |
FBox | AreaBox, | ||
bool | OnlyTrees | ||
) |
Destroys all instances overlapping the specified Box area.
ISM | - The instanced static mesh component. |
AreaBox | - The bounding box defining the area to check. |
OnlyTrees | - Whether to limit destruction to tree instances only. |
Definition at line 279 of file InstancedRendererManager.cpp.
References InstancedRenderers, and FInstancedActorParameters::IsTree.
Referenced by ADeletionVolume::DestroyOverlappingActors().
|
overridevirtual |
Definition at line 37 of file InstancedRendererManager.cpp.
References Instance.
void AInstancedRendererManager::ExportTreesAsCSV | ( | ) |
Definition at line 333 of file InstancedRendererManager.cpp.
References FCSVFileSettings::Append, UCSVFile::CreateCSVFile(), FCSVFileSettings::CreateUnique, FCSVFileSettings::Delimiter, UCSVFile::Destroy(), FCSVFileSettings::FileWriteOption, InstancedRenderers, Queue, Semicolon, Transform, UCoordinateConversionUtilities::UnrealToGeographicCoordinates(), and UCSVFile::WriteRow().
TArray< AInstancedActorRenderer * > AInstancedRendererManager::GetAllInstancedActorRendererActors | ( | ) | const |
Definition at line 222 of file InstancedRendererManager.cpp.
References InstancedRenderers.
int32 AInstancedRendererManager::GetTotalInstanceCount | ( | ) |
Definition at line 245 of file InstancedRendererManager.cpp.
References InstancedRenderers, and TotalInstanceCount.
void AInstancedRendererManager::SetInstancedRendering | ( | bool | Visible | ) |
Set all ISM components visibility.
Definition at line 318 of file InstancedRendererManager.cpp.
References InstancedRenderers.
Referenced by UAgrarsenseSettings::SetInstancedRenderingVisibility().
void AInstancedRendererManager::SpawnAllInstancesBackToActors | ( | ) |
Spawn all instanced back to actors.
Definition at line 209 of file InstancedRendererManager.cpp.
References InstancedRenderers, and AInstancedActorRenderer::SpawnInstancesBackActors().
bool AInstancedRendererManager::SpawnInstanceBackToActor | ( | UInstancedStaticMeshComponent * | ISM, |
int32 | Index, | ||
bool | OnlyTree | ||
) |
Spawns a specific ISM instance back to its original Actor. Cannot be added back to ISM instance afterwards.
ISM | The instanced static mesh component containing the instance. |
Index | The index of the instance to spawn back. |
Definition at line 265 of file InstancedRendererManager.cpp.
References InstancedRenderers.
|
staticprivate |
Definition at line 99 of file InstancedRendererManager.h.
Referenced by BeginPlay(), and EndPlay().
|
protected |
Definition at line 92 of file InstancedRendererManager.h.
Referenced by AddActorToInstancedRendering(), AppendISM(), AppendOrCreateISM(), DestroyOverlappingInstancesBox(), ExportTreesAsCSV(), GetAllInstancedActorRendererActors(), GetTotalInstanceCount(), SetInstancedRendering(), SpawnAllInstancesBackToActors(), and SpawnInstanceBackToActor().
|
protected |
Definition at line 95 of file InstancedRendererManager.h.
Referenced by GetTotalInstanceCount().