Files
UnrealEngineUWP/Engine/Source/Runtime/Experimental/GeometryCollectionEngine/Private/GeometryCollection/GeometryCollectionBlueprintLibrary.cpp
jeremy moore 5018101ab4 #jira UE-209654
Separate out the interface for setting custom data on geometry collection custom renderers.
Add support for setting custom data by named channels for which the custom renderer can handle any packing logic.

[CL 32734648 by jeremy moore in ue5-main branch]
2024-04-04 13:40:08 -04:00

44 lines
1.5 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "GeometryCollection/GeometryCollectionBlueprintLibrary.h"
#include "GeometryCollection/GeometryCollectionComponent.h"
#include "GeometryCollection/GeometryCollectionExternalRenderInterface.h"
void UGeometryCollectionBlueprintLibrary::SetCustomInstanceDataByIndex(UGeometryCollectionComponent* GeometryCollectionComponent, int32 CustomDataIndex, float CustomDataValue)
{
if (GeometryCollectionComponent == nullptr)
{
return;
}
IGeometryCollectionCustomDataInterface* CustomRenderer = Cast<IGeometryCollectionCustomDataInterface>(GeometryCollectionComponent->GetCustomRenderer());
if (CustomRenderer == nullptr)
{
return;
}
CustomRenderer->SetCustomInstanceData(CustomDataIndex, CustomDataValue);
}
void UGeometryCollectionBlueprintLibrary::SetCustomInstanceDataByName(UGeometryCollectionComponent* GeometryCollectionComponent, FName CustomDataName, float CustomDataValue)
{
if (GeometryCollectionComponent == nullptr)
{
return;
}
IGeometryCollectionCustomDataInterface* CustomRenderer = Cast<IGeometryCollectionCustomDataInterface>(GeometryCollectionComponent->GetCustomRenderer());
if (CustomRenderer == nullptr)
{
return;
}
CustomRenderer->SetCustomInstanceData(CustomDataName, CustomDataValue);
}
void UGeometryCollectionBlueprintLibrary::SetISMPoolCustomInstanceData(UGeometryCollectionComponent* GeometryCollectionComponent, int32 CustomDataIndex, float CustomDataValue)
{
SetCustomInstanceDataByIndex(GeometryCollectionComponent, CustomDataIndex, CustomDataValue);
}