Files
UnrealEngine/Engine/Plugins/Experimental/ChaosFlesh/Source/ChaosFleshEngine/Private/ChaosFlesh/SimulationAsset.cpp
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

51 lines
1.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
/*=============================================================================
FleshAsset.cpp: UFleshAsset methods.
=============================================================================*/
#include "ChaosFlesh/SimulationAsset.h"
#include "GeometryCollection/GeometryCollection.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(SimulationAsset)
DEFINE_LOG_CATEGORY_STATIC(LogSimulationAssetInternal, Log, All);
USimulationAsset::USimulationAsset(const FObjectInitializer& ObjectInitializer)
: Super(ObjectInitializer)
, SimulationCollection(new FManagedArrayCollection())
{
Init();
}
void USimulationAsset::Init()
{
SimulationCollection->AddAttribute<int32>("ObjectState", FGeometryCollection::VerticesGroup);
}
void USimulationAsset::Reset(const FManagedArrayCollection* InCopyFrom)
{
SimulationCollection = TSharedPtr<FManagedArrayCollection, ESPMode::ThreadSafe>( new FManagedArrayCollection());
Init();
if (InCopyFrom)
{
GetObjectState().Fill((int32)Chaos::EObjectStateType::Dynamic);
SimulationCollection->CopyMatchingAttributesFrom(*InCopyFrom);
}
}
void USimulationAsset::ResetAttributesFrom(const FManagedArrayCollection* InCopyFrom)
{
if (InCopyFrom)
{
SimulationCollection->CopyMatchingAttributesFrom(*InCopyFrom);
}
}
TManagedArray<int32>& USimulationAsset::GetObjectState()
{
return SimulationCollection->ModifyAttribute<int32>("ObjectState", FGeometryCollection::VerticesGroup);
}