X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2FMain.java;fp=src%2FMain.java;h=da616df66d77859ac43a00062c2a79f81e6eacc3;hb=c257689076da7472ec2aff9d5d940647715ecf08;hp=f598ac1ba84835c2a19e58af6e0b15022bc6652f;hpb=ae06bf5a432c0ac822e2fab6e977b299fb3d5cf3;p=anneal.git diff --git a/src/Main.java b/src/Main.java index f598ac1..da616df 100644 --- a/src/Main.java +++ b/src/Main.java @@ -11,7 +11,95 @@ public class Main implements GLEventListener { /** magnification factor */ private static final float MAG = 1; + Geom.V[] translations; + Geom.P[] points; + public Main(StlFile stlf) { + + Geom.P ltf = geom.newP(-0.2, 0.1, 0.1); + Geom.P mtf = geom.newP( 0.0, 0.1, 0.1); + Geom.P rtf = geom.newP( 0.2, 0.1, 0.1); + Geom.P ltn = geom.newP(-0.2, 0.1, -0.1); + Geom.P mtn = geom.newP( 0.0, 0.1, -0.1); + Geom.P rtn = geom.newP( 0.2, 0.1, -0.1); + Geom.P lbf = geom.newP(-0.2, -0.1, 0.1); + Geom.P mbf = geom.newP( 0.0, -0.1, 0.1); + Geom.P rbf = geom.newP( 0.2, -0.1, 0.1); + Geom.P lbn = geom.newP(-0.2, -0.1, -0.1); + Geom.P mbn = geom.newP( 0.0, -0.1, -0.1); + Geom.P rbn = geom.newP( 0.2, -0.1, -0.1); + + points = new Geom.P[] { + ltf, + mtf, + rtf, + ltn, + mtn, + rtn, + lbf, + mbf, + rbf, + lbn, + mbn, + rbn + }; + + translations = new Geom.V[] { + geom.new V(-0.2, 0.2, 0), + geom.new V( 0.2, 0.2, 0), + geom.new V(-0.2, -0.2, 0), + geom.new V( 0.2, -0.2, 0), + geom.new V( 0.4, 0, 0), + geom.new V(-0.4, 0, 0), + geom.new V( 0, 0, 0.2), + geom.new V( 0, 0, -0.2), + }; + + for(Geom.V v : translations) { + for(Geom.P p1 : points) { + for(Geom.P p2 : points) { + if (p1.plus(v).minus(p2).mag() < Geom.EPSILON) { + System.out.println("bind " + p1 + " to " + p2); + p1.bind(p2); + } + } + } + } + + // top + geom.newT(ltf, mtf, mtn); + geom.newT(mtn, ltn, ltf); + geom.newT(mtf, rtf, rtn); + geom.newT(rtn, mtn, mtf); + + // bottom (swap normals) + geom.newT(mbf, lbf, mbn); + geom.newT(lbn, mbn, lbf); + geom.newT(rbf, mbf, rbn); + geom.newT(mbn, rbn, mbf); + + // left + geom.newT(ltf, ltn, lbn); + geom.newT(lbn, lbf, ltf); + + // right (swap normals) + geom.newT(rtn, rtf, rbn); + geom.newT(rbf, rbn, rtf); + + // front + geom.newT(ltn, mtn, mbn); + geom.newT(ltn, mbn, lbn); + geom.newT(mtn, rtn, rbn); + geom.newT(mtn, rbn, mbn); + + // back + geom.newT(mtf, ltf, mbf); + geom.newT(mbf, ltf, lbf); + geom.newT(rtf, mtf, rbf); + geom.newT(rbf, mtf, mbf); + + + /* for(int i=0; i