Class SimpleGlyphDataImpression
A "Glyphs" data impression that uses hand-sculpted geometry to depict point data.
Inheritance
Namespace: IVLab.ABREngine
Assembly: IVLab.ABREngine.Runtime.dll
Syntax
[ABRPlateType("Glyphs")]
public class SimpleGlyphDataImpression : DataImpression, IHasDataset, IHasKeyData, ICoordSpaceConverter
  Examples
An example of creating a single glyph data impression and setting its colormap, color variable, and glyph could be:
SimpleGlyphDataImpression gi = new SimpleGlyphDataImpression();
gi.keyData = points;
gi.colorVariable = yAxis;
gi.colormap = ABREngine.Instance.VisAssets.GetDefault<ColormapVisAsset>() as ColormapVisAsset;
gi.glyph = glyph;
ABREngine.Instance.RegisterDataImpression(gi);
  Constructors
| Improve this Doc View SourceSimpleGlyphDataImpression()
A "Glyphs" data impression that uses hand-sculpted geometry to depict point data.
Declaration
protected SimpleGlyphDataImpression()
  Examples
An example of creating a single glyph data impression and setting its colormap, color variable, and glyph could be:
SimpleGlyphDataImpression gi = new SimpleGlyphDataImpression();
gi.keyData = points;
gi.colorVariable = yAxis;
gi.colormap = ABREngine.Instance.VisAssets.GetDefault<ColormapVisAsset>() as ColormapVisAsset;
gi.glyph = glyph;
ABREngine.Instance.RegisterDataImpression(gi);
  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 | 
forwardVariable
"Forward" direction that glyphs should point in.
Declaration
[ABRInput("Forward Variable", UpdateLevel.Geometry)]
public VectorDataVariable forwardVariable
  Field Value
| Type | Description | 
|---|---|
| VectorDataVariable | 
glyph
What glyph(s) to apply to the dataset. This can also take a GlyphGradient. This example alternates between spherical and thin cylindrical glyphs.
Declaration
[ABRInput("Glyph", UpdateLevel.Geometry)]
public IGlyphVisAsset glyph
  Field Value
| Type | Description | 
|---|---|
| IGlyphVisAsset | 
glyphDensity
Tweak the density of glyphs - subsamples the existing glyphs uniformly.
Declaration
[ABRInput("Glyph Density", UpdateLevel.Style)]
public PercentPrimitive glyphDensity
  Field Value
| Type | Description | 
|---|---|
| PercentPrimitive | 
glyphLod
Level of detail to use for glyph rendering (higher number = lower level of detail; most glyphs have 3 LODs). Default to using the second-highest level of detail, but you may need to adjust for performance reasons.
Declaration
[ABRInput("Glyph Level Of Detail", UpdateLevel.Geometry)]
public IntegerPrimitive glyphLod
  Field Value
| Type | Description | 
|---|---|
| IntegerPrimitive | 
glyphSize
Adjust the size of the glyphs (in Unity-space meters).
Declaration
[ABRInput("Glyph Size", UpdateLevel.Style)]
public LengthPrimitive glyphSize
  Field Value
| Type | Description | 
|---|---|
| LengthPrimitive | 
glyphVariable
Variable used to determine which glyph to render at which data values. This only has any effect if glyph is a GlyphGradient.
Declaration
[ABRInput("Glyph Variable", UpdateLevel.Style)]
public ScalarDataVariable glyphVariable
  Field Value
| Type | Description | 
|---|---|
| ScalarDataVariable | 
keyData
A "Glyphs" data impression that uses hand-sculpted geometry to depict point data.
Declaration
[ABRInput("Key Data", UpdateLevel.Geometry)]
public KeyData keyData
  Field Value
| Type | Description | 
|---|---|
| KeyData | 
Examples
An example of creating a single glyph data impression and setting its colormap, color variable, and glyph could be:
SimpleGlyphDataImpression gi = new SimpleGlyphDataImpression();
gi.keyData = points;
gi.colorVariable = yAxis;
gi.colormap = ABREngine.Instance.VisAssets.GetDefault<ColormapVisAsset>() as ColormapVisAsset;
gi.glyph = glyph;
ABREngine.Instance.RegisterDataImpression(gi);
  
    |
    Improve this Doc
  
  
    View Source
  
  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
Declaration
[ABRInput("Outline Color", UpdateLevel.Geometry)]
public IColormapVisAsset outlineColor
  Field Value
| Type | Description | 
|---|---|
| IColormapVisAsset | 
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.Geometry)]
public BooleanPrimitive showOutline
  Field Value
| Type | Description | 
|---|---|
| BooleanPrimitive | 
upVariable
"Up" direction that glyphs should point in.
Declaration
[ABRInput("Up Variable", UpdateLevel.Geometry)]
public VectorDataVariable upVariable
  Field Value
| Type | Description | 
|---|---|
| VectorDataVariable | 
useRandomOrientation
Use random forward/up directions when no Vector variables are applied for forward/up.
Declaration
[ABRInput("Use Random Orientation", UpdateLevel.Geometry)]
public BooleanPrimitive useRandomOrientation
  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()