93 lines
5.9 KiB
C++
93 lines
5.9 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "ChaosClothAsset/SimulationBaseConfigNode.h"
|
|
#include "ChaosClothAsset/WeightedValue.h"
|
|
#include "ChaosClothAsset/SimulationConfigNodePropertyTypes.h"
|
|
#include "SimulationStretchOverrideConfigNode.generated.h"
|
|
|
|
/** Stretching constraint property override configuration node. */
|
|
USTRUCT(Meta = (DataflowCloth, Experimental))
|
|
struct FChaosClothAssetSimulationStretchOverrideConfigNode : public FChaosClothAssetSimulationBaseConfigNode
|
|
{
|
|
GENERATED_USTRUCT_BODY()
|
|
DATAFLOW_NODE_DEFINE_INTERNAL(FChaosClothAssetSimulationStretchOverrideConfigNode, "SimulationStretchOverrideConfig", "Cloth", "Cloth Simulation Stretching Override Config")
|
|
|
|
public:
|
|
|
|
/** Enable overriding Stretch Use 3d Rest Lengths */
|
|
UPROPERTY(EditAnywhere, Category = "Stretch Override", meta = (InlineEditConditionToggle))
|
|
bool bOverrideStretchUse3dRestLengths = false;
|
|
|
|
/** Whether to use the 3D draped space as rest lengths, or use the 2D pattern space instead. */
|
|
UPROPERTY(EditAnywhere, Category = "Stretch Override", meta = (EditCondition = "bOverrideStretchUse3dRestLengths"))
|
|
bool bStretchUse3dRestLengths = true;
|
|
|
|
/** Stretch stiffness override type.*/
|
|
UPROPERTY(EditAnywhere, Category = "Stretch Override")
|
|
EChaosClothAssetConstraintOverrideType OverrideStretchStiffness = EChaosClothAssetConstraintOverrideType::None;
|
|
|
|
/** Stretch stiffness override value.*/
|
|
UPROPERTY(EditAnywhere, Category = "Stretch Override", meta = (ClampMin = "0", EditCondition = "OverrideStretchStiffness != EChaosClothAssetConstraintOverrideType::None", EditConditionHides))
|
|
FChaosClothAssetWeightedValueOverride StretchStiffness;
|
|
|
|
/** Whether or not to apply the Stretch Stiffness Override to warp, weft, and bias stiffnesses of anisotropic springs.*/
|
|
UPROPERTY(EditAnywhere, Category = "Stretch Override", meta = (EditCondition = "OverrideStretchStiffness != EChaosClothAssetConstraintOverrideType::None", EditConditionHides))
|
|
bool bApplyUniformStretchStiffnessOverride = true;
|
|
|
|
/** Warp stiffness override type.*/
|
|
UPROPERTY(EditAnywhere, Category = "Stretch Override", meta = (EditCondition = "OverrideStretchStiffness == EChaosClothAssetConstraintOverrideType::None || !bApplyUniformStretchStiffnessOverride", EditConditionHides))
|
|
EChaosClothAssetConstraintOverrideType OverrideStretchStiffnessWarp = EChaosClothAssetConstraintOverrideType::None;
|
|
|
|
/** Stretch stiffness warp override value.*/
|
|
UPROPERTY(EditAnywhere, Category = "Stretch Override", meta = (ClampMin = "0", EditCondition = "(OverrideStretchStiffness == EChaosClothAssetConstraintOverrideType::None || !bApplyUniformStretchStiffnessOverride) && OverrideStretchStiffnessWarp != EChaosClothAssetConstraintOverrideType::None", EditConditionHides))
|
|
FChaosClothAssetWeightedValueOverride StretchStiffnessWarp;
|
|
|
|
/** Weft stiffness override type.*/
|
|
UPROPERTY(EditAnywhere, Category = "Stretch Override", meta = (EditCondition = "OverrideStretchStiffness == EChaosClothAssetConstraintOverrideType::None || !bApplyUniformStretchStiffnessOverride", EditConditionHides))
|
|
EChaosClothAssetConstraintOverrideType OverrideStretchStiffnessWeft = EChaosClothAssetConstraintOverrideType::None;
|
|
|
|
/** Stretch stiffness weft override value.*/
|
|
UPROPERTY(EditAnywhere, Category = "Stretch Override", meta = (ClampMin = "0", EditCondition = "(OverrideStretchStiffness == EChaosClothAssetConstraintOverrideType::None || !bApplyUniformStretchStiffnessOverride) && OverrideStretchStiffnessWeft != EChaosClothAssetConstraintOverrideType::None", EditConditionHides))
|
|
FChaosClothAssetWeightedValueOverride StretchStiffnessWeft;
|
|
|
|
/** Bias stiffness override type.*/
|
|
UPROPERTY(EditAnywhere, Category = "Stretch Override", meta = (EditCondition = "OverrideStretchStiffness == EChaosClothAssetConstraintOverrideType::None || !bApplyUniformStretchStiffnessOverride", EditConditionHides))
|
|
EChaosClothAssetConstraintOverrideType OverrideStretchStiffnessBias = EChaosClothAssetConstraintOverrideType::None;
|
|
|
|
/** Stretch stiffness bias override value.*/
|
|
UPROPERTY(EditAnywhere, Category = "Stretch Override", meta = (ClampMin = "0", EditCondition = "(OverrideStretchStiffness == EChaosClothAssetConstraintOverrideType::None || !bApplyUniformStretchStiffnessOverride) && OverrideStretchStiffnessBias != EChaosClothAssetConstraintOverrideType::None", EditConditionHides))
|
|
FChaosClothAssetWeightedValueOverride StretchStiffnessBias;
|
|
|
|
/** Damping override type.*/
|
|
UPROPERTY(EditAnywhere, Category = "Stretch Override")
|
|
EChaosClothAssetConstraintOverrideType OverrideStretchDamping = EChaosClothAssetConstraintOverrideType::None;
|
|
|
|
/** Stretch damping override value.*/
|
|
UPROPERTY(EditAnywhere, Category = "Stretch Override", meta = (ClampMin = "0", EditCondition = "OverrideStretchDamping != EChaosClothAssetConstraintOverrideType::None", EditConditionHides))
|
|
FChaosClothAssetWeightedValueOverride StretchDamping;
|
|
|
|
/** Warp scale override type.*/
|
|
UPROPERTY(EditAnywhere, Category = "Stretch Override")
|
|
EChaosClothAssetConstraintOverrideType OverrideWarpScale = EChaosClothAssetConstraintOverrideType::None;
|
|
|
|
/** Stretch damping override value.*/
|
|
UPROPERTY(EditAnywhere, Category = "Stretch Override", meta = (ClampMin = "0", EditCondition = "OverrideWarpScale != EChaosClothAssetConstraintOverrideType::None", EditConditionHides))
|
|
FChaosClothAssetWeightedValueOverride WarpScale;
|
|
|
|
/** Weft scale override type.*/
|
|
UPROPERTY(EditAnywhere, Category = "Stretch Override")
|
|
EChaosClothAssetConstraintOverrideType OverrideWeftScale = EChaosClothAssetConstraintOverrideType::None;
|
|
|
|
/** Stretch damping override value.*/
|
|
UPROPERTY(EditAnywhere, Category = "Stretch Override", meta = (ClampMin = "0", EditCondition = "OverrideWeftScale != EChaosClothAssetConstraintOverrideType::None", EditConditionHides))
|
|
FChaosClothAssetWeightedValueOverride WeftScale;
|
|
|
|
|
|
FChaosClothAssetSimulationStretchOverrideConfigNode(const UE::Dataflow::FNodeParameters& InParam, FGuid InGuid = FGuid::NewGuid());
|
|
|
|
private:
|
|
virtual void AddProperties(FPropertyHelper& PropertyHelper) const override;
|
|
};
|