blob: 6b26ff80a2caba4510287767baca25d5b2746bdd (
plain) (
tree)
|
|
//===========================================================================
// Copyright (C) 2002 Radical Entertainment Ltd. All rights reserved.
//
// Component: ActorAnimation
//
// Description: Actor animation driver
//
// Authors: Michael Riegger
//
//===========================================================================
// Recompilation protection flag.
#ifndef ACTORANIMATION_H
#define ACTORANIMATION_H
//===========================================================================
// Nested Includes
//===========================================================================
//===========================================================================
// Forward References
//===========================================================================
//===========================================================================
// Constants, Typedefs, and Macro Definitions (needed by external clients)
//===========================================================================
//===========================================================================
// Interface Definitions
//===========================================================================
//===========================================================================
//
// Description:
// A class that Actors can use to have a hardcoded, procedural animation implementation
// instead of a long memory-expensive one exported from Maya
//
// Constraints:
//
//
//===========================================================================
class ActorAnimation
{
public:
ActorAnimation(){}
virtual ~ActorAnimation(){ }
virtual void SetState( int state )=0;
// Apply animation, return true/false indicating whether or not the returned animation is different
// from the given one
virtual bool Update( const rmt::Matrix& currTransform, rmt::Matrix* newTransform, float deltaTime, tCompositeDrawable* = NULL )=0;
protected:
private:
// These methods defined as private and not implemented ensure that
// clients will not be able to use them. For example, we will
// disallow ActorAnimation from being copied and assigned.
};
class StatePropDSGProcAnimator
{
public:
StatePropDSGProcAnimator() {};
virtual ~StatePropDSGProcAnimator() {};
virtual void Advance( float Deltams ) {};
virtual void UpdateForRender( tCompositeDrawable* Drawable ) {};
};
#endif
|