Mercurial > hg > jslab
view src/samer/j3d/ImmediateRenderer.java @ 8:5e3cbbf173aa tip
Reorganise some more
author | samer |
---|---|
date | Fri, 05 Apr 2019 22:41:58 +0100 |
parents | bf79fb79ee13 |
children |
line wrap: on
line source
/* */ package samer.j3d; import samer.core.*; import samer.core.types.*; import samer.maths.*; import samer.tools.*; import java.io.*; import java.awt.event.*; import javax.media.j3d.*; import javax.vecmath.*; public class ImmediateRenderer extends Util implements Task { Background bg; Geometry geom; Appearance app; VDouble speed, scale; float angle=0; Transform3D mt=new Transform3D(); Canvas3D canvas; GraphicsContext3D gc; public ImmediateRenderer(Canvas3D c) throws Exception { canvas=c; canvas.stopRenderer(); speed=new VDouble("speed",0.1); scale=new VDouble("scale",1); } public void setGeometry(Geometry g) { geom=g; } public void setAppearance(Appearance a) { app=a; } public void setBackground(Background b) { bg=b; } public void dispose() { speed.dispose(); scale.dispose(); } public void stopping() { Shell.print("immediate renderer stopping"); } public void starting() { Shell.print("immediate renderer starting"); if (gc==null) gc = canvas.getGraphicsContext3D(); if (app!=null) gc.setAppearance(app); if (bg!=null) gc.setBackground(bg); } public void run() { mt.rotY(angle+=speed.value); mt.setScale(scale.value); gc.setModelTransform(mt); gc.clear(); gc.draw(geom); canvas.swap(); } }