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 Member Functions | Protected Member Functions | List of all members
OpenSkyNet::Core::PathUpdater Class Reference

#include <CPathUpdater.h>

Inheritance diagram for OpenSkyNet::Core::PathUpdater:
OpenSkyNet::Core::MotionUpdater OpenSkyNet::Core::CollisionListener OpenSkyNet::Core::Updater

Classes

struct  PathInfo
 

Public Member Functions

 PathUpdater ()
 
virtual ~PathUpdater ()
 
virtual bool update (float dt_)
 
void setPath (Object *obj_, const Math::Path *path_, const float &speed_, Math::Interpolator::TYPE interpolatorType_=Math::Interpolator::END, float interpolatorValue_=0.0f, bool lookAtEnd_=false, float lookPercentAhead_=0.0f, bool usePercentOfPoints_=false)
 
const Math::InterpolatorgetInterpolator (Object *obj_)
 
const Math::PointgetInitialDriverPos (Object *obj_)
 
bool isPathAtEnd (Object *obj_)
 
CollisionListener interface.
virtual void setNonCollidingData (Object *obj_)
 
virtual void handleNonCollidingTransformApplied (Object *obj_)
 
- Public Member Functions inherited from OpenSkyNet::Core::MotionUpdater
 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
 
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_)
 
- Public Member Functions inherited from OpenSkyNet::Core::CollisionListener
virtual bool handleCollisions (Object *collidee_, std::vector< CD::HitInfo > &collisions_, float &dt_)
 
virtual void handleNewCollisions (Object *collidee_, std::vector< Object * > &colliders_)
 
virtual void handleDeletedCollisions (Object *collidee_, std::vector< Object * > &colliders_)
 
virtual bool handleWrongSidedness (Object *collidee_, std::vector< CD::HitInfo > &collisions_)
 
virtual bool handleOutOfGrid (Object *obj_)
 

Protected Member Functions

virtual bool addObject (Object *obj_, Updater::OBJECT_PRIORITY prio_=Updater::OBJ_1, bool isOneShot_=false)
 
- Protected Member Functions inherited from OpenSkyNet::Core::MotionUpdater
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_)
 

Additional Inherited Members

- Public Types inherited from OpenSkyNet::Core::MotionUpdater
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
 
- Static Public Member Functions inherited from OpenSkyNet::Core::MotionUpdater
static void setForward (Math::Matrix3x3 &rot_, Math::Point<> &forward_)
 
- Protected Attributes inherited from OpenSkyNet::Core::MotionUpdater
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

Updates an object's motion along a path.

Constructor & Destructor Documentation

OpenSkyNet::Core::PathUpdater::PathUpdater ( )
inline
virtual OpenSkyNet::Core::PathUpdater::~PathUpdater ( )
inlinevirtual

Member Function Documentation

bool PathUpdater::addObject ( Object obj_,
Updater::OBJECT_PRIORITY  prio_ = Updater::OBJ_1,
bool  isOneShot_ = false 
)
protectedvirtual

Returns false if obj_ is already in this updater.

Implements OpenSkyNet::Core::MotionUpdater.

const Math::Point& OpenSkyNet::Core::PathUpdater::getInitialDriverPos ( Object obj_)
inline
const Math::Interpolator& OpenSkyNet::Core::PathUpdater::getInterpolator ( Object obj_)
inline
void PathUpdater::handleNonCollidingTransformApplied ( Object obj_)
virtual

Called by Core::CollisionDetector update() after the object is set to its "safe" transform.

Reimplemented from OpenSkyNet::Core::CollisionListener.

bool PathUpdater::isPathAtEnd ( Object obj_)
void PathUpdater::setNonCollidingData ( Object obj_)
virtual

Saves the motion info for obj_ when it is known not to cause collisions w/ other objects. This data is used in iterative collision detection routines whereby only one object can be tested for a new position/rotation at a time; the rest of the objects have to be at "safe" positions/rotations.

Reimplemented from OpenSkyNet::Core::CollisionListener.

void PathUpdater::setPath ( Object obj_,
const Math::Path path_,
const float &  speed_,
Math::Interpolator::TYPE  interpolatorType_ = Math::Interpolator::END,
float  interpolatorValue_ = 0.0f,
bool  lookAtEnd_ = false,
float  lookPercentAhead_ = 0.0f,
bool  usePercentOfPoints_ = false 
)
bool PathUpdater::update ( float  dt_)
virtual

Returns true if all objects were updated over the current interval (that's interval, not dt_), false if objects are left to be updated (see class description).

Parameters
dt_= seconds to update an object this call. dt_ accumulates for objects not updated.

Reimplemented from OpenSkyNet::Core::Updater.


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