Class 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.
Inheritance
Namespace: IVLab.ABREngine
Assembly: IVLab.ABREngine.Runtime.dll
Syntax
[ABRPlateType("Instanced Surface")]
public class InstancedSurfaceDataImpression : DataImpression, IHasDataset, IHasKeyData, ICoordSpaceConverter
Constructors
| Improve this Doc View SourceInstancedSurfaceDataImpression()
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.
Declaration
protected InstancedSurfaceDataImpression()
Fields
| Improve this Doc View SourceLayerName
Define the layer name for this Data Impression
Declaration
protected const string LayerName = "ABR_Glyph"
Field Value
Type | Description |
---|---|
string |
Remarks
Warning
New Data Impressions should define a const string "LayerName" which corresponds to a Layer in Unity's Layer manager.
colorVariable
Scalar color variable applied to each point of this data impression. This example switches between X-axis monotonically increasing and Y-axis monotonically increasing.
Declaration
[ABRInput("Color Variable", UpdateLevel.Style)]
public ScalarDataVariable colorVariable
Field Value
Type | Description |
---|---|
ScalarDataVariable |
colormap
Colormap applied to the colorVariable. This example switches between a linear white-to-green colormap and a linear black-to-white colormap.
Declaration
[ABRInput("Colormap", UpdateLevel.Style)]
public IColormapVisAsset colormap
Field Value
Type | Description |
---|---|
IColormapVisAsset |
forceOutlineColor
Force the use of outlineColor even if there's a colormap applied to the data. This example alternates between a white-to-green linear colormap (false) and a solid purple-blue (true)
Declaration
[ABRInput("Force Outline Color", UpdateLevel.Geometry)]
public BooleanPrimitive forceOutlineColor
Field Value
Type | Description |
---|---|
BooleanPrimitive |
instanceMesh
The mesh to populate across all "instanced transforms" supplied by key data.
Declaration
[ABRInput("Instance Mesh", UpdateLevel.Geometry)]
public Mesh instanceMesh
Field Value
Type | Description |
---|---|
Mesh |
keyData
KeyData for InstancedSurfaceDataImpression is an "unofficial" 5th
type of Key Data - instanced matrices. These key
data have no geometry, only a single variable that is a series of
4x4 matrices. Key data can be changed by modifying a RawDataset's matrixArrays and matrixArrayNames. The key data transforms (like
every other key data in ABR) can be updated frame-by-frame so long
as <xref href="IVLab.ABREngine.RenderHints.GeometryChanged" data-throw-if-not-resolved="false"></xref>= true
is specified. For
example, here we are spinning the transforms along the y axis.
Declaration
[ABRInput("Key Data", UpdateLevel.Geometry)]
public KeyData keyData
Field Value
Type | Description |
---|---|
KeyData |
nanColor
Override the color used for NaN values in this data impression. If not supplied, will use the defaultNanColor.
Declaration
[ABRInput("NaN Color", UpdateLevel.Style)]
public IColormapVisAsset nanColor
Field Value
Type | Description |
---|---|
IColormapVisAsset |
outlineColor
Color of the outline (when forceOutlineColor is true
or there's no colormap/colorVariable)
Declaration
[ABRInput("Outline Color", UpdateLevel.Geometry)]
public Color outlineColor
Field Value
Type | Description |
---|---|
Color |
outlineWidth
Width (in Unity world coords) of the outline
Declaration
[ABRInput("Outline Width", UpdateLevel.Geometry)]
public LengthPrimitive outlineWidth
Field Value
Type | Description |
---|---|
LengthPrimitive |
showOutline
Show/hide outline on this data impression
Declaration
[ABRInput("Show Outline", UpdateLevel.Style)]
public BooleanPrimitive showOutline
Field Value
Type | Description |
---|---|
BooleanPrimitive |
Properties
| Improve this Doc View SourceMaterialNames
Name of the material to use to render this DataImpression
Declaration
protected override string[] MaterialNames { get; }
Property Value
Type | Description |
---|---|
string[] |
Overrides
Methods
| Improve this Doc View SourceCleanup()
When this data impression is done being used, clean up after itself if necessary. This method may need access to the GameObject the data impression is applied to.
Declaration
public override void Cleanup()
Overrides
| Improve this Doc View SourceComputeGeometry()
RENDERING STEP 1. Populate rendering information (Geometry) for the DataImpression. This is triggered by the DataImpressionGroup when an Geometry happens. This step is generally expensive.
Declaration
public override void ComputeGeometry()
Overrides
| Improve this Doc View SourceGetDataset()
By default, there's no dataset. DataImpressions should only have one dataset, and it's up to them individually to enforce that they correctly implement this.
Declaration
public override Dataset GetDataset()
Returns
Type | Description |
---|---|
Dataset |
Overrides
| Improve this Doc View SourceGetKeyData()
By default, there's no data. DataImpressions should only have one KeyData, and it's up to them individually to enforce that they correctly implement this.
Declaration
public override KeyData GetKeyData()
Returns
Type | Description |
---|---|
KeyData |
Overrides
| Improve this Doc View SourceGetKeyDataTopology()
By default, there's no data. DataImpressions should only have one KeyData, and it's up to them individually to enforce that they correctly implement this.
Declaration
public override DataTopology GetKeyDataTopology()
Returns
Type | Description |
---|---|
DataTopology |
Overrides
| Improve this Doc View SourceSetKeyData(KeyData)
By default, there's no data. DataImpressions should only have one KeyData, and it's up to them individually to enforce that they correctly implement this.
Declaration
public override void SetKeyData(KeyData kd)
Parameters
Type | Name | Description |
---|---|---|
KeyData | kd |
Overrides
| Improve this Doc View SourceSetupGameObject()
RENDERING STEP 2. Take geometric rendering information computed in ComputeGeometry() and sets up proper game object(s) and components for this Data Impression. Transfers geometry into Unity format (e.g. a Mesh). No geometric computations should happen in this method, and it should generally be lightweight.
Declaration
public override void SetupGameObject()
Overrides
| Improve this Doc View SourceUpdateStyling()
RENDERING STEP 3. Update the "styling" of an impression by sending each styling parameter to the shader. Occasionally will need to set per-vertex items like transforms. This method should generally be lightweight.
Declaration
public override void UpdateStyling()
Overrides
| Improve this Doc View SourceUpdateVisibility()
RENDERING STEP 4. Update the visibility of an impression (hidden or shown)
Declaration
public override void UpdateVisibility()