[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Java3Djp:00426] Re: [Q] dynamic node operation 2
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ソフトウェア業界専門求人・求職情報 ┃
┃ http://www.aun-soft.co.jp/ ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
とりあえずexceptionは出なくなりましたが、
物体が何も見えないです。(*_*)
import java.applet.Applet;
import java.awt.BorderLayout;
import com.sun.j3d.utils.applet.MainFrame;
import com.sun.j3d.utils.universe.*;
import javax.media.j3d.*;
import javax.vecmath.*;
import java.awt.*;
import java.awt.event.*;
import com.sun.j3d.utils.geometry.*;
public class WorldViewer002 extends Applet implements KeyListener{
SimpleUniverse u = null;//1999.3.1 y.e キーイベントで使うのでここに定義
BranchGroup scene = new BranchGroup();
// 追加するノード
public TransformGroup maru(){
TransformGroup tg = new TransformGroup();
//tg.setCapability(TransformGroup.ALLOW_TRANSFORM_READ
// | TransformGroup.ALLOW_TRANSFORM_WRITE
// | Group.ALLOW_CHILDREN_EXTEND
// | Group.ALLOW_CHILDREN_READ
// | Group.ALLOW_CHILDREN_WRITE);
tg.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
tg.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
tg.setCapability(Group.ALLOW_CHILDREN_EXTEND);
tg.setCapability(Group.ALLOW_CHILDREN_READ);
tg.setCapability(Group.ALLOW_CHILDREN_WRITE);
Primitive primitive=new Sphere(0.5f);
tg.addChild(primitive);
return tg;
}
//追加されるノード
public BranchGroup createSceneGraph() {
// Create the root of the branch graph
BranchGroup objRoot = new BranchGroup();
//objRoot.setCapability(Group.ALLOW_CHILDREN_EXTEND
// | Group.ALLOW_CHILDREN_READ
// | Group.ALLOW_CHILDREN_WRITE
// | BranchGroup.ALLOW_DETACH);
objRoot.setCapability(Group.ALLOW_CHILDREN_EXTEND);
objRoot.setCapability(Group.ALLOW_CHILDREN_READ);
objRoot.setCapability(Group.ALLOW_CHILDREN_WRITE);
objRoot.setCapability(BranchGroup.ALLOW_DETACH);
//objRoot.compile();//1999.3.1 y.e コンパイルしない
return objRoot;
}
public void keyPressed(KeyEvent evt){}
public void keyReleased(KeyEvent evt){}
//ノードの追加操作
public void keyTyped(KeyEvent evt){
char keyChar = evt.getKeyChar();
if(keyChar == 'b'){
System.out.println("keyChar=" + keyChar);//DEBUG 1999.3.1 y.e
TransformGroup tmp = maru();
u.getLocale().removeBranchGraph(scene);//1999.3.1 y.e Localeから外す
scene.addChild(tmp);
u.addBranchGraph(scene);//1999.3.1 y.e また Loceleに接続(live状態になる)
}
}
//コンストラクタ
public WorldViewer002() {
setLayout(new BorderLayout());
Canvas3D c = new Canvas3D(null);
c.addKeyListener(this);
add("Center", c);
scene = createSceneGraph();
//SimpleUniverse u = new SimpleUniverse(c);
u = new SimpleUniverse(c);//1999.3.1 y.e
u.getViewingPlatform().setNominalViewingTransform();
u.addBranchGraph(scene);
}
//メインルーチン
public static void main(String[] args) {
new MainFrame(new WorldViewer002(), 500, 500);
}
}
------------------------------------------------------------------
遠藤靖之 (えんどう やすゆき) <yasuyuki@xxxxxxxxxx>
http://www.javaopen.org/jfriends/ (Java互助会ホームページ)
株式会社タイムインターメディア 情報通信サービス部 TEL 03-5362-9009
〒162-0065 新宿区住吉町3-11 新宿スパイアビル FAX 03-5362-9008