The NeL Misc library contains all the core types, functionality and utilities necessary to use the Net, 3D or PACS libraries.
It also includes a handful of handy utilities that don't belong in any of the other libraries.
¶ Console, Configuration, and Debugging
¶ Unicode and Internationalization
¶ File Serialization and Path Management
- Base data types, platform independent data type definitions such as sint32, uint32, etc., and exception base classes
- System information retrieval (retrieves info on the system OS, processor, RAM)
- Application Contexts
- Library Loading
- Timing Systems: OS independent time retrieval (retrieves time from local machine's clock)
¶ Events and Threading
- Events and Managing Input: Generalised event management system (c/f windows) used for input (keyboard, mouse, etc)
- Threading: OS independent thread & mutex management with POSIX and Windows implementations
- A system for queuing tasks for threads to process. This system is handy for things like background loading
- Quaternion classes for quaternion maths
- Matrix classes for 3D maths
- 2D and 3D vector classes in integer, single precision and double precision float implementations
- Plane class with associated functionality - projection of vector onto plane, polygon or line segment clipping against plane, etc.
- Bounding box and bounding sphere implementations with 1001 associated utility routines
- Reference counting system with smart pointers
- Block and pool based memory managers for minimisation of memory fragmentation
- A Fifo manager that houses arbitrary non-uniform sized data blocks. The fifo size is dynamic but memory allocation and liberation is minimal.
- Complete implementation of arbitrary sized bit arrays
- Complete implementation of different formats of RGBA colour representations
- Functionality for loading and treating bitmaps of different formats
These samples illustrate the usage of the Misc library.
- command: How to create commands and execute them using ICommand class. It's a generic system to create and execute commands at run time. (It is used in all services, Snowballs client and so on.)
- configfile: How to use a NeL configuration file. (This system is used in all services, snowballs client...).
- debug: How to use basic debug features that are used everywhere in NeL.
- i18n: How to use text internationalisation.
- log: Use the log and displayer system that is a generic way to generate output (on screen, file...).
- strings: Basic program to check if NeL types are valid.
- types_check: Basic program to check if NeL types are valid.