#region File Description
//-----------------------------------------------------------------------------
// An entity is the basic renderable entity, eg something you can draw.
// Entities don't have transformations of their own; instead, you put them inside
// nodes which handle matrices and transformations for them.
//
// Author: Ronen Ness.
// Since: 2017.
//-----------------------------------------------------------------------------
#endregion
using Microsoft.Xna.Framework;
namespace MonoGameSceneGraph
{
///
/// A basic renderable entity.
///
public interface IEntity
{
///
/// Draw this entity.
///
/// Parent node that's currently drawing this entity.
/// Local transformations from the direct parent node.
/// World transformations to apply on this entity (this is what you should use to draw this entity).
void Draw(Node parent, Matrix localTransformations, Matrix worldTransformations);
///
/// Get the bounding box of this entity (in world space).
///
/// Parent node that's currently drawing this entity.
/// Local transformations from the direct parent node.
/// World transformations to apply on this entity (this is what you should use to draw this entity).
/// Bounding box of the entity, in world space.
BoundingBox GetBoundingBox(Node parent, Matrix localTransformations, Matrix worldTransformations);
///
/// Return if the entity is currently visible.
///
/// If the entity is visible or not.
bool Visible { get; set; }
}
}