// Path: ascii-render-api/src/main/java/com/indvd00m/ascii/render/api/IElement.java
// public interface IElement {
// 
// 	/**
// 	 * Draw element in canvas.
// 	 *
// 	 * @param canvas
// 	 * @param context
// 	 * @return Anchor point for this element in relative coordinates of his layer. If element was not be drawn, null
// 	 * must be returned.
// 	 */
// 	IPoint draw(ICanvas canvas, IContext context);
// 
// }
// 
// Path: ascii-render-api/src/main/java/com/indvd00m/ascii/render/api/ILayer.java
// public interface ILayer {
// 
// 	/**
// 	 * Region of this layer in Context coordinates.
// 	 *
// 	 * @return
// 	 */
// 	IRegion getRegion();
// 
// 	/**
// 	 * List of elements. Elements will be drawn by render in order of this list.
// 	 *
// 	 * @return
// 	 */
// 	List<IElement> getElements();
// 
// 	/**
// 	 * Opacity of this layer. {@code False} by default.
// 	 *
// 	 * @return
// 	 */
// 	boolean isOpacity();
// 
// }
// 
// Path: ascii-render-api/src/main/java/com/indvd00m/ascii/render/api/IRegion.java
// public interface IRegion {
// 
// 	int getX();
// 
// 	int getY();
// 
// 	int getWidth();
// 
// 	int getHeight();
// 
// }


import com.indvd00m.ascii.render.api.IElement;
import com.indvd00m.ascii.render.api.ILayer;
import com.indvd00m.ascii.render.api.IRegion;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
package com.indvd00m.ascii.render;



/**
 * @author indvd00m (gotoindvdum[at]gmail[dot]com)
 * @since 0.9.0
 */
public class Layer implements ILayer {

	protected IRegion region;
// Path: ascii-render-api/src/main/java/com/indvd00m/ascii/render/api/IElement.java
// public interface IElement {
// 
// 	/**
// 	 * Draw element in canvas.
// 	 *
// 	 * @param canvas
// 	 * @param context
// 	 * @return Anchor point for this element in relative coordinates of his layer. If element was not be drawn, null
// 	 * must be returned.
// 	 */
// 	IPoint draw(ICanvas canvas, IContext context);
// 
// }
// 
// Path: ascii-render-api/src/main/java/com/indvd00m/ascii/render/api/ILayer.java
// public interface ILayer {
// 
// 	/**
// 	 * Region of this layer in Context coordinates.
// 	 *
// 	 * @return
// 	 */
// 	IRegion getRegion();
// 
// 	/**
// 	 * List of elements. Elements will be drawn by render in order of this list.
// 	 *
// 	 * @return
// 	 */
// 	List<IElement> getElements();
// 
// 	/**
// 	 * Opacity of this layer. {@code False} by default.
// 	 *
// 	 * @return
// 	 */
// 	boolean isOpacity();
// 
// }
// 
// Path: ascii-render-api/src/main/java/com/indvd00m/ascii/render/api/IRegion.java
// public interface IRegion {
// 
// 	int getX();
// 
// 	int getY();
// 
// 	int getWidth();
// 
// 	int getHeight();
// 
// }


// Path: ascii-render/src/main/java/com/indvd00m/ascii/render/Layer.java
import com.indvd00m.ascii.render.api.IElement;
import com.indvd00m.ascii.render.api.ILayer;
import com.indvd00m.ascii.render.api.IRegion;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

package com.indvd00m.ascii.render;



/**
 * @author indvd00m (gotoindvdum[at]gmail[dot]com)
 * @since 0.9.0
 */
public class Layer implements ILayer {

	protected IRegion region;
	protected List<IElement> elements = new ArrayList<IElement>();