import edu.berkeley.qfat.geom.Point;
import edu.berkeley.qfat.geom.Polygon;
+/*
+
+
+Todo
+- review catmull-clark; move vertex points?
+- re-anneal fish
+
+- show constraints (?)
+- show in red if user tries to move a point to an illegal location
+
+- eliminate use of bindinggroupschanged()
+
+- post qfat on my software page
+
+
+With Sequin
+- constraints admit intersections (lattice)
+- constraints may be transformed linearly
+
+
+
+
+Log console
+ - blend-shaded overlay? slick.
+
+face/vertex count
+rendering FPS
+ability to not draw edges between faces
+
+
+three circumcircles showing crystal ball -- these don't get scaled
+axes?
+
+drawing modes:
+ - bounding box
+ - vertices
+ - edges
+ - visible-edges
+ - flat with or without edges
+ - shaded with or without edges
+ * contrasting-faces
+
+
+quadric decimation?
+
+show normals
+show bounding box
+show axes (big+fat)
+ */
+
// TO DO:
//
// - Ability to snap three views to orthgonal
transforms = new Matrix[] {
- //Matrix.rotate(new Vec(1,0,0), (float)Math.PI),
- //Matrix.reflect(new Vec(1,0,0)),
+ //Matrix.reflect(new Vec( 0, height, -z).norm()),
Matrix.translate(new Vec(-unit, 0, 0)),
Matrix.translate(new Vec( unit, 0, 0)),
transforms = new Matrix[] {
Matrix.reflect(new Vec( 0, height, -z).norm()),
//Matrix.reflect(new Vec( 0, -height, z)),
- Matrix.ONE
+ Matrix.ONE,
+ Matrix.translate(new Vec(-unit, 0, 0)),
+ Matrix.translate(new Vec( unit, 0, 0)),
+ /*
+ Matrix.translate(new Vec(-cos, 0, sin)),
+ Matrix.translate(new Vec( cos, 0, sin)),
+ Matrix.translate(new Vec(-cos, 0, -sin)),
+ Matrix.translate(new Vec( cos, 0, -sin)),
+
+ Matrix.translate(new Vec( 0, height, -z)),
+ Matrix.translate(new Vec(-r, height, x)),
+ Matrix.translate(new Vec( r, height, x)),
+ Matrix.translate(new Vec( 0, -height, z)),
+ Matrix.translate(new Vec(-r, -height, -x)),
+ Matrix.translate(new Vec( r, -height, -x)),
+ */
};
+
//for(int i=0; i<transforms.length; i++) transforms[i] = Matrix.translate(m.times(vecs[i]));
- /*
+
Matrix m = Matrix.scale(1.9f, 1f ,1);
//Matrix m = Matrix.scale(1f, 2.1f, 1f);
tile.transform(m);
for(int i=0; i<transforms.length; i++)
transforms[i] = preMultiplyTranslationalComponentBy(transforms[i], m);
- */
+
fixupTile();
// Finally, add all the menus to the menu bar.
add(tileMenu);
- add(goalMenu);
- add(hideMenu);
+ //add(goalMenu);
+ //add(hideMenu);
}
}
f.setLayout(new BorderLayout());
Main main = new Main(f);
f.add(main, BorderLayout.CENTER);
- f.setJMenuBar(main.new MyMenuBar());
+
+ f.addWindowListener(new WindowListener() {
+ public void windowActivated(WindowEvent e) { }
+ public void windowClosed(WindowEvent e) { System.exit(0); }
+ public void windowClosing(WindowEvent e) { System.exit(0); }
+ public void windowDeactivated(WindowEvent e) { }
+ public void windowDeiconified(WindowEvent e) { }
+ public void windowIconified(WindowEvent e) { }
+ public void windowOpened(WindowEvent e) { }
+ });
+
f.pack();
f.show();
f.setSize(900, 900);
f.doLayout();
+
+ JFrame f2 = new JFrame();
+ f2.setJMenuBar(main.new MyMenuBar());
+ f2.setSize(100,100);
+ f2.show();
+
main.anneal();
}