A Swift port of the Cassowary linear constraint solver
Switch branches/tags
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Sources/Cassowary
Tests
scripts
sourcery
.gitignore Initial commit Aug 17, 2017
.swift-version
.travis.yml
Cassowary.podspec
LICENSE
Package.swift
README.md
genLinuxTestMain.sh

README.md

Cassowary Swift

Build Status

A Swift port of the Cassowary linear constraints solver. Tested on OS X, iOS and Linux.

Example usage

let solver = Solver()

let left =  Variable("left")
let mid =   Variable("mid")
let right = Variable("right")

try solver.addConstraint(mid == (left + right) / 2)
try solver.addConstraint(right == left + 10)
try solver.addConstraint(right <= 100)
try solver.addConstraint(left >= 0)

solver.updateVariables()

// left.value is now 90.0
// mid.value is now 95.0
// right.value is now 100.0

try solver.addEditVariable(variable: mid, strength: Strength.STRONG)
try solver.suggestValue(variable: mid, value: 2)

solver.updateVariables()

// left.value is now 0.0
// mid.value is now 5.0
// right.value is now 10.0

Documentation

Documentation can be found on CocoaDocs

Acknowledgements

Cassowary Swift originally started as a direct port of kiwi-java by Alex Birkett