SceneTree
-
class
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 class
ItemType
: uint32_t Enumerates the types of items that can be contained in a SceneTree.
Values:
-
enumerator
None
No type.
-
enumerator
GenericMask
Mask for the grouping bits in the enum.
-
enumerator
Segment
Item is a SegmentKey, or some object derived from a SegmentKey.
-
enumerator
Include
Item is an IncludeKey.
-
enumerator
ConditionalExpression
Item is a logical conditional expression. This is the condition associated with a conditional include, reference or style.
-
enumerator
StaticModelSegment
Item is a SegmentKey which corresponds to the shadow tree for the static model.
-
enumerator
AttributeFilter
Item is an attribute filter on an include or style.
-
enumerator
Geometry
Mask for geometry items.
-
enumerator
CuttingSection
Item is a CuttingSectionKey.
-
enumerator
NURBSSurface
Item is a NURBSSurfaceKey.
-
enumerator
Cylinder
Item is a CylinderKey.
-
enumerator
Polygon
Item is a PolygonKey.
-
enumerator
CircularWedge
Item is a CircularWedgeKey.
-
enumerator
Ellipse
Item is an EllipseKey.
-
enumerator
NURBSCurve
Item is a NURBSCurveKey.
-
enumerator
CircularArc
Item is a CircularArcKey.
-
enumerator
EllipticalArc
Item is an EllipticalArcKey.
-
enumerator
InfiniteLine
Item is an InfiniteLineKey of type InfiniteLine::Type::Line.
-
enumerator
InfiniteRay
Item is an InfiniteLineKey of type InfiniteLine::Type::Ray.
-
enumerator
Reference
Item is a ReferenceKey.
-
enumerator
DistantLight
Item is a DistantLightKey.
-
enumerator
Spotlight
Item is a SpotlightKey.
-
enumerator
Attribute
Mask for attribute items.
-
enumerator
Portfolio
Item is a PortfolioKey that has been pushed onto a SegmentKey.
-
enumerator
SegmentStyle
Item is a StyleKey for a SegmentKey that was styled onto a SegmentKey.
-
enumerator
NamedStyle
Item is a StyleKey for a name of a NamedStyleDefinition that was styled onto a SegmentKey.
-
enumerator
MaterialPalette
Item is a MaterialPalette on a SegementKey.
-
enumerator
Priority
Item is a Priority on a SegmentKey.
-
enumerator
Material
Item is a MaterialMappingKit on a SegmentKey.
-
enumerator
Camera
Item is a CameraKit on a SegmentKey.
-
enumerator
ModellingMatrix
Item is a modelling matrix on a SegmentKey.
-
enumerator
UserData
Item is user data on a SegmentKey.
-
enumerator
TextureMatrix
Item is a texture matrix on a SegmentKey.
-
enumerator
Culling
Item is a CullingKit on a SegmentKey.
-
enumerator
CurveAttribute
Item is a CurveAttributeKit on a SegmentKey.
-
enumerator
CylinderAttribute
Item is a CylinderAttributeKit on a SegmentKey.
-
enumerator
EdgeAttribute
Item is an EdgeAttributeKit on a SegmentKey.
-
enumerator
LightingAttribute
Item is a LightingAttributeKit on a SegmentKey.
-
enumerator
LineAttribute
Item is a LineAttributeKit on a SegmentKey.
-
enumerator
MarkerAttribute
Item is a MarkerAttributeKit on a SegmentKey.
-
enumerator
SurfaceAttribute
Item is a SurfaceAttributeKit on a SegmentKey.
-
enumerator
Selectability
Item is a SelectabilityKit on a SegmentKey.
-
enumerator
SphereAttribute
Item is a SphereAttributeKit on a SegmentKey.
-
enumerator
Subwindow
Item is a SubwindowKit on a SegmentKey.
-
enumerator
TextAttribute
Item is a TextAttributeKit on a SegmentKey.
-
enumerator
Transparency
Item is a TransparencyKit on a SegmentKey.
-
enumerator
Visibility
Item is a VisibilityKit on a SegmentKey.
-
enumerator
VisualEffects
Item is a VisualEffectsKit on a SegmentKey.
-
enumerator
Performance
Item is a PerformanceKit on a SegmentKey.
-
enumerator
DrawingAttribute
Item is a DrawingAttributeKit on a SegmentKey.
-
enumerator
HiddenLineAttribute
Item is a HiddenLineAttributeKit on a SegmentKey.
-
enumerator
ContourLine
Item is a ContourLineKit on a SegmentKey.
-
enumerator
Condition
Item is a Condition on a SegmentKey.
-
enumerator
Bounding
Item is a BoundingKit on a SegmentKey.
-
enumerator
AttributeLock
Item is a AttributeLockKit on a SegmentKey.
-
enumerator
TransformMask
Item is a TransformMaskKit on a SegmentKey.
-
enumerator
ColorInterpolation
Item is a ColorInterpolationKit on a SegmentKey.
-
enumerator
CuttingSectionAttribute
Item is a CuttingSectionAttributeKit on a SegmentKey.
-
enumerator
PBRMaterial
Item is a MaterialMappingKit on a SegmentKey.
-
enumerator
Debugging
Item is a DebuggingKit on a WindowKey.
-
enumerator
PostProcessEffects
Item is a PostProcessEffectsKit on a WindowKey.
-
enumerator
SelectionOptions
Item is a SelectionOptionsKit on a WindowKey.
-
enumerator
UpdateOptions
Item is an UpdateOptionsKit on a WindowKey.
-
enumerator
Definition
Mask for definition items.
-
enumerator
NamedStyleDefinition
Item is a NamedStyleDefintion in a PortfolioKey.
-
enumerator
TextureDefinition
Item is a TextureDefinition in a PortfolioKey.
-
enumerator
LinePatternDefinition
Item is a LinePatternDefinition in a PortfolioKey.
-
enumerator
GlyphDefinition
Item is a GlyphDefinition in a PortfolioKey.
-
enumerator
CubeMapDefinition
Item is a CubeMapDefinition in a PortfolioKey.
-
enumerator
ImageDefinition
Item is a ImageDefinition in a PortfolioKey.
-
enumerator
MaterialPaletteDefinition
Item is a MaterialPaletteDefinition in a PortfolioKey.
-
enumerator
LegacyShaderDefinition
Item is a LegacyShaderDefinition in a PortfolioKey.
-
enumerator
ShapeDefinition
Item is a ShapeDefinition in a PortfolioKey.
-
enumerator
Group
Mask for group items.
-
enumerator
SegmentGroup
Item is a collection of SegmentKey objects.
-
enumerator
GeometryGroup
Item is a collection of specific geometry type groups.
-
enumerator
AttributeGroup
Item is a collection of attributes.
-
enumerator
PortfolioGroup
Item is a collection of PortfolioKey objects.
-
enumerator
IncludeGroup
Item is a collection of IncludeKey objects.
-
enumerator
DefinitionGroup
Mask for definition group items.
-
enumerator
NamedStyleDefinitionGroup
Item is a collection of NamedStyleDefinition objects.
-
enumerator
TextureDefinitionGroup
Item is a collection of TextureDefinition objects.
-
enumerator
LinePatternDefinitionGroup
Item is a collection of LinePatternDefinition objects.
-
enumerator
GlyphDefinitionGroup
Item is a collection of GlyphDefinition objects.
-
enumerator
CubeMapDefinitionGroup
Item is a collection of CubeMapDefinition objects.
-
enumerator
ImageDefinitionGroup
Item is a collection of ImageDefinition objects.
-
enumerator
MaterialPaletteDefinitionGroup
Item is a collection of MaterialPaletteDefinition objects.
-
enumerator
LegacyShaderDefinitionGroup
Item is a collection of LegacyShaderDefinition objects.
-
enumerator
ShapeDefinitionGroup
Item is a collection of ShapeDefinition objects.
-
enumerator
GeometryGroupMask
Mask for groups that contain geometry.
-
enumerator
CuttingSectionGroup
Item is a collection of CuttingSectionKey objects.
-
enumerator
NURBSSurfaceGroup
Item is a collection of NURBSSurfaceKey objects.
-
enumerator
CylinderGroup
Item is a collection of CylinderKey objects.
-
enumerator
PolygonGroup
Item is a collection of PolygonKey objects.
-
enumerator
CircularWedgeGroup
Item is a collection of CircularWedgeKey objects.
-
enumerator
EllipseGroup
Item is a collection of EllipseKey objects.
-
enumerator
NURBSCurveGroup
Item is a collection of NURBSCurveKey objects.
-
enumerator
CircularArcGroup
Item is a collection of CircularArcKey objects.
-
enumerator
EllipticalArcGroup
Item is a collection of EllipticalArcKey objects.
-
enumerator
InfiniteLineGroup
Item is a collection of InfiniteLineKey (of type InfiniteLine::Type::Line) objects.
-
enumerator
InfiniteRayGroup
Item is a collection of InfiniteLineKey (of type InfiniteLine::Type::Ray) objects.
-
enumerator
ReferenceGroup
Item is a collection of ReferenceKey objects.
-
enumerator
DistantLightGroup
Item is a collection of DistantLightKey objects.
-
enumerator
SpotlightGroup
Item is a collection of SpotlightKey objects.
-
enumerator
Public Functions
-
void
AddHighlightOptions
(HighlightOptionsKit const &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 also
See also
See also
See also
Parameters: in_options – highlight options that will be used by this SceneTree.
-
virtual void
Assign
(SceneTree const &in_that) Share the underlying smart-pointer of the SceneTree source.
Parameters: in_that – The SceneTree source of the assignment. Returns: A reference to this SceneTree.
-
bool
Equals
(SceneTree const &in_that) const Check if the source SceneTree points to the same underlying impl as this SceneTree.
Parameters: in_that – The source SceneTree to compare to this SceneTree. Returns: true if the objects reference the same impl, false otherwise.
-
virtual 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.
-
size_t
GetGroupingLimit
() const Gets the grouping limit for this SceneTree.
Returns: The grouping limit for this SceneTree.
-
bool
GetHighlightEventHandling
() const 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.
-
HighlightOptionsKitArray
GetHighlightOptions
() const Gets the highlight options that will be used by this SceneTree.
Returns: The highlight options that will be used by this SceneTree.
-
SceneTreeItemPtr
GetRoot
() const Gets the root SceneTreeItem for this SceneTree.
Returns: The root SceneTreeItem for this SceneTree.
-
inline virtual HPS::Type
ObjectType
() const 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.
-
bool
operator!=
(SceneTree const &in_that) const Check if the source SceneTree points to a different impl than this SceneTree.
Parameters: in_that – The source SceneTree to compare to this SceneTree. Returns: true if the objects reference different impls, false otherwise.
-
SceneTree &
operator=
(SceneTree &&in_that) The move assignment operator transfers the underlying object of the rvalue reference to this SceneTree.
Parameters: in_that – An rvalue reference to a SceneTree to take the underlying object from. Returns: A reference to this SceneTree.
-
SceneTree &
operator=
(SceneTree const &in_that) Share the underlying smart-pointer of the SceneTree source.
Parameters: in_that – The SceneTree source of the assignment. Returns: A reference to this SceneTree.
-
bool
operator==
(SceneTree const &in_that) const Check if the source SceneTree points to the same underlying impl as this SceneTree.
Parameters: in_that – The source SceneTree to compare to this SceneTree. Returns: true if the objects reference the same impl, false otherwise.
-
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.
-
SceneTree
() The default constructor creates an uninitialized SceneTree object. The Type() function will return Type::None.
-
SceneTree
(Canvas const &in_canvas) This constructor creates a SceneTree object associated with a Canvas. This constructor should be used to create a new SceneTree object.
Parameters: in_canvas – The Canvas to associate this SceneTree with.
-
SceneTree
(SceneTree &&in_that) The move constructor creates a SceneTree by transferring the underlying object of the rvalue reference to this SceneTree.
Parameters: in_that – An rvalue reference to a SceneTree to take the underlying object from.
-
SceneTree
(SceneTree const &in_that) The copy constructor creates a SceneTree object that shares the underlying smart-pointer of the source SceneTree.
Parameters: in_that – The source SceneTree to copy.
-
void
SetGroupingLimit
(size_t 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.
Parameters: 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.
Parameters: in_state – Whether to handle highlight events.
-
void
SetHighlightOptions
(HighlightOptionsKit const &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 also
See also
See also
See also
Parameters: in_options – The highlight options that will be used by this SceneTree.
-
void
SetHighlightOptions
(HighlightOptionsKitArray const &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 also
See also
See also
See also
Parameters: in_options – An array of highlight options that will be used by this SceneTree.
-
void
SetHighlightOptions
(size_t in_count, HighlightOptionsKit const 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 also
See also
See also
See also
Parameters: - in_count – the number of highlight options kits in the in_options array
- in_options – An array of highlight options that will be used by this SceneTree.
-
void
SetRoot
(SceneTreeItemPtr const &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 also
See also
Parameters: in_root – The root SceneTreeItem for this SceneTree.
-
virtual
~SceneTree
()
-
enum class