Public Member Functions

aesop::Map Class Reference
[AESOP Map and Zone Interfaces]

This is the base object used to describe an AESOP map. More...

#include <map.h>

Inheritance diagram for aesop::Map:
Inheritance graph

List of all members.

Public Member Functions

virtual ~Map (void) throw ()
virtual const char * getId (void) const =0 throw ()
virtual ZonegetRootZone (void)=0 throw ()
virtual ZonegetZone (IN const char *zone_id)=0
virtual void iterateZones (IN zone_iteration_fn, IN void *context)=0
virtual const char * getDefaultStartingPointId (void) const =0 throw ()
virtual void getStartingPointIds (OUT VecString &ids) const =0
virtual void getStartingPoint (IN const char *id, OUT destination_t &start) const =0

Detailed Description

This is the base object used to describe an AESOP map.

From a Map interface, it is possible to traverse and find all zones, static content, etc.

For the purposes of the AESOP framework, the map defines an arbitrary 3D region of space. That space should be recursively partitioned into Zone objects (see zone.h).

Map and Zone objects are intended to be faithful in-memory representations of the static map data as stored on disk. Any dynamic map/zone objects are managed by client objects (such as MapDynamics).

Maps need to be threadsafe. In practice this isn't interesting because maps are read-only after they are loaded. Anything that changes (such as objects being added or removed, moving around, etc.) is handled by the MapDynamics library, not the base Map or Zone objects.

Maps should never be aware of drawing or rendering! Other code libraries should use map data to handle drawing. See map_drawer for one example. Map and Zone objects are used on the client and server.

Definition at line 102 of file map.h.

Constructor & Destructor Documentation

aesop::Map::~Map ( void   )  throw () [virtual]

Definition at line 42 of file aesop-map.cpp.

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