package org.anddev.andengine.entity.primitive;
import javax.microedition.khronos.opengles.GL10;
import javax.microedition.khronos.opengles.GL11;
import org.anddev.andengine.engine.camera.Camera;
import org.anddev.andengine.entity.shape.GLShape;
import org.anddev.andengine.entity.shape.IShape;
import org.anddev.andengine.opengl.buffer.BufferObjectManager;
import org.anddev.andengine.opengl.util.GLHelper;
import org.anddev.andengine.opengl.vertex.PolygonVertexBuffer;
import org.anddev.andengine.opengl.vertex.VertexBuffer;
public class Polygon extends GLShape
{
// ===========================================================
// Fields
// ===========================================================
private float[] mVertices;
private final PolygonVertexBuffer mPolygonVertexBuffer;
// ===========================================================
// Constructors
// ===========================================================
public Polygon(float pX, float pY, float[] pVertices)
{
this(pX, pY, pVertices, new PolygonVertexBuffer(pVertices.length, GL11.GL_STATIC_DRAW));
}
public Polygon(float pX, float pY, float[] pVertices, final PolygonVertexBuffer pPolygonVertexBuffer)
{
super(pX, pY);
this.mVertices = pVertices;
this.mPolygonVertexBuffer = pPolygonVertexBuffer;
BufferObjectManager.getActiveInstance().loadBufferObject(this.mPolygonVertexBuffer);
this.updateVertexBuffer();
}
// ===========================================================
// Getter & Setter
// ===========================================================
// ===========================================================
// Methods for/from SuperClass/Interfaces
// ===========================================================
@Override
protected void onInitDraw(GL10 pGL)
{
super.onInitDraw(pGL);
GLHelper.disableTextures(pGL);
GLHelper.disableTexCoordArray(pGL);
}
@Override
protected VertexBuffer getVertexBuffer()
{
return this.mPolygonVertexBuffer;
}
@Override
protected void onUpdateVertexBuffer()
{
this.mPolygonVertexBuffer.update(mVertices);
}
@Override
protected void drawVertices(GL10 pGL, Camera pCamera)
{
pGL.glDrawArrays(GL10.GL_TRIANGLE_STRIP, 0, mVertices.length / 3);
}
@Override
protected boolean isCulled(Camera pCamera)
{
// TODO Auto-generated method stub
return false;
}
@Override
public boolean collidesWith(IShape pOtherShape)
{
// TODO Auto-generated method stub
return false;
}
@Override
public float getBaseHeight()
{
// TODO Auto-generated method stub
return 0;
}
@Override
public float getBaseWidth()
{
// TODO Auto-generated method stub
return 0;
}
@Override
public float getHeight()
{
// TODO Auto-generated method stub
return 0;
}
@Override
public float[] getSceneCenterCoordinates()
{
// TODO Auto-generated method stub
return null;
}
@Override
public float getWidth()
{
// TODO Auto-generated method stub
return 0;
}
@Override
@Deprecated
public boolean contains(float pX, float pY)
{
return false;
}
@Override
@Deprecated
public float[] convertLocalToSceneCoordinates(float pX, float pY)
{
return null;
}
@Override
@Deprecated
public float[] convertSceneToLocalCoordinates(float pX, float pY)
{
return null;
}
}