Archon::Utilities Namespace Reference

Holds the Archon utilities library. More...


Classes

struct  AdaptiveSkip
struct  Atomic
 Atomic integer operations. More...
class  CFG
 Context free grammars. More...
struct  CharEnc
 Handles transcoding character sequences between various character encodings. More...
struct  ColorRGBA
struct  ThreadTerminatedException
struct  Condition
 A condition queue for implementing thread synchronization. More...
struct  DefaultPrinter
class  DFA
 Deterministic finite state automata (DFA). More...
struct  Exception
 The ultimate base class for all exceptions defined in the Archon framework. More...
struct  UnexpectedException
 Signals an unexpected exceptional condition. More...
struct  InternalException
 An unexpected internal error was encountered. More...
struct  ArgumentException
 An unexpected problem with one or ore of the method arguments. More...
struct  StateException
 The request operation is unexpectedly not compatible with the current state of the object. More...
struct  ResourceException
 An unexpected problem with getting access to external resources. More...
struct  IOException
 An problem relating to application/component input and/or output. More...
struct  ParseException
 An problem relating to the syntax or structure of some text. More...
struct  Image
 A general purpose in-memory bitmap image (rectangular pixel array) with value semantics as well as copy-on-write semantics to improve performance. More...
struct  ImageData
 A highly elaborate and configurable image data accessor with the ability to describe image data layout in a very general and flexible way. More...
struct  FormatLibgif
 An Image compatible frontend for libungif. More...
struct  FormatLibjpeg
struct  FormatLibpng
 An Image compatible frontend for libpng. More...
struct  Job
 An chunk of work that can be added to a Job::Queue. More...
struct  KDTree
struct  LexerBase
 An abstract base class for lexers. More...
class  Lexer
 A lexer controlled by regular expression. More...
struct  StandardLogger
struct  Logger
class  LrParserBase
 An abstract base class for LR parsers. More...
struct  AutomatonSymbolPrinter
class  ClrParser
class  SlrParser
struct  Array
 A wrapper around a simple conventional array whose memory allocation and deallocation is handled automatically. More...
class  MinimalBoundingBall
struct  MutaRef
 Reference counting with copy-on-write (or lazy copy) semantics. More...
struct  MutaRefObjectBase
struct  MutaRefObject
 Convenience class for adding copy-on-write semantics to a type that for some reason cannot or should not be made to derive from MutaRefObjectBase. More...
struct  Mutex
 A mutex for thread synchronization. More...
class  NFA
 Nondeterministic finite state automata (NFA). More...
struct  Options
struct  PixelFormat
 Supports any number of channels (color components. More...
struct  MesherException
struct  MesherContext
struct  ProgressBase
struct  ProgressBar
struct  ProgressStatus
struct  ForwardDestroyedException
struct  RefNoLockTag
struct  RefSafeIncTag
struct  Ref
 Intrusive reference counted smart pointer. More...
struct  RefObjectBase
 Base class for smart pointer objects. More...
struct  RefObject
 Convenience class for adding a reference count to a type that for some reason cannot or should not be made to derive from RefObjectBase. More...
struct  BackRef
 BackRef is almost an identical copy of Ref thus allowing you to work with two sets of references to the same class. More...
struct  BackRefObjectBase
 Base class for objects supporting both forward and backward references to it. More...
struct  RefMapBase
 Base class for all RefMaps. More...
struct  RefMap
 A map between object references on the "inside" and object indices on the "outside". More...
class  Regex
 Regular expression. More...
struct  Thread
 A thread of execution (aka light weight proccess or LWP) represented as an object. More...
struct  Semaphore
 A semaphore. More...
struct  MethodVoidRunner
struct  MethodArgRunner
struct  FuncVoidRunner
struct  FuncArgRunner
struct  Time
 Representation of time in nanosecond precision. More...
struct  Uri
 Encapsulation and syntactical check of a URI (Universal Resource Identifier). More...
class  UriReference
 UriReference represents a URI reference as defined in RFC 2396. More...
class  Window

Namespaces

namespace  Color
namespace  File
namespace  KeyboardEvents
 Holds a configurabe keyboard event dispatcher.
namespace  MouseEvents
 Holds a configurabe mouse event dispatcher.
namespace  ParseValues
 Basic value parsing.
namespace  Stream
 Definition of abstract stream end-points that are usefull for inter-thread communication.
namespace  Term
namespace  Text
namespace  Unicode
namespace  Web
 Holds the implementation of a web content loader.

Typedefs

typedef Array< char > MemoryBuffer
typedef Ref< RefObjectBaseRefAny
typedef Ref< const RefObjectBaseRefAnyConst
typedef RefObject< ustringUAttr
typedef RefObject< pair< int,
int > > 
IPAttr
typedef unsigned uchar
typedef basic_string< ucharustring

Enumerations

enum  Scheme { scheme_file, scheme_http, scheme_ftp }
enum  Key {
  key_first, key_backspace, key_tab, key_clear,
  key_return, key_pause, key_escape, key_space,
  key_exclaim, key_quotedbl, key_hash, key_dollar,
  key_ampersand, key_quote, key_leftparen, key_rightparen,
  key_asterisk, key_plus, key_comma, key_minus,
  key_period, key_slash, key_0, key_1,
  key_2, key_3, key_4, key_5,
  key_6, key_7, key_8, key_9,
  key_colon, key_semicolon, key_less, key_equals,
  key_greater, key_question, key_at, key_leftbracket,
  key_backslash, key_rightbracket, key_caret, key_underscore,
  key_backquote, key_a, key_b, key_c,
  key_d, key_e, key_f, key_g,
  key_h, key_i, key_j, key_k,
  key_l, key_m, key_n, key_o,
  key_p, key_q, key_r, key_s,
  key_t, key_u, key_v, key_w,
  key_x, key_y, key_z, key_delete,
  key_world_0, key_world_1, key_world_2, key_world_3,
  key_world_4, key_world_5, key_world_6, key_world_7,
  key_world_8, key_world_9, key_world_10, key_world_11,
  key_world_12, key_world_13, key_world_14, key_world_15,
  key_world_16, key_world_17, key_world_18, key_world_19,
  key_world_20, key_world_21, key_world_22, key_world_23,
  key_world_24, key_world_25, key_world_26, key_world_27,
  key_world_28, key_world_29, key_world_30, key_world_31,
  key_world_32, key_world_33, key_world_34, key_world_35,
  key_world_36, key_world_37, key_world_38, key_world_39,
  key_world_40, key_world_41, key_world_42, key_world_43,
  key_world_44, key_world_45, key_world_46, key_world_47,
  key_world_48, key_world_49, key_world_50, key_world_51,
  key_world_52, key_world_53, key_world_54, key_world_55,
  key_world_56, key_world_57, key_world_58, key_world_59,
  key_world_60, key_world_61, key_world_62, key_world_63,
  key_world_64, key_world_65, key_world_66, key_world_67,
  key_world_68, key_world_69, key_world_70, key_world_71,
  key_world_72, key_world_73, key_world_74, key_world_75,
  key_world_76, key_world_77, key_world_78, key_world_79,
  key_world_80, key_world_81, key_world_82, key_world_83,
  key_world_84, key_world_85, key_world_86, key_world_87,
  key_world_88, key_world_89, key_world_90, key_world_91,
  key_world_92, key_world_93, key_world_94, key_world_95,
  key_kp0, key_kp1, key_kp2, key_kp3,
  key_kp4, key_kp5, key_kp6, key_kp7,
  key_kp8, key_kp9, key_kp_period, key_kp_divide,
  key_kp_multiply, key_kp_minus, key_kp_plus, key_kp_enter,
  key_kp_equals, key_up, key_down, key_right,
  key_left, key_insert, key_home, key_end,
  key_pageup, key_pagedown, key_f1, key_f2,
  key_f3, key_f4, key_f5, key_f6,
  key_f7, key_f8, key_f9, key_f10,
  key_f11, key_f12, key_f13, key_f14,
  key_f15, key_numlock, key_capslock, key_scrollock,
  key_rshift, key_lshift, key_rctrl, key_lctrl,
  key_ralt, key_lalt, key_rmeta, key_lmeta,
  key_lsuper, key_rsuper, key_mode, key_compose,
  key_help, key_print, key_sysreq, key_break,
  key_menu, key_power, key_euro, _key_last
}

Functions

template<typename T>
void set_include (const set< T > &right, set< T > &left)
string cxxDemangle (string mangledName)
 Tries to demangle the argument.
template<typename T>
string cxxDemangledType ()
template<typename T>
string cxxDemangledType (T &t)
bool exceptionCatchInfo (Exception::Formatter format, string &result)
 Extract information from the last thrown exception.
Image::FormatgetDefaultGifFormat ()
 The GIF image format used by Image by default.
Image::FormatgetDefaultJpegFormat ()
 The JPEG image format used by Image by default.
Image::FormatgetDefaultPngFormat ()
 The PNG image format used by Image by default.
Image::FormatgetDefaultPnmFormat ()
 The PNM image format used by Image by default.
Image::FormatgetDefaultTiffFormat ()
 The TIFF image format used by Image by default.
vector< bool > detectNativeEndianness ()
 Detect the native endianness.
bool compareEndianness (const vector< bool > &a, const vector< bool > &b=vector< bool >(), int levels=0)
 Compare two endianness descriptions for compatibility or compare an endianness description to the native endianness.
vector< int > computeBytePermutation (const vector< bool > &endianness, int levels)
int findLeastSignificantBit (unsigned v)
 Get the index of the least significant bit in the argument.
int findMostSignificantBit (unsigned v)
 Get the index of the most significant bit in the argument.
template<typename T>
T readWithBytePermutation (const char *data, const vector< int > &bytePermutation)
template<typename T>
T readWithSpecificEndianness (const char *data, const vector< bool > &endianness)
void meshPolygon (const vector< Vector3 > &polygon, double maxPatchSize, MesherContext *context)
 Mesh a polygon.
void meshPolygon (const vector< Vector3 > &polygon, double maxPatchSize, vector< Vector3 > &resultingVertices, vector< int > &resultingPolygons)
 A convenience wrapper for the callback version of 'meshPolygon'.
int drawInt (int bound)
double drawFloat ()
double drawFloatOpen ()
Math::Vector3 drawUnitVector3 ()
string schemeName (Scheme scheme)
ostream & operator<< (ostream &out, const Uri &u)
ostream & operator<< (ostream &out, const UriReference &r)

Variables

Archon::Utilities::FormatLibgif reader
 An Image compatible frontend for libungif.
Archon::Utilities::FormatLibgiflogger
 An Image compatible frontend for libungif.
Archon::Utilities::FormatLibgif writer
 An Image compatible frontend for libungif.
Archon::Utilities::FormatLibgif InternalException
 An Image compatible frontend for libungif.
Archon::Utilities::FormatLibgif supported
 An Image compatible frontend for libungif.
const unsigned lowalphaMask = 1
const unsigned upalphaMask = 2
const unsigned digitMask = 4
const unsigned markMask = 8
const unsigned commonMask = 16
const unsigned slashMask = 32
const unsigned colonMask = 64
const unsigned semicolonMask = 128
const unsigned equalMask = 256
const unsigned questionmarkMask = 512
const unsigned commercialAtMask = 1024
const unsigned otherMask = 2048
const unsigned alphaMask = lowalphaMask|upalphaMask
const unsigned alphanumMask = alphaMask|digitMask
const unsigned unreservedMask = alphanumMask|markMask
const unsigned reservedMask
const unsigned userMask
const unsigned userInfoMask = userMask|colonMask
const unsigned pcharNoEqualMask
const unsigned pcharMask = pcharNoEqualMask|equalMask
const unsigned uricNoSlashMask = pcharMask|semicolonMask|questionmarkMask
const unsigned uricMask = uricNoSlashMask|slashMask
const unsigned anyMask = uricMask|otherMask
unsigned charClassTable [127-32]
 Defines up to 16 potentially overlapping character classes by letting each bit position represent one class.


Detailed Description

Holds the Archon utilities library.

Function Documentation

bool Archon::Utilities::compareEndianness const vector< bool > &  a,
const vector< bool > &  b = vector< bool >(),
int  levels = 0
 

Compare two endianness descriptions for compatibility or compare an endianness description to the native endianness.

Parameters:
a First endianness of the comparison.
b Second endianness of the comparison. Leaving it unspecified results in a comparison with the native endianess.
levels The number of levels to compare starting at the level where bytes are paired. Zero indicates that all levels must match.

Definition at line 53 of file memory.C.

References detectNativeEndianness().

Referenced by Archon::Utilities::ImageData::ImageData().

vector< int > Archon::Utilities::computeBytePermutation const vector< bool > &  endianness,
int  levels
 

Parameters:
endianness An endianness or byte ordering scheme as returned by detectNativeEndianness().
levels Indicate the number of times you would double the width of a byte to get the width of a word of the desired type. In other words, it is the value of findMostSignificantBit(sizeof(T)).

Definition at line 74 of file memory.C.

References detectNativeEndianness(), n, and std::swap().

Referenced by Archon::Utilities::ImageData::ImageData(), and readWithSpecificEndianness().

string Archon::Utilities::cxxDemangle string  mangledName  ) 
 

Tries to demangle the argument.

If this is not possible then the argument is returned unchanged.

Returns:
The demangled name.
Todo:
Should utilize the Autoconf macro 'ax_cxx_gcc_abi_demangle'.
See http://autoconf-archive.cryp.to.

Definition at line 30 of file cxx_demangle.C.

References size.

Referenced by cxxDemangledType(), Archon::Utilities::Exception::explainLong(), and Archon::Utilities::Exception::explainShort().

vector< bool > Archon::Utilities::detectNativeEndianness  ) 
 

Detect the native endianness.

The completely general endianness is specified as a bit field where the least significant bit specifies the order of bytes when combined to double bytes. The next bit specifies the order of double bytes when combined to quadrupple bytes and so on.

The number of elements in the returned vector will always equal the number of times you need to double the width of a byte to get the width of a uintmax_t (an integer with the widest range possible on your platform). This number is equal to findMostSignificantBit(sizeof(uintmax_t)).

When specifying endianess as argument to other functions such as computeBytePermutation() you may pass a vector with fewer elements than the one returned by this function. Any required endianness bit not explicitly specified shall be taken to be equal to the last one specified in the vector. An entirely empty vector may be passed to indicate that the native endianness applies.

The easiest way of specifying a "clean cut" little endian scheme is by a vector of lenght one with a cleared bit.

Returns:
A description of the native endianness. That is, the endianness of the architecture that executed this function.

Definition at line 29 of file memory.C.

References n.

Referenced by compareEndianness(), and computeBytePermutation().

bool Archon::Utilities::exceptionCatchInfo Exception::Formatter  format,
string &  result
[inline]
 

Extract information from the last thrown exception.

It re-throws the last thrown exception, and then attepts to catch any of the exception types known to this library. If this succeeds then the specified formatter is used to produce 'result' and true is returned. If the exception is unknown to this library then it just returns false.

This method is intended to be incorporated into similar methods in other libraries that interact with this library or in applications that need to check various different libraries for exceptions known to them.

Example:

   namespace MyApp
   {
     bool exceptionCatchInfo(Archon::Utilities::Exception::Formatter format,
                             string &result)
     {
       try { throw; }
       catch(MyFooException &e)
       {
         result = (*format)(typeid(e), "", e.getMessage())
"; } catch(MyBarException &e) { result = (*format)(typeid(e), e.getLocation(), "")
"; } catch(...) { return Archon::Utilities::exceptionCatchInfo(formatter, result) || SomeCoolLib::exceptionCatchInfo(formatter, result) || SomeShitLib::exceptionCatchInfo(formatter, result); } return true; } }

   int main(int argc, const char *argv[]) throw()
   {
     set_unexpected(Exception::terminal<MyApp::exceptionCatchInfo>);
     set_terminate(Exception::terminal<MyApp::exceptionCatchInfo>);
     ...
   }

 

Note:
If all your exceptions are derived from Archon::Utilities::Exception, then you do not need to write your own catchInfo function since Archon::Utilities::exceptionCatchInfo will know about it. If, on the other hand, you add new data to an exception derived from Utilities::Exception, and this data is not available through getMessage, you will need to provide your own exceptionCatchInfo to extract this data.
See also:
Exception::terminal

Definition at line 30 of file exception.C.

Referenced by Archon::X3D::exceptionCatchInfo(), Archon::Raytracer::exceptionCatchInfo(), and Archon::X3D::Proxy::exceptionCatchInfo().

int Archon::Utilities::findLeastSignificantBit unsigned  v  )  [inline]
 

Get the index of the least significant bit in the argument.

This is a terribly slow implementation considdering the fact that a BITSCAN maschine instruction can answer in a few clock cycles.

Parameters:
v The integer to scan.
Returns:
The index of the least significant bit in the argument counting from the position of least significance. If no bits can be found -1 is returned.

Definition at line 45 of file memory.H.

int Archon::Utilities::findMostSignificantBit unsigned  v  )  [inline]
 

Get the index of the most significant bit in the argument.

This is a terribly slow implementation considdering the fact that a BITSCAN maschine instruction can answer in a few clock cycles.

Parameters:
v The integer to scan.
Returns:
The index of the most significant bit in the argument counting from the position of least significance. If no bits can be found -1 is returned.
Note:
For positive non-zero arguments the returned value is equal (in theory) to the integer part of log2(v).

Definition at line 70 of file memory.H.

Referenced by Archon::Utilities::ImageData::ImageData(), and readWithSpecificEndianness().

Image::Format * Archon::Utilities::getDefaultGifFormat  ) 
 

The GIF image format used by Image by default.

Returns:
0 if there is no support for GIF, otherwise a pointer to the default GIF format. The ownership of the referenced object remains with the callee.

Definition at line 40 of file image_gif.C.

Image::Format * Archon::Utilities::getDefaultJpegFormat  ) 
 

The JPEG image format used by Image by default.

Returns:
0 if there is no support for JPEG, otherwise a pointer to the default JPEG format. The ownership of the referenced object remains with the callee.

Definition at line 40 of file image_jpeg.C.

Image::Format * Archon::Utilities::getDefaultPngFormat  ) 
 

The PNG image format used by Image by default.

Returns:
0 if there is no support for PNG, otherwise a pointer to the default PNG format. The ownership of the referenced object remains with the callee.

Definition at line 519 of file image_libpng.C.

Image::Format * Archon::Utilities::getDefaultPnmFormat  ) 
 

The PNM image format used by Image by default.

Todo:
Implement it using libpnm.

Definition at line 29 of file image_libpnm.C.

Image::Format * Archon::Utilities::getDefaultTiffFormat  ) 
 

The TIFF image format used by Image by default.

Todo:
Implement it using libtiff.

Definition at line 29 of file image_libtiff.C.

void Archon::Utilities::meshPolygon const vector< Vector3 > &  polygon,
double  maxPatchSize,
vector< Vector3 > &  resultingVertices,
vector< int > &  resultingPolygons
 

A convenience wrapper for the callback version of 'meshPolygon'.

Parameters:
resultingVertices Is set to the resulting list of vertices.
resultingPolygons Is set to the resulting list of vertex indices. That is, its elements are either indices into the vector of resulting vertices or -1 to indicate the end of a polygon.

Definition at line 274 of file polygon_mesher.C.

References meshPolygon().

void Archon::Utilities::meshPolygon const vector< Vector3 > &  polygon,
double  maxPatchSize,
MesherContext *  context
 

Mesh a polygon.

Author:
Kristian Spangsege <kristian.spangsege@framfab.dk>
Convert a planar convex polygon into a rectangular mesh of patches in such a way that the patches are non-overlapping and collectivly equal to the original polygon.

Intuitivly a rectangle shaped frame of patches is placed on top of the polygon and each produced patch is then the intersection between a frame patch and the original polygon.

The orientation of the frame will be alligned with the first edge of the polygon. That is, depending on how you look at it, either the vertical or the horizontal division lines will be parallel with the first edge of the polygon.

The frame is chosen as the smallest rectangle that encloses all the vertices of the original polygon while remaining aligned with the first polygon edge.

The width and height of the frame patches are then uniquely defined by the following constraints:

  • All frame patches gets the same width and height.

  • Neighter the width nor the height is greater than the 'maxPatchSize' parameter.

  • As big as possible.

Note: For non-rectangular polygons the patches at the edge will in general not be rectangular.

Note also: Vertices that are shared between 1, 2, 3 or 4 patches will be reported back to the application only once. This is done through the callback function passed via the 'context'. It is the responsiblility of the application to assign identifiers to each of these vertices and return them from the callback function. New patches will refer to the application assigned identifiers.

Parameters:
polygon The polygon that is to be meshed. The polygon must have at least 3 vertices, and must be planar and convex. Further more the first and the last edges may not be parallel.
maxPatchSize The maximum height and width of the resulting patches.
context->addVertex The callback function that allocates vertices and assigns identifiers to them. The identifier will typically be an index into a vertex array. But any non-negative identifier that fits inside an integer will do.
context->addPolygon The callback function that allocates patches. The callback function is called for each resulting patch. The argument is a vector of polygon vertices, each represented by an application assigned identifier.
Algorithm:

Start by allocating the vertices of the original polygon in the vertex table and work with lists of vertex indices.

Imagine a grid seperating equal sized rectangular patches and the polygon placed so that it fits within.

Slice off horizontal stripes from the polygon according to the imaginary grid.

For each horizontal cut we reduce the size of the remaining polygon and get a new polygon or nothing.

0 or 2 strictly new vertices are constructed in this process. The new vertices are shared between the two parts.

Each cut intersects the polygon edge 0 or 2 times. For the case of 2 remember the minimum 'x_min' and the maximim 'x_max' x-coordinate of the intersection points.

Slice off patches from the horizontal stripe according to the imaginary grid.

Allocate a vector of vertex indices with the same number of elements as the number of vertical splits per stripe.

For each horizontal cut we reduce the size of the remaining stripe and get a new polygon or nothing.

If the cut occures between 'x_min' and 'x_max' and an edge in the stripe polygon crosses the cutting line from left to right when traveling counter clockwise then store the index of the new vertex in the vertex index vector indexed by the horizontal position in the grid. Otherwise store -1 in the ertex index vector.

If an edge of the stripe polygon crosses the cutting line from right to left it suffices to check if the index from the vertex index vector from the previous stripe contains -1 when index equally to the current vertex index vector. If it is -1 then a new vertex needs to be created. Otherwise the index tells us that we must reuse that vertex.

0, 1 or 2 strictly new vertices are constructed during the vertical split. The new vertices are shared between the two parts.

The algorithm is based on an implementation by Kasper Hy Nielsen <khn@imm.dtu.dk> but has seveal significant improvements:

  • Much faster due to elimination of search based vertex reuse. For an NxM grid of patches and a polygin of K vertices this algorithm runs in O(N*M*K), where its predecessor runs in O((N*M)).

  • Exact and secure determination of shared vertices due to elimination of search based vertex reuse. Its predecessor could not guarantee that logically shared vertices would actually be shared.

  • Much smaller memory footprint. For an NxM grid of patches this algorithm allocates two buffers on N vertices, wher its predecessor allocated N * M vertices.

  • More precise convertion between 3D and 2D resulting in more robust results.

Todo:
vertex color interpolation texture coordinate interpolation (maybe support for concave polygons - only maybe!)

Definition at line 133 of file polygon_mesher.C.

References Archon::Utilities::MesherContext::addPolygon(), Archon::Utilities::MesherContext::addVertex(), Archon::Math::BasicVector< T, N >::normalize(), and std::swap().

Referenced by Archon::SaiTestApps::Spot::main(), meshPolygon(), and Archon::SaiTestApps::Textviewer::TextPage::TextPage().

template<typename T>
T Archon::Utilities::readWithBytePermutation const char *  data,
const vector< int > &  bytePermutation
[inline]
 

Parameters:
data Pointer which is properly aligned to the type T.
bytePermutation A byte permutation as returned by computeBytePermutation. If the number of element in this permutation differ from sizeof(T) the result is undefined.
Note:
Please make sure you never use this function when the endianness of data is actually equal to the native endianness of your achitecture. In this case you can access the data conventionally which will perform vastly better.

Definition at line 153 of file memory.H.

template<typename T>
T Archon::Utilities::readWithSpecificEndianness const char *  data,
const vector< bool > &  endianness
[inline]
 

Parameters:
data Pointer which is properly aligned to the type T.
endianness An endianness or byte ordering scheme as returned by detectNativeEndianness().
Note:
If you need to access many data elements this function will perform horribly since it computes the native endianness and the byte permutation every time it is called. Considder precalculating the byte permutation with computeBytePermutation the calling readWithBytePermutation afterwards.

Definition at line 177 of file memory.H.

References computeBytePermutation(), and findMostSignificantBit().


Variable Documentation

unsigned Archon::Utilities::charClassTable[127-32]
 

Initial value:

    {
           2048,        8,     2048,     2048,
             16,     2048,       16,        8,
              8,        8,        8,       16,
             16,        8,        8,       32,
              4,        4,        4,        4,
              4,        4,        4,        4,
              4,        4,       64,      128,
           2048,      256,     2048,      512,
           1024,        2,        2,        2,
              2,        2,        2,        2,
              2,        2,        2,        2,
              2,        2,        2,        2,
              2,        2,        2,        2,
              2,        2,        2,        2,
              2,        2,        2,     2048,
           2048,     2048,     2048,        8,
           2048,        1,        1,        1,
              1,        1,        1,        1,
              1,        1,        1,        1,
              1,        1,        1,        1,
              1,        1,        1,        1,
              1,        1,        1,        1,
              1,        1,        1,     2048,
           2048,     2048,        8
    }
Defines up to 16 potentially overlapping character classes by letting each bit position represent one class.

Definition at line 128 of file uri.C.

Referenced by Archon::Utilities::Uri::encode().

Archon::Utilities::FormatLibgif Archon::Utilities::InternalException
 

An Image compatible frontend for libungif.

See also:
http://sourceforge.net/projects/libungif

http://libungif.sourceforge.net/doc

http://libungif.sourceforge.net/doc/gif_lib.html

Rewritten and tested against libungif version 4.1.0.

Todo:
For image file writing API see: libungif/util/rgb2gif.c.

Archon::Utilities::FormatLibgif * Archon::Utilities::logger
 

An Image compatible frontend for libungif.

See also:
http://sourceforge.net/projects/libungif

http://libungif.sourceforge.net/doc

http://libungif.sourceforge.net/doc/gif_lib.html

Rewritten and tested against libungif version 4.1.0.

Todo:
For image file writing API see: libungif/util/rgb2gif.c.

Referenced by Archon::Utilities::FormatLibpng::load(), Archon::Utilities::FormatLibjpeg::load(), Archon::Utilities::FormatLibgif::load(), Archon::Raytracer::main(), Archon::Console3d::main(), Archon::Utilities::Options::processConfigFile(), Archon::Utilities::FormatLibpng::save(), Archon::Utilities::FormatLibjpeg::save(), and Archon::Utilities::Regex::ParserContext::warning().

const unsigned Archon::Utilities::pcharNoEqualMask
 

Initial value:

Definition at line 116 of file uri.C.

Archon::Utilities::FormatLibgif Archon::Utilities::reader
 

An Image compatible frontend for libungif.

See also:
http://sourceforge.net/projects/libungif

http://libungif.sourceforge.net/doc

http://libungif.sourceforge.net/doc/gif_lib.html

Rewritten and tested against libungif version 4.1.0.

Todo:
For image file writing API see: libungif/util/rgb2gif.c.

Referenced by Archon::Utilities::FormatLibpng::load(), Archon::Utilities::FormatLibjpeg::load(), Archon::X3D::SAI::Reader::read(), Archon::Utilities::Stream::BasicRewindReader< C >::read(), Archon::X3D::SAI::Reader::Reader(), and Archon::X3D::SAI::Reader::~Reader().

const unsigned Archon::Utilities::reservedMask
 

Initial value:

Definition at line 108 of file uri.C.

Archon::Utilities::FormatLibgif Archon::Utilities::supported
 

An Image compatible frontend for libungif.

See also:
http://sourceforge.net/projects/libungif

http://libungif.sourceforge.net/doc

http://libungif.sourceforge.net/doc/gif_lib.html

Rewritten and tested against libungif version 4.1.0.

Todo:
For image file writing API see: libungif/util/rgb2gif.c.

const unsigned Archon::Utilities::userMask
 

Initial value:

Definition at line 112 of file uri.C.

Archon::Utilities::FormatLibgif Archon::Utilities::writer
 

An Image compatible frontend for libungif.

See also:
http://sourceforge.net/projects/libungif

http://libungif.sourceforge.net/doc

http://libungif.sourceforge.net/doc/gif_lib.html

Rewritten and tested against libungif version 4.1.0.

Todo:
For image file writing API see: libungif/util/rgb2gif.c.

Referenced by Archon::Utilities::Web::DefaultClient::request(), Archon::Utilities::FormatLibpng::save(), and Archon::Utilities::FormatLibjpeg::save().


Generated on Sun Jul 30 22:57:16 2006 for Archon by  doxygen 1.4.4