/* (c) 1999-2000 Tino Schwarze, see COPYING for details */
/**@pkg events.cEvent.cRotationEvent*/
/**
* a cNamedEvent which carries a cQuaternion
*
* @pkgdoc events.cEvent.cRotationEvent
*/
#ifndef cRotationEvent_hh
#define cRotationEvent_hh
#include "cEvent.hh"
#include "cQuaternion.hh"
/**
* a cNamedEvent with a payload (a cQuaternion)
*/
class cRotationEvent : public cEvent
{
public:
/**
* constructor which takes the event's name
* @param name string which contains the event's name
*/
cRotationEvent (
const string &type = "cRotationEvent");
/**
* constructor w/ initialization
* @param name string which contains the event's name
* @param angle angle in degree
* @param axis axis to turn around
*/
cRotationEvent (
const string &type,
GLfloat angle,
const cVertex &axis);
/**
* copy constructor
*/
cRotationEvent (const cRotationEvent &e);
/**
* destructor
*/
virtual ~cRotationEvent ();
/**
* clone function
* @return pointer to new allocated cRotationEvent
*/
virtual cRotationEvent *Clone () const;
/**
* allow accessing the payload
* @return angle to turn around
*/
virtual GLfloat GetAngle () const;
/**
* allow accessing the payload
* @return axis to turn around
*/
virtual const cVertex &GetAxis () const;
protected:
/**
* the stored angle
*/
GLfloat mAngle;
/**
* the stored axis
*/
cVertex mAxis;
};
#endif // ifndef cRotationEvent_hh
|