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. More...
#include <sprk.h>
Public Member Functions | |
SceneTree () | |
The default constructor creates an uninitialized SceneTree object. More... | |
SceneTree (Canvas const &in_canvas) | |
This constructor creates a SceneTree object associated with a Canvas. More... | |
SceneTree (SceneTree const &in_that) | |
The copy constructor creates a SceneTree object that shares the underlying smart-pointer of the source SceneTree. More... | |
SceneTree (SceneTree &&in_that) | |
The move constructor creates a SceneTree by transferring the underlying object of the rvalue reference to this SceneTree. More... | |
virtual | ~SceneTree () |
virtual HPS::Type | ObjectType () const |
SceneTree & | operator= (SceneTree const &in_that) |
Share the underlying smart-pointer of the SceneTree source. More... | |
SceneTree & | operator= (SceneTree &&in_that) |
The move assignment operator transfers the underlying object of the rvalue reference to this SceneTree. More... | |
virtual void | Assign (SceneTree const &in_that) |
Share the underlying smart-pointer of the SceneTree source. More... | |
bool | Equals (SceneTree const &in_that) const |
Check if the source SceneTree points to the same underlying impl as this SceneTree. More... | |
bool | operator!= (SceneTree const &in_that) const |
Check if the source SceneTree points to a different impl than this SceneTree. More... | |
bool | operator== (SceneTree const &in_that) const |
Check if the source SceneTree points to the same underlying impl as this SceneTree. More... | |
void | SetHighlightOptions (HighlightOptionsKit const &in_options) |
Sets the highlight options that will be used by this SceneTree. More... | |
void | SetHighlightOptions (HighlightOptionsKitArray const &in_options) |
Sets the highlight options that will be used by this SceneTree. More... | |
void | SetHighlightOptions (size_t in_count, HighlightOptionsKit const in_options []) |
Sets the highlight options that will be used by this SceneTree. More... | |
void | AddHighlightOptions (HighlightOptionsKit const &in_options) |
Appends one highlight options that will be used by this SceneTree. More... | |
HighlightOptionsKitArray | GetHighlightOptions () const |
Gets the highlight options that will be used by this SceneTree. More... | |
void | SetGroupingLimit (size_t in_limit) |
Sets the grouping limit for this SceneTree. More... | |
size_t | GetGroupingLimit () const |
Gets the grouping limit for this SceneTree. More... | |
void | SetRoot (SceneTreeItemPtr const &in_root) |
Sets the root SceneTreeItem for this SceneTree. More... | |
SceneTreeItemPtr | GetRoot () const |
Gets the root SceneTreeItem for this SceneTree. More... | |
virtual void | Flush () |
Resets the root SceneTreeItem for this SceneTree. More... | |
void | SetHighlightEventHandling (bool in_state) |
Whether the SceneTree should handle highlighting events. More... | |
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. More... | |
void | ReExpand () |
Collapses the root SceneTreeItem for this SceneTree and then re-expands the tree. More... | |
virtual HPS::Type | Type () const |
This function returns the true type of the underlying object. More... | |
virtual bool | Empty () const |
Indicates whether this object has any values set on it. More... | |
virtual void | Reset () |
Resets this object to its initial, uninitialized state. More... | |
bool | HasType (HPS::Type in_mask) const |
This function indicates whether this Object has the given Type mask. More... | |
intptr_t | GetClassID () const |
Returns a unique identifier that is shared by all objects of the same class. More... | |
intptr_t | GetInstanceID () const |
Returns an identifier that can be used to identify which instance of a class an object is. More... | |
Static Public Member Functions | |
template<typename T > | |
static intptr_t | ClassID () |
Unique identifier for this class. More... | |
Static Public Attributes | |
static const HPS::Type | staticType = HPS::Type::SceneTree |
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.
|
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. |
ShaderDefinition | Item is a ShaderDefinition 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. |
ShaderDefinitionGroup | Item is a collection of ShaderDefinition 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. |
HPS::SceneTree::SceneTree | ( | ) |
The default constructor creates an uninitialized SceneTree object.
The Type() function will return Type::None.
HPS::SceneTree::SceneTree | ( | Canvas const & | in_canvas | ) |
HPS::SceneTree::SceneTree | ( | SceneTree const & | in_that | ) |
HPS::SceneTree::SceneTree | ( | SceneTree && | in_that | ) |
|
virtual |
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.
in_options | highlight options that will be used by this SceneTree. |
|
virtual |
|
inlinestaticinherited |
Unique identifier for this class.
Note: this method uses construction of static objects. If used in a constructor, it should be used in the body not the initializer list.
|
inlinevirtualinherited |
Indicates whether this object has any values set on it.
Reimplemented in HPS::STL::ImportResultsKit, HPS::STL::ImportOptionsKit, HPS::OBJ::ImportResultsKit, HPS::OBJ::ImportOptionsKit, HPS::Hardcopy::File::ExportOptionsKit, HPS::Stream::ExportOptionsKit, HPS::Stream::ImportResultsKit, HPS::Stream::ImportOptionsKit, HPS::PointCloud::ImportOptionsKit, HPS::PointCloud::ImportResultsKit, HPS::UpdateOptionsKit, HPS::HighlightSearchOptionsKit, HPS::HighlightOptionsKit, HPS::SelectionOptionsKit, HPS::SearchOptionsKit, HPS::CutGeometryGatheringOptionsKit, HPS::ShapeKit, HPS::ShaderKit, HPS::Shader::ImportOptionsKit, HPS::ImageKit, HPS::Image::ImportOptionsKit, HPS::Image::ExportOptionsKit, HPS::TextureOptionsKit, HPS::LinePatternKit, HPS::LinePatternParallelKit, HPS::LinePatternOptionsKit, HPS::GlyphKit, HPS::ApplicationWindowOptionsKit, HPS::OffScreenWindowOptionsKit, HPS::StandAloneWindowOptionsKit, HPS::GridKit, HPS::PolygonKit, HPS::MeshKit, HPS::ShellKit, HPS::ShellRelationResultsKit, HPS::ShellRelationOptionsKit, HPS::ShellOptimizationOptionsKit, HPS::TextKit, HPS::EllipticalArcKit, HPS::EllipseKit, HPS::TrimKit, HPS::NURBSSurfaceKit, HPS::NURBSCurveKit, HPS::SpotlightKit, HPS::InfiniteLineKit, HPS::CuttingSectionKit, HPS::CircularWedgeKit, HPS::CircularArcKit, HPS::CircleKit, HPS::SphereKit, HPS::CylinderKit, HPS::DistantLightKit, HPS::MarkerKit, HPS::LineKit, HPS::AttributeLockKit, HPS::FontInfoState, HPS::WindowInfoKit, HPS::DebuggingKit, HPS::SubwindowKit, HPS::ContourLineKit, HPS::VisualEffectsKit, HPS::TransformMaskKit, HPS::PostProcessEffectsKit, HPS::DrawingAttributeKit, HPS::HiddenLineAttributeKit, HPS::PerformanceKit, HPS::NURBSSurfaceAttributeKit, HPS::MaterialKit, HPS::MaterialMappingKit, HPS::MatrixKit, HPS::CurveAttributeKit, HPS::EdgeAttributeKit, HPS::LineAttributeKit, HPS::TextAttributeKit, HPS::CuttingSectionAttributeKit, HPS::CylinderAttributeKit, HPS::LightingAttributeKit, HPS::SphereAttributeKit, HPS::MarkerAttributeKit, HPS::CullingKit, HPS::ColorInterpolationKit, HPS::TransparencyKit, HPS::SelectabilityKit, HPS::CameraKit, HPS::VisibilityKit, HPS::BoundingKit, HPS::SegmentOptimizationOptionsKit, HPS::Publish::ExportOptionsKit, HPS::Publish::TextFieldKit, HPS::Publish::SignatureFieldKit, HPS::Publish::DropDownListKit, HPS::Exchange::TessellationOptionsKit, HPS::Publish::ListBoxKit, HPS::Exchange::ExportSTEPOptionsKit, HPS::Exchange::ExportParasolidOptionsKit, HPS::Publish::RadioButtonKit, HPS::Exchange::ExportIGESOptionsKit, HPS::Exchange::ExportXMLOptionsKit, HPS::Publish::CheckBoxKit, HPS::Exchange::ExportU3DOptionsKit, HPS::Exchange::ExportSTLOptionsKit, HPS::Publish::ButtonKit, HPS::Exchange::ExportPRCOptionsKit, HPS::Publish::LinkKit, HPS::Exchange::ExportJTOptionsKit, HPS::Publish::SlideTableKit, HPS::Exchange::ExportACISOptionsKit, HPS::Publish::TableKit, HPS::Exchange::Export3MFOptionsKit, HPS::Publish::ImageKit, HPS::Publish::TextKit, HPS::Exchange::ModelFileImportOptionsKit, HPS::Publish::ViewKit, HPS::Exchange::TranslationOptionsKit, HPS::Publish::ArtworkKit, HPS::Publish::AnnotationKit, HPS::ComponentPath, HPS::Exchange::ImportOptionsKit, HPS::Parasolid::ExportOptionsKit, HPS::Exchange::NURBSConversionOptionsKit, HPS::Parasolid::LineTessellationKit, HPS::Exchange::Configuration, HPS::Publish::PageKit, HPS::Parasolid::FacetTessellationKit, HPS::Publish::DocumentKit, HPS::Parasolid::ImportOptionsKit, HPS::DWG::ImportOptionsKit, HPS::OOC::ImportOptionsKit, HPS::Sketchup::ImportOptionsKit, and HPS::Sketchup::ImportResultsKit.
bool HPS::SceneTree::Equals | ( | SceneTree const & | in_that | ) | const |
|
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.
|
inherited |
Returns a unique identifier that is shared by all objects of the same class.
size_t HPS::SceneTree::GetGroupingLimit | ( | ) | const |
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.
HighlightOptionsKitArray HPS::SceneTree::GetHighlightOptions | ( | ) | const |
|
inherited |
Returns an identifier that can be used to identify which instance of a class an object is.
Different keys and controls will return the same value if they are backed by the same database resource.
SceneTreeItemPtr HPS::SceneTree::GetRoot | ( | ) | const |
Gets the root SceneTreeItem for this SceneTree.
|
inherited |
|
inlinevirtual |
bool HPS::SceneTree::operator!= | ( | SceneTree const & | in_that | ) | const |
bool HPS::SceneTree::operator== | ( | SceneTree const & | in_that | ) | const |
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.
|
virtualinherited |
Resets this object to its initial, uninitialized state.
Reimplemented in HPS::EventHandler, HPS::EventDispatcher, HPS::World, HPS::HighlightSearchResults, HPS::HighlightSearchResultsIterator, HPS::SelectionResults, HPS::SelectionResultsIterator, HPS::FontSearchResults, HPS::FontSearchResultsIterator, HPS::SearchResults, and HPS::SearchResultsIterator.
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.
in_limit | The grouping limit for this SceneTree. |
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.
in_state | Whether to handle highlight events. |
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.
in_options | The highlight options that will be used by this SceneTree. |
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.
in_options | An array of highlight options that will be used by this SceneTree. |
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.
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 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.
in_root | The root SceneTreeItem for this SceneTree. |
|
virtualinherited |
This function returns the true type of the underlying object.
This function is useful for finding the type of smart pointer objects that have been cast to more generic types.
Reimplemented in HPS::UpdateOptionsControl, HPS::HighlightControl, HPS::SelectionOptionsControl, HPS::OffScreenWindowOptionsControl, HPS::ApplicationWindowOptionsControl, HPS::StandAloneWindowOptionsControl, HPS::AttributeLockControl, HPS::WindowInfoControl, HPS::DebuggingControl, HPS::SubwindowControl, HPS::ContourLineControl, HPS::VisualEffectsControl, HPS::TransformMaskControl, HPS::PostProcessEffectsControl, HPS::DrawingAttributeControl, HPS::HiddenLineAttributeControl, HPS::PerformanceControl, HPS::NURBSSurfaceAttributeControl, HPS::ConditionControl, HPS::StyleControl, HPS::PortfolioControl, HPS::MaterialMappingControl, HPS::TextureMatrixControl, HPS::ModellingMatrixControl, HPS::CurveAttributeControl, HPS::EdgeAttributeControl, HPS::LineAttributeControl, HPS::TextAttributeControl, HPS::CuttingSectionAttributeControl, HPS::CylinderAttributeControl, HPS::LightingAttributeControl, HPS::SphereAttributeControl, HPS::MarkerAttributeControl, HPS::CullingControl, HPS::ColorInterpolationControl, HPS::TransparencyControl, HPS::SelectabilityControl, HPS::CameraControl, HPS::VisibilityControl, HPS::BoundingControl, HPS::Kit, and HPS::Control.
|
static |