/**
 * Copyright:       Copyright (C) 2018 Gabriel Gheorghe, All Rights Reserved
 * Authors:         $(Gabriel Gheorghe)
 * License:         $(LINK2 https://www.gnu.org/licenses/gpl-3.0.txt, GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007)
 * Source
 * Documentation:
 * Coverage:
 */
module liberty.core.scenegraph.entity;
import liberty.core.scenegraph.node: Node;
import liberty.graphics.renderer: Renderable;
import liberty.graphics.renderer: Vertex;
import liberty.core.components: Renderer, Transform;
/// An entity has a render component.
abstract class Entity : Node, Renderable {
	private {
		Renderer!Vertex _renderComponent;
    }
	/// Default constructor.
    this(string id, Node parent) {
        super(id, parent);
    }
    /// Returns a reference to the render component.
    ref Renderer!Vertex renderer() pure nothrow {
        return _renderComponent;
    }
    ///
    override void render() {}
}