ComboInput/Source/ComboInputEditor/Private/Layout/ComboActionGraphLayoutStrategy.h
2023-09-29 15:11:48 -04:00

43 lines
875 B
C++

// ©2023 Batty Bovine Productions, LLC. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "UObject/Object.h"
#include "ComboActionGraphLayoutStrategy.generated.h"
/**
*
*/
UCLASS(Abstract)
class COMBOINPUTEDITOR_API UComboActionGraphLayoutStrategy : public UObject
{
GENERATED_BODY()
public:
UComboActionGraphLayoutStrategy();
virtual void Layout(UEdGraph *G) {};
UComboActionGraphEditorSettings *Settings;
protected:
int32 GetNodeWidth(UEdComboActionGraphNode *EdNode);
int32 GetNodeHeight(UEdComboActionGraphNode *EdNode);
FBox2D GetNodeBound(UEdGraphNode *EdNode);
FBox2D GetActualBounds(UComboActionGraphNode *RootNode);
virtual void RandomLayoutOneTree(UComboActionGraphNode *RootNode, const FBox2D &Bound);
protected:
UComboActionGraph *Graph;
UEdComboActionGraph *EdGraph;
int32 MaxIteration;
int32 OptimalDistance;
};