Subversion Repositories AndroidProjects

Rev

Rev 1720 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package com.gebauz.bauzoid2.graphics.model;

import com.gebauz.bauzoid2.graphics.geometry.Geometry;
import com.gebauz.bauzoid2.graphics.geometry.IndexStream;
import com.gebauz.bauzoid2.graphics.geometry.VertexStream;

/**
 * Created by chris on 12.12.2014.
 */

public class Mesh
{

    // Constants========================================================================================

    // Embedded Types===================================================================================

    // Fields===========================================================================================

    private Geometry mGeometry = null;

    private MeshGroup[] mMeshGroups = null;

    /*private VertexStream mVertexStream = null;
    private IndexStream mIndexStream = null;*/


    // Methods==========================================================================================

    public Mesh()
    {
        mGeometry = new Geometry(Geometry.PrimitiveType.TRIANGLES);
    }

    public void dispose()
    {
        destroyGroups();
        if (mGeometry != null)
        {
            mGeometry.dispose();
            mGeometry = null;
        }
    }

    public void destroyGroups()
    {
        if (mMeshGroups != null)
        {
            //for (int i = 0; i < mGroups.length; i++)
            for (MeshGroup group : mMeshGroups)
                group.dispose();

            mMeshGroups = null;
        }
    }

    public void render(int firstIndex, int lastIndex)
    {
        mGeometry.renderIndices(firstIndex, lastIndex);
    }

    // Getters/Setters==================================================================================

    public final void setGeometry(Geometry geometry) { mGeometry = geometry; }
    public final Geometry getGeometry() { return mGeometry; }

    /*public final void setVertexStream(VertexStream vs) { mVertexStream = vs; }
    public final VertexStream getVertexStream() { return mVertexStream; }

    public final void setIndexStream(IndexStream is) { mIndexStream = is; }
    public final IndexStream getIndexStream() { return mIndexStream; }*/


    public final void setMeshGroups(MeshGroup[] groups)
    {
        mMeshGroups = groups;
    }
    public final MeshGroup[] getMeshGroups()
    {
        return mMeshGroups;
    }

}