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

📄 scenemanager.java

📁 使用stl技术,(还没看,是听说的)
💻 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 + -