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

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

		Author:	charles
		Date:	5/12/2005

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

#ifndef __I3DExDisplacementShader__
#define __I3DExDisplacementShader__

#if CP_PRAGMA_ONCE
#pragma once
#endif

//****** Globally Unique Ids *************************************************

MCDEFINE_GUID_H(IID_I3DExDisplacementShader);

struct TDisplacementParameters : public TMCObject
{
// Be careful, this struct must be synchronised with the parameter map of the displacement shader
// and the displacement primitive !! (Charles)

	TDisplacementParameters();

	int32					fSampleCount;
	boolean					fSmooth;
	boolean					fEnable;
	boolean					fDisplaceIn3DView;
	boolean					fSubdivide;
	int32					fAdaptiveLevelCount;
	real					fAmplitude;
	real					fOffset;
	real					fSmoothingAngle;
};

struct I3DExDisplacementShader : public IMCUnknown
{
	virtual boolean MCCOMAPI HasDisplacementFunction()=0;
	virtual const TDisplacementParameters& MCCOMAPI GetParameters()=0;
};


#endif
