import java.util.*; import java.awt.*; public class Object3dList extends Object3dAdaptor{ protected double[] keys; protected Object3d[] elementData; protected int elementCount; protected long lasttime=0; protected int delay=0; protected int defaultColor=-1; static Timer sortTimer = new Timer("sort"); static Timer renderTimer = new Timer("render"); public Object3dList(int initial){ elementData = new Object3d[initial]; elementCount = 0; } public void setDelay(int delay) { this.delay = delay; } public void setDefaultColor(int c){ defaultColor = c; } public void addElement(Object3d e){ if(elementData.length==elementCount) { Object3d[] newData = new Object3d[1+2*elementData.length]; System.arraycopy(elementData,0,newData,0,elementCount); elementData = newData; } elementData[elementCount++] = e; this.centre = e.centre(); } public void append(Object3dList l){ for (int i = 0; i = 0; i--){ if (elementData[i].visible(frame)) { (elementData[i]).render(v); if (delay > 0) { try { Thread.sleep(delay); } catch (InterruptedException e) {;} } } } renderTimer.stop(); if (defaultColor!=-1) { v.setDefaultColor(save); } } public void transform(Matrix3D T){ for (int i = elementCount-1; i>= 0; i--){ (elementData[i]).transform(T); } } public void toVRML(VRMLState v){ int save=-1; if (defaultColor!=-1) { save = v.setDefaultColor(defaultColor); } for (int i = elementCount-1; i>= 0; i--){ elementData[i].toVRML(v); } if (defaultColor!=-1) { v.setDefaultColor(save); } } }