Skip to content

tribalworldwidelondon/CassowarySwift

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

About

A Swift port of the Cassowary linear constraint solver

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages