package org.andengine.entity.shape;
import org.andengine.entity.IEntity;
import org.andengine.entity.scene.ITouchArea;
import org.andengine.opengl.shader.ShaderProgram;
import org.andengine.opengl.vbo.IVertexBufferObject;
import org.andengine.opengl.vbo.VertexBufferObjectManager;
import android.opengl.GLES20;
/**
* (c) 2010 Nicolas Gramlich
* (c) 2011 Zynga Inc.
*
* @author Nicolas Gramlich
* @since 13:32:52 - 07.07.2010
*/
public interface IShape extends IEntity, ITouchArea {
// ===========================================================
// Constants
// ===========================================================
public static final int BLENDFUNCTION_SOURCE_DEFAULT = GLES20.GL_SRC_ALPHA;
public static final int BLENDFUNCTION_DESTINATION_DEFAULT = GLES20.GL_ONE_MINUS_SRC_ALPHA;
public static final int BLENDFUNCTION_SOURCE_PREMULTIPLYALPHA_DEFAULT = GLES20.GL_ONE;
public static final int BLENDFUNCTION_DESTINATION_PREMULTIPLYALPHA_DEFAULT = GLES20.GL_ONE_MINUS_SRC_ALPHA;
// ===========================================================
// Methods
// ===========================================================
public boolean collidesWith(final IShape pOtherShape);
public boolean isBlendingEnabled();
public void setBlendingEnabled(final boolean pBlendingEnabled);
public int getBlendFunctionSource();
public int getBlendFunctionDestination();
public void setBlendFunctionSource(final int pBlendFunctionSource);
public void setBlendFunctionDestination(final int pBlendFunctionDestination);
public void setBlendFunction(final int pBlendFunctionSource, final int pBlendFunctionDestination);
public VertexBufferObjectManager getVertexBufferObjectManager();
public IVertexBufferObject getVertexBufferObject();
public ShaderProgram getShaderProgram();
public void setShaderProgram(final ShaderProgram pShaderProgram);
}