modelmanager.java

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

JAVA
74 行
字号
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 + =
减小字号Ctrl + -
显示快捷键?