using UnityEngine;
namespace Flexalon
{
/// A layout determines how the children of a node are positioned.
public interface Layout
{
/// Perform minimal work to determine what the size of node and available size for node's children.
Bounds Measure(FlexalonNode node, Vector3 size, Vector3 min, Vector3 max);
/// Position the children of node within the available bounds.
void Arrange(FlexalonNode node, Vector3 layoutSize);
}
/// A constraint runs whenever a target layout is updated.
public interface Constraint
{
GameObject Target { get; }
void Constrain(FlexalonNode node);
}
}