import javax.media.opengl.*;
import javax.media.opengl.glu.*;
import java.util.*;
+import static edu.berkeley.qfat.Geom.*;
// FIXME: recenter goal to have centroid coincident with tile
// FIXME: re-orient goal (how?)
boolean control = false;
public void mouseWheelMoved(MouseWheelEvent e) {
- tz -= e.getWheelRotation() ;
+ tz -= e.getWheelRotation();
}
public void keyTyped(KeyEvent e) { }
private static final float MAG = 1;
Geom.M[] translations;
- Geom.V[] points;
+ Geom.Vert[] points;
public Main(StlFile stlf) {
for(int i=0; i<stlf.coordArray.length; i+=3) {
- Geom.V p0 = goal.register(new Geom.P(stlf.coordArray[i+0].x * MAG, stlf.coordArray[i+0].y * MAG, stlf.coordArray[i+0].z * MAG));
- Geom.V p1 = goal.register(new Geom.P(stlf.coordArray[i+1].x * MAG, stlf.coordArray[i+1].y * MAG, stlf.coordArray[i+1].z * MAG));
- Geom.V p2 = goal.register(new Geom.P(stlf.coordArray[i+2].x * MAG, stlf.coordArray[i+2].y * MAG, stlf.coordArray[i+2].z * MAG));
+ Geom.Vert p0 = goal.register(new Geom.Point(stlf.coordArray[i+0].x * MAG, stlf.coordArray[i+0].y * MAG, stlf.coordArray[i+0].z * MAG));
+ Geom.Vert p1 = goal.register(new Geom.Point(stlf.coordArray[i+1].x * MAG, stlf.coordArray[i+1].y * MAG, stlf.coordArray[i+1].z * MAG));
+ Geom.Vert p2 = goal.register(new Geom.Point(stlf.coordArray[i+2].x * MAG, stlf.coordArray[i+2].y * MAG, stlf.coordArray[i+2].z * MAG));
Geom.Vec n = new Geom.Vec(stlf.normArray[i/3].x * MAG, stlf.normArray[i/3].y * MAG, stlf.normArray[i/3].z * MAG);
Geom.T t = goal.newT(p0, p1, p2, n);
}
};
- Geom.V ltf = tile.register(new Geom.P(-(width/2), (height/2), (depth/2)));
- Geom.V mtf = tile.register(new Geom.P( 0.0, (height/2), (depth/2)));
- Geom.V rtf = tile.register(new Geom.P( (width/2), (height/2), (depth/2)));
- Geom.V ltn = tile.register(new Geom.P(-(width/2), (height/2), -(depth/2)));
- Geom.V mtn = tile.register(new Geom.P( 0.0, (height/2), -(depth/2)));
- Geom.V rtn = tile.register(new Geom.P( (width/2), (height/2), -(depth/2)));
- Geom.V lbf = tile.register(new Geom.P(-(width/2), -(height/2), (depth/2)));
- Geom.V mbf = tile.register(new Geom.P( 0.0, -(height/2), (depth/2)));
- Geom.V rbf = tile.register(new Geom.P( (width/2), -(height/2), (depth/2)));
- Geom.V lbn = tile.register(new Geom.P(-(width/2), -(height/2), -(depth/2)));
- Geom.V mbn = tile.register(new Geom.P( 0.0, -(height/2), -(depth/2)));
- Geom.V rbn = tile.register(new Geom.P( (width/2), -(height/2), -(depth/2)));
+ Geom.Vert ltf = tile.register(new Geom.Point(-(width/2), (height/2), (depth/2)));
+ Geom.Vert mtf = tile.register(new Geom.Point( 0.0, (height/2), (depth/2)));
+ Geom.Vert rtf = tile.register(new Geom.Point( (width/2), (height/2), (depth/2)));
+ Geom.Vert ltn = tile.register(new Geom.Point(-(width/2), (height/2), -(depth/2)));
+ Geom.Vert mtn = tile.register(new Geom.Point( 0.0, (height/2), -(depth/2)));
+ Geom.Vert rtn = tile.register(new Geom.Point( (width/2), (height/2), -(depth/2)));
+ Geom.Vert lbf = tile.register(new Geom.Point(-(width/2), -(height/2), (depth/2)));
+ Geom.Vert mbf = tile.register(new Geom.Point( 0.0, -(height/2), (depth/2)));
+ Geom.Vert rbf = tile.register(new Geom.Point( (width/2), -(height/2), (depth/2)));
+ Geom.Vert lbn = tile.register(new Geom.Point(-(width/2), -(height/2), -(depth/2)));
+ Geom.Vert mbn = tile.register(new Geom.Point( 0.0, -(height/2), -(depth/2)));
+ Geom.Vert rbn = tile.register(new Geom.Point( (width/2), -(height/2), -(depth/2)));
- points = new Geom.V[] {
+ points = new Geom.Vert[] {
ltf,
mtf,
rtf,
}
}
- //xGeom.V mid = lbf.getE(mbn).shatter();
+ //xGeom.Vert mid = lbf.getE(mbn).shatter();
// rescale to match volume
float factor = (float)Math.pow(tile.volume() / goal.volume(), 1.0/3.0);
}
}
- public synchronized void rand(double temperature, Geom.V p) {
+ public synchronized void rand(double temperature, Geom.Vert p) {
double tile_score = tile.score();
double goal_score = goal.score();
//if (v1.z==0 && v1.y==0) continue;
i++;
if (i != 1 /*&& i!=4*/) continue;
- Geom.P p = new Geom.P(0, 0, 0).times(m);
+ Geom.Point p = new Geom.Point(0, 0, 0).times(m);
Geom.Vec v = new Geom.Vec(p.x, p.y, p.z);
v = v.times((float)1.04);
gl.glTranslatef(v.x, v.y, v.z);
gl.glEnd();
}
- Geom.P centroid = t.centroid();
+ Geom.Point centroid = t.centroid();
gl.glBegin(GL.GL_LINES);
gl.glColor3f(1, 1, 1);
/*
*/
if (mesh==goal)
- for(Geom.V p : new Geom.V[] { t.p1(), t.p2(), t.p3() }) {
+ for(Geom.Vert p : new Geom.Vert[] { t.p1(), t.p2(), t.p3() }) {
p.p.glVertex(gl);
//p.plus(p.norm().times(p.score()*10)).glVertex(gl);
p.partner().p.glVertex(gl);
glcanvas.repaint();
//tile.ts.get(Math.abs(random.nextInt()) % tile.ts.size()).e1().p1
for(Geom.T t : tile)
- for(Geom.V p : new Geom.V[] { t.p1(), t.p2(), t.p3() }) {
+ for(Geom.Vert p : new Geom.Vert[] { t.p1(), t.p2(), t.p3() }) {
rand(10,p);
}
goal.rescore();