defaultmodelloader.java
来自「Java mulitplayer strategy game. Adaptati」· Java 代码 · 共 88 行
JAVA
88 行
/*
* Created on 2005-11-02
* $Id: DefaultModelLoader.java,v 1.3 2005/11/02 17:12:09 macx2k Exp $
*/
package net.sf.jawp.j3d.model;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import javax.media.j3d.Node;
import com.sun.j3d.loaders.Scene;
/**
* This helper class proviced default simulated implementation of
* {@link #load(InputStream)}.
*
* @author Maciej Malecki
* @version $Revision: 1.3 $
*/
public abstract class DefaultModelLoader implements ModelLoader
{
private Scene scene = null;
/**
* This method simply simulates getting model from input stream. It just
* copies stream data into tempfile and then loads it using
* {@link #load(java.io.File)} implementation.
*/
public void load(final InputStream stream) throws IOException
{
assert scene == null;
final File temp = File.createTempFile("j3df_model3d", null);
try
{
final byte[] buffer = new byte[2048];
final OutputStream os = new FileOutputStream(temp);
try
{
int length = 0;
while ((length = stream.read(buffer)) > 0)
{
os.write(buffer, 0, length);
}
}
finally
{
os.close();
}
load(temp);
}
finally
{
temp.delete();
}
}
/**
* {@inheritDoc}
*/
public final Node newModelInstance()
{
return getScene().getSceneGroup().cloneTree();
}
/**
* {@inheritDoc}
*/
public final Scene getScene()
{
return scene;
}
protected final void setScene(final Scene scene)
{
assert this.scene == null : "Scene already set";
assert scene != null : "Scene argument is null";
this.scene = scene;
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?