Class List

Here are the classes, structs, unions and interfaces with brief descriptions:
AABB3-Dimensional Axis-Aligned Bounding Box
AbsorbentBSDFIdeal, cool, black-body absorbent material (absorbs all incoming light)
AggregateBSDFLinear combination of different BSDF implementations, where the coefficients are determined either a priori (inherent property described in scenefile) or via a texture map lookup
ArgsParser
BidirectionalPathTracerUnbiased bidirectional path tracer with support for efficient direct illumination
BlobBlobby isosurface composed of a set of MetaObjects, all of which combine to form a scalar field whose contour at this blob's threshold value defines the surface. Upon initialization (Blob::init), the implicit surface is polygonized into triangles using a variant of the well-known Marching Cubes algorithm. A MetaObject exerts a positive or negative 'charge' in a scalar field, whose isocontours (level sets) define blobby surfaces with different threshold values corresponding to the contour level. MetaObjects positively or negatively affect their neighboring MetaObjects depending on their 'strength' and 'negative' attributes
BoxFilter2D symmetric box filter (unweighted area filtering)
BSDFAbstract representation of a BSDF defined at a single point on a surface in 3-space
BSDFNode
CameraAbstract camera that all Milton cameras subclass, representing a mapping from film-space to world-space and vice-versa. Cameras may optionally also specify an OpenGL preview projection matrix that can be used by OpenGLRenderer. Film-space is represented by (slightly modified) Normalized Device Coordinates (NDC), which are unit film-plane coordinates, with (x,y) both ranging inbetween 0 and 1. NDC lie in the unit square [0,1]^2, where [0,0] gets mapped to the upper left corner of the corresponding Viewport/Image, and [1,1] is the lower right corner. NDC film-space allows for mapping rendering results onto an arbitrarily-sized Viewport/Image
CameraUIListenerProvides basic Maya-inspired camera UI modifiers for trackball rotation, dollying (translation along look vector), and panning (translation along uv film plane)
CanvasProvides a generic Canvas interface, shared between OpenGL canvases and pixel-based canvases
CanvasContainer
ConeRepresentation of a vertical 3D cone enclosed in the unit box (-.5,-.5,-.5) to (.5,.5,.5) -- the tip is at (0,.5,0)
ContUniformSamplerRepresents a continuous uniform distribution X ~ U(min, max) f(x) = 1 / (max - min)
CubeRepresentation of a unit cube in 3-space from (-.5,-.5,-.5) to (.5,.5,.5)
CylinderRepresentation of a vertical 3D cylinder enclosed in the unit box (-.5,-.5,-.5) to (.5,.5,.5)
DefaultRenderOutputRecords point samples from a renderer and reconstructs the underlying image, using a default reconstruction reconstruction filter
DielectricBSDFWavelength-dependent, thin dielectric BSDF defined at a single point on a surface in 3-space. The opacity input controls the transmittance versus reflectance of different wavelengths. A pure specular mirror may be obtained by creating a dielectric BSDF with zero opacity. Conversely, a purely transparent surface may be obtained by creating a dielectric with full opacity. Note that a completely transparent surface will still reflect some light (in proportion to Fresnel's Laws) because refraction is undefined past a critical angle when light is traveling between a lighter and denser medium. When this happens, some light is reflected regardless of the opacity parameter, and this is typically known as total internal reflection
DiffuseBSDFIdeal diffuse BSDF (lambertian) defined at a single point on a surface in 3-space
DirectIlluminationInterface for estimating direct illumination from all luminaires in a scene to a given surface point on a surface
DiscreteUniformSamplerRepresents a discrete uniform distribution X ~ U(min, max) p(x) = 1 / (max - min)
DissolveSampleGeneratorCool dissolve effect which generates point samples uniformly over a given 2D domain. The order in which the samples are generated looks random, but it is actually quite deterministic and guaranteed to "visit" every bucket in the domain
DissolveSG< SG >
EmitterAbstract representation of emittance defined at a single point on a surface in 3-space (describing a light)
EmitterSamplerSampler which selects a point on an emitter (light source) in the scene with probability proportional to radiant exitance
EnvironmentMapEnvironment map using latitude-longitude format. An environment map roughly models distant illumination surrounding a scene by conceptually surrounding the scene with a spherical emitter that emits light inwards according to a distribution defined by a 2D 'environment' texture map that is projected onto the surface of the sphere. Note the term HDR environment map is thrown around a lot; the only difference is that the underlying environment texture is stored in some type of high dynamic range format, such as OpenEXR or HDR
EventRepresents a single event which was sampled from a Sampler. The internal value of this event is stored as a variant using boost::any, where the concrete value of type T can be extracted using Event<T>::getValue()
ExponentialSamplerRepresents an exponential distribution: X ~ Exp(lambda) ; lambda > 0 f(x) = lambda * exp(-lambda * x) ; x >= 0 E(X) = 1 / lambda Var(X) = 1 / (lambda ^ 2)
FileRenderOutputRecords point samples from a renderer and naively reconstructs the underlying image by storing samples into the bin/pixel which they fall into, overwriting previous samples, and not using any reconstruction filter. Writes results out to the given file in a custom format upon completion of rendering
Filter< N, T >Templated representation of a symmetric N-dimensional filter function in T^N centered at zero with known max support (where the function is zero outside of that radius of that support; ie, support is equivalent to diameter)
FresnelUtility class encapsulating Fresnel's Law which computes the fraction of incident power that is reflected when light travels across an interface defined by the boundary between two media with different indices of refraction
GaussianFilter2D discrete, symmetric gaussian filter (separable like most of the other filters, but we're not taking advantage of this to make the filter framework cleaner and more cohesive), centered at the origin
GLAlphaStateItem
GLBlendStateItem
GLcolor
GLColorStateItem
GLDepthStateItem
GLFogStateItem
GLPointStateItem
GLPrimitiveStateItem
GLStateUtility wrapper classes for accessing and synchronizing OpenGL state in a cleaner, more object-oriented manner, grouping similar state items with each other
GLStateItem
GLStencilStateItem
GuiTop level GUI application
HDRImageHDR image class supporting a 128- or 256-bit RgbaHDR pixel format
HDRUtilsUtilities for reading and writing HDR, OpenEXR, and PFM high dynamic range image formats
HilbertSampleGeneratorRecursive space-filling L-System represented graphically
HilbertSG< SG >
IFeaturesUtility base class for managing large amounts of (possibly) optional functionality in a clean and consistent manner. The template type 'Feature' needs to support bitwise computations
ImageAbstract image class supporting a standard 32-bit Rgba pixel format, as well as an extended, 128- or 256-bit floating-point RgbaHDR pixel format for high dynamic range images
ImageCanvasProvides a Qt canvas for displaying 2D raster data
ImplicitAbstract representation of an implicit shape in 3-space
IndexOfRefractionCatalog of various common indices of refraction
InstancedShapeActs as a proxy for a shape which has been instanced
InteractionInfo
InteractionListenerExtracts out non-essential functionality (visualizations, user interaction, etc.) from Canvases
IntersectableInterface for an intersectable object in 3-space, with some extra functionality specific to accelerating spatial intersection queries
IntersectDebugTesterDebugging info when a pixel is clicked on an ImageCanvas
IPathGeneratorInterface responsible for generating valid light-to-eye paths
JitteredSampleGeneratorJittered point sample generation over a given 2D domain where M*N samples are generated randomly within M*N uniformly-spaced subdomains
JitteredSG< SG >
JointContUniformSamplerRepresents a uniform distribution on [min,max)^N ; N > 0, which could be used, for example, for choosing a random UV coordinate (e.g, where N = 2, min = 0, max = 1)
JointEventRepresents a single event which was sampled from a JointSampler. The internal value of this event is stored in a variant using boost::any, where the concrete value of type T can be extracted using Event<T>::getValue()
JointSamplerRepresents an abstract joint random variable that can be sampled according to several discrete/continuous probability distribution(s)
JSONParseData
JSONVisitor
JSONVisitorValue
kdTreeAccelAn N-dimensional kd-Tree is an axis-aligned binary spatial partitioning data structure. Each internal node is split along one of the N principle axes, where the split plane is typically chosen at each node based on some sort of heuristic. This kd-Tree implementation supports several common split plane generation methods, namely: spatial midpoint, median of geometry, and surface area heuristic (SAH). Note that a kd-Tree constructed by choosing the spatial midpoint along the current split axis as the next split plane is equivalent to an Octree. Also note that though the SAH produces the best quality tree overall with respect to visibility tests, it can take a long time to build and is thus mainly suitable for static scenes (whereas other acceleration data structures may be more appropriate for dynamic geometry & animations). The SAH kd-Tree may be tweaked with several parameters. See kdTreeAccelParams for more info. The O(nlog n) SAH construction has been implemented as opposed to the O(n) or O(n^2) alternatives (using std::sort for internal sorting). This choice was made because the O(n) solutions which exist both have large constants (which diminish their utility in practice), and are nowhere near as readable or easy to understand as the relatively straightforward O(nlog n) alternative
kdTreeAccel::BuildParamsParameters controlling construction of a kdTreeAccel
KernelFilter2D discrete, symmetric filter which can be compactly / efficiently stored / applied using a 2D kernel (array)
LanczosSincFilter2D symmetric Lanczos filter whose aim is to approximate a truncated sinc (the ideal reconstruction filter) while minimizing the amount of visible ringing resulting from the truncation
LocalSyscallProxy
LogUnified Logging interface
LSystemModels a Lindenmayer System, which may be used to simulate a varient of effects in Nature, such as plant growth and fractals
MainSyscallProxy
MarchingCubesMarching Cubes is a well-known algorithm for generating a polygonal approximation to an isosurface defined over a scalar field. This class is a fairly standard implementation of Marching Cubes in 3D that generates triangular meshes as output
MaterialAbstract representation of a surface Material, defined without respect to the underlying surface (loose coupling between Shapes and Materials from the point-of-view of a Material, but all Shapes know about their surface Material). Materials subclass PropertyMap, and it is through this interface that Material properties may be set (ex: diffuse color, texture/bump/color map(s), index of refraction of interior volume, etc.)
Matrix< M, N, T >A Matrix is templated to store M rows and N columns of data of type T. If left off, T will default to a "real_t" data type. Also, if N is not specified, the template will default to a square MxM matrix
MeshRepresentation of a triangular mesh stored in the obj format. It consists of a list of vertices's and a list of faces that contain indices in the vertex list
MeshDataTemporary struct for loading mesh data
MeshLoaderStatic class which loads mesh data from external files in either OBJ or PLY formats (file extensions '.obj' and '.ply' respectively)
MeshLoaderOBJLoads OBJ meshes from an external source ('.obj' file extension). Wrapper around obj-parser-0.1
MeshLoaderPLYLoads PLY meshes from an external source ('.ply' file extension). Wrapper around ply-parser-0.1
MeshTriangleBasic representation of a MeshTriangle with optional UV coordinates
MeshTriangleFast
MetaBallA MetaObject exerts a positive or negative 'charge' in a scalar field, whose isocontours (level sets) define blobby surfaces with different threshold values corresponding to the contour level. MetaObjects positively or negatively affect their neighboring MetaObjects depending on their 'strength' and 'negative' attributes. A MetaBall exerts a non-zero charge (aka influence) over a spherical region emanating from a single point, 'position', out to a maximum distance of 'radius'
MetaObjectA MetaObject exerts a positive or negative 'charge' in a scalar field, whose isocontours (level sets) define blobby surfaces with different threshold values corresponding to the contour level. MetaObjects positively or negatively affect their neighboring MetaObjects depending on their 'strength' and 'negative' attributes. 'strength' defines the initial charge of the object, and 'negative' is a boolean which defaults to false, denoting whether or not this MetaObject has a positive or a negative impact on surrounding MetaObjects. MetaObject is an abstract class, and specific implementations define how its initial charge dissipates throughout the field
MiltonAppMain entrypoint for Qt-based frontend which comes bundled with Milton (including a non-graphical 'nox' mode for remote / batch rendering)
MiltonJSONSceneLoaderScene loader for Milton JSON scene format
MiltonParamsMiltonApp parameters parsed from the commandline and overrideable by MiltonApp users / subclasses
MitchellFilter2D symmetric Mitchell filter which is parameterized to tradeoff between 'ringing' and 'blurring' that other filters tend towards in difficult reconstruction cases
ModifiedPhongBSDFPhysically-correct modified phong model for glossy/specular surfaces, defined at a single point on a surface in 3-space. The modified phong model has two inputs: Kd, and Ks in [0, 1] subject to Kd + Ks <= 1, where Kd and Ks represent the diffuse and specular reflectivity of the surface respectively (fraction of incoming energy that is reflected diffusely/specularly). A third input, n, represents the specular shininess of the surface, where higher values of n correspond to tighter / sharper specular highlights, and lower values of n correspond to wider / glossier highlights
MultipleImportanceSampler"Optimally" combines samples taken from multiple sampling distributions with respect to a function, 'f', whose value we are trying to integate over a given domain,'D'. D is assumed to be the union of the domains of the individual underlying distributions
Mutation
NaiveRenderOutputRecords point samples from a renderer and naively reconstructs the underlying image by storing samples into the bin/pixel which they fall into, overwriting previous samples, and not using any reconstruction filter
NaiveSpatialAccelNaive/identity spatial acceleration (no acceleration) which runs through all primitives linearly when testing for intersections
NormalSamplerRepresents a normal distribution: X ~ N(u, sigma^2) f(x) = 1/(sqrt(2*pi*sigma^2)*exp(-(x-u)^2/(2*sigma^2))) The normal distribution (aka Gaussian) is parameterized by its mean and variance and is referred to as the standard normal distribution when when it has mean zero and variance one. The normal distribution is probably the single most important distribution in all of probability because of its ubiquity in describing natural phenomena and because of the Central Limit Theorem, which says that the sum of a sufficiently large number of iid random variables, each with finite mean and varirance, will be approximately normally distributed. This allows one to study almost any distribution in terms of one, standard normal, distribution, simplifying many computations and proofs all over both applied and theoretical statistics
NullEmitterNull emitter which doesn't emit any light, defined at a single point in 3-space
NullSensorNull sensor which doesn't emit any importance
OmniEmitterPoint emitter / light which emits light uniformly in every direction, defined at a single point in 3-space (omnidirectional)
OpenGLCanvasProvides an OpenGL rendering view
OpenGLRendererOpenGL preview renderer
OrientedEmitterArea emitter / light which emits light uniformly across a 2D domain, defined at a single point in 3-space, and restricted to the local positive hemisphere (oriented along hemisphere about local surface normal)
ParseDataWrapper for data which may be loaded externally
PathCore data structure for manipulating a sequence x0,x1,...,xk of points on scene surfaces. Paths are the central unit in the path integral formulation of light transport, upon which path tracing, bidirectional path tracing, and MLT are all founded
PathTracerUnbiased path tracer with support for efficient direct illumination
PathVertexA Path is composed of zero or more PathVertex vertices stored in a PathVertexList. Each PathVertex stores the underlying SurfacePoint, representing a single point on a surface (and all relevant associated metadata, eg, UV coords, normal, BSDF, etc.). In addition to storing the underlying SurfacePoint, each PathVertex also stores a set of carefully chosen, local values which facilitate efficient computation of the unweighted, bidirectional contributions of all possible combinations of light and eye subpaths. Specifically, 'alphaL' and 'alphaE' store the cumulative light and eye contributions respectively, with respect to this vertex' index within its parent Path
PinholeCameraBasic pinhole camera using perspective projection (aka Camera Obscura)
PlaneRepresentation of a unit plane in the y=0 plane from (-.5,0,-.5) to (.5,0,.5)
Point< N, T >A Point is templated to store N elements of data of type T. If left off, T will default to a "real_t" data type
PointSampleRepresents the value of a generic function ({x,y} -> any) evaluated at a particular 2D point
PointSampleRendererAbstraction of renderers which construct their output by point sampling a 2D domain (the film plane). The steps of generating point samples across this domain (SampleGenerator), evaluating the samples (PointSampleRenderer/SampleConsumer), and storing/using the evaluated samples (RenderOutput) have been abstracted from each other
PointShapeRepresentation of a single point in 3-space (used to represent point lights and pinhole cameras)
ProgressiveFilterValue< T >Normalized value composed of a progressive sum of N contributions, each of which has an associated weight
PropertyMapBare-bones map used throughout Milton for holding custom initialization parameters/options/information
RandomProvides static functionality for generating base random numbers, wrapping around boost::random, shared by all Samplers
Ray3-Dimensional Ray (origin + direction), including several optimization fields (inverse direction and "mailbox ID")
RayCasterSimple, non-recursive raycaster
RayTracerAbstract ray tracing engine, with the following concrete implementations: WhittedRayTracer, StochasticRayTracer
ReconstructionRenderOutputRecords point samples from a renderer and attempts to reconstruct the underlying image by filtering samples with a reconstruction filter
RendererAbstract rendering engine which attempts to evaluate a rendering equation over a given 2D domain (the film plane) and pipes its output to an equally abstract RenderOutput (generally an image wrapper, but allowing for distributed rendering)
RenderOutputRecords point samples from a renderer which may be used to construct an output image on a local or distributed machine
RenderThreadIntermediary for communicating/blocking between Gui and non-Gui threads in Qt
ResourceManagerStatic resource manager synchronized across all Milton threads, containing references to loaded images, global logging utilities, and user-definable options which may be used to affect Milton functionality. Many user-definable options that are supported are aimed at dynamic, on-the-fly debugging changes (whether or not to preview kd-Trees built from Meshes, for instance)
Rgba32Standard 32-bit RGBA pixel with red, green, blue, and alpha channels, all with integer values in the range [0, 255]
RgbaHDRStandard 128- or 256-bit RGBA pixel with floating-point red, green, blue, and alpha channels
RgbaImageImage class supporting a standard 32-bit Rgba pixel format
rgbe_header_info
SampleConsumerThreaded point sample evaluation (represents the 'consumer' in the classic producer/consumer problem)
SampleGeneratorPoint sample generation over the 2D unit interval [0,1]^2
SampleGeneratorThreadThreaded PointSample generation over the 2D unit interval [0,1]^2 (represents the 'producer' in the classic producer/consumer problem)
SamplerRepresents an abstract random variable that can be sampled according to some discrete/continuous probability distribution
ScalarFieldRepresents a possibly bounded 3D scalar field (function from R^3 -> R which may be non-zero only within a bounded domain -- its AABB or Axis-Aligned-Bounding-Box)
SceneContains all primitive and material data representing a given 3D scene
SceneGraphBare-bones scene graph used during scene parsing
SceneLoaderAbstract scene loader
SceneNode
SceneNodeInstance
SceneNodeMaterial
SceneNodeShape
SceneNodeTransform
SensorRepresentation of importance defined at a single point on a surface in 3-space (describing a sensor / camera)
SensorSamplerSampler which selects a point on a sensor (camera) in the scene. Successive invocations of SensorSampler
ShapeAbstract representation of a shape in 3-space
ShapeSetRepresents a collection of shapes which all have the same transformation
SharedLibrary
SharedLibraryManager
SharedLibraryPlatform
SharedLibraryPlatformPosixPOSIX-compliant dl* interface (dlopen, dlsym, dlclose, dlerror...)
SharedLibraryReference
SpatialAccelGeneric interface for intersection acceleration data structures used for ray visibility testing and sampling during rendering
SpectralSample
SpectralSampleSetTemplated set of spectral values (wavelength-dependeht), sampled at N distinct wavelengths. Specific SpectralSampleSet instances include SpectralRadianceSet, in which each sample represents the radiance at a single wavelength with units Watts / (m^2 sr), and SpectralScalarSet, where each wavelength-dependent sample represents a unitless scalar that can be used to attenuate SpectralRadianceSet
SphereRepresentation of a 3D sphere with radius .5, enclosed in the unit box (-.5,-.5,-.5) to (.5,.5,.5)
SSEAligned128-bit SSE (Streaming SIMD Extension) registers require 16-byte alignment which necessitates special care when allocating objects containing SSE data types both on the stack and on the heap (via the new operator)
StochasticSampleGeneratorStochastic point sample generation over a given 2D domain where samples are generated completely randomly over the entire domain
StochasticSG< SG >
SuperSampleGeneratorBrute force super sampling, where sub-bin (sub-pixel) sampling is done via an auxillary SampleGenerator
SuperSG< SG >
SurfacePointCore class representing a single point on the surface of a Shape, which was likely generated by either an intersection with a Ray or random sampling on the surface of the shape. SurfacePoint encapsulates all of the different information about a surface point and is used for shading evaluation (BSDF), emittance evaluation (Emitter), and so-called importance evaluation (Sensor)
SurfacePoint::SurfacePointNormalConvenience stand-in normal which plays nicely with shapes that don't support the concept of a normal (ex. point lights)
ThinLensCameraThin lens camera approximation supporting common camera inputs and allowing for depth of field
TimerSmall utility timer
TransformableRepresents a Shape which is defined in its own local "object space" and knows how to transform itself into the global "world space"
TriangleBasic representation of a Triangle with optional UV coordinates
TriangleFilter2D symmetric triangle filter (aka linear/tent filter)
UniformOnSphereSamplerRepresents a uniform distribution on the surface of an N-dimensional unit sphere (with parameter N > 0 and radius = 1)
UniformSampleGeneratorUniform point sample generation over the unit interval, where samples are generated uniformly in a grid over the entire domain
UniformSampler< T >Represents a uniform distribution (either discrete or continuous), parameterized by [min,max)
UniformSG< SG >
UVUV coordinate wrapper for texture coordinates
Vector< N, T >A Vector is templated to store N elements of data of type T. If left off, T will default to a "real_t" data type, where a real_t is assumed to be either a float or a double
Vector< 3, real_t >Specialized template implementation for Vector3, accelerated to support efficient SIMD vectorization via SSE intrinsics
ViewportRepresents a square domain over [0,1]^2, overlaid with a conceptual grid of uniformly-sized tiles (representing pixels)
WeightedEventRepresents an event sampled by a Sampler that has been coupled with an arbitrary real-valued weight in [0,1]
WhittedRayTracerClassic Whitted-style raytracer; for a concise introduction to raytracing, see http://www.raytracing.co.uk/study/ray_intro.htm

Generated on 28 Feb 2009 for Milton by doxygen 1.5.6