PLM Software Multimedia Tools and Games

PLMBase

PLMBase Library version 0.20

Description

PLMBase is the first library in the PLM Libs series. Its main goal is to provide simple and low-level classes to easily do all you may need in a project, in a portable way (platform-independance). The libraries have been designed to reduce the number of external dependencies, and this one only requires templates and iostream classes from the STL.

Here is a quick list of all classes, with a short description:

Data types and basic structures:

  • PLMString: the classical string class, with some specific methods.
  • PLMText: a vector of strings.
  • PLMRGBA: a color with 4 components (red, green, blue and alpha), and conversions methods.
  • PLMCallback*: some classes to represent C-like pointers to member functions.
  • PLMPoint, PLMRect, PLMVec3: basic geometry classes.

Files and archives:

  • PLMFileProvider: a virtual class (interface) to define the services of a file provider, i.e. a class that represents a list of files, that allows to run through the list with iterators and open files.
  • PLMDir: one implementation of a file provider, as a standard directory.
  • PLMArchive: another implementation of a file provider, as an archive file (many formats).
  • PLMResFile: a virtual class that defines the methods of a File class (open, close, reads, writes).
  • PLMFile: one implementation of PLMResFile as a standard file.
  • PLMPackFile: one implementation of PLMResFile as an archive file (a file nested inside another file).
  • PLMMemFile: one implementation of PLMResFile as a memory file (content already in memory).

Resources:

  • PLMResource: a virtual class to define the basic operations performed by a resource, i.e. Load() and Save().
  • PLMResFinder: this class can register many sources (file providers) and then allows to retrieve files from them, opened as a PLMResFile.
  • PLMResMgr: a resource manager, that can load data files found by a PLMResFinder, and keep a list of them (reference counter) to avoid useless loadings and a waste of memory.
  • PLMImage: the image class, can load BMP, PCX, TGA, GIF.
  • PLMFont: a bitmap font class, uses PLM's own format.
  • PLMPal: a palette class, can load GIMP, PSP, and raw RGB or BGR.

Other classes:

  • PLMTranslator: a class to list and load language files, to make application speak any language.
  • PLMLog: a simple LOG class, to print messages to the standard console or to a file, with many level of output.
  • PLMRandom: simple functions to generate random numbers (within limits, integer or float).
  • PLMParseUtils: a set of functions to extract different data types from a string (integer, boolean, float, color, date).
  • PLMFileUtils: a set of low-level file functions, to ease file manipulations (check file existance, test directory, rename, delete, ...).
  • PLMConfigMgr: a class to define parameters and load values from a config file or the command line.
  • PLMScore: a game oriented class to handle a simple score table, add records and load/save them.
Tools

Some basic tools are released with PLMBase to help developers to use and create resources for their applications.

  • plmfont : to get informations about a font, and to build new fonts (from an image and a description file),
  • plmres : the resource manager, to build archives from data files,
  • plmlang : to create language files to use with PLMTransalator, from message files.

Examples

You will also find some examples with the library to illustrate its main capabilities...

  • config : to test the configuration manager, you can set user options from a config file, a default static value or command line argument.
  • file : a very simple program to test the File class.
  • fileprovider : shows how to use PLMFileProviders, i.e. standard directories or archive files. You can list their contents and sort their entries.
 Download

OSI certifiedOpen Source

Note that the following packages are released under the GNU LGPL license (Lesser General Public License).

Package Size Date Notes
Linux library 177.5 k 26 Oct 2004 TGZ, Development package (headers + libs)
Windows library 210.1 k 26 Oct 2004 ZIP, Development package (headers + libs)
Documentation 303.3 k 26 Oct 2004 ZIP, HTML documentation (doxygen)
Sources 645.5 k 26 Oct 2004 TGZ, Linux/Windows sources (contains PLMBase, PLMMedia, PLM3D)

Copyright 2001-2004 PLMSoft All rights reserved. (last mod.: 15 Oct 2004)