// (C) 2001 SyGem Software import java.awt.*; import java.applet.*; import com.sygem.jazz3d3.*; import com.sygem.jazz3d3.primitive.*; public class primitives extends Applet implements Runnable { Thread m_ce; World myWorld; int light1; int pid; int myx,myy,oldx,oldy=0; RenderSolid tex = new RenderSolid(); //Construct the applet public primitives() { } //Initialize the applet public void init() { myWorld = new World(this); setLayout(new BorderLayout()); add("Center",myWorld); Light l1 = new Light(0,0,1); myWorld.addLight(l1); } //Start the applet public void start() { if (m_ce == null) { m_ce = new Thread(this); m_ce.start(); } } //Stop the applet public void stop() { if (m_ce != null) { m_ce.stop(); m_ce = null; } } //Destroy the applet public void destroy() { } public void run() { int iCount = 0; long lTime0 = System.currentTimeMillis(); myWorld.prep(); int xx=0; while (true) { Triangle3d t = new Triangle3d(0,0,8); loop("Triangle3d",t); Quad3d q = new Quad3d(0,0,8); loop("Quad3d",q); Cube3d c = new Cube3d(0,0,8); loop("Cube3d",c); Checkerboard3d ch = new Checkerboard3d(6,6,0,0,8); loop("Checkerboard3d",ch); Cylinder3d cy = new Cylinder3d(15,0,0,8); loop("Cylinder3d",cy); Hemisphere3d h = new Hemisphere3d(15,15,0,0,8); loop("Hemisphere3d",h); Pyramid3d p = new Pyramid3d(15,0,0,8); loop("Pyramid3d",p); Sphere3d s = new Sphere3d(15,15,0,0,8); loop("Sphere3d",s); Torus3d to = new Torus3d(0.5,0.2,0.2,15,15,0,0,8); loop("Torus3d",to); double[][] data = new double[10][2]; data[0][0] = 0; data[0][1] = 0.2; data[1][0] = 0.1; data[1][1] = 0.23; data[2][0] = 0.2; data[2][1] = 0.4; data[3][0] = 0.17; data[3][1] = 0.18; data[4][0] = 0.05; data[4][1] = 0.15; data[5][0] = 0.1; data[5][1] = 0.10; data[6][0] = 0.05; data[6][1] = 0.05; data[7][0] = 0.05; data[7][1] = -0.3; data[8][0] = 0.2; data[8][1] = -0.35; data[9][0] = 0; data[9][1] = -0.35; Lathe3d l = new Lathe3d(data, 15, 0, 0, 8); loop("Lathe3d",l); } } void loop(String name, Object3d obj) { double x,y,z; x = Math.random()*2; y = Math.random()*2; z = Math.random()*2; if (!(obj instanceof Checkerboard3d)) setObjectColour(obj); obj.setRenderer(tex); pid = myWorld.addObject(obj); myWorld.prepNewObjects(); for (int i=0;i<150;i++) { myWorld.getParentObject(pid).rotateLocal(x,y,z); myWorld.prepareCanvas(); myWorld.generateImage(); myWorld.drawImage(); paint(myWorld.getCanvas(), name, 149-i); myWorld.finishCanvas(); } myWorld.deleteObject(pid); } void paint(Graphics g, String name, int i) { g.setColor(Color.cyan); g.setFont(new Font("Arial", Font.PLAIN, 16)); g.drawString(name+" "+i,20,60); } void setObjectColour(Object3d obj) { int r = (int)(Math.random() * 100) + 155; int g = (int)(Math.random() * 100) + 155; int b = (int)(Math.random() * 100) + 155; obj.setColour(r,g,b); } }