⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nodemanager.java

📁 本项目是用JAVA3D开发的一款图形界面的3D漫游的类似引擎.至所以这么说.是因为它的部分功能还不完全.说它是引擎是因为它可以完全脱离模型文件.本引擎实现了虚拟漫游,碰撞检测,动态添加模型,以及部分纹
💻 JAVA
字号:
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 + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -