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

34 lines
1010 B
C++

// ©2023 Batty Bovine Productions, LLC. All Rights Reserved.
#pragma once
#include "CoreMinimal.h"
#include "Layout/ComboActionGraphLayoutStrategy.h"
#include "ComboActionTreeSolveLayoutStrategy.generated.h"
/**
*
*/
UCLASS()
class COMBOINPUTEDITOR_API UComboActionTreeSolveLayoutStrategy : public UComboActionGraphLayoutStrategy
{
GENERATED_BODY()
virtual void Layout(UEdGraph *InEdGraph) override;
protected:
void InitPass(UComboActionGraphNode *RootNode, const FVector2D &Anchor);
bool ResolveConflictPass(UComboActionGraphNode *Node);
bool ResolveConflict(UComboActionGraphNode *LRoot, UComboActionGraphNode *RRoot);
void GetLeftContour(UComboActionGraphNode *RootNode, int32 Level, TArray<UEdComboActionGraphNode*>& Contour);
void GetRightContour(UComboActionGraphNode *RootNode, int32 Level, TArray<UEdComboActionGraphNode*>& Contour);
void ShiftSubTree(UComboActionGraphNode* RootNode, const FVector2D& Offset);
void UpdateParentNodePosition(UComboActionGraphNode* RootNode);
};