SceneTree

class HPS.SceneTree : public HPS.Sprocket

The SceneTree class is a smart pointer which corresponds to a tree object in a GUI toolkit, e.g., a TreeView in WPF or a CTreeCtrl in MFC. This class can be derived from to facilitate tree creation in the various GUI toolkits. It is used to create a scene graph or segment browser.

Public Types

enum ItemType

Enumerates the types of items that can be contained in a SceneTree.

Values:

None

No type.

GenericMask

Mask for the grouping bits in the enum.

Segment

Item is a SegmentKey, or some object derived from a SegmentKey.

Include

Item is an IncludeKey.

ConditionalExpression

Item is a logical conditional expression.

StaticModelSegment

Item is a SegmentKey which corresponds to the shadow tree for the static model.

AttributeFilter

Item is an attribute filter on an include or style.

Geometry

Mask for geometry items.

CuttingSection

Item is a CuttingSectionKey.

Shell

Item is a ShellKey.

Mesh

Item is a MeshKey.

Grid

Item is a GridKey.

NURBSSurface

Item is a NURBSSurfaceKey.

Cylinder

Item is a CylinderKey.

Sphere

Item is a SphereKey.

Polygon

Item is a PolygonKey.

Circle

Item is a CircleKey.

CircularWedge

Item is a CircularWedgeKey.

Ellipse

Item is an EllipseKey.

Line

Item is a LineKey.

NURBSCurve

Item is a NURBSCurveKey.

CircularArc

Item is a CircularArcKey.

EllipticalArc

Item is an EllipticalArcKey.

InfiniteLine

Item is an InfiniteLineKey of type InfiniteLine.Type.Line.

InfiniteRay

Item is an InfiniteLineKey of type InfiniteLine.Type.Ray.

Marker

Item is a MarkerKey.

Text

Item is a TextKey.

Reference

Item is a ReferenceKey.

DistantLight

Item is a DistantLightKey.

Spotlight

Item is a SpotlightKey.

Attribute

Mask for attribute items.

Portfolio

Item is a PortfolioKey that has been pushed onto a SegmentKey.

SegmentStyle

Item is a StyleKey for a SegmentKey that was styled onto a SegmentKey.

NamedStyle

Item is a StyleKey for a name of a NamedStyleDefinition that was styled onto a SegmentKey.

MaterialPalette

Item is a MaterialPalette on a SegementKey.

Priority

Item is a Priority on a SegmentKey.

Material

Item is a MaterialMappingKit on a SegmentKey.

Camera

Item is a CameraKit on a SegmentKey.

ModellingMatrix

Item is a modelling matrix on a SegmentKey.

UserData

Item is user data on a SegmentKey.

TextureMatrix

Item is a texture matrix on a SegmentKey.

Culling

Item is a CullingKit on a SegmentKey.

CurveAttribute

Item is a CurveAttributeKit on a SegmentKey.

CylinderAttribute

Item is a CylinderAttributeKit on a SegmentKey.

EdgeAttribute

Item is an EdgeAttributeKit on a SegmentKey.

LightingAttribute

Item is a LightingAttributeKit on a SegmentKey.

LineAttribute

Item is a LineAttributeKit on a SegmentKey.

MarkerAttribute

Item is a MarkerAttributeKit on a SegmentKey.

SurfaceAttribute

Item is a SurfaceAttributeKit on a SegmentKey.

Selectability

Item is a SelectabilityKit on a SegmentKey.

SphereAttribute

Item is a SphereAttributeKit on a SegmentKey.

Subwindow

Item is a SubwindowKit on a SegmentKey.

TextAttribute

Item is a TextAttributeKit on a SegmentKey.

Transparency

Item is a TransparencyKit on a SegmentKey.

Visibility

Item is a VisibilityKit on a SegmentKey.

VisualEffects

Item is a VisualEffectsKit on a SegmentKey.

Performance

Item is a PerformanceKit on a SegmentKey.

DrawingAttribute

Item is a DrawingAttributeKit on a SegmentKey.

HiddenLineAttribute

Item is a HiddenLineAttributeKit on a SegmentKey.

ContourLine

Item is a ContourLineKit on a SegmentKey.

Condition

Item is a Condition on a SegmentKey.

Bounding

Item is a BoundingKit on a SegmentKey.

AttributeLock

Item is a AttributeLockKit on a SegmentKey.

TransformMask

Item is a TransformMaskKit on a SegmentKey.

ColorInterpolation

Item is a ColorInterpolationKit on a SegmentKey.

CuttingSectionAttribute

Item is a CuttingSectionAttributeKit on a SegmentKey.

PBRMaterial

Item is a MaterialMappingKit on a SegmentKey.

Debugging

Item is a DebuggingKit on a WindowKey.

PostProcessEffects

Item is a PostProcessEffectsKit on a WindowKey.

SelectionOptions

Item is a SelectionOptionsKit on a WindowKey.

UpdateOptions

Item is an UpdateOptionsKit on a WindowKey.

Definition

Mask for definition items.

NamedStyleDefinition

Item is a NamedStyleDefintion in a PortfolioKey.

TextureDefinition

Item is a TextureDefinition in a PortfolioKey.

LinePatternDefinition

Item is a LinePatternDefinition in a PortfolioKey.

GlyphDefinition

Item is a GlyphDefinition in a PortfolioKey.

CubeMapDefinition

Item is a CubeMapDefinition in a PortfolioKey.

ImageDefinition

Item is a ImageDefinition in a PortfolioKey.

MaterialPaletteDefinition

Item is a MaterialPaletteDefinition in a PortfolioKey.

LegacyShaderDefinition

Item is a LegacyShaderDefinition in a PortfolioKey.

ShapeDefinition

Item is a ShapeDefinition in a PortfolioKey.

Group

Mask for group items.

SegmentGroup

Item is a collection of SegmentKey objects.

GeometryGroup

Item is a collection of specific geometry type groups.

AttributeGroup

Item is a collection of attributes.

PortfolioGroup

Item is a collection of PortfolioKey objects.

StyleGroup

Item is a collection of StyleKey objects.

IncludeGroup

Item is a collection of IncludeKey objects.

DefinitionGroup

Mask for definition group items.

NamedStyleDefinitionGroup

Item is a collection of NamedStyleDefinition objects.

TextureDefinitionGroup

Item is a collection of TextureDefinition objects.

LinePatternDefinitionGroup

Item is a collection of LinePatternDefinition objects.

GlyphDefinitionGroup

Item is a collection of GlyphDefinition objects.

CubeMapDefinitionGroup

Item is a collection of CubeMapDefinition objects.

ImageDefinitionGroup

Item is a collection of ImageDefinition objects.

MaterialPaletteDefinitionGroup

Item is a collection of MaterialPaletteDefinition objects.

LegacyShaderDefinitionGroup

Item is a collection of LegacyShaderDefinition objects.

ShapeDefinitionGroup

Item is a collection of ShapeDefinition objects.

GeometryGroupMask

Mask for groups that contain geometry.

CuttingSectionGroup

Item is a collection of CuttingSectionKey objects.

ShellGroup

Item is a collection of ShellKey objects.

MeshGroup

Item is a collection of MeshKey objects.

GridGroup

Item is a collection of GridKey objects.

NURBSSurfaceGroup

Item is a collection of NURBSSurfaceKey objects.

CylinderGroup

Item is a collection of CylinderKey objects.

SphereGroup

Item is a collection of SphereKey objects.

PolygonGroup

Item is a collection of PolygonKey objects.

CircleGroup

Item is a collection of CircleKey objects.

CircularWedgeGroup

Item is a collection of CircularWedgeKey objects.

EllipseGroup

Item is a collection of EllipseKey objects.

LineGroup

Item is a collection of LineKey objects.

NURBSCurveGroup

Item is a collection of NURBSCurveKey objects.

CircularArcGroup

Item is a collection of CircularArcKey objects.

EllipticalArcGroup

Item is a collection of EllipticalArcKey objects.

InfiniteLineGroup

Item is a collection of InfiniteLineKey (of type InfiniteLine.Type.Line) objects.

InfiniteRayGroup

Item is a collection of InfiniteLineKey (of type InfiniteLine.Type.Ray) objects.

MarkerGroup

Item is a collection of MarkerKey objects.

TextGroup

Item is a collection of TextKey objects.

ReferenceGroup

Item is a collection of ReferenceKey objects.

DistantLightGroup

Item is a collection of DistantLightKey objects.

SpotlightGroup

Item is a collection of SpotlightKey objects.

Public Functions

void AddHighlightOptions (HPS.HighlightOptionsKit in_options)

Appends one highlight options that will be used by this SceneTree. These options are used to perform highlights of elements within the tree and to determine what items within the tree need to be marked as selected when highlights are performed by a HighlightOperator or HighlightAreaOperator.

See

SceneTreeItem.Highlight

See

SceneTreeItem.Unhighlight

See

HighlightOperator

See

HighlightAreaOperator

Param in_options

highlight options that will be used by this SceneTree.

void Assign (HPS.SceneTree in_that)

Share the underlying smart-pointer of the SceneTree source.

Param in_that

The SceneTree source of the assignment.

Return

A reference to this SceneTree.

override void Dispose ()
delegate void DtorDelegate (IntPtr cPtr)
bool Equals (HPS.SceneTree in_that)

Check if the source SceneTree points to the same underlying impl as this SceneTree.

Param in_that

The source SceneTree to compare to this SceneTree.

Return

true if the objects reference the same impl, false otherwise.

override bool Equals (Object obj)
void Flush ()

Resets the root SceneTreeItem for this SceneTree. This will release the root SceneTreeItem by this SceneTree and set the root to a null pointer. If this function is overridden, the overriding function should invoke this base function.

ulong GetGroupingLimit ()

Gets the grouping limit for this SceneTree.

Return

The grouping limit for this SceneTree.

override int GetHashCode ()
bool GetHighlightEventHandling ()

Whether this SceneTree is currently handling highlight events This include expanding the tree to the highlighted SceneTreeItem, and making the text for the highlighted SceneTreeItem bold.

Return

Whether this SceneTreeItem is currently handling highlight events.

HPS.HighlightOptionsKit[] GetHighlightOptions ()

Gets the highlight options that will be used by this SceneTree.

Return

The highlight options that will be used by this SceneTree.

HPS.SceneTreeItem GetRoot ()

Gets the root SceneTreeItem for this SceneTree.

Return

The root SceneTreeItem for this SceneTree.

override HPS.Type ObjectType ()

This function returns the type the object, as declared (if the object is derived, this does not give the true type of the derived object).

Return

The declared type of the object in question, which may differ from the true, underlying type.

void ReExpand ()

Collapses the root SceneTreeItem for this SceneTree and then re-expands the tree. It will try to preserve the original expansion state, however, if the underlying scene structure has changed, the resulting expansion may look different.

delegate void RemoveCacheItemDelegate (IntPtr cPtr)
SceneTree ()

The default constructor creates an uninitialized SceneTree object. The Type() function will return Type.None.

SceneTree (HPS.Canvas in_canvas)

This constructor creates a SceneTree object associated with a Canvas. This constructor should be used to create a new SceneTree object.

Param in_canvas

The Canvas to associate this SceneTree with.

SceneTree (HPS.SceneTree in_that)

The copy constructor creates a SceneTree object that shares the underlying smart-pointer of the source SceneTree.

Param in_that

The source SceneTree to copy.

void SetGroupingLimit (ulong in_limit)

Sets the grouping limit for this SceneTree. The grouping limit determines when to collect certain items into groups of a particular size. This limit is used to keep the number of children for a particular SceneTreeItem constrained to ensure reasonable performance. Presently this limit is used for segments and geometry SceneTreeItem objects.

Param in_limit

The grouping limit for this SceneTree.

void SetHighlightEventHandling (bool in_state)

Whether the SceneTree should handle highlighting events. This include expanding the tree to the highlighted SceneTreeItem, and making the text for the highlighted SceneTreeItem bold. By default the SceneTree will handle highlight events.

Param in_state

Whether to handle highlight events.

void SetHighlightOptions (HPS.HighlightOptionsKit in_options)

Sets the highlight options that will be used by this SceneTree. These options are used to perform highlights of elements within the tree and to determine what items within the tree need to be marked as selected when highlights are performed by a HighlightOperator or HighlightAreaOperator. Calling this function replaces any highlight options previously set on this object.

See

SceneTreeItem.Highlight

See

SceneTreeItem.Unhighlight

See

HighlightOperator

See

HighlightAreaOperator

Param in_options

The highlight options that will be used by this SceneTree.

void SetHighlightOptions (HPS.HighlightOptionsKit[] in_options)

Sets the highlight options that will be used by this SceneTree. These options are used to perform highlights of elements within the tree and to determine what items within the tree need to be marked as selected when highlights are performed by a HighlightOperator or HighlightAreaOperator. Calling this function replaces any highlight options previously set on this object. All elements of the array should be unique. In the case of multiple identical elements, only the first unique one will be added.

See

SceneTreeItem.Highlight

See

SceneTreeItem.Unhighlight

See

HighlightOperator

See

HighlightAreaOperator

Param in_options

An array of highlight options that will be used by this SceneTree.

void SetRoot (HPS.SceneTreeItem in_root)

Sets the root SceneTreeItem for this SceneTree. This object should be created on the heap and it should have been created with a SceneTreeItem constructor which took a Model, View, Canvas or Layout, otherwise an exception will be thrown. Additionally, if there was already an existing root for this SceneTree, the Flush function will be invoked prior to setting this as the new root, and Expand will be invoked on the new root.

See

Flush

See

SceneTreeItem.Expand

Param in_root

The root SceneTreeItem for this SceneTree.

Public Static Functions

bool operator!= (HPS.SceneTree a, HPS.SceneTree b)
bool operator== (HPS.SceneTree a, HPS.SceneTree b)