An implementation of the Cassowary constraint solving algorithm in Dart.
To use, import
- A member of a Constraint Expression that represent a constant at the time the Constraint is added to the solver.
- A relationship between two expressions (represented by Expression) that the Solver tries to hold true. In case of ambiguities, the Solver will use priorities to determine Constraint precedence. Once a Constraint is added to the Solver, this Priority cannot be changed.
- A member that can be used to construct an Expression that may be used to create a constraint. This is to facilitate the easy creation of constraints. The use of the operator overloads is completely optional and is only meant as a convenience. The Constraint expressions can be created by manually creating instance of Constraint variables, then terms and combining those to create expression.
- The representation of a linear Expression that can be used to create a constraint.
- A Param wraps a Variable and makes it suitable to be used in an expression.
- Utility functions for managing cassowary priorities. [...]
- Return values used by methods on the cassowary Solver.
- Solves cassowary constraints. [...]
- Represents a single term in an expression. This term contains a single indeterminate and has degree 1.
A Variable inside the layout Solver. It represents an indeterminate
in the Expression that is used to create the Constraint. If any entity
is interested in watching updates to the value of this indeterminate,
it can assign a watcher as the