These objects know how to dynamically manipulate (tick) loaded maps. More...
Classes | |
class | aesop::ObjectContext |
this is a base class for caller-specified context attached to PhysicsObjects More... | |
class | aesop::MapDynamics |
create one of these to handle dynamics (physics etc.) for a given Map More... | |
Typedefs | |
typedef void(* | aesop::zone_obj_iteration_fn )(IN smart_ptr< Instance > &instance, IN smart_ptr< PhysicsObject > &obj, IN void *context) |
zone iteration callback | |
Functions | |
virtual smart_ptr< Map > | aesop::MapDynamics::getMap (void)=0 |
virtual smart_ptr< PhysicsWorld > | aesop::MapDynamics::getPhysics (void)=0 |
virtual smart_ptr< PhysicsObject > | aesop::MapDynamics::addInstance (IN smart_ptr< Instance > &instance)=0 |
virtual void | aesop::MapDynamics::removeObject (IN smart_ptr< PhysicsObject > &obj)=0 |
virtual void | aesop::MapDynamics::tickMap (IN float seconds)=0 |
virtual void | aesop::MapDynamics::iterateInstancesInZone (IN Zone *zone, IN zone_obj_iteration_fn fn, IN void *context)=0 |
iterates over all instances within the given zone (static and dynamic objects). | |
static smart_ptr< MapDynamics > | aesop::MapDynamics::create (IN smart_ptr< Map > &map, IN const Datahash *params) |
smart_ptr< Instance > | aesop::getInstanceFromPhysicsObject (IN smart_ptr< PhysicsObject > &obj) |
can return null! | |
MapDynamics * | aesop::getMapDynamicsFromPhysicsObject (IN smart_ptr< PhysicsObject > &obj) |
can return null! |
These objects know how to dynamically manipulate (tick) loaded maps.
This library is what binds the AESOP Physics Library library with Maps.
Map objects themselves don't understand physics or dynamics, they just provide raw data about object placement and space (zone) partitioning.
The purpose of this library is to allow people to implement their own Map / Zone objects as necessary (different space partitioning schemes, different map formats, etc.) but be able to re-use all of the handling for dynamic objects. The goal is that people can override map/zone objects without worrying about dynamics at all.
This library must know nothing about rendering. MapDynamics objects are used on both the server (as the authoritative state) and on the client (in a predictive, non-authoritative way to accommodate network lag).
typedef void(* aesop::zone_obj_iteration_fn)(IN smart_ptr< Instance > &instance, IN smart_ptr< PhysicsObject > &obj, IN void *context) |
zone iteration callback
Definition at line 74 of file map-dynamics.h.
virtual smart_ptr<Map> aesop::MapDynamics::getMap | ( | void | ) | [pure virtual, inherited] |
virtual smart_ptr<PhysicsWorld> aesop::MapDynamics::getPhysics | ( | void | ) | [pure virtual, inherited] |
virtual smart_ptr<PhysicsObject> aesop::MapDynamics::addInstance | ( | IN smart_ptr< Instance > & | instance | ) | [pure virtual, inherited] |
virtual void aesop::MapDynamics::removeObject | ( | IN smart_ptr< PhysicsObject > & | obj | ) | [pure virtual, inherited] |
virtual void aesop::MapDynamics::tickMap | ( | IN float | seconds | ) | [pure virtual, inherited] |
virtual void aesop::MapDynamics::iterateInstancesInZone | ( | IN Zone * | zone, | |
IN zone_obj_iteration_fn | fn, | |||
IN void * | context | |||
) | [pure virtual, inherited] |
iterates over all instances within the given zone (static and dynamic objects).
smart_ptr< MapDynamics > aesop::MapDynamics::create | ( | IN smart_ptr< Map > & | map, | |
IN const Datahash * | params | |||
) | [static, inherited] |
Definition at line 590 of file map-dynamics.cpp.
smart_ptr< Instance > aesop::getInstanceFromPhysicsObject | ( | IN smart_ptr< PhysicsObject > & | obj | ) |
can return null!
MapDynamics * aesop::getMapDynamicsFromPhysicsObject | ( | IN smart_ptr< PhysicsObject > & | obj | ) |
can return null!