You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Shadowfacts 1cbaea53d2
Allow Constraint list to be accessed
2 years ago
gradle/wrapper Initial commit 7 years ago
src Allow Constraint list to be accessed 2 years ago
.gitignore Add ExpressionConvertible 3 years ago
.travis.yml Add .travis 6 years ago
LICENSE Initial commit 7 years ago
README.md Update README.md 6 years ago
build.gradle Add ExpressionConvertible 3 years ago
gradlew Add missing gradlew script 7 years ago
gradlew.bat Initial commit 7 years ago
settings.gradle Add ExpressionConvertible 3 years ago

README.md

kiwi-java

Build Status

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

Links