package away3d.materials
{
import away3d.core.base.*;
import away3d.core.draw.*;
import away3d.core.utils.*;
import flash.display.*;
import flash.geom.*;
/**
* Interface for materials that can be layered using CompositeMaterial or BitmapMaterialContainer.
*
* @see away3d.materials.CompositeMaterial
* @see away3d.materials.BitmapMaterialContainer
*/
public interface ILayerMaterial extends IMaterial
{
/**
* Renders a bitmapData surface object for the speficied face.
*
* @param face The face object onto which the rendered sufrace is applied.
* @param containerRect The rectangle object defining the bounds of the face in uv-space.
* @param parentFaceVO The value object of the preceeding surface.
*
* @see away3d.materials.BitmapMaterailContainer
*/
function renderBitmapLayer(tri:DrawTriangle, containerRect:Rectangle, parentFaceVO:FaceVO):FaceVO;
/**
* Renders a material layer for the specified triangle.
*
* @param tri The drawtriangle used for render information.
* @param layer The parent layer into which the triangle is drawn.
* @param parentFaceVO Defines the sprite level for the layer.
*/
function renderLayer(tri:DrawTriangle, layer:Sprite, level:int):void;
}
}