📄 modelmanager.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 + -