nodemanager.java

来自「本项目是用JAVA3D开发的一款图形界面的3D漫游的类似引擎.至所以这么说.是因」· Java 代码 · 共 76 行

JAVA
76
字号
package cn.bz.util;
import java.io.FileNotFoundException;
import java.util.List;

import javax.media.j3d.BranchGroup;
import javax.media.j3d.Transform3D;
import javax.media.j3d.TransformGroup;

import com.sun.j3d.loaders.IncorrectFormatException;
import com.sun.j3d.loaders.ParsingErrorException;
import com.sun.j3d.loaders.Scene;
import com.sun.j3d.loaders.objectfile.ObjectFile;
import com.sun.j3d.utils.universe.SimpleUniverse;

public class NodeManager {
	/*
	 * 该方法主要用来遍历节点,,比如说在一个房子里要添加多个家居时.可以用这个方法.
	 * 添加多个结点到场景中
	 */
	public void addNotes(SimpleUniverse u, List all)
	{		
	    //u.getViewingPlatform().setNominalViewingTransform();
    	// 设置观察者的位置为缺省位置
	    for(int i = 0; i < all.size(); i++)
	    {
	    	BranchGroup bg = (BranchGroup)all.get(i);
	    	//生成一个场景图分支,在其中定义分支的形体、材质、灯光等信息
	    	u.addBranchGraph(bg);
	    	//把场景放入虚拟空间中
	    }
	}
	//添加一个结点到场景中
	public void addNote(SimpleUniverse u, BranchGroup bg)
	{		
	    u.addBranchGraph(bg);
	}
	/**
	 * 传入一个文件(obj文件路径,即可得到一个bg结点)
	 * @param filename
	 * @return
	 */
	public BranchGroup getObj(String filename)
	{
		BranchGroup bg = null;
		int flags = ObjectFile.RESIZE;
		ObjectFile f =  new ObjectFile(flags, (float)(49.0 * Math.PI / 180.0));

		Scene s = null;
		try {
		   s = f.load(filename);
		   bg = s.getSceneGroup();
		}
		catch (FileNotFoundException e) {
			System.err.println(e);
			System.exit(1);
		}
		catch (ParsingErrorException e) {
			System.err.println(e);
			System.exit(1);
		}
		catch (IncorrectFormatException e) {
			System.err.println(e);
			System.exit(1);
		}    
		return bg;
	}
	/**
	 * 封装一个TG结点
	 * @param filename
	 * @param transform3D
	 * @return
	 */


}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?