COAL - Client Object Aggregation Library
Introduction
COAL is a C++ utility library for client and editor developers. It provides:
- An abstract framework for storing and retrieving map data.
- Facilities for converting 3D polygon regions into 2D tile grids (ported from Sal's libMIM).
- Convenience functions for interfacing with Atlas.
- Possibly CORBA wrappers, in the distant future.
- More to follow...
Client developers can use COAL to handle data storage and to act as a layer between the application and the Atlas libraries. As map updates come in from the server, COAL will process them and update its internal database. The client app can then query COAL as it needs, for map rendering and so forth. COAL may eventually also handle character inventory data caching and other useful object handling features.
COAL stores map data as 3D regions. If the client app enables COAL's 2D mode, COAL will also translate the regions into a map of 2D tiles which a 2D client can render as it sees fit, using whatever media repository it wants.
NOTE: COAL and related components like libAtlas and the map format are still in flux, so the focus, goals, and dependencies of COAL may change in response to its changing environment. If you see anything that's silly or downright wrong with the code and its implementation, please let me know. The purpose of COAL is to make life easier for client developers, so anything I can do to make it more useful is a step in the right direction.
Details
COAL is actually divided into two discrete libraries, depending on what functionality you need:
- libcoal
- Generic database for storing and accessing objects (uses
void*) in a 3D space. Includes coordinate system
management, automated culling of old regions, and an
abstract query mechanism. Also adds support functions
for converting Atlas's polygonal map shapes into filled
2D tile grids. (Could be used outside of WF.)
- libcoal_atlas
- Provides an easy-to-use wrapper around libAtlas, including automated map-loading (see libcoal) and other higher-level manipulations of Atlas::Object and friends. (Requires WF/Atlas.)
Getting COAL
Latest development sources are in CVS.
--
John R. Sheets
- Home
- -
- About
- -
- Introduction
- -
- FAQ
- -
- Team
- -
- Newbie Guide
- -
- Getting Started
- Editing Guide
- -
- Edit
- -
- Manage
- -
- New Page
- -
- Changes
- -
- Map
- -
- Password
- -
- Deprecation