Subversion Repositories AndroidProjects

Rev

Blame | Last modification | View Log | RSS feed

package com.gebauz.bauzoid.graphics.model;


/** Implementation of the SUX Model format (subset). */
public class Model
{
        private String mName;
        private Mesh[] mMeshes = null;
       
        /** Constructor. */
        public Model(String name)
        {
                mName = name;
        }
       
        /** Dispose internal data. */
        public void dispose()
        {
                if (mMeshes != null)
                {
                        for (int i = 0; i < mMeshes.length; i++)
                        {
                                mMeshes[i].dispose();
                                mMeshes[i] = null;
                        }
                       
                        mMeshes = null;
                }
        }
       
        /** Update internals. */
        public void update(float deltaTime)
        {
               
        }
       
        /** Render the model. */
        public void render()
        {
                for (int i = 0; i < mMeshes.length; i++)
                {
                        mMeshes[i].render();
                }
        }
       
        /** Upload the internal geometry to hardware. */
        public void upload()
        {
                for (int i = 0; i < mMeshes.length; i++)
                {
                        mMeshes[i].getGeometry().upload();
                }
        }
       
        /** Unload internal geometry from hardware. */
        public void unload()
        {
                for (int i = 0; i < mMeshes.length; i++)
                {
                        mMeshes[i].getGeometry().unload();
                }
        }
       
        /** Get number of meshes. */
        public final int getMeshCount()
        {
                return mMeshes.length;
        }
       
        /** Get a single mesh. */
        public final Mesh getMesh(int i)
        {
                return mMeshes[i];
        }
       
        /** Get a mesh by name. */
        public final Mesh getMesh(String name)
        {
                for (int i = 0; i < mMeshes.length; i++)
                {
                        if (mMeshes[i].getName().equalsIgnoreCase(name))
                                return mMeshes[i];
                }
                return null;
        }
       
        /** Set the meshes. */
        public final void setMeshes(Mesh[] meshes)
        {
                if (meshes == null)
                        dispose();
               
                mMeshes = meshes;
        }
       
        /** Get the mesh name. */
        public final String getName()
        {
                return mName;
        }
       
}