Updated
This commit is contained in:
74
Source/FLESHEditor/Public/FLESHGraph/FLESHGraph.h
Normal file
74
Source/FLESHEditor/Public/FLESHGraph/FLESHGraph.h
Normal file
@@ -0,0 +1,74 @@
|
||||
#pragma once
|
||||
|
||||
#include "CoreMinimal.h"
|
||||
#include "UObject/NoExportTypes.h"
|
||||
#include "FLESHGraph.generated.h"
|
||||
|
||||
class UFLESHGraphNode;
|
||||
|
||||
/**
|
||||
* FLESH graph class
|
||||
* Manages nodes in the FLESH editor
|
||||
*/
|
||||
UCLASS(BlueprintType)
|
||||
class FLESHEDITOR_API UFLESHGraph : public UObject
|
||||
{
|
||||
GENERATED_BODY()
|
||||
|
||||
public:
|
||||
// Constructor
|
||||
UFLESHGraph();
|
||||
|
||||
// Initialize graph
|
||||
UFUNCTION(BlueprintCallable, Category = "FLESH")
|
||||
void Initialize();
|
||||
|
||||
// Add node
|
||||
UFUNCTION(BlueprintCallable, Category = "FLESH")
|
||||
UFLESHGraphNode* AddNode(TSubclassOf<UFLESHGraphNode> NodeClass, const FVector2D& Position);
|
||||
|
||||
// Remove node
|
||||
UFUNCTION(BlueprintCallable, Category = "FLESH")
|
||||
bool RemoveNode(UFLESHGraphNode* Node);
|
||||
|
||||
// Connect nodes
|
||||
UFUNCTION(BlueprintCallable, Category = "FLESH")
|
||||
bool ConnectNodes(UFLESHGraphNode* SourceNode, UFLESHGraphNode* TargetNode);
|
||||
|
||||
// Disconnect nodes
|
||||
UFUNCTION(BlueprintCallable, Category = "FLESH")
|
||||
bool DisconnectNodes(UFLESHGraphNode* SourceNode, UFLESHGraphNode* TargetNode);
|
||||
|
||||
// Get all nodes
|
||||
UFUNCTION(BlueprintCallable, Category = "FLESH")
|
||||
TArray<UFLESHGraphNode*> GetAllNodes() const;
|
||||
|
||||
// Get root node
|
||||
UFUNCTION(BlueprintCallable, Category = "FLESH")
|
||||
UFLESHGraphNode* GetRootNode() const;
|
||||
|
||||
// Set root node
|
||||
UFUNCTION(BlueprintCallable, Category = "FLESH")
|
||||
void SetRootNode(UFLESHGraphNode* InRootNode);
|
||||
|
||||
// Clear graph
|
||||
UFUNCTION(BlueprintCallable, Category = "FLESH")
|
||||
void ClearGraph();
|
||||
|
||||
// Save graph
|
||||
UFUNCTION(BlueprintCallable, Category = "FLESH")
|
||||
bool SaveGraph();
|
||||
|
||||
// Load graph
|
||||
UFUNCTION(BlueprintCallable, Category = "FLESH")
|
||||
bool LoadGraph();
|
||||
|
||||
private:
|
||||
// All nodes in the graph
|
||||
UPROPERTY()
|
||||
TArray<TObjectPtr<UFLESHGraphNode>> Nodes;
|
||||
|
||||
// Root node
|
||||
UPROPERTY()
|
||||
TObjectPtr<UFLESHGraphNode> RootNode;
|
||||
};
|
Reference in New Issue
Block a user