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

📄 modelmanager.java

📁 本项目是用JAVA3D开发的一款图形界面的3D漫游的类似引擎.至所以这么说.是因为它的部分功能还不完全.说它是引擎是因为它可以完全脱离模型文件.本引擎实现了虚拟漫游,碰撞检测,动态添加模型,以及部分纹
💻 JAVA
字号:
package cn.bz.util;

import java.io.FileNotFoundException;

import javax.media.j3d.Alpha;
import javax.media.j3d.BoundingSphere;
import javax.media.j3d.RotationInterpolator;
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;



public class ModelManager {
	
	private boolean noTriangulate = false;

	private boolean noStripify = false;

	private double creaseAngle = 60.0;
	
	TransformGroup objTrans = null ;
	
	public ModelManager()
	{
		TransformGroup objTrans = new TransformGroup();
		setTransformGroup(objTrans);
	}
	public void setTransformGroup(TransformGroup objTrans)
	{
		this.objTrans = objTrans;
	}
	public TransformGroup getTransformGroup(){
		return objTrans;
	}
	public TransformGroup createTransformGroup(BoundingSphere bounds, String filename){
		TransformGroup objTrans = new TransformGroup();
		objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_WRITE);
		objTrans.setCapability(TransformGroup.ALLOW_TRANSFORM_READ);
		
		Alpha rotationAlpha = new Alpha(-1, Alpha.INCREASING_ENABLE, 0, 0,
				4000, 0, 0, 0, 0, 0);
		Transform3D yAxis = new Transform3D();
		RotationInterpolator rotator = new RotationInterpolator(
				rotationAlpha, objTrans, yAxis, 0.0f,
				(float) Math.PI * 2.0f);
		rotator.setSchedulingBounds(bounds);
		
		ObjectFile f = new ObjectFile(ObjectFile.RESIZE);
		Scene s = null;
		try {
			s = f.load(filename);
		} 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);
		}
		
		objTrans.addChild(s.getSceneGroup());
		objTrans.addChild(rotator);

		return objTrans;
	}
}

⌨️ 快捷键说明

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