53 lines
2.0 KiB
C++
53 lines
2.0 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "Dataflow/DataflowNode.h"
|
|
#include "GeometryCollection/ManagedArrayCollection.h"
|
|
#include "SelectionNode.h"
|
|
#include "ProceduralSelectionNode.generated.h"
|
|
|
|
/** Type of procedural selection */
|
|
UENUM()
|
|
enum class EChaosClothAssetProceduralSelectionType : uint8
|
|
{
|
|
SelectAll /*Select all elements within the selected Group*/,
|
|
Conversion /*Convert an existing selection set to Group (if supported)*/
|
|
};
|
|
|
|
/** Procedurally generate a Cloth Selection set. */
|
|
USTRUCT(Meta = (DataflowCloth))
|
|
struct FChaosClothAssetProceduralSelectionNode : public FDataflowNode
|
|
{
|
|
GENERATED_USTRUCT_BODY()
|
|
DATAFLOW_NODE_DEFINE_INTERNAL(FChaosClothAssetProceduralSelectionNode, "ProceduralSelection", "Cloth", "Cloth Procedural Selection")
|
|
DATAFLOW_NODE_RENDER_TYPE("SurfaceRender", FName("FClothCollection"), "Collection")
|
|
|
|
public:
|
|
|
|
FChaosClothAssetProceduralSelectionNode(const UE::Dataflow::FNodeParameters& InParam, FGuid InGuid = FGuid::NewGuid());
|
|
|
|
private:
|
|
|
|
UPROPERTY(Meta = (Dataflowinput, DataflowOutput, DataflowPassthrough = "Collection"))
|
|
FManagedArrayCollection Collection;
|
|
|
|
/** The name to be use as a selection. */
|
|
UPROPERTY(EditAnywhere, Category = "Procedural Selection", Meta = (DataflowOutput))
|
|
FString OutputName;
|
|
|
|
/** The type of element the selection refers to */
|
|
UPROPERTY(EditAnywhere, Category = "Procedural Selection")
|
|
FChaosClothAssetNodeSelectionGroup Group;
|
|
|
|
/** The procedural selection method */
|
|
UPROPERTY(EditAnywhere, Category = "Procedural Selection")
|
|
EChaosClothAssetProceduralSelectionType SelectionType = EChaosClothAssetProceduralSelectionType::SelectAll;
|
|
|
|
/** Selection set to convert from when using Conversion selection type. */
|
|
UPROPERTY(EditAnywhere, Category = "Procedural Selection", Meta = (Dataflowinput, EditCondition = "SelectionType == EChaosClothAssetProceduralSelectionType::Conversion"))
|
|
FChaosClothAssetConnectableIStringValue ConversionInputName;
|
|
|
|
virtual void Evaluate(UE::Dataflow::FContext& Context, const FDataflowOutput* Out) const override;
|
|
};
|