goal.ignorecollision = true;
// rotate to align major axis -- this probably needs to be done by a human.
- goal.transform(new Matrix(new Vec(0, 0, 1), (float)(Math.PI/2)));
+ goal.transform(Matrix.rotate(new Vec(0, 0, 1), (float)(Math.PI/2)));
float goal_width = goal.diagonal().dot(new Vec(1, 0, 0));
float goal_height = goal.diagonal().dot(new Vec(0, 1, 0));
translations = new Matrix[] {
- new Matrix(new Vec(lshift, depth, halfup)),
- new Matrix(new Vec(rshift, depth, halfup)),
- new Matrix(new Vec(lshift, -depth, halfup)),
- new Matrix(new Vec(rshift, -depth, halfup)),
+ Matrix.translate(new Vec(lshift, depth, halfup)),
+ Matrix.translate(new Vec(rshift, depth, halfup)),
+ Matrix.translate(new Vec(lshift, -depth, halfup)),
+ Matrix.translate(new Vec(rshift, -depth, halfup)),
/*
- new Matrix(new Vec(0, depth, halfup)),
- new Matrix(new Vec(0, -depth, halfup)),
+ Matrix.translate(new Vec(0, depth, halfup)),
+ Matrix.translate(new Vec(0, -depth, halfup)),
*/
- new Matrix(new Vec(lshift, 0, height)),
- new Matrix(new Vec(rshift, 0, height)),
- new Matrix(new Vec(lshift, 0, -height)),
- new Matrix(new Vec(rshift, 0, -height)),
+ Matrix.translate(new Vec(lshift, 0, height)),
+ Matrix.translate(new Vec(rshift, 0, height)),
+ Matrix.translate(new Vec(lshift, 0, -height)),
+ Matrix.translate(new Vec(rshift, 0, -height)),
- new Matrix(new Vec( width, 0, 0)),
- new Matrix(new Vec(-width, 0, 0)),
+ Matrix.translate(new Vec( width, 0, 0)),
+ Matrix.translate(new Vec(-width, 0, 0)),
};
// rescale to match volume
float factor = (float)Math.pow(tile.volume() / goal.volume(), 1.0/3.0);
- goal.transform(new Matrix(factor));
+ goal.transform(Matrix.scale(factor));
// translate to match centroid
- goal.transform(new Matrix(tile.centroid().minus(goal.centroid())));
+ goal.transform(Matrix.translate(tile.centroid().minus(goal.centroid())));
//tx.e2.shatter();
//tx.e3.shatter();
System.out.println("temp="+temp + " ratio="+(Math.ceil(ratio*100)) + " " +
"points_per_second=" +
(count*1000)/((double)(System.currentTimeMillis()-then)));
- tile.rebuildPointSet();
+ tile.rebuild();
repaint();
//breakit();
repaint();