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

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

		Author:	Charles
		Date:	10/10/2002

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

#ifndef __BasicVolumetricEffect__
#define __BasicVolumetricEffect__

#if CP_PRAGMA_ONCE
#pragma once
#endif

#include "I3DExVolumetricEffect.h"
#include "BasicCOMImplementations.h"
/// \addtogroup BaseClass
/// \{
/****************************************************************************\
*                                                                            *
*       TBasicVolumetricEffect                                               *
*                                                                            *
\****************************************************************************/
/// Basic Volumetric Effect class.  Derive from this for a default implementation of I3DExVolumetricEffect
/// \see I3DExVolumetricEffect
class TBasicVolumetricEffect : public I3DExVolumetricEffect, public TBasicDataExchanger 
{
public:	
	virtual MCCOMErr	MCCOMAPI QueryInterface	(const MCIID &riid, void** ppvObj);
	virtual uint32		MCCOMAPI AddRef			() { return TBasicDataExchanger::AddRef(); }
	virtual void		MCCOMAPI Initialise(I3DShScene* scene);
	virtual void		MCCOMAPI DirectionFilter(const TVector3& origin,const TVector3& direction,real maxt,TMCColorRGBA& inOutFilter,boolean isShadowCasting);
	virtual void		MCCOMAPI DirectionFilter2(I3DExRaytracer* raytracer,const TVector3& origin,const TVector3& direction,real maxt,TMCColorRGBA& inOutFilter,boolean isShadowCasting);
};



/// \}






#endif
