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

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

		Author:	Pierre-Sylvain
		Date:	8/22/2005

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

#ifndef __BasicKeyFrame__
#define __BasicKeyFrame__

#if CP_PRAGMA_ONCE
#pragma once
#endif

#include "BasicCOMImplementations.h"
#include "MCBasicTypes.h"
#include "I3DShKeyFrame.h"


class TBasicKeyFrame : public TMCSMPCountedObject, public I3DShKeyFrame
{
public:
	virtual boolean					MCCOMAPI	SupportTangent() const { return false; }

	virtual int32					MCCOMAPI	GetDimensionCount() const { return 0; }
	virtual void					MCCOMAPI	GetDimensionValues(TMCArray<real>& values) const {}
	virtual void					MCCOMAPI	SetDimensionValues(const TMCArray<real>& values) {}
	virtual void					MCCOMAPI	CreateTangents() {}
	virtual void					MCCOMAPI	RemoveTangents() {}
	virtual boolean					MCCOMAPI	HaveTangents() const { return kNoTangent; }
	virtual ETangentType			MCCOMAPI	GetTangentType(int32 dimension, int32& outTangentFlags) const { return kNoTangent; }
	virtual void					MCCOMAPI	SetTangentType(int32 dimension, ETangentType inTangentType, int32 inTangentFlags) {}
	virtual boolean					MCCOMAPI	GetTangent(int32 dimension, ETangentSide side, real& value, MicroTick& time) const { return false; }
	virtual void					MCCOMAPI	SetTangent(int32 dimension, ETangentSide side, real value, MicroTick time) {}

	virtual void					MCCOMAPI	SetLink			(I3DShTweenerChainLink* inLink) { fLink = inLink; }
	virtual I3DShTweenerChainLink* 	MCCOMAPI	GetLinkNoAddRef	() { return fLink; }

protected:
	TMCCountedPtr<I3DShTweenerChainLink>	fLink;
};



#endif
