Inheritance diagram for HPS.SceneTree:
HPS.Sprocket HPS.Object

Public Types

enum  ItemType : uint {
  ItemType.None = 0x00000000, ItemType.GenericMask = 0xFFFF0000, ItemType.Segment = 0x00000001, ItemType.Include = 0x00000002,
  ItemType.ConditionalExpression = 0x00000003, ItemType.StaticModelSegment = 0x00000004, ItemType.AttributeFilter = 0x00000005, ItemType.Geometry = 0x00010000,
  ItemType.CuttingSection = 0x00010001, ItemType.Shell = 0x00010002, ItemType.Mesh = 0x00010003, ItemType.Grid = 0x00010004,
  ItemType.NURBSSurface = 0x00010005, ItemType.Cylinder = 0x00010006, ItemType.Sphere = 0x00010007, ItemType.Polygon = 0x00010008,
  ItemType.Circle = 0x00010009, ItemType.CircularWedge = 0x0001000A, ItemType.Ellipse = 0x0001000B, ItemType.Line = 0x0001000C,
  ItemType.NURBSCurve = 0x0001000D, ItemType.CircularArc = 0x0001000E, ItemType.EllipticalArc = 0x0001000F, ItemType.InfiniteLine = 0x00010010,
  ItemType.InfiniteRay = 0x00010011, ItemType.Marker = 0x00010012, ItemType.Text = 0x00010013, ItemType.Reference = 0x00010014,
  ItemType.DistantLight = 0x00010015, ItemType.Spotlight = 0x00010016, ItemType.Attribute = 0x00020000, ItemType.Portfolio = 0x00020001,
  ItemType.SegmentStyle = 0x00020002, ItemType.NamedStyle = 0x00020003, ItemType.MaterialPalette = 0x00020004, ItemType.Priority = 0x00020005,
  ItemType.Material = 0x00020006, ItemType.Camera = 0x00020007, ItemType.ModellingMatrix = 0x00020008, ItemType.UserData = 0x00020009,
  ItemType.TextureMatrix = 0x0002000A, ItemType.Culling = 0x0002000B, ItemType.CurveAttribute = 0x0002000C, ItemType.CylinderAttribute = 0x0002000D,
  ItemType.EdgeAttribute = 0x0002000E, ItemType.LightingAttribute = 0x0002000F, ItemType.LineAttribute = 0x00020010, ItemType.MarkerAttribute = 0x00020011,
  ItemType.SurfaceAttribute = 0x00020012, ItemType.Selectability = 0x00020013, ItemType.SphereAttribute = 0x00020014, ItemType.Subwindow = 0x00020015,
  ItemType.TextAttribute = 0x00020016, ItemType.Transparency = 0x00020017, ItemType.Visibility = 0x00020018, ItemType.VisualEffects = 0x00020019,
  ItemType.Performance = 0x00020020, ItemType.DrawingAttribute = 0x00020021, ItemType.HiddenLineAttribute = 0x00020022, ItemType.ContourLine = 0x00020023,
  ItemType.Condition = 0x00020024, ItemType.Bounding = 0x00020025, ItemType.AttributeLock = 0x00020026, ItemType.TransformMask = 0x00020027,
  ItemType.ColorInterpolation = 0x00020028, ItemType.CuttingSectionAttribute = 0x00020029, ItemType.Debugging = 0x00020030, ItemType.PostProcessEffects = 0x00020031,
  ItemType.SelectionOptions = 0x00020032, ItemType.UpdateOptions = 0x00020033, ItemType.Definition = 0x00040000, ItemType.NamedStyleDefinition = 0x00040001,
  ItemType.TextureDefinition = 0x00040002, ItemType.LinePatternDefinition = 0x00040003, ItemType.GlyphDefinition = 0x00040004, ItemType.CubeMapDefinition = 0x00040005,
  ItemType.ImageDefinition = 0x00040006, ItemType.MaterialPaletteDefinition = 0x00040007 , ItemType.ShapeDefinition = 0x00040009, ItemType.Group = 0x00080000,
  ItemType.SegmentGroup = 0x00080100, ItemType.GeometryGroup = 0x00080200, ItemType.AttributeGroup = 0x00080300, ItemType.PortfolioGroup = 0x00080400,
  ItemType.StyleGroup = 0x00080500, ItemType.IncludeGroup = 0x00080600, ItemType.DefinitionGroup = 0x00180000, ItemType.NamedStyleDefinitionGroup = 0x00180700,
  ItemType.TextureDefinitionGroup = 0x00180800, ItemType.LinePatternDefinitionGroup = 0x00180900, ItemType.GlyphDefinitionGroup = 0x00180A00, ItemType.CubeMapDefinitionGroup = 0x00180B00,
  ItemType.ImageDefinitionGroup = 0x00180C00, ItemType.MaterialPaletteDefinitionGroup = 0x00180D00 , ItemType.ShapeDefinitionGroup = 0x00180F00, ItemType.GeometryGroupMask = 0x00280000,
  ItemType.CuttingSectionGroup = 0x00280001, ItemType.ShellGroup = 0x00280002, ItemType.MeshGroup = 0x00280003, ItemType.GridGroup = 0x00280004,
  ItemType.NURBSSurfaceGroup = 0x00280005, ItemType.CylinderGroup = 0x00280006, ItemType.SphereGroup = 0x00280007, ItemType.PolygonGroup = 0x00280008,
  ItemType.CircleGroup = 0x00280009, ItemType.CircularWedgeGroup = 0x0028000A, ItemType.EllipseGroup = 0x0028000B, ItemType.LineGroup = 0x0028000C,
  ItemType.NURBSCurveGroup = 0x0028000D, ItemType.CircularArcGroup = 0x0028000E, ItemType.EllipticalArcGroup = 0x0028000F, ItemType.InfiniteLineGroup = 0x00280010,
  ItemType.InfiniteRayGroup = 0x00280011, ItemType.MarkerGroup = 0x00280012, ItemType.TextGroup = 0x00280013, ItemType.ReferenceGroup = 0x00280014,
  ItemType.DistantLightGroup = 0x00280015, ItemType.SpotlightGroup = 0x00280016
}





 

Public Member Functions

void AddHighlightOptions (HPS.HighlightOptionsKit in_options)
 
virtual void Assign (HPS.SceneTree in_that)
 
override void Dispose ()
 
delegate void DtorDelegate (IntPtr cPtr)
 
override bool Equals (System.Object obj)
 
bool Equals (HPS.SceneTree in_that)
 
virtual void Flush ()
 
ulong GetGroupingLimit ()
 
override int GetHashCode ()
 
bool GetHighlightEventHandling ()
 
HPS.HighlightOptionsKit [] GetHighlightOptions ()
 
HPS.SceneTreeItem GetRoot ()
 
override HPS.Type ObjectType ()
 
void ReExpand ()
 
delegate void RemoveCacheItemDelegate (IntPtr cPtr)
 
 SceneTree ()
 
 SceneTree (HPS.Canvas in_canvas)
 
 SceneTree (HPS.SceneTree in_that)
 
void SetGroupingLimit (ulong in_limit)
 
void SetHighlightEventHandling (bool in_state)
 
void SetHighlightOptions (HPS.HighlightOptionsKit in_options)
 
void SetHighlightOptions (HPS.HighlightOptionsKit[] in_options)
 
void SetRoot (HPS.SceneTreeItem in_root)
 
- Public Member Functions inherited from HPS.Sprocket
override void Dispose ()
 
 Sprocket (HPS.Sprocket in_that)
 
- Public Member Functions inherited from HPS.Object
virtual bool Empty ()
 
IntPtr GetClassID ()
 
IntPtr GetInstanceID ()
 
bool HasType (HPS.Type in_mask)
 
 Object (HPS.Object that)
 
virtual void Reset ()
 
virtual HPS.Type Type ()
 

Static Public Member Functions

static bool operator!= (HPS.SceneTree a, HPS.SceneTree b)
 
static bool operator== (HPS.SceneTree a, HPS.SceneTree b)
 
- Static Public Member Functions inherited from HPS.Object
static IntPtr ClassID< T > ()
 

Protected Member Functions

override void deleteCptr ()
 
virtual bool DerivedClassHasMethod (string methodName, System.Type[] methodTypes)
 
override IntPtr GetNonDirectorClassID ()
 
virtual bool IsUserDerived ()
 
- Protected Member Functions inherited from HPS.Sprocket
override void deleteCptr ()
 

Protected Attributes

HandleRef sptr
 
- Protected Attributes inherited from HPS.Object
bool cMemOwn
 
HandleRef cptr
 

Static Protected Attributes

static Dictionary< IntPtr, SceneTreecachedObjects = new Dictionary<IntPtr, SceneTree>()
 
static Dictionary< IntPtr, WeakReference > cachedWeakRefs = new Dictionary<IntPtr, WeakReference>()
 
static ReaderWriterLockSlim mapLock = new ReaderWriterLockSlim(LockRecursionPolicy.SupportsRecursion)
 

Detailed Description

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.

Member Enumeration Documentation

◆ ItemType

enum HPS.SceneTree.ItemType : uint
strong

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

Enumerator
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. This is the condition associated with a conditional include, reference or style.

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.

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.

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.

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.

Constructor & Destructor Documentation

◆ SceneTree() [1/3]

HPS.SceneTree.SceneTree ( )
inline

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

◆ SceneTree() [2/3]

HPS.SceneTree.SceneTree ( HPS.Canvas  in_canvas)
inline

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

Parameters
in_canvasThe Canvas to associate this SceneTree with.

◆ SceneTree() [3/3]

HPS.SceneTree.SceneTree ( HPS.SceneTree  in_that)
inline

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

Parameters
in_thatThe source SceneTree to copy.

Member Function Documentation

◆ AddHighlightOptions()

void HPS.SceneTree.AddHighlightOptions ( HPS.HighlightOptionsKit  in_options)
inline

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.

Parameters
in_optionshighlight options that will be used by this SceneTree.
See also
SceneTreeItem.Highlight
SceneTreeItem.Unhighlight
HighlightOperator
HighlightAreaOperator

◆ Assign()

virtual void HPS.SceneTree.Assign ( HPS.SceneTree  in_that)
inlinevirtual

Share the underlying smart-pointer of the SceneTree source.

Parameters
in_thatThe SceneTree source of the assignment.
Returns
A reference to this SceneTree.

◆ Equals()

bool HPS.SceneTree.Equals ( HPS.SceneTree  in_that)
inline

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

Parameters
in_thatThe source SceneTree to compare to this SceneTree.
Returns
true if the objects reference the same impl, false otherwise.

◆ Flush()

virtual void HPS.SceneTree.Flush ( )
inlinevirtual

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.

◆ GetGroupingLimit()

ulong HPS.SceneTree.GetGroupingLimit ( )
inline

Gets the grouping limit for this SceneTree.

Returns
The grouping limit for this SceneTree.

◆ GetHighlightEventHandling()

bool HPS.SceneTree.GetHighlightEventHandling ( )
inline

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.

Returns
Whether this SceneTreeItem is currently handling highlight events.

◆ GetHighlightOptions()

HPS.HighlightOptionsKit [] HPS.SceneTree.GetHighlightOptions ( )
inline

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

Returns
The highlight options that will be used by this SceneTree.

◆ GetRoot()

HPS.SceneTreeItem HPS.SceneTree.GetRoot ( )
inline

Gets the root SceneTreeItem for this SceneTree.

Returns
The root SceneTreeItem for this SceneTree.

◆ ObjectType()

override HPS.Type HPS.SceneTree.ObjectType ( )
inlinevirtual

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).

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

Reimplemented from HPS.Object.

◆ ReExpand()

void HPS.SceneTree.ReExpand ( )
inline

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.

◆ SetGroupingLimit()

void HPS.SceneTree.SetGroupingLimit ( ulong  in_limit)
inline

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.

Parameters
in_limitThe grouping limit for this SceneTree.

◆ SetHighlightEventHandling()

void HPS.SceneTree.SetHighlightEventHandling ( bool  in_state)
inline

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.

Parameters
in_stateWhether to handle highlight events.

◆ SetHighlightOptions() [1/2]

void HPS.SceneTree.SetHighlightOptions ( HPS.HighlightOptionsKit  in_options)
inline

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.

Parameters
in_optionsThe highlight options that will be used by this SceneTree.
See also
SceneTreeItem.Highlight
SceneTreeItem.Unhighlight
HighlightOperator
HighlightAreaOperator

◆ SetHighlightOptions() [2/2]

void HPS.SceneTree.SetHighlightOptions ( HPS.HighlightOptionsKit []  in_options)
inline

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.

Parameters
in_optionsAn array of highlight options that will be used by this SceneTree.
See also
SceneTreeItem.Highlight
SceneTreeItem.Unhighlight
HighlightOperator
HighlightAreaOperator

◆ SetRoot()

void HPS.SceneTree.SetRoot ( HPS.SceneTreeItem  in_root)
inline

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.

Parameters
in_rootThe root SceneTreeItem for this SceneTree.
See also
Flush
SceneTreeItem.Expand

The documentation for this class was generated from the following file:
  • internals/hps_sprk/source/cs/HPS.SceneTree.cs