Namespace IVLab.ABREngine
Classes
ABRConfig
This Scriptable Object controls the ABR configuration before startup. On engine startup, a copy is instantiated for use at runtime.
ABRConfig.Consts
Global access to constants in the ABR Engine. Sync this with settings.py in the ABRServer~.
ABRConfig.GroupToDataMatrixOverrideFields
ABRDataContainer
ABREngine
The ABREngine class is the main operational MonoBehaviour Singleton for the ABREngine-UnityPackage. It is in charge of kicking off all startup processes for ABR, including setting up connections with the server, the data listener, VisAssets and Data managers, etc.
ABRInputAttribute
Input attribute used for annotating an ABR input to a data impression (VisAsset, DataVariable, etc.)
ABRInputIndexerModule
Convenience class to avoid having to repeatedly manage reflection when adjusting ABR inputs to Data Impressions.
ABRLight
ABRLightManager
Transfer any lights in the ABR scene to variables in the volume rendering shader.
ABRPlateType
Attribute to match up this class with the string plate name from the ABR Schema
ABRServer
The ABRServer class functions as a passthrough to the Python server. It defines several helpful constants and functions for working with the server (e.g., starting, stopping, etc.)
ABRStateParser
The ABRStateParser takes a (text) ABR state from JSON and loads its components into Unity, or takes the current state of objects in the Unity scene and translates it back into text.
AnglePrimitive
BooleanPrimitive
ColormapVisAsset
DataImpression
Main class for Data Impressions (layers) in an ABR visualization. Every Data Impression is a GameObject in the scene.
DataImpressionGroup
A DataImpressionGroup is a group of data impressions within ABR. DataImpressionGroups can be constrained within a defined bounding box (see ABRDataContainer), and can automatically rescale all of their data to stay within this container. Each time a new KeyData object is loaded into a data impression in this group, the GroupToDataMatrix and GroupBounds are updated.
DataManager
Manager where all datasets, key data, and variables live. This class makes the connection between Datasets and RawDatasets. This class is useful for obtaining any KeyData and Variables needed to apply to Data Impressions.
DataPath
A path to a data source, be it a KeyData object, a Scalar Variable, a Vector Variable, or something else.
Should take the form of Organization/DatasetName/*
Example: TACC/GulfOfMexico/KeyData/bathymetry
Example: TACC/GulfOfMexico/ScalarVar/temperature
DataPoint
A DataPoint describes a point in a dataset. Often, this is useful when querying a dataset, for example, to find the closest data point to a given point in world space.
DataRange<T>
Range descriptor for a variable, including a min and max.
Dataset
Lightweight container for a collection of KeyData objects and variables that share a common coordinate space. Its bounding box contains all of data, and the rendered objects are children of this object's GameObject.
FilePathVisAssetFetcher
Fetch VisAsset from somewhere on local disk
FloatPrimitive
GlyphGradient
GlyphVisAsset
GradientBlendMap
Collection of essential textures for making texture-based VisAsset gradients happen. The blend maps are controlled via the BlendMaps and StopMaps texture arrays.
HttpDataLoader
Load data from a remote source
HttpStateFileLoader
Save/Load a state from a web URL
HttpVisAssetFetcher
Fetch VisAssets from a URL via HTTP
InstancedMeshRenderer
Custom-tailored Instanced Mesh Renderer for rendering glyphs in ABR. When using this, developers should make sure that "Use Instanced" is checked on the material that these glyphs are using.
InstancedSurfaceDataImpression
An Instanced Surface data impression (very similar to glyphs, except geometries are specified from data rather than VisAssets)
Note
This data impression type is not supported by the ABR design interface, hence the lack of ABRInputAttribute annotations for its instance variables.
IntegerPrimitive
KeyData
Lightweight container for a data object. From Key Data objects, scalar and vector variables can be obtained (see the example below).
LengthPrimitive
LineKeyData
LineTextureGradient
LineTextureVisAsset
MediaDataLoader
Load data from the ABREngine Media directory (specified in ABRConfig)
Notifier
Notifier for ABR state / cache updates, based on WebSockets.
PathStateFileLoader
Save/Load a state to a JSON file somewhere on disk
PercentPrimitive
PointKeyData
PrimitiveGradient
A simple gradient of points associated with values.
RawABRInput
Raw string values from a state JSON being passed to ABR
Matches InputValue
definition from ABR State Schema
Parameters can have one or more inputs
RawDataset
The raw variable arrays and geometry for a Data Object. RawDatasets
can be loaded from a pair of .json and .bin files (JsonHeader and
BinaryData, respectively). This RawDataset defines the specification
for each of these files. RawDataset is not to be confused with
Dataset
, which represents a collection of RawDatasets which
share a coordinate space, key data, and variables.
RawDataset.BinaryData
Actual geometric representation of the data to load from a file / socket
RawDataset.JsonHeader
Header that contains metadata for a particular RawDataset
RawDatasetAdapter
Adapter for converting other formats to ABRDataFormat. For example, lists of points => ribbons, or lists of points => glyphs. See the examples below for usage of each of these methods.
RawPrimitiveGradient
RawVisAssetGradient
Serializable version of the VisAsset gradients that interacts with state/schema. Each VisAsset type should be responsible for implementing their own conversion to/from this.
RenderHints
Hints for rendering, such as whether a data impression should be hidden
ResourceStateFileLoader
Load a state from any Resources folder within Unity (within any Package or Asset)
ResourceVisAssetFetcher
Fetch VisAsset from a Resources folder (in an Asset or Package)
ResourcesDataLoader
Load data from resources folder. NOTE: The actual data files (.bin) must have their file extension changed to .txt in order to be recognized. When data are imported, the identity of each is lost so we must guess which is which - currently guessing the larger of the two files is the "Data" and the smaller is "Metadata".
ScalarDataVariable
SerializableFloatArray
SerializableVectorArray
SimpleGlyphDataImpression
A "Glyphs" data impression that uses hand-sculpted geometry to depict point data.
SimpleLineDataImpression
A "Lines" data impression that uses hand-drawn line textures to depict line/flow data.
SimpleLineRenderInfo
SimpleSurfaceDataImpression
A "Surfaces" data impression that uses hand-drawn textures and color to show surface data.
SimpleSurfaceRenderInfo
SimpleVolumeDataImpression
A "Volumes" data impression that uses a user-defined transfer (opacity) map and a colormap to show volumetric data.
StateLocalVisAssetFetcher
Fetch a VisAsset from the currently loaded ABR state. Currently only valid for ColormapVisAssets.
SurfaceKeyData
SurfaceTextureGradient
SurfaceTextureVisAsset
TextStateFileLoader
Load a state from a serialized JSON string
TypeExtentions
UnityObjectSerializer
Custom converter to allow less verbose Newtonsoft serialization of Unity builtin objects. This converter manually handles several cases, add more as they become necessary.
VectorDataVariable
VisAsset
Generic type for all VisAssets to inherit from
VisAssetGradient
Concrete implementation of a VisAsset Gradient, which is a collection of VisAssets that also counts as a single VisAsset.
VisAssetLoader
Use a particular fetcher to try and get the VisAsset from its source, and construct the requisite Unity objects and IVisAsset to add.
VisAssetManager
The VisAssetManager is where all VisAssets are stored within the
ABREngine. VisAssets can be loaded and fetched from various sources
defined in VisAssetFetchers
. Currently, VisAssets may be loaded from any of the following:
- The state itself (`localVisAssets`)
- The media directory on the machine ABR is running on
- Any Resources folder (in Assets or in any Package)
- A VisAsset server
VolumeKeyData
Interfaces
IABRInput
Interface that includes every input to a data impression. Every type of ABR input should fit into a specific ABRInputGenre.
IABRStateLoader
Generic state loader for ABR. Implementations should allow both
retrieving a state (GetState
) and saving a state (SaveState
).
IColormapVisAsset
ICoordSpaceConverter
Interface to implement for helpers to convert between Data Space and Unity's World Space.
IDataAccessor
Interface to implement to share easier access to data within ABR.
IDataImpressionRenderInfo
IDataLoader
Generic interface to fetch a RawDataset
from somewhere
IDataVariable<T>
Lightweight / high level container for a data variable. Variables keep track of their ranges and path, but the actual Data Arrays are preserved within the original RawDataset.
IFloatPrimitive
Represents a numeric primitive value (e.g. 10deg, 96cm, or 4.6)
IGlyphVisAsset
IHasDataset
Should be assigned to anything that is associated with a dataset (e.g. KeyData, Variables, and even DataImpressions once they have valid KeyData)
IHasKeyData
Indicator that a particular object has some key data attached to it - useful for most DataImpressions.
IIntegerPrimitive
Represents an integer primitive value
IKeyDataRenderInfo
ILineTextureVisAsset
IPrimitive
Representative of a primitive element (usually used in ABR Inputs). These should match the primitive input types in the schema.
IPrimitiveGradient
ISurfaceTextureVisAsset
ITextureGradient
A VisAsset gradient described by a texture (or, series of textures)
IVisAsset
IVisAssetFetcher
Generic fetcher that supports fetching all types of VisAssets from a particular source.
IVisAssetGradient<T>
A gradient consisting of VisAssets of any type. NOTE: Texture-based gradients (Surface/Line textures and colormaps) must have 4 or fewer elements.
IVolumeCoordSpaceConverter
Interface to implement for helpers to convert between Data Space and Unity's World Space.
IVolumeDataAccessor
Interface to implement to share easier access to volume data within ABR.
Enums
ABRInputGenre
Possible genres of a visualization input
DataPath.DataPathType
DataTopology
Extension of Unity's MeshTopology enum that defines more generic "data" topology, including voxels.
UpdateLevel
How "deep" a particular update needs to go to fully address this ABR Input
Delegates
ABREngine.StateChangeDelegate
Delegate callback that is called whenever the ABRState is updated. This is useful for applications that build on ABR and need to know when the state has been updated. OnStateChanged for usage.