Go to file
sam 2b23f2e562 Erase the leaving symbols, not the entering symbols in dualOptimize. Matches the Kiwi C++ implementation: 0989ff015f/kiwi/solverimpl.h (L615) 2016-02-01 19:03:24 +00:00
gradle/wrapper Initial commit 2015-01-31 13:12:57 +01:00
src Erase the leaving symbols, not the entering symbols in dualOptimize. Matches the Kiwi C++ implementation: 0989ff015f/kiwi/solverimpl.h (L615) 2016-02-01 19:03:24 +00:00
.gitignore Initial commit 2015-01-31 13:12:57 +01:00
LICENSE Initial commit 2015-01-30 17:51:32 +01:00
README.md Update README.md 2016-01-31 20:42:13 +01:00
build.gradle Set sourceCompatibility and targetCompatibility to 1.7 2016-01-30 18:52:46 +01:00
gradlew Add missing gradlew script 2015-02-02 10:40:01 +01:00
gradlew.bat Initial commit 2015-01-31 13:12:57 +01:00
local.properties Initial commit 2015-01-31 13:12:57 +01:00
settings.gradle Initial commit 2015-01-31 13:12:57 +01:00

README.md

kiwi-java

A Java port of the Kiwi C++ implementation of the Cassowary constraint solving algorithm

Background

This project was created by porting Kiwi line for line to Java. The objective is to create a faster Java implementation of the Cassowary constraint solving algorithm.

History

The initial porting work was done in a weekend in at the end of January 2015 by Alex Birkett without a deep understanding of the Cassowary algorithm. At that time, the tests ported from the java cassowary project, did not pass. The project was forgotten about until early 2016 when yonsunCN found it and fixed it.

As of January 2016, the testes ported from java cassowary project now pass.

Contributors

Example usage

    Solver solver = new Solver();
    Variable x = new Variable("x");
    Variable y = new Variable("y");

    // x = 20
    solver.addConstraint(Symbolics.equals(x, 20));

    // x + 2 == y + 10
    solver.addConstraint(Symbolics.equals(Symbolics.add(x,2), Symbolics.add(y, 10)));

    solver.updateVariables();
    
    System.out.println("x " + x.getValue() + " y " + y.getValue());
    // x == 20
    // y == 12