/*************************************************************************/
/*	File : CK3dObject.h													 */
/*	Author :  Romain Sididris											 */	
/*																		 */	
/*	Virtools SDK 														 */	 
/*	Copyright (c) Virtools 2000, All Rights Reserved.					 */	
/*************************************************************************/
#ifndef CK3DOBJECT_H

#define CK3DOBJECT_H "$Id:$"

#include "CK3dEntity.h"

/***************************************************************************
{filename:CK3dobject}
Name: CK3dObject

Summary: Base class for 3D objects with geometry

Remarks:
	+ The CK3dObject does not yet provide new functions compare to CK3dEntity 

	+ You are advised to use CK3dObjects for all of
	your real 3D objects with a geometry. The loading plug-ins of Virtools should all create instances of CK3dObject 
	when loading models imported from foreign formats. Even though you can instanciate CK3dEntity directly, using a
	CK3dObject provides you with additionnal services that may be increased in future.

	+ The class id of CK3dObject is CKCID_3DOBJECT.



See also: CK3dEntity
***************************************************************************/
class CK3dObject : public CK3dEntity {
public :	

/*************************************************
Summary: Dynamic cast operator. 
Arguments:
	iO: A pointer to a CKObject to cast.
Return Value:
	iO casted to the appropriate class or NULL if iO is not from the required class .
Example:
	  CKObject* Object;
	  CKAnimation* anim = CKAnimation::Cast(Object);
Remarks:

*************************************************/
static CK3dObject* Cast(CKObject* iO) 
{
	return CKIsChildClassOf(iO,CKCID_3DOBJECT)?(CK3dObject*)iO:NULL;
}

};

#endif
