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

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