43 lines
875 B
C++
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;
|
|
};
|