-
Notifications
You must be signed in to change notification settings - Fork 94
misc
Ryzom Core Wiki edited this page Jul 8, 2024
·
42 revisions
title: NeL Misc description: published: true date: 2023-03-16T22:54:47.191Z 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.
- Handling Command Line Options (TODO)
- Logging: Debugging macros (assertions, debugging information, warnings,...) linked to displayers
- Log Displayer: Abstracted displayer system (may be stdout, a file, a console window, etc.)
- Custom Logging: Support for multiple simultaneous log displayers.
- Custom Log Displayer: Create your own log displayer
- Log filtering functionality
- Console Commands: This system is handy for managing a command line at run time
- Console Variables
- Basic Debugging
- Using Config Files: A configuration file system capable of detecting and reloading changes to configuration
- String Utilities: Unicode string management
- Internationalization: System for management of internationaly localised text
- Serialization
- File and Path Management: A Search path management system for locating data files
- Creating and Using Big Files
- Creating and Using XML Packs
- Class Registry: The Class registry which allows instantiation of polymorphic classes by name
- 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 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.
- https://web.archive.org/web/20070418012757/http://www.nevrax.org/tikiwiki/tiki-index.php?page=NeLMisc
- https://web.archive.org/web/20080724090531/http://www.opennel.org/confluence/display/NEL/NeLDocumentation
- https://web.archive.org/web/20100511090441/http://www.opennel.org/confluence/display/~mattr/MtrNelManualNotes