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.
- NURBSSurface
Item is a NURBSSurfaceKey.
- Cylinder
Item is a CylinderKey.
- Polygon
Item is a PolygonKey.
- CircularWedge
Item is a CircularWedgeKey.
- Ellipse
Item is an EllipseKey.
- 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.
- 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.
- 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.
- NURBSSurfaceGroup
Item is a collection of NURBSSurfaceKey objects.
- CylinderGroup
Item is a collection of CylinderKey objects.
- PolygonGroup
Item is a collection of PolygonKey objects.
- CircularWedgeGroup
Item is a collection of CircularWedgeKey objects.
- EllipseGroup
Item is a collection of EllipseKey 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.
- 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
- See
- See
- See
- 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.
- 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.
- 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.
- 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
- See
- See
- See
- 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
- See
- See
- See
- 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
- See
- 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)