...
The base libraries used by the Enlighten SDK.
Helper functions for generating frequently used sample distributions.
...
| Name | Description | 
|---|---|
| Geo::AbstractRayChunk | Buffer that holds a chunk of rays and results. | 
| Geo::AnsiAllocator | Simple implementation of the MemoryAllocator class that forwards all requests to the malloc/free ANSI functions. | 
| Geo::ArrayRange | A range within an array [first, last). | 
| Geo::AtlasMesh | The AtlasMesh implementation used for the packer and anything else that needs not to know whether we have one mesh or several. | 
| Geo::AtlasMeshChart | A chart consists of a connected region of the mesh, which has a mapping into a single connected region in UV space. | 
| Geo::AtlasMeshChartingFlags | Describe how you would like charting to be performed. | 
| Geo::AtlasMeshPackingFlags | This tells the packer how to parameterise your stuff. | 
| Geo::AtlasMeshTriangle | An AtlasMesh consists of a number of triangle faces, each composed of three vertices. | 
| Geo::AtlasMeshTriangleCorner | A specific corner of a triangle in the mesh can be identified though an AtlasMeshTriangleCorner. | 
| Geo::AtlasMeshVertex | An AtlasMesh has a simple vertex format, carrying a single 3D coordinate describing the model, and a single 2D "UV" coordinate though which to provide a unique unwrapping of the mesh into a UV atlas that can be used as high quality light map. | 
| Geo::AtlasMeshVertexSplitResult | A specification describing that a specified vertex needs to duplicated, and that some of the m_Corner of the mesh faces need to be relinked to the copy. | 
| Geo::BasicAllocator | A basic memory allocator. | 
| Geo::BboxEdge | A single edge of a bounding box. | 
| Geo::BboxFace | A single face of a bounding box. | 
| Geo::ChartParametiserFailure | Details about a chart that failed to parametise well. | 
| Geo::ClippedRay | A finite ray with near and far clipping planes. | 
| Geo::ConvexHull | A convex hull of a set of points. | 
| Geo::ConvexHullBuilder | Builds ConvexHull objects. | 
| Geo::CovarianceMatrix | A covariance matrix. | 
| Geo::CovarianceMatrixBuilder | Used for building CovarianceMatrix. | 
| Geo::DebugLine | A line between two points. | 
| Geo::EmbreeRtMeshVisitor | |
| Geo::eWindingOrder | Winding order (clockwise/counterclockwise). | 
| Geo::FixedSizeArray | A fixed size array. | 
| Geo::Geo2DTransform | A class representing a 2d linear transform between UVs. | 
| Geo::GeoAlignedFreeDestructor | A type for freeing objects using GEO_ALIGNED_FREE. This is for use in GeoAutoPtr. | 
| Geo::GeoAllocationPage | A storage unit for a page based allocation system. | 
| Geo::GeoAllocator | A type of std::allocator, that passes memory requests through to the Geo heap functions This is used as the default allocator argument for the STL-like GeoMap/GeoList containers. | 
| Geo::GeoAllocatorUnchecked | A custom std::allocator, that uses simple malloc/free. | 
| Geo::GeoArray | Basic templated dynamic array class. | 
| Geo::GeoArray_Stl | STL adaptor to make the GeoArray look like a proper STL container. | 
| Geo::GeoAtomic | |
| Geo::GeoAutoArrayPtr | Given the lack of a template typedef, and how common it is to want a GeoAutoPtr with Array dtor, adding a new class to provide this destruction policy by default. | 
| Geo::GeoAutoDeleteArray | Adaptor to allow storing of pointers in a container (calls GEO_DELETE on each pointer upon array destruction) | 
| Geo::GeoAutoDeleteList | Adaptor to allow container to own the pointed-to value data (calls GEO_DELETE() on each pointer upon container destruction) | 
| Geo::GeoAutoDeleteMap | Adaptor to allow container to own the pointed-to value data (calls GEO_DELETE() on each pointer upon container destruction) | 
| Geo::GeoAutoPtr | A value type to take ownership of a raw object allocated on the heap and bind its life-time to the scope of this class. | 
| Geo::GeoAutoReleaseArray | Adaptor to allow storing of IGeoReleasable pointers in a container (calls Release() on each pointer upon array destruction) | 
| Geo::GeoAutoReleaseMap | Adaptor to allow container to own the pointed-to value data (calls Release() on each pointer upon container destruction) | 
| Geo::GeoAutoReleasePtr | Given the lack of a template typedef, and how common it is to want a GeoAutoPtr with Release dtor, adding a new class to provide this destruction policy by default. | 
| Geo::GeoBitArray | A simple bit array wrapper, stored in an array of u32s. | 
| Geo::GeoBitStore | Container for a set of bits. | 
| Geo::GeoBlueNoise | class GeoBlueNoise Adapted from: Bridson, Robert, "Fast Poisson Sampling in Arbitrary Dimensions", ACM SIGGRAPH 2007 sketches | 
| Geo::GeoBlueNoiseDiskPalette | Builds a pallet of blue noise samples, each in a disk of radius 1. | 
| Geo::GeoBlueNoiseRayPalette | class GeoBlueNoiseRayPalette | 
| Geo::GeoBoundingBox | This class represents an axis aligned bounding box. | 
| Geo::GeoBoundingSphere | This class represents a bounding sphere. | 
| Geo::GeoBufferedFileStream | Simple IGeoStream implementation that saves/loads data into/from memory and performs all read/write operations on this copy. | 
| Geo::GeoBufferedInputStream | An implementation of IGeoInputStream that uses another stream to fill an internal buffer. | 
| Geo::GeoCriticalSection | Basic wrapper around a critical section object. | 
| Geo::GeoDebugAllocator | MemoryAllocator implementation which fills allocated memory with a given value. | 
| Geo::GeoDelegateDestructor | A type for deleting objects of type T using specific delete function. This is for use in GeoAutoPtr. | 
| Geo::GeoDeleteArrayDestructor | A type for deleting objects of type T using DeleteArray(). | 
| Geo::GeoDeleteDestructor | A type for deleting objects of type T using GEO_DELETE. | 
| Geo::GeoDepthCubeMap | A simple storage class for a floating point cube map. | 
| Geo::GeoEmbreeContext | An IGeoRayTracingContext that implements the Intel Embree raytracer. | 
| Geo::GeoEqualCString | A hash functor for a null-terminated string. | 
| Geo::GeoError | Description of a single error reported via an IGeoProgressProxy. | 
| Geo::GeoEvent | Event that can be manually triggered. | 
| Geo::GeoFileManager | The file manager deals with locating resources given a path and a filename. | 
| Geo::GeoFileStream | Simple IGeoStream implementation that saves/loads data from a file. | 
| Geo::GeoFixedBinarySearchMap | An associative container with performance OlogN and only one allocation. | 
| Geo::GeoFixedBinarySearchMapCompare | Default comparison functor for the GeoFixedBinarySearchMap. | 
| Geo::GeoFixedPoolAllocator | A std::allocator that passes memory requests through to a single underlying GeoAllocationPage. | 
| Geo::GeoFixedPoolList | To make usage of this pool class a bit less painful, create template holding classes for typedefs; since template typedefs do not exist, this is the closest you can get. | 
| Geo::GeoFixedPoolMap | To make usage of this pool class a bit less painful, create template holding classes for typedefs; since template typedefs do not exist, this is the closest you can get. | 
| Geo::GeoFixedString | This is a simple string class template that always uses a fixed amount of memory for a single string. | 
| Geo::GeoFlattenAndPackResults | This class contains all the information about the results of a GeoFlattenAndPack call. | 
| Geo::GeoFloat3SE | |
| Geo::GeoFloatAsBits | Allow safe conversion between a float and its representative bit pattern. | 
| Geo::GeoFp16Texture | A (16 bit) floating point texture for input and output. | 
| Geo::GeoFpControl | Sets the state of the floating point control word, and restores the original value when the object is destroyed. | 
| Geo::GeoFrameTime | This class measures frame rate and also computes a running average of the last n frames. | 
| Geo::GeoFreeDestructor | A type for freeing objects using GEO_FREE. This is for use in GeoAutoPtr. | 
| Geo::GeoGenericTexture | A really simple texture where all elements are T. | 
| Geo::GeoGuid | A 128 bit identifier used to uniquely identify objects in the precompute. | 
| Geo::GeoHalf | Convenience value type for a half float. | 
| Geo::GeoHashConstHandle | A const handle into the hash table. | 
| Geo::GeoHashCString | A hash functor for a null-terminated string. | 
| Geo::GeoHashDefault | A generic hashing functor. | 
| Geo::GeoHashHandle | A non-const handle into the hash table. | 
| Geo::GeoHashMap | The hash table. | 
| Geo::GeoHashString | A functor which hashes a char string. | 
| Geo::GeoImmutableArray | Basic templated dynamic immutable array class. | 
| Geo::GeoInputEvent | Event for handling input messages. | 
| Geo::GeoInstanceCount | |
| Geo::GeoIntRange | Represents a range of integers, e.g. between 10 and 20. | 
| Geo::GeoIntrusivePtr | A value type to take ownership of a raw object allocated on the heap and handle calling AddRef() and Release(). | 
| Geo::GeoKeyValueArray | A fast implementation of a set associative container, this one using a sorted array of key values to lookup a similar array of value pointers. | 
| Geo::GeoLineSegment | Debugging output representation of a line segment. | 
| Geo::GeoList | Our implementation of an STL list, with some modifications. | 
| Geo::GeoMap | Our implementation of an STL map, with some modifications. | 
| Geo::GeoMemoryDefault | Fully featured MemoryAllocator implementation that handles memory tracking, leak detection, stack traces, reporting and more. | 
| Geo::GeoMemoryPool | A memory pool. | 
| Geo::GeoMemoryStream | Simple IGeoStream implementation that saves/loads data to a block of memory. | 
| Geo::GeoNonAABoundingBox | Non axis aligned bounding box. Note the "m_Pos" of this class is the CORNER (origin), not the centre. | 
| Geo::GeoNoopDestructor | A type for not destroying anything. | 
| Geo::GeoPair | A generic pair class. Inherits things like CopyConstructible or Assignable from its argument types. | 
| Geo::GeoParametrisedPlane3 | A plane with an origin and two basis vectors in the plane. | 
| Geo::GeoPoint2 | Single precision 2 dimensional point class. | 
| Geo::GeoPoint2D | Integer 2 dimensional point class. | 
| Geo::GeoPoint3 | Single precision 3 dimensional point class. | 
| Geo::GeoPoint3D | Integer 3 dimensional point class. | 
| Geo::GeoPriorityQueue | |
| Geo::GeoProgress | Helper class to manage an IGeoProgressProxy. | 
| Geo::GeoQueue | Simple FIFO queue. | 
| Geo::GeoQueueEnumInterface | Any class which wishes to use the queue Walk function must inherit from this class to define its callback interface. | 
| Geo::GeoRefArrayPtr | Given the lack of a template typedef, and how common it is to want a GeoRefPtr with Array dtor, adding a new class to provide this destruction policy by default. | 
| Geo::GeoRefCount | Base class for reference counted resources. | 
| Geo::GeoRefPtr | A value type to take ownership of a raw object allocated on the heap and track a reference count between multiple instances of this class. | 
| Geo::GeoRefReleasePtr | Given the lack of a template typedef, and how common it is to want a GeoRefPtr with Release dtor, adding a new class to provide this destruction policy by default. | 
| Geo::GeoReleaseDestructor | A type for deleting objects of type T using Release(). This is for use in GeoAutoPtr. | 
| Geo::GeoRGBXTexture | A simple CPU 8 bit per channel texture. | 
| Geo::GeoRGBXTextureElement | A simple CPU 8 bit per channel texture element. | 
| Geo::GeoScopedCSection | A simple utility for aquiring a lock for the duration of a function. | 
| Geo::GeoSingleton | Inherit from this class to add singleton behaviour to your class. | 
| Geo::GeoSpatialHash | The 3D hash table. | 
| Geo::GeoString | STL string replacement. | 
| Geo::GeoTimer | A simple task timer Construct a GeoTimer, then as each task begins simply create a local GeoTimer::Task object to automatically start and stop the clock. | 
| Geo::GeoTokenList | A basic replacement for 'strtok'. | 
| Geo::GeoTokenStream | A very simple utility class that wraps some common parsing functionality around a GeoTokenList. | 
| Geo::GeoTriangle | Simple representation of a triangle. | 
| Geo::GeoTriple | A generic triple class. Inherits things like CopyConstructible or Assignable from its argument types. | 
| Geo::GeoUniqueDelegatePtr | Given the lack of a template typedef, and how common it is to want a GeoUniquePtr with Delegate dtor, adding a new class to provide this destruction policy by default. | 
| Geo::GeoUniquePtr | A value type to take ownership of a raw object allocated on the heap and bind its life-time to the scope of this class. | 
| Geo::GeoUniqueReleasePtr | Given the lack of a template typedef, and how common it is to want a GeoUniquePtr with Release dtor, adding a new class to provide this destruction policy by default. | 
| Geo::GeoV128Texture | A really simple texture where all elements are float vectors. | 
| Geo::GeoVariant | Variant class for storing name/value pairs in a map, where the value is a subset of common value types. | 
| Geo::GeoVector3 | Single precision 3 dimensional vector class. | 
| Geo::GeoVector4 | Single precision 4 dimensional vector class. | 
| Geo::GeoVirtualPageAllocator | Implementation of the MemoryAllocator class (on Windows) that uses VirtualAlloc and VirtualProtect to provide similar memory overwrite detection as the Application Verifier. | 
| Geo::GeoZLibFileStream | IGeoStream implementation that saves/loads data from a zlib compressed file. | 
| Geo::GoodRNG | A Mersenne Twister RNG. | 
| Geo::IdentDataCompare | Comparison class for std::sort. | 
| Geo::IdentVertLinkBuilder | A utility for identifying pairs of "identical" vertices in a vertex buffer. | 
| Geo::IdxLink | A link between two vertices. | 
| Geo::IffReader | An IffReader allows you to use an IGeoStream to read Iff format binary files easily. | 
| Geo::IffTextWriter | Presents an interface compatible with IffWriter, writes a text version of the binary IFF. | 
| Geo::IffWriter | An IffWriter allows you to use an IGeoStream to create Iff format binary files easily. | 
| Geo::IGeoEvent | Cross platform Event class. | 
| Geo::IGeoInputStream | An IGeoInputStream allows you to read memory/files in a consistent manner, and is an extension point for users wishing to control where data is stored. | 
| Geo::IGeoProgressProxy | An interface for informing a client about the current progress of an operation. | 
| Geo::IGeoRayTracingContext | Ray-tracing context. | 
| Geo::IGeoReleasable | A class implementing IGeoReleasable is usually created by the Enlighten libraries and so must have Release() called in order to return the memory. | 
| Geo::IGeoSerialisable | A class implementing IGeoSerialisable adds the ability to save and load instances of the type from an IGeoStream. | 
| Geo::IGeoStream | An IGeoStream allows you to read/write memory/files in a consistent manner, and is an extension point for users wishing to control where data is stored. | 
| Geo::InitRayTracing | Small helper class to ensure init/cleanup are called when object is created/destroyed. | 
| Geo::IRtMesh | An interface used by the raytracers to fill their internal mesh data structures. | 
| Geo::ITerminalCmdHandler | A class that provides this interface can process tty string commands. | 
| Geo::ITerminalDelegate | Handles tty initialisation events. | 
| Geo::ITerminalInputHandler | Class providing this interface is a source of tty commands and may need polling. | 
| Geo::ITerminalOutputHandler | A class that provides this interface can display tty output strings. | 
| Geo::Matrix | Matrix definition. | 
| Geo::Matrix4x4 | Single-precision 4x4 matrix class. | 
| Geo::MemoryAllocator | Class used to override memory allocation and freeing. | 
| Geo::NonCopyable | Base class for classes that are meant to be noncopyable. | 
| Geo::Optional | Class allowing a value object (integer, string, etc) to be optional, by storing a current value, default value and a boolean to state which is valid. | 
| Geo::PackedInteger4 | Represents four unsigned integer values packed into a single 32-bit register and named XYZW. | 
| Geo::PerformanceBlock | Scope control struct which instruments a block of code for performance analysis. | 
| Geo::PointLeaf | A leaf node in a kd-tree of points. | 
| Geo::PointSplit | A splitting node in a kd-tree of points. | 
| Geo::PointSplitBounds | A bounding box for both branches of a PointSplit node. | 
| Geo::PointSplitState | Common construction state for a point kd-tree. | 
| Geo::QuickTaskTimer | A little class to time a task. | 
| Geo::RastFragment | stores a fragment of a triangle i.e. a triangle clipped to a pixel box | 
| Geo::RastTri | records details of the input triangle | 
| Geo::RastVert | stores a rasterization vertex, including barycentric coordinates | 
| Geo::Rayf | A single ray. | 
| Geo::RayResult | The result of a ray intersection test. | 
| Geo::Releasable | Base class for classes that are meant to be releasable. | 
| Geo::RingBuffer | Ring Buffer class. | 
| Geo::RtMesh | A mesh container that can be stored to disk and used later as a ray tracing mesh. | 
| Geo::RtMeshGroup | A ray tracing mesh that is a collection of other meshes. | 
| Geo::ScopedTickCounter | A class that times the interval between construction and destruction, adding this number of ticks to the counter provided. | 
| Geo::ScopedTimer | A class that times the interval between construction and destruction, adding the number of milliseconds to the counter provided. | 
| Geo::ScopeStartStop | Simple scope control of a class with static Start() and Stop() functions. | 
| Geo::SHCoeff | SH Helper class. | 
| Geo::SimpleRNG | The 'super-duper' random number generator with shuffle (an LCG). | 
| Geo::Statistics | Result structure used for comparing input lighting buffers. | 
| Geo::TerminalProvider | Inherit from this class to provide a specific tty command processing type. | 
| Geo::TextureWriter | Class that writes a 2D block of memory to disk as a texture file. | 
| Geo::TreeNode | A generic tree structure, where each node contains an item by value. | 
| Geo::TriGroupSelection | Utility for doing vertex-based chart identification. | 
| Geo::TxtProgressBar | A simple implementation of an IGeoProgressProxy that uses printf to communicate with the user. | 
| Geo::TypeInfo | Provides a type id for the given type. | 
| Geo::VectorD | Double precision vector class. | 
| Geo::WriteRangePolicy | Policy to write pointers as a range with the given element count. | 
| Geo::ZeroedPadding | Defines an N-byte block of padding which is zeroed on construction. | 
...
| Name | Description | 
|---|---|
| eBoxLocation | Location of a box relative to a plane. | 
| eChartParametiserResult | An enum for the types of parametisation results we can get. | 
| EConvertEndianMode | Enumeration used to control behaviour of various endian swapping functions. | 
| ECpuGpuMode | Controls how the hardware is used by Enlighten to generate precompute data. | 
| eCpuVendor | PC CPU vendors. | 
| eGeoErrorSeverity | The severity of an error. | 
| eGeoLogContext | enum eGeoLogContext | 
| eGeoLogMsgType | enum eGeoLogMsgType | 
| eGeoLogSystemState | enum eGeoLogSystemState | 
| ePlatform | Enumeration for those cases at runtime that we need to do separate functionality for each platform. | 
| ePointLocation | Location of a point relative to a plane. | 
| eRTAPI | Ray-tracing APIs. | 
| eVShufflePosition | Shuffle constants for the GEO_VSHUFFLE macro. | 
| GeoFSeekOrigin | To avoid pulling in the entire stdio header, use our own values for GeoFSeek. | 
...
Controls how the hardware is used by Enlighten to generate precompute data.
...
| ertCpuShared | Use CPU only. Allow multiple concurrent tasks between separate processes. | 
| ertCpuExclusive | Use CPU only. Block task if another Enlighten precompute task is running. | 
| ertDefault | Default is to use CPU only. | 
...