misc - ryzom/ryzomcore GitHub Wiki


title: NeL Misc description: published: true date: 2023-03-01T05:12:23.110Z tags: editor: markdown dateCreated: 2019-11-26T05:42:01.653Z

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.

Documentation

Console, Configuration, and Debugging

Unicode and Internationalization

File Serialization and Path Management

Cross-platform Portability

  • 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

Maths

  • 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

Memory management

  • 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

Bitmap Utilities

  • Complete implementation of different formats of RGBA colour representations
  • Functionality for loading and treating bitmaps of different formats

Samples

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.

Sources

⚠️ **GitHub.com Fallback** ⚠️