/* -----------------------------------------------------------------------------
	GSFramework
	Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */


#ifndef	__NMOBJECT__
#define	__NMOBJECT__


		#include "core/object.h"
		#include "scene3d/mitem.h"


namespace GS {
	namespace S3D {

/*!
	@short	Managed object.
	@author Emmanuel Julien (ejulien@gsworks.fr)
*/
struct	MObject : public MItem, public Core::Object
{
static	MItemType		GetMItemClassType() { return Type_Object; }

virtual	inline bool		IsRenderable() const { return isActive(); }

virtual	Core::Item		*GetBaseItem() { return this; }
virtual	Core::Renderable *GetRenderable() { return this; }

virtual	bool			FromMetaTag(NML::Tag &);
virtual	NML::Tag		*AsMetaTag();

		MObject();
};

	} // S3D
} // GS


#endif // __NMOBJECT__
