Files
UnrealEngine/Engine/Plugins/ChaosClothAssetEditor/Source/ChaosClothAssetDataflowNodes/Private/ChaosClothAsset/SimulationGravityConfigNode.cpp
2025-05-18 13:04:45 +08:00

50 lines
1.8 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "ChaosClothAsset/SimulationGravityConfigNode.h"
#include "Chaos/CollectionPropertyFacade.h"
#include "UObject/FortniteValkyrieBranchObjectVersion.h"
#include "UObject/FortniteReleaseBranchCustomObjectVersion.h"
#include UE_INLINE_GENERATED_CPP_BY_NAME(SimulationGravityConfigNode)
FChaosClothAssetSimulationGravityConfigNode::FChaosClothAssetSimulationGravityConfigNode(const UE::Dataflow::FNodeParameters& InParam, FGuid InGuid)
: FChaosClothAssetSimulationBaseConfigNode(InParam, InGuid)
{
RegisterCollectionConnections();
RegisterInputConnection(&GravityScaleWeighted.WeightMap)
.SetCanHidePin(true)
.SetPinIsHidden(true);
}
void FChaosClothAssetSimulationGravityConfigNode::AddProperties(FPropertyHelper& PropertyHelper) const
{
PropertyHelper.SetPropertyBool(this, &bUseGravityOverride);
PropertyHelper.SetPropertyWeighted(TEXT("GravityScale"), GravityScaleWeighted);
PropertyHelper.SetSolverProperty(FName(TEXT("GravityOverride")), GravityOverrideImported,
[](UE::Chaos::ClothAsset::FCollectionClothFacade& ClothFacade)-> FVector3f
{
return ClothFacade.GetSolverGravity();
}, {});
}
void FChaosClothAssetSimulationGravityConfigNode::Serialize(FArchive& Ar)
{
Super::Serialize(Ar);
Ar.UsingCustomVersion(FFortniteValkyrieBranchObjectVersion::GUID);
if (Ar.IsLoading())
{
#if WITH_EDITORONLY_DATA
if (Ar.CustomVer(FFortniteValkyrieBranchObjectVersion::GUID) < FFortniteValkyrieBranchObjectVersion::ChaosClothAssetWeightedMassAndGravity)
{
GravityScaleWeighted.Low = GravityScaleWeighted.High = GravityScale_DEPRECATED;
}
if (GravityOverride_DEPRECATED != UE::Chaos::ClothAsset::FDefaultSolver::Gravity)
{
GravityOverrideImported.ImportedValue = GravityOverride_DEPRECATED;
GravityOverride_DEPRECATED = UE::Chaos::ClothAsset::FDefaultSolver::Gravity;
}
#endif
}
}