Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The base libraries used by the Enlighten SDK.

Helper functions for generating frequently used sample distributions.

...

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

...

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

...