Tactics: Western Philosophers Vs. Musicians  0.12
A turn-based tactical game combining rules and gameplay elements inspired by Final Fantasy Tactics and the Mayfair Exponential Game System. Unlike most games of this type, motion is in full, grid-less 3D.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
OpenSkyNet::Core::MotionUpdater Class Referenceabstract

#include <IMotionUpdater.h>

Inheritance diagram for OpenSkyNet::Core::MotionUpdater:
OpenSkyNet::Core::Updater OpenSkyNet::Core::Director OpenSkyNet::Core::PathUpdater OpenSkyNet::Core::TransformInterpolator OpenSkyNet::OgreCore::OgreDirector

Classes

struct  Anchor
 
struct  MotionInfo
 

Public Types

enum  ATTACH_POINT { BASE, VIEW, NUM_ATTACH_POINTS }
 
- Public Types inherited from OpenSkyNet::Core::Updater
enum  UPDATER_TYPE {
  BASE, AI, CAMERA, PATH_FINDER,
  PATH, TRANSFORM_INTERPOLATOR, PHYSICS, ANIMATION,
  COLLISION_DETECTOR, PHYS_VIS, TRANSFORM_CHANGE_DETECTOR, CORE_MAX,
  MAX =32
}
 
enum  UPDATER_PRIORITY {
  UPD_DISABLED, UPD_1, UPD_2, UPD_3,
  UPD_4, UPD_5, UPD_6, UPD_7,
  UPD_8, UPD_NUM_PRIORITIES
}
 
enum  OBJECT_PRIORITY {
  OBJ_DISABLED, OBJ_1, OBJ_2, OBJ_3,
  OBJ_NUM_PRIORITIES
}
 
typedef std::map< Object
*, UpdateInfo * > 
ObjMap
 

Public Member Functions

 MotionUpdater (Updater::UPDATER_TYPE type_, const char *typeName_, Updater::UPDATER_PRIORITY prio_, float interval_)
 
virtual void addAnchor (Object *base_, Object *anchor_, bool updatePos_, bool updateRot_, const Math::Point<> &localPos_, const Math::Matrix3x3 &localRot_)
 
virtual void addAnchor (Object *base_, Object *anchor_, bool updatePos_, bool updateRot_)
 
virtual void removeAnchor (Object *base_, Object *anchor_)
 
virtual void removeAllAnchors (Object *base_)
 
- Public Member Functions inherited from OpenSkyNet::Core::Updater
 Updater ()
 
 Updater (UPDATER_TYPE type_, const char *typeName_, UPDATER_PRIORITY prio_, float interval_)
 
virtual ~Updater ()
 
UPDATER_TYPE getType () const
 
const std::string & getTypeName () const
 
virtual bool update (float dt_)
 
float getInterval () const
 
void setInterval (float interval_)
 
Utils::uint getNumObjects () const
 
Utils::uint getNumObjectsThatCanUpdate () const
 
bool find (Object *obj_) const
 
UPDATER_PRIORITY getPriority () const
 
OBJECT_PRIORITY getPriority (Object *obj_) const
 
virtual bool setPriority (Object *obj_, OBJECT_PRIORITY prio_)
 

Static Public Member Functions

static void setForward (Math::Matrix3x3 &rot_, Math::Point<> &forward_)
 

Protected Member Functions

virtual bool addObject (Object *obj_, Updater::OBJECT_PRIORITY prio_, bool isOneShot_)=0
 
virtual bool removeObject (Object *obj_)
 
virtual void removeAllObjects ()
 
virtual void updateAnchors (Object *obj_)
 
- Protected Member Functions inherited from OpenSkyNet::Core::Updater
int getNumToUpdate (float dt_)
 
void allObjectsUpdated ()
 
void setPriority (UPDATER_PRIORITY prio_)
 

Protected Attributes

std::map< Object *, MotionInfo * > _nonCollidingInfoMap
 
- Protected Attributes inherited from OpenSkyNet::Core::Updater
std::list< Object * > _objLists [OBJ_NUM_PRIORITIES]
 
ObjMap _objMap
 
UPDATER_TYPE _type
 
std::string _typeName
 
UPDATER_PRIORITY _prio
 
float _interval
 
float _dtSinceAllWereUpdated
 
float _prevTotalTimeForAllUpdates
 
float _partialUpdate
 
int _currPrio
 
std::list< Object * >::iterator _currObj
 

Detailed Description

Abstract interface for motion updates. Implements adding/removing anchors (game objects to be moved relative to a parent object).

Member Enumeration Documentation

Enumerator
BASE 
VIEW 
NUM_ATTACH_POINTS 

Constructor & Destructor Documentation

OpenSkyNet::Core::MotionUpdater::MotionUpdater ( Updater::UPDATER_TYPE  type_,
const char *  typeName_,
Updater::UPDATER_PRIORITY  prio_,
float  interval_ 
)
inline

Member Function Documentation

virtual void OpenSkyNet::Core::MotionUpdater::addAnchor ( Object base_,
Object anchor_,
bool  updatePos_,
bool  updateRot_,
const Math::Point<> &  localPos_,
const Math::Matrix3x3 localRot_ 
)
virtual

Adds an object to be moved relative to the base object. The version without local pos and rot parameters calculate the local offsets from the anchor's current values. NOTE: Assumes base_ is in this updater.

void MotionUpdater::addAnchor ( Object base_,
Object anchor_,
bool  updatePos_,
bool  updateRot_ 
)
virtual
virtual bool OpenSkyNet::Core::MotionUpdater::addObject ( Object obj_,
Updater::OBJECT_PRIORITY  prio_,
bool  isOneShot_ 
)
protectedpure virtual

Returns false if obj_ is already in this updater.

Reimplemented from OpenSkyNet::Core::Updater.

Implemented in OpenSkyNet::Core::Director, OpenSkyNet::Core::TransformInterpolator, and OpenSkyNet::Core::PathUpdater.

void MotionUpdater::removeAllAnchors ( Object base_)
virtual
void MotionUpdater::removeAllObjects ( )
protectedvirtual

Reimplemented from OpenSkyNet::Core::Updater.

void MotionUpdater::removeAnchor ( Object base_,
Object anchor_ 
)
virtual
bool MotionUpdater::removeObject ( Object obj_)
protectedvirtual

Returns false if obj_ is not in this updater.

Reimplemented from OpenSkyNet::Core::Updater.

static void OpenSkyNet::Core::MotionUpdater::setForward ( Math::Matrix3x3 rot_,
Math::Point<> &  forward_ 
)
inlinestatic
void MotionUpdater::updateAnchors ( Object obj_)
protectedvirtual

Member Data Documentation

std::map<Object*, MotionInfo*> OpenSkyNet::Core::MotionUpdater::_nonCollidingInfoMap
protected

The documentation for this class was generated from the following files: