📄 scenemanager.java
字号:
/* Ogre4J
Copyright (C) 2002 macross
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package org.ogre4j;
import org.ogre4j.math.Quaternion;
/**
* SceneManager
*
* TODO: implement JNI Material Methods
* TODO: implement JNI Light Methods
*
* @author Ivica Aracic <ivica.aracic@bytelords.de>
*/
public class SceneManager extends NativeObject {
/*
* CAMERA
*/
public native Camera createCamera(String name);
public native Camera getCamera(String name);
public native void removeCamera(Camera cam);
public native void removeCamera(String name);
public native void removeAllCameras();
/*
* LIGHTS
*/
public native Light createLight(String name);
public native Light getLight(String name);
public native void removeLight(String name);
public native void removeLight(Light light);
public native void removeAllLights();
/*
* MATERIAL
*/
public native Material createMaterial(String name);
public native Material getDefaultMaterialSettings();
public native void addMaterial(Material mat);
public native Material getMaterial(String name);
public native Material getMaterial(int handle);
/*
* SCENE
*/
public native void setWorldGeometry(String filename);
public native SceneNode createSceneNode();
public native SceneNode createSceneNode(String name);
public native void destroySceneNode(String name);
public native SceneNode getRootSceneNode();
public native SceneNode getSceneNode(String name);
public native Entity createEntity(String entityName, String meshName);
//public native Entity createEntity(String entityName, PrefabType ptype)
public native Entity getEntity(String name);
public native void removeEntity(Entity ent);
public native void removeEntity(String name);
public native void removeAllEntities();
public native void clearScene();
public native void setAmbientLight(ColourValue colour);
public native ColourValue getAmbientLight();
/*
* OVERLAYS
*/
public Overlay createOverlay(String name) {
return createOverlay(name, 100);
}
public native Overlay createOverlay(String name, int zorder);
public native Overlay getOverlay(String name);
public native void destroyOverlay(String name);
public native void destroyAllOverlays();
/*
* SKY
*/
public void setSkyPlane(boolean enable, Plane plane, String materialName) {
setSkyPlane(enable, plane, materialName, 1000, 10, true, 0);
}
public native void setSkyPlane(boolean enable, Plane plane, String materialName, float scale, float tiling, boolean drawFirst, float bow);
void setSkyBox(boolean enable, String materialName) {
setSkyBox(enable, materialName, 5000, true, Quaternion.IDENTITY);
}
public native void setSkyBox(boolean enable, String materialName, float distance, boolean drawFirst, Quaternion orientation);
public void setSkyDome(boolean enable, String materialName) {
setSkyDome(enable, materialName, 10, 8, 4000, true, Quaternion.IDENTITY);
}
public native void setSkyDome(boolean enable, String materialName, float curvature, float tiling, float distance, boolean drawFirst, Quaternion orientation);
/*
* FOG
*/
public void setFog(int fogMode, ColourValue fogColour) {
setFog(fogMode, fogColour, 0.001f, 0.0f, 1.0f);
}
public native void setFog(int fogMode, ColourValue colour, float expDensity, float linearStart, float linearEnd);
public void setFogMode(int fogMode) {
if(fogMode < OgreConsts.FOG_NONE || fogMode > OgreConsts.FOG_LINEAR)
fogMode = OgreConsts.FOG_NONE;
setFog(fogMode, getFogColour(), getFogDensity(), getFogStart(), getFogEnd());
}
public void setFogColour(ColourValue fogColour) {
setFog(getFogMode(), fogColour, getFogDensity(), getFogStart(), getFogEnd());
}
public void setFogDensity(float fogDensity) {
setFog(getFogMode(), getFogColour(), fogDensity, getFogStart(), getFogEnd());
}
public void setFogStart(float fogStart) {
setFog(getFogMode(), getFogColour(), getFogDensity(), fogStart, getFogEnd());
}
public void setFogEnd(float fogEnd) {
setFog(getFogMode(), getFogColour(), getFogDensity(), getFogStart(), fogEnd);
}
public native int getFogMode();
public native ColourValue getFogColour();
public native float getFogStart();
public native float getFogEnd();
public native float getFogDensity();
/*
* BILLBOARD
*/
public BillboardSet createBillboardSet(String name) {
return createBillboardSet(name, 20);
}
public native BillboardSet createBillboardSet(String name, int poolSize);
public native BillboardSet getBillboardSet(String name);
public native void removeBillboardSet(BillboardSet set);
public native void removeBillboardSet(String name);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -