添加 Source/FLESHEditor/Public/VisceraNodeObject.h
This commit is contained in:
113
Source/FLESHEditor/Public/VisceraNodeObject.h
Normal file
113
Source/FLESHEditor/Public/VisceraNodeObject.h
Normal file
@@ -0,0 +1,113 @@
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "UObject/NoExportTypes.h"
|
||||
#include "VisceraNodeObject.generated.h"
|
||||
|
||||
// Forward declarations
|
||||
struct FVisceraNodeItem;
|
||||
|
||||
/**
|
||||
* Object representing a viscera node for property editing
|
||||
*/
|
||||
UCLASS()
|
||||
class FLESHEDITOR_API UVisceraNodeObject : public UObject
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
UVisceraNodeObject();
|
||||
|
||||
// Initialize from a node item
|
||||
void InitFromNodeItem(TSharedPtr<FVisceraNodeItem> InNodeItem);
|
||||
|
||||
// Apply changes back to the node item
|
||||
void ApplyToNodeItem(TSharedPtr<FVisceraNodeItem> InNodeItem);
|
||||
|
||||
// Node type
|
||||
UPROPERTY(VisibleAnywhere, Category = "Node")
|
||||
FString NodeType;
|
||||
|
||||
// Node name
|
||||
UPROPERTY(EditAnywhere, Category = "Node")
|
||||
FName NodeName;
|
||||
|
||||
// Display name
|
||||
UPROPERTY(EditAnywhere, Category = "Node")
|
||||
FString DisplayName;
|
||||
|
||||
// SoftBody properties
|
||||
UPROPERTY(EditAnywhere, Category = "SoftBody", meta = (EditCondition = "NodeType == \"SoftBody\"", EditConditionHides))
|
||||
bool bEnableSimulation;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category = "SoftBody", meta = (EditCondition = "NodeType == \"SoftBody\"", EditConditionHides, ClampMin = "0.0", ClampMax = "10.0"))
|
||||
float GravityStrength;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category = "SoftBody", meta = (EditCondition = "NodeType == \"SoftBody\"", EditConditionHides, ClampMin = "0.0", ClampMax = "1000.0"))
|
||||
float MinFrameSpeed;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category = "SoftBody", meta = (EditCondition = "NodeType == \"SoftBody\"", EditConditionHides, ClampMin = "0.0", ClampMax = "1000.0"))
|
||||
float MaxFrameSpeed;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category = "SoftBody", meta = (EditCondition = "NodeType == \"SoftBody\"", EditConditionHides, ClampMin = "0.0", ClampMax = "1.0"))
|
||||
float ExternalFrameLerp;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category = "SoftBody", meta = (EditCondition = "NodeType == \"SoftBody\"", EditConditionHides, ClampMin = "0.0", ClampMax = "1.0"))
|
||||
float InitialGPUInfluence;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category = "SoftBody", meta = (EditCondition = "NodeType == \"SoftBody\"", EditConditionHides, ClampMin = "0.0", ClampMax = "0.1"))
|
||||
float SubstepTime;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category = "SoftBody", meta = (EditCondition = "NodeType == \"SoftBody\"", EditConditionHides, ClampMin = "1", ClampMax = "10"))
|
||||
int32 SolverIterations;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category = "SoftBody", meta = (EditCondition = "NodeType == \"SoftBody\"", EditConditionHides))
|
||||
bool bRecomputeNormals;
|
||||
|
||||
// Anchor properties
|
||||
UPROPERTY(EditAnywhere, Category = "Anchor", meta = (EditCondition = "NodeType == \"Anchor\"", EditConditionHides))
|
||||
FVector AnchorLocation;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category = "Anchor", meta = (EditCondition = "NodeType == \"Anchor\"", EditConditionHides, ClampMin = "0.1", ClampMax = "100.0"))
|
||||
float AnchorRadius;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category = "Anchor", meta = (EditCondition = "NodeType == \"Anchor\"", EditConditionHides, ClampMin = "0.0", ClampMax = "1.0"))
|
||||
float AnchorStiffness;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category = "Anchor", meta = (EditCondition = "NodeType == \"Anchor\"", EditConditionHides))
|
||||
FName AnchorBoneName;
|
||||
|
||||
// LineChain properties
|
||||
UPROPERTY(EditAnywhere, Category = "LineChain", meta = (EditCondition = "NodeType == \"LineChain\"", EditConditionHides, ClampMin = "0.0", ClampMax = "1.0"))
|
||||
float LineChainStiffness;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category = "LineChain", meta = (EditCondition = "NodeType == \"LineChain\"", EditConditionHides, ClampMin = "0.1", ClampMax = "10.0"))
|
||||
float LineChainThickness;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category = "LineChain", meta = (EditCondition = "NodeType == \"LineChain\"", EditConditionHides))
|
||||
TArray<FVector> LineChainPoints;
|
||||
|
||||
// Tetra properties
|
||||
UPROPERTY(EditAnywhere, Category = "Tetra", meta = (EditCondition = "NodeType == \"Tetra\"", EditConditionHides, ClampMin = "0.0", ClampMax = "1.0"))
|
||||
float TetraStiffness;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category = "Tetra", meta = (EditCondition = "NodeType == \"Tetra\"", EditConditionHides))
|
||||
TArray<FVector> TetraPoints;
|
||||
|
||||
// Plane properties
|
||||
UPROPERTY(EditAnywhere, Category = "Plane", meta = (EditCondition = "NodeType == \"Plane\"", EditConditionHides))
|
||||
FVector PlaneLocation;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category = "Plane", meta = (EditCondition = "NodeType == \"Plane\"", EditConditionHides))
|
||||
FVector PlaneNormal;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category = "Plane", meta = (EditCondition = "NodeType == \"Plane\"", EditConditionHides, ClampMin = "0.0", ClampMax = "1.0"))
|
||||
float PlaneStiffness;
|
||||
|
||||
// Cutting properties
|
||||
UPROPERTY(EditAnywhere, Category = "Cutting", meta = (EditCondition = "NodeType == \"SoftBody\"", EditConditionHides))
|
||||
bool bEnableMultiLayerCutting;
|
||||
|
||||
UPROPERTY(EditAnywhere, Category = "Cutting", meta = (EditCondition = "NodeType == \"SoftBody\" && bEnableMultiLayerCutting", EditConditionHides))
|
||||
ECapMeshMethod CapMethod;
|
||||
};
|
Reference in New Issue
Block a user