annotate src/samer/j3d/J3DViewerImmediate.java.not @ 8:5e3cbbf173aa tip

Reorganise some more
author samer
date Fri, 05 Apr 2019 22:41:58 +0100
parents bf79fb79ee13
children
rev   line source
samer@0 1 /*
samer@0 2 */
samer@0 3 package samer.j3d;
samer@0 4
samer@0 5 import samer.core.*;
samer@0 6 import samer.core.types.*;
samer@0 7 import samer.maths.*;
samer@0 8 import samer.tools.*;
samer@0 9 import java.io.*;
samer@0 10 import java.awt.event.*;
samer@0 11 import javax.media.j3d.*;
samer@0 12 import javax.vecmath.*;
samer@0 13
samer@0 14 public class J3DViewerImmediate extends Util implements Task
samer@0 15 {
samer@0 16 Root root=new Root();
samer@0 17 Background bg;
samer@0 18 Geometry geom;
samer@0 19 Appearance app;
samer@0 20 Viewer V;
samer@0 21
samer@0 22 TaskList tasks;
samer@0 23 VDouble speed, scale;
samer@0 24 GraphicsContext3D gc;
samer@0 25 Transform3D mt=new Transform3D();
samer@0 26 Canvas3D canvas;
samer@0 27 float angle=0;
samer@0 28
samer@0 29 public J3DViewerImmediate(Matrix P, VVector A) throws Exception
samer@0 30 {
samer@0 31 if (P==null) {
samer@0 32 Shell.print("creating PointsMatrix");
samer@0 33 P=new Matrix("PointsMatrix",A.size(),3);
samer@0 34 new MatrixAgent(P).execute("load",Shell.env());
samer@0 35 }
samer@0 36 // create scene
samer@0 37 bg=new Background(new Color3f(0.26f,0.23f,0.35f));
samer@0 38 // geom=new MatrixPointArrayAlpha(P,A);
samer@0 39 // app=transparent(0,points(new Appearance()));
samer@0 40 geom= // new MatrixPointArray(P,A);
samer@0 41 new MatrixPoints4D(P,A);
samer@0 42 app=transparent(0,points());
samer@0 43 V=new Viewer("particles");
samer@0 44 // remember to stop canvas renderers
samer@0 45
samer@0 46
samer@0 47 root.addChild(V);
samer@0 48 root.compile();
samer@0 49 root.golive();
samer@0 50
samer@0 51 // Shell.registerAgent(this);
samer@0 52 // Shell.exposeCommands(this);
samer@0 53
samer@0 54
samer@0 55 Shell.push(V.node);
samer@0 56 speed=new VDouble("speed",0.1);
samer@0 57 scale=new VDouble("scale",1);
samer@0 58 Shell.pop();
samer@0 59
samer@0 60 canvas=V.V.canvas;
samer@0 61 canvas.stopRenderer();
samer@0 62
samer@0 63 tasks=(TaskList)Shell.get("taskList");
samer@0 64 tasks.addTask(this);
samer@0 65 }
samer@0 66
samer@0 67 public void stopping() { Shell.print("view stopping"); }
samer@0 68 public void starting() {
samer@0 69 Shell.print("view starting");
samer@0 70 if (gc==null) gc = canvas.getGraphicsContext3D();
samer@0 71 gc.setAppearance(app);
samer@0 72 // gc.setBackground(bg);
samer@0 73 }
samer@0 74
samer@0 75 public void run() {
samer@0 76 mt.rotY(angle+=speed.value);
samer@0 77 mt.setScale(scale.value);
samer@0 78 gc.clear();
samer@0 79 gc.setModelTransform(mt);
samer@0 80 gc.draw(geom);
samer@0 81 canvas.swap();
samer@0 82 }
samer@0 83
samer@0 84 public void dispose()
samer@0 85 {
samer@0 86 // Shell.deregisterAgent(this);
samer@0 87 tasks.removeTask(this);
samer@0 88 V.dispose();
samer@0 89 }
samer@0 90 }