aboutsummaryrefslogtreecommitdiff
path: root/docs/features_nel_misc.php
blob: 500de8dea3c905cbe1ed0e422bf4dcb2372a4843 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
<!doctype html public "-//W3C//DTD HTML 4.0 Transitional//EN" "http://www.w3.org/TR/REC-html40/loose.dtd">
<HTML>
<HEAD>
	<TITLE>Nevrax.org : docs</TITLE>
	<META  name="keywords" content="freesoftware,nel,newt,snowballs,richard stallman,GNU,Multi-User Online World">
	<LINK REL=stylesheet TYPE="text/css" HREF="/inc/css/nevrax.css">
</HEAD>
<BODY MARGINHEIGHT="0" MARGINWIDTH="0">

<!-- uplinks -->
<TABLE CELLSPACING=0 CELLPADDING=0  BORDER=0>
 <TR>
        <TD WIDTH=16><IMG  SRC="/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
        <TD WIDTH=140 BGCOLOR=#dddddd><IMG  SRC="/inc/img/pixel.gif" WIDTH="140" HEIGHT="16" BORDER=0 ALT=""></TD>
        <TD WIDTH=16><IMG  SRC="/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
        <TD><IMG width=6 height=14 SRC="/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF='/'><b>Home</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
        <TD><IMG  width=6 height=14  SRC="/inc/img/reddots.gif" ALT="#" VSPACE=2 HSPACE=2 BORDER=0 ></TD><TD VALIGN=middle>&nbsp;<A CLASS=uplinks HREF=><b>nevrax.com</B></FONT></A>&nbsp;&nbsp;&nbsp;</TD>
 </TR>
</TABLE> 

<!-- banner Nevrax -->
<TABLE CELLSPACING=0 CELLPADDING=0  BORDER=0 WIDTH=100%>
 <TR><TD  BGCOLOR="#000000" BACKGROUND="/inc/img/black_banner.jpg"><A HREF=""><IMG  SRC="/inc/img/nevrax.gif" WIDTH="170" HEIGHT="45" BORDER=0 ALT="Nevrax"></A></TD></TR>
</TABLE>

<!-- main table -->
<TABLE CELLSPACING=0 CELLPADDING=0  BORDER=0 height=100%>
 <TR>
	<TD WIDTH=16><IMG  SRC="/inc/img/pixel.gif" WIDTH="16" HEIGHT="10" BORDER=0 ALT=""></TD>
	<TD WIDTH=140   BGCOLOR=#dddddd VALIGN=TOP ALIGN=middle><IMG  SRC="/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">

		<!------ Begin Box ------>
		<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 BGCOLOR=black><TR><TD><TABLE border=0  cellspacing=2 cellpadding=0 width=120><tr><TD ALIGN=middle bgcolor=black>
		<FONT COLOR=white FACE="sans-serif"><B>Nevrax.org</B></FONT></TD></TR><tr><td  colspan=2 bgcolor=#FFFFFF>
		<TABLE cellspacing=0 cellpadding=1 border=0>
			<tr><td ALIGN=middle><a  class='linkbox' href="/news/" TITLE="Rubrique news"><img width=13 height=15  hspace=5 border=0 src=/inc/img/picto-news.gif ALT=#></A></td><td><a  class='linkbox' href="/news/" TITLE="News">News</a></td></tr>
			<tr><td ALIGN=middle><a  class='linkbox' href="/mail/" TITLE="Rubrique mail"><img width=15 height=11  hspace=5 border=0 src=/inc/img/picto-mail.gif ALT=#></A></td><td><a  class='linkbox' href="/mail/" TITLE="Mailing list archive">Mailing-list</a></td></tr>
			<tr><td ALIGN=middle><a  class='linkbox' href="/docs/" TITLE="Rubrique docs"><img width=14 height=16  hspace=5 border=0 src=/inc/img/picto-docs.gif ALT=#></A></td><td><a  class='linkbox' href="/docs/" TITLE="Documentation">Documentation</a></td></tr>
			<tr><td ALIGN=middle><a  class='linkbox' href="/cvs/" TITLE="Rubrique cvs"><img width=13 height=17  hspace=5 border=0 src=/inc/img/picto-cvs.gif ALT=#></A></td><td><a  class='linkbox' href="/cvs/" TITLE="CVS Web">CVS</a></td></tr>
<!--			<tr><td ALIGN=middle><a  class='linkbox' href="/bugs/" TITLE="Rubrique bugs"><img width=20 height=16  hspace=5 border=0 src=/inc/img/picto-bugs.gif ALT=#></A></td><td><a  class='linkbox' href="/bugs/" TITLE="Bugtracking">Bugs</a></td></tr>-->
			<tr><td ALIGN=middle><a  class='linkbox' href="/free/" TITLE="Rubrique license"><img width=18 height=12  hspace=5 border=0 src=/inc/img/picto-free.gif ALT=#></A></td><td><a  class='linkbox' href="/free/" TITLE="Free Software">Free software</a></td></tr>
			<tr><td ALIGN=middle><a  class='linkbox' href="/download/" TITLE="Rubrique download"><img width=13 height=17  hspace=5 border=0 src=/inc/img/picto-cvs.gif ALT=#></A></td><td><a  class='linkbox' href="/download/" TITLE="Download">Download</a></td></tr>
			<tr><td ALIGN=middle><a  class='linkbox' href="/suggest/" TITLE="Rubrique suggest"><img width=14 height=16  hspace=5 border=0 src=/inc/img/picto-docs.gif ALT=#></A></td><td><a  class='linkbox' href="/suggest/" TITLE="FS Suggest">FS Suggest</a></td></tr>
			<tr><td ALIGN=middle><a  class='linkbox' href="/faq/" TITLE="Rubrique suggest"><img width=14 height=16  hspace=5 border=0 src=/inc/img/picto-docs.gif ALT=#></A></td><td><a  class='linkbox' href="/faq/" TITLE="FAQ">FAQ</a></td></tr>
		</TABLE>
		</TD></TR></TABLE></TD></TR></TABLE>
		<!------ End Box  ------>
		

	</TD>
	<TD WIDTH=15><IMG  SRC="/inc/img/pixel.gif" WIDTH="16" HEIGHT="16" BORDER=0 ALT=""></TD>
	<TD ALIGN=left valign=top><IMG  SRC="/inc/img/pixel.gif" WIDTH="140" HEIGHT="10" BORDER=0 ALT="">

<!-- title -->
<TABLE  background="/inc/img/redline.gif" CELLSPACING=0 CELLPADDING=0  BORDER=0 width=100%><tr><td>
<A HREF="/docs"><img src="/inc/img/t_docs.gif" ALT="docs"  HEIGHT=20 BORDER=0></A>
</td><td><IMG  SRC="/inc/img/pixel.gif" WIDTH="1" HEIGHT="1" BORDER=0 ALT="">
</td></tr></table>

<!-- End header -->


<!-- NeL Misc Library : Features -->
<table width=100%><tr><td align=left><b>NeL Misc Library : Features</b></td><td align=right><b></b></td></TR></TABLE>


<H2>Introduction</H2>
<P>The Misc library contains all the core types and functionality and utilities necessary to use the Net, AI, 3D or PACS libraries.</P>
<P>It also includes a handful of handy utilities that don't belong in any of the other libraries. </P>

<H2>Features</H2>

<H3>Core functionality</H3>
<UL>
	<li>base data types
	<li>platform independent data type definitions such as sint32, uint32, etc
	<li>exception base class
	<li>debugging macros
	<li>debugging macros (assertions, debugging information, warnings,...) w/ link to displayers
	<li>A fistfull of handy common routines and classes - maths, string manipulation, etc
	<li>Reference counting system with smart pointers
	<li>Smart pointers free the data they point to when it is no longer referenced
	<li>unicode string management
	<li>displayer system which abstracts the displayer (may be stdout, a file, a console window, etc.)
	<li>A log message management system based on displayers. Provides message filtering functionality and support for multiple simultaneous displayers.
	<li>The Class registry which allows instantiation of polymorphic classes by name.
</UL>

<H3>Portability</H3>
<UL>
	<li>System information retrieval (retrieves info on the system OS, processor, RAM)
	<li>Generalised event management system (c/f windows) used for input (keyboard, mouse, etc)
	<li>OS independent thread & mutex management with Posix and Windows implementations
	<li>System for management of internationaly localised text
	<li>OS independent time retrieval (retrieves time from local machine's clock)
</UL>

<H3>Miscelaneous 3d primitives & utilities</H3>
<UL>
	<li>Bounding box and bounding sphere implementations with 1001 associated utility routines
	<li>complete implementation of different formats of RGBA colour representations
</UL>

<H3>Maths</H3>
<UL>
	<li>Quaternion classes for quaternion maths
	<li>Matrix classes for 3d maths
	<li>2D and 3D vector classes in integer, single precision and double precision float implementations
	<li>Plane class with associated functionality - projection of vector onto plane, polygon or line segment clipping against plane, etc.
</UL>

<H3>Memory management</H3>
<UL>
	<li>Block and pool based memory managers for minimisation of memory fragmentation
	<li>A Fifo manager that houses arbitrary non-uniform sized data blocks. The fifo size is dynamic but memory allocation and liberation is minimal.
</UL>

<H3>Serialisation & streams</H3>
<UL>
	<li>"Based on Java's SERIALISE"
	<li>Includes a file version support mechanism that allows backward compatibility (with old data files)
	<li>Supports serialisation of: base types, classes composed of serialisable types, STL containers of serialisable types, pointers to serialisable data (including a reference counting system which serialises the data that the pointer points to unless it has already been serialsed by another pointer to the same data - At re-load time the pointers are fixed back up to point to the same data).
	<li>Support for Polymorphism (serialisation of classes repherenced by a pinter of their base class type)
	<li>Binary memory stream, ASCII memory stream, binary file stream implementations.
</UL>

<H3>Utilities</H3>
<UL>
	<li>Functionality for loading and treating bitmaps of different formats
	<li>A Search path management system for locating data files
	<li>A string/ integer association system (handy for compacting message types) 
	<li>A configuration file loading and management system - capable of detecting changes to configuration files and reloading their contents without stopping and relaunching the program.
	<li>Manages variables of type string, integer, float, or an array of any of these.
	<li>A system for managing lists of functions refernced by a string and calling the appropriate command when passed a string. This system is handy for managing a command line at run time.
	<li>A system for queuing tasks for threads to process.  This system is handy for things like background loading.
	<li>Complete implementation of arbitrary sized bit arrays
</UL>


<!-- footer -->
<BR><FONT Size=+5>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </FONT>
</TD>
<TD WIDTH=15><IMG  SRC=/inc/img/pixel.gif WIDTH=15 HEIGHT=15 BORDER=0 ALT=""></TD>
</TR>
</TABLE>

</BODY>
</HTML>