Unplugged Viz
High-performance scientific visualization isn't just for the workstation anymore
Durwella.Unplugged.Viz Namespace Reference

Namespaces

namespace  Droid
 Android-specific custom renderers.
 
namespace  iOS
 iOS-specific custom renderers.
 

Classes

class  CameraControl
 A control for positioning the camera within a TumbleView. The default implementation can be used to provide straightforward control of the camera; alternatively, More...
 
class  ColorMapAttribute
 Identifies the tagged property as a color map. The color map is a special case of the TextureMapAttribute This attribute is applied to properties. More...
 
class  ColorMappedImageView
 A 2-dimensional, color-mapped representation of 3-dimensional data. ColorMappedImageView sacrifices type safety in the name of performance. It accepts data either as a 2D array or as a RawDataArray, which allows avoiding intermediate conversion of raw data. More...
 
class  ColorMappedPlotView
 A 2-dimensional, color-mapped representation of 3-dimensional data. ColorMappedPlotView is type-safe, but may be less performant than ColorMappedImageView if your data is in a raw, single-dimensional array format. More...
 
class  CylinderGeometry
 A cylindrical geometry implementing IIndexedGeometry, IImageMappedGeometry, and ILitGeometry. In this case, a cylinder is defined using a number of sides n: the shape of the cylinder is approximated as an extruded n-gon. Note that no attributes are applied to this class; it is intended only as input to appropriate model class. The vertices are constructed using indexing, and intended for drawing using PrimitiveType.TriangleStrip. More...
 
class  DrawWithAttribute
 Specifies a the settings to be used for drawing the specified model. Every model must have exactly oen DrawWithAttribute. This attribute is applied to a class. More...
 
class  ExpiredLicenseException
 Exception thrown when attempting to use an expired trial key. More...
 
class  FragmentShaderAttribute
 Specifies a fragment shader for the tagged class. This attribute is applied to a class. Multiple FragmentShaderAttributes may be applied to a single class. More...
 
class  GridGeometry
 Helper methods for generating grid geometries. More...
 
interface  IColoredGeometry
 Describes a geometry that includes a color. More...
 
interface  IColorMappedGeometry
 Describes a geometry that includes a colormap. More...
 
interface  IGeometry
 The base interface for geometries. Any model to be used in a TumbleView must implement IGeometry More...
 
interface  IImageMappedGeometry
 Describes a geometry that uses an image as a texture. More...
 
interface  IIndexedGeometry
 Describes a geometry that includes indices. More...
 
interface  ILitGeometry
 Describes a geometry that is lit. More...
 
class  IndexedGeometryModel
 Indexed geometry model. This class or subclasses can be used with the CommonVertexShader.TextureMappedModel and CommonFragmentShader.TextureMappedModel shaders. Note that if the properties are overridden, the subclass must apply the appropriate attributes. More...
 
class  IndexedGeometryTextureMappedLitModel
 Texture mapped, lit, indexed geometry model. This class or subclasses can be used with the CommonVertexShader.TextureMappedLitModel and CommonFragmentShader.TextureMappedLitModel shaders. Note that if the properties are overridden, the subclass must apply the appropriate attributes. More...
 
class  IndexedGeometryTextureMappedModel
 Texture mapped, indexed geometry model. This class or subclasses can be used with the CommonVertexShader.TextureMappedModel and CommonFragmentShader.TextureMappedModel shaders. Note that if the properties are overridden, the subclass must apply the appropriate attributes. More...
 
class  InvalidLicenseException
 Exception thrown when attempting to use component functionality with no or an invalid license key. More...
 
interface  IRotatableGeometry
 Describes a geometry whose orientation can be set. More...
 
interface  ITexturedGeometry
 Describes a geometry that includes texture coordinates. Generally, a model that implements ITexturedGeometry should implement ITextureMappedGeometry, IColorMappedGeometry, or IImageMappedGeometry. More...
 
interface  ITextureMappedGeometry
 Describes a geometry that includes a texture map. More...
 
interface  ITranslatableGeometry
 Describes a geometry that can be translated. More...
 
class  License
 Class controlling component licensing functionality. More...
 
class  Loading
 Helper methods for loading data. More...
 
class  MatrixExtensions
 Extensions to the Microsoft.Xna.Framework.Matrix class. More...
 
class  PlatformCodeNotLoadedException
 Exception thrown when platform-specific code has not been loaded. More...
 
class  PlotViewBase
 Base class for plot views. More...
 
class  PowerOfTwoTextureAdapter
 An adapter between a dataset of a specified size and a texture map with power-of-two dimensions. More...
 
class  RangeF
 A one-dimensional range defined by two float endpoints. More...
 
class  RawDataArray
 Represents a raw away of data as a 1-dimensional array. Can be used in place of a 2D array as input for a ColorMappedImageView for improved performance. More...
 
class  RectangleF
 A one-dimensional range defined by four float points. More...
 
class  ShaderAttribute
 Specifies a custom shader name for the tagged class. Vertex and fragment shaders named '{ShaderName}.vsh' and '{ShaderName}.fsh', respectively, must be included. A class tagged with a ShaderAttribute must not be tagged with any other ShaderAttribute or any ShaderFileAttributes. This attribute is applied to a class. More...
 
class  ShaderFileAttribute
 Specifies a shader file for the tagged class. A class tagged with one or more ShaderFileAttributes must not be tagged with any ShaderFileAttribute. This attribute is applied to a class. More...
 
class  ShapeFBase
 Base class for shapes with float coordinates. More...
 
class  SphereGeometry
 A spherical geometry implementing IIndexedGeometry, IImageMappedGeometry, and ILitGeometry. Note that no attributes are applied to this class; it is intended only as input to appropriate model class. The vertices are constructed using indexing, and intended for drawing using PrimitiveType.TriangleStrip. More...
 
class  TextureMapAttribute
 Identifies the tagged property as a texture map. The texture map is a uniform attribute which defines how the texture will be sampled for the model. This attribute is applied to properties. More...
 
class  TooManyModelsForLicenseException
 Exception thrown when attempting to use more models in view than allowed by the trial key. More...
 
class  TooMuchDataForLicenseException
 Exception thrown when attempting to use more data than allowed by the trial key. More...
 
class  TumbleView
 A 3-dimensional view. A TumbleView is a container of models implementing IGeometry, optionally with a CameraControl. More...
 
class  UniformAttribute
 Identifies the tagged property as a uniform attribute; that is, a property which provides a single global value for all vertices (as opposed to VertexAttributeAttributes). This attribute is applied to properties. More...
 
class  VertexAttributeAttribute
 Identifies the tagged property as a vertex attribute; that is, a property which provides a value per vertex (as opposed to UniformAttributes). This attribute is applied to properties. More...
 
class  VertexIndicesAttribute
 Identifies the tagged property as the indices to be used in OpenGL indexing. This attribute is applied to a property. More...
 
class  VertexShaderAttribute
 Specifies a vertex shader for the tagged class. This attribute is applied to a class. Multiple VertexShaderAttributes may be applied to a single class. More...
 
class  ViewBase
 Base class for all views. More...
 
class  VisMath
 Some helper mathematical functions useful for visualization. More...
 
class  XYPlotView
 A 2-dimensional plot. The area under (or to the left of) the plotted data is filled in with a color map representing the value. More...
 

Enumerations

Enumeration Type Documentation

Options for DrawWithAttribute.BackFaces.

Enumerator
Culled 

The back faces of triangles are not drawn. Culling allows non-visible faces to be culled before the expensive rendering operations. Culling should be used for closed surfaces (e.g. a sphere or cube).

NotCulled 

The back faces of triangles are not culled. This setting should be used for open surfaces such as a flat rectangle) for which both faces should be displayed.

Enumerator
ColorMapping 

Provides the function FragColorFromColorMap(highp float value, sampler2D colorMap, highp float colorMapOffset), which can be used to apply a colormap as a texture. A class using ColorMapping must implement IColorMappedGeometry.

uniform float ColorMapMinimum;
uniform float ColorMapMaximum;
float LimitColorMapRange(float value)
{
if (value > ColorMapMaximum)
return 1.0;
if (value < ColorMapMinimum)
return 0.0;
return (value - ColorMapMinimum) / (ColorMapMaximum - ColorMapMinimum);
}
vec4 ColorFromColorMap(float value, sampler2D colorMap, float colorMapOffset)
{
value += colorMapOffset;
if (value < 0.0)
value = 0.0;
else if (value > 256.0 / 255.0)
value -= 1.0;
value = LimitColorMapRange(value);
return texture2D(colorMap, vec2(0.5, 1.0 - value));
}
void FragColorFromColorMap(float value, sampler2D colorMap, float colorMapOffset)
{
gl_FragColor = ColorFromColorMap(value, colorMap, colorMapOffset);
}
TextureMappedModel 

Uses the TextureMappedModel fragment shader:

varying vec2 TextureCoordinate;
uniform sampler2D Image;
void main()
{
gl_FragColor = texture2D(Image, TextureCoordinate);
}

A class using TextureMappedModel must implement IIndexedGeometry, and will likely implement IImageMappedGeometry or ITextureMappedGeometry.

See also
IndexedGeometryModel, IndexedGeometryTextureMappedModel
TextureMappedLitModel 

Uses the TextureMappedLitModel fragment shader:

uniform vec3 LightPosition;
varying vec3 Surface;
varying vec3 Normal;
varying vec2 TextureCoordinate;
uniform sampler2D Image;
void main()
{
vec3 L = normalize(LightPosition - Surface);
vec3 N = normalize(Normal);
float shading = max(dot(N,L), 0.0);
vec4 color = texture2D(Image, TextureCoordinate);
gl_FragColor = vec4(shading * color.rgb, color.a);
}

A class using TextureMappedLitModel must implement ILitGeometry, and will likely implement IImageMappedGeometry or ITextureMappedGeometry.

See also
IndexedGeometryTextureMappedLitModel
Enumerator
TextureMappedModel 

Uses the TextureMappedModel vertex shader:

attribute vec3 Vertices;
attribute vec2 TextureCoordinates;
uniform mat3 Rotation;
uniform mat3 Model;
uniform mat4 ModelViewProjection;
uniform mat4 ViewProjection;
varying vec2 TextureCoordinate;
void main()
{
Model;
ViewProjection;
Rotation;
TextureCoordinate = TextureCoordinates;
gl_Position = ModelViewProjection * vec4(Vertices, 1.0);
}

A class using TextureMappedModel must implement IIndexedGeometry, and will likely implement IImageMappedGeometry or ITextureMappedGeometry.

See also
IndexedGeometryModel, IndexedGeometryTextureMappedModel
TextureMappedLitModel 

Uses the TextureMappedLitModel vertex shader:

attribute vec3 Vertices;
attribute vec3 Normals;
attribute vec2 TextureCoordinates;
uniform mat3 Rotation;
uniform mat3 Model;
uniform mat4 ModelViewProjection;
uniform mat4 ViewProjection;
varying vec3 Surface;
varying vec3 Normal;
varying vec2 TextureCoordinate;
void main()
{
Model;
ViewProjection;
Surface = Vertices;
Normal = Rotation * Normals;
TextureCoordinate = TextureCoordinates;
gl_Position = ModelViewProjection * vec4(Vertices, 1.0);
}

A class using TextureMappedLitModel must implement ILitGeometry, and will likely implement IImageMappedGeometry or ITextureMappedGeometry.

See also
IndexedGeometryTextureMappedLitModel

Options for DepthBuffer.

Enumerator
Enabled 

Enable the depth buffer. Fragments that are behind other fragments will be discarded.

Disabled 

Disable the depth buffer. Fragments will be displayed as they are added to the scene, regardless of depth.

Options for TextureMapAttribute.MagnificationFilter.

Enumerator
LinearInterpolation 

Use the weighted average of the 4 pixels surrounding the given coordinate.

NearestNeighbor 

Use the pixel closes to the given coordinates.

Options for DrawWithAttribute.PrimitiveType.

Enumerator
Points 

Draws points. Every specified vertex is considered an individual point.

LineStrip 

Draws connected lines. Every pair of adjacent vertices forms a line.

TriangleStrip 

Draws connected triangles. Every group of 3 adjacent vertices forms a triangle.

Triangles 

Draws disconnected triangles. Vertices are divided into groups of three to form triangles: vertices 0, 1, and 2 form a triangle; vertices 3, 4, and 5 form a triangle; etc.

Options for DrawWithAttribute.Winding.

Enumerator
CounterClockwise 

When viewed from the front face, a triangle's vertices rotate counter-clockwise aroudn the triangle's center.

Clockwise 

When viewed from the front face, a triangle's vertices rotate clockwise aroudn the triangle's center.

Options for TextureMapAttribute.WrapMode.

Enumerator
ClampToEdge 

The coordinate is clamped between 0 and 1.

Repeat 

Ignore the integer part of the cordinate, resulting in a repeating pattern.

MirroredRepeat 

Repeat the texture, but mirrored when the integer part of the coordinate is odd.