namespace Geo

This is the documentation for Enlighten.

namespace Geo

Geo

The base libraries used by the Enlighten SDK.

Helper functions for generating frequently used sample distributions.

Helper functions for storing points and lines for debugging.

This covers all of the code in GeoBase and GeoCore. GeoBase contains low level memory utilities, assertions, preprocessor definitions and debugging functions. GeoCore contains optimized math functionality, data structures and other generic utilities.

Classes

Name

Description

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::BasicAllocator

A basic memory allocator.

Geo::BboxEdge

A single edge of a bounding box.

Geo::BboxFace

A single face of a bounding box.

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::Float8

8-bit floating point.

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::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::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::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

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::GeoString

STL string replacement.

Geo::GeoStringView

STL string_view 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