#include <sprk.h>

Public Member Functions | |
void | AddHighlightOptions (HighlightOptionsKit const &in_options) |
virtual void | Assign (SceneTree const &in_that) |
bool | Equals (SceneTree const &in_that) const |
virtual void | Flush () |
size_t | GetGroupingLimit () const |
bool | GetHighlightEventHandling () const |
HighlightOptionsKitArray | GetHighlightOptions () const |
SceneTreeItemPtr | GetRoot () const |
virtual HPS::Type | ObjectType () const |
bool | operator!= (SceneTree const &in_that) const |
SceneTree & | operator= (SceneTree const &in_that) |
SceneTree & | operator= (SceneTree &&in_that) |
bool | operator== (SceneTree const &in_that) const |
void | ReExpand () |
SceneTree () | |
SceneTree (Canvas const &in_canvas) | |
SceneTree (SceneTree const &in_that) | |
SceneTree (SceneTree &&in_that) | |
void | SetGroupingLimit (size_t in_limit) |
void | SetHighlightEventHandling (bool in_state) |
void | SetHighlightOptions (HighlightOptionsKit const &in_options) |
void | SetHighlightOptions (HighlightOptionsKitArray const &in_options) |
void | SetHighlightOptions (size_t in_count, HighlightOptionsKit const in_options []) |
void | SetRoot (SceneTreeItemPtr const &in_root) |
![]() | |
Sprocket (Sprocket &&in_that) | |
![]() | |
virtual bool | Empty () const |
intptr_t | GetClassID () const |
intptr_t | GetInstanceID () const |
bool | HasType (HPS::Type in_mask) const |
Object (Object const &that) | |
Object (Object &&in_that) | |
Object & | operator= (Object const &other_object) |
Object & | operator= (Object &&in_that) |
virtual void | Reset () |
virtual HPS::Type | Type () const |
Static Public Attributes | |
static const HPS::Type | staticType = HPS::Type::SceneTree |
![]() | |
static const HPS::Type | staticType = HPS::Type::None |
Additional Inherited Members | |
![]() | |
template<typename T > | |
static intptr_t | ClassID () |
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
|
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. |
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. |
Constructor & Destructor Documentation
◆ SceneTree() [1/4]
HPS::SceneTree::SceneTree | ( | ) |
◆ SceneTree() [2/4]
HPS::SceneTree::SceneTree | ( | Canvas const & | in_canvas | ) |
◆ SceneTree() [3/4]
HPS::SceneTree::SceneTree | ( | SceneTree const & | in_that | ) |
◆ SceneTree() [4/4]
HPS::SceneTree::SceneTree | ( | SceneTree && | in_that | ) |
Member Function Documentation
◆ AddHighlightOptions()
void HPS::SceneTree::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.
- Parameters
-
in_options highlight options that will be used by this SceneTree.
◆ Assign()
|
virtual |
◆ Equals()
bool HPS::SceneTree::Equals | ( | SceneTree const & | in_that | ) | const |
◆ Flush()
|
virtual |
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()
size_t HPS::SceneTree::GetGroupingLimit | ( | ) | const |
◆ GetHighlightEventHandling()
bool HPS::SceneTree::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.
◆ GetHighlightOptions()
HighlightOptionsKitArray HPS::SceneTree::GetHighlightOptions | ( | ) | const |
◆ GetRoot()
SceneTreeItemPtr HPS::SceneTree::GetRoot | ( | ) | const |
Gets the root SceneTreeItem for this SceneTree.
- Returns
- The root SceneTreeItem for this 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.
◆ operator!=()
bool HPS::SceneTree::operator!= | ( | SceneTree const & | in_that | ) | const |
◆ operator=() [1/2]
◆ operator=() [2/2]
◆ operator==()
bool HPS::SceneTree::operator== | ( | SceneTree const & | in_that | ) | const |
◆ ReExpand()
void HPS::SceneTree::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.
◆ SetGroupingLimit()
void HPS::SceneTree::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.
◆ SetHighlightEventHandling()
void HPS::SceneTree::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.
◆ SetHighlightOptions() [1/3]
void HPS::SceneTree::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.
- Parameters
-
in_options The highlight options that will be used by this SceneTree.
◆ SetHighlightOptions() [2/3]
void HPS::SceneTree::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.
- Parameters
-
in_options An array of highlight options that will be used by this SceneTree.
◆ SetHighlightOptions() [3/3]
void HPS::SceneTree::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.
- 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.
◆ SetRoot()
void HPS::SceneTree::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.
- Parameters
-
in_root The root SceneTreeItem for this SceneTree.
- See also
- Flush
- SceneTreeItem::Expand
The documentation for this class was generated from the following file:
- include/sprk.h