/****************************************************************************************

		BasicDataComponent.h

		Copyright: (c) 2001 Eovia Corp. All rights reserved.

		Author:	Joshua
		Date:	3/16/99

		Revision History

		when		who					what & why
		==========	=================	======================================================
		08/11/99	Guillaume&Christy	Added inheritance to all the Basic* classes
		6/10/99		Ian					Array API changes.

*****************************************************************************************/

#ifndef __BasicDataComponent__
#define __BasicDataComponent__

#if CP_PRAGMA_ONCE
#pragma once
#endif

#include "BasicCOMImplementations.h"
#include "MCBasicTypes.h"
#include "MCArray.h"
#include "I3dExRenderFeature.h"

/// \addtogroup BaseClass
/// \{

/****************************************************************************\
*                                                                            *
*       TBasicDataComponent                                                  *
*                                                                            *
\****************************************************************************/
/// Basic Data Component class.  Derive from this for a default implementation of I3DExDataComponent
/// \see I3DExDataComponent
class TBasicDataComponent : public I3DExDataComponent, public TBasicDataExchanger 
{
	public:	
		virtual MCCOMErr	MCCOMAPI QueryInterface	(const MCIID &riid, void** ppvObj);
		virtual uint32		MCCOMAPI AddRef			() { return TBasicDataExchanger::AddRef(); }

		virtual MCCOMErr	MCCOMAPI GetPostRenderList	(TMCArray<IDType>& idArray);
		virtual boolean		MCCOMAPI IsActive			(I3DShTreeElement* tree);

		virtual void		MCCOMAPI GetVolumetricList(TMCArray<IDType>& idArray);

		virtual boolean		MCCOMAPI CanImportData		(I3DImportData*	inImportData) { return false; }
		virtual boolean		MCCOMAPI ImportData			(I3DImportData* inImportData) { return false; }

		virtual boolean MCCOMAPI FullReRenderOfPreview()  { return false; }
};


/// \}

#endif