// All rights reserved Dominik Pavlicek 2023

#pragma once

#include "CoreMinimal.h"
#include "Layout/ComboActionGraphLayoutStrategy.h"
#include "UObject/Object.h"

#include "ComboActionForceDirectedSolveLayoutStrategy.generated.h"

/**
 * 
 */
UCLASS()
class COMBOINPUTEDITOR_API UComboActionForceDirectedSolveLayoutStrategy : public UComboActionGraphLayoutStrategy
{
	GENERATED_BODY()

	UComboActionForceDirectedSolveLayoutStrategy();
	
	virtual void Layout(UEdGraph *EdGraph) override;

protected:
	virtual FBox2D LayoutOneTree(UComboActionGraphNode* RootNode, const FBox2D &PreTreeBound);

protected:
	bool bRandomInit;
	float InitTemperature;
	float CoolDownRate;
};
