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

	Gel.h

	Copyright (c)1990 - 1999 MetaCreations. All rights reserved.

	Author:	Jerome Bignon

	Date:	07/07/99

	Revision History

	when		who			what & why
	=========== ===========	=============================================================

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

#ifndef __GEL__
#define __GEL__  

#if CP_PRAGMA_ONCE
#pragma once
#endif

#include	"BasicCameraLightGel.h"
#include	"APITypes.h"
#include	"MCColorRGBA.h"
#include	"GelDef.h"

// Define the Gel CLSID ( see the GelDef.h file to get the R_CLSID_GEL value )

extern const MCGUID CLSID_GEL;


// Light Data structure                            
struct GelData
{
	int16 fNbBranches;  // Nb of branches of the star
};
 
// Gel Light Object :
class Gel : public TBasicGel
{
	public :  
		Gel();
		STANDARD_RELEASE;

		// IExDataExchanger methods :
		virtual void*				MCCOMAPI     GetExtensionDataBuffer();
		virtual int32				MCCOMAPI	 GetParamsBufferSize		() const	{ return sizeof(fData);}
		virtual MCCOMErr			MCCOMAPI     ExtensionDataChanged();
		virtual int16				MCCOMAPI     GetResID();

		// I3DExLightsourceGel methods
		virtual boolean 	MCCOMAPI GetGelValues	(const TVector2& gelScreenPosition, TMCColorRGB &result);

	private :
		GelData      fData;           // Gel Data (see definition of GelData structure)
};
#endif // __GELLIGHT__

