# SelectionOptionsKit

class `SelectionOptionsKit` : public HPS::Kit

  The SelectionOptionsKit class is a user space object. It contains options related to selection. Default values for the SelectionOptionsKit can be found in this table.

  Public Functions

  virtual bool `Empty`() const

    Indicates whether this SelectionOptionsKit has any values set on it.

    Returns: | true if no values are set on this SelectionOptionsKit, false otherwise.

  bool `Equals`(SelectionOptionsKit const &in_kit) const

    Check if the source SelectionOptionsKit is equivalent to this SelectionOptionsKit.

    Parameters: | in_kit – The source SelectionOptionsKit to compare to this SelectionOptionsKit.
    Returns: | true if the objects are equivalent, false otherwise.

  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!=`(SelectionOptionsKit const &in_kit) const

    Check if the source SelectionOptionsKit is not equivalent to this SelectionOptionsKit.

    Parameters: | in_kit – The source SelectionOptionsKit to compare to this SelectionOptionsKit.
    Returns: | true if the objects are not equivalent, false otherwise.

  SelectionOptionsKit &`operator=`(SelectionOptionsKit &&in_that)

    The move assignment operator transfers the underlying impl of the rvalue reference to this SelectionOptionsKit thereby avoiding a copy.

    Parameters: | in_that – An rvalue reference to a SelectionOptionsKit to take the impl from.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`operator=`(SelectionOptionsKit const &in_kit)

    Copies the source SelectionOptionsKit into this SelectionOptionsKit.

    Parameters: | in_kit – The source SelectionOptionsKit to copy.
    Returns: | A reference to this SelectionOptionsKit.

  bool `operator==`(SelectionOptionsKit const &in_kit) const

    Check if the source SelectionOptionsKit is equivalent to this SelectionOptionsKit.

    Parameters: | in_kit – The source SelectionOptionsKit to compare to this SelectionOptionsKit.
    Returns: | true if the objects are equivalent, false otherwise.

  `SelectionOptionsKit`()

    The default constructor creates an empty SelectionOptionsKit object.

  `SelectionOptionsKit`(SelectionOptionsKit &&in_that)

    The move constructor creates a SelectionOptionsKit by transferring the underlying impl of the rvalue reference to this SelectionOptionsKit thereby avoiding a copy and allocation.

    Parameters: | in_that – An rvalue reference to a SelectionOptionsKit to take the impl from.

  `SelectionOptionsKit`(SelectionOptionsKit const &in_kit)

    The copy constructor creates a new SelectionOptionsKit object that contains the same settings as the source SelectionOptionsKit.

    Parameters: | in_kit – The source SelectionOptionsKit to copy.

  void `Set`(SelectionOptionsKit const &in_kit)

    Copies the source SelectionOptionsKit into this SelectionOptionsKit.

    Parameters: | in_kit – The source SelectionOptionsKit to copy.

  SelectionOptionsKit &`SetAlgorithm`(Selection::Algorithm in_algorithm)

    Sets the type of selection algorithm to use. This setting has no effect on object space selections (i.e., select by shell, volume and ray).

    See also

    Default value

    Parameters: | in_algorithm – The type of selection algorithm to use.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetCondition`(char const *in_condition)

    Sets a condition that is applied during the selection. This allows you to use condition logic during a selection without actually activating those conditions in the scene.

    Parameters: | in_condition – The condition to set on this kit, replacing any existing conditions.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetConditions`(size_t in_count, UTF8 const in_conditions[])

    Sets conditions that are applied during the selection. This allows you to use condition logic during a selection without actually activating those conditions in the scene.

    Parameters: | in_conditions – The conditions to set on this kit, replacing any existing conditions.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetConditions`(UTF8Array const &in_conditions)

    Sets conditions that are applied during the selection. This allows you to use condition logic during a selection without actually activating those conditions in the scene.

    Parameters: | in_conditions – The conditions to set on this kit, replacing any existing conditions.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetDeferralExtentCullingRespected`(bool in_state)

    Sets whether to respect the deferral extent culling option during selection. If this value is set to false, the deferral extent culling option (see HPS::CullingKit) will be ignored.

    See also

    Default value

    Parameters: | in_state – Whether to respect the deferral extent culling option during selection.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetDistanceCullingRespected`(bool in_state)

    Sets whether to respect the distance culling option during selection. If this value is set to false, the distance culling option (see HPS::CullingKit) will be ignored.

    See also

    Default value Default value

    Parameters: | in_state – Whether to respect the distance culling option during selection.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetExtentCullingRespected`(bool in_state)

    Sets whether to respect the extent culling option during selection. If this value is set to false, the extent culling option (see HPS::CullingKit) will be ignored.

    See also

    Default value

    Parameters: | in_state – Whether to respect the extent culling option during selection.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetFaceCullingRespected`(Culling::Face in_state)

    Sets whether to respect the front or back face culling option during selection. If this value is set to Off, the culling option (see HPS::CullingKit) will be ignored.

    See also

    Default value Default value

    Parameters: | in_state – Select the face culling option during selection.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetFrustumCullingRespected`(bool in_state)

    Sets whether to respect the frustum culling option during selection. If this value is set to false, the frustum culling option (see HPS::CullingKit) will be ignored.

    See also

    Default value

    Parameters: | in_state – Whether to respect the frustum culling option during selection.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetGranularity`(Selection::Granularity in_granularity)

    Sets the selection granularity to use.

    See also

    Default value

    Parameters: | in_granularity – The selection granularity to use.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetInternalLimit`(size_t in_limit)

    Sets the internal selection limit. The internal selection limit is the maximum number of subentities for shells and meshes that will be returned if performing subentity selection.

    See also

    Internal limit in Programming Guide

    Parameters: | in_limit – The internal selection limit.
    Returns: | A reference to this SelectionOptionsKit

  SelectionOptionsKit &`SetLevel`(Selection::Level in_level)

    Sets the level at which selection will occur.

    See also

    Default value

    Parameters: | in_level – The level at which selection will occur.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetProximity`(float in_proximity)

    Sets the selection proximity in centimeters or object-relative-units (ORU), depending on the selection-routine being utilized. The selection proximity augments point-based or shell-based selections by also factoring in the area surrounding the selection-point or selection-shell.

    For HPS::SelectionControl::SelectByPoint, this specifies the radius in centimeters around the selection within which objects will be returned as selected. The value must be positive.

    For HPS::SelectionControl::SelectByShell, this specifies a distance in object-relative-units that determines whether a selection is performed. A positive proximity value will cause the selection algorithm to perform a selection when the distance between the two bodies is <= proximity, which means the bodies do not have to be touching in order for Visualize to perform a selection. If the proximity == 0, the bodies must be coincident or penetrating for a selection to occur. If proximity < 0, the shells must penetrate each other by at least that amount before a selection is performed.

    Selection proximity is not relevant for other selection types.

    When using HPS::SelectionControl::SelectByShell, false positives or negatives for selection may occur if the proximity and/or selection shells meet any of the following criteria:

    - The absolute value of a negative proximity is much larger than the actual intersection of the shells. An example would be a shell that represents a thin plate or a thinly-walled tube, and the specified proximity is larger than the thickness of the plate or tube.
    - Selection shells (“probes”) have vertices with complex intersections
    - Selection shells (“probes”) have concavities, especially multiple adjacent concavities.

    See also

    Default value

    See also

    Collision detection proximity

    Parameters: | in_proximity – The radius around the selection within which objects will be returned as selected.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetRelatedLimit`(size_t in_limit)

    Sets the related selection limit. The related selection limit is the maximum number of items that will be returned as selected when performing a selection. A related selection limit of 0 would result in only the first item getting returned. If the value is greater than 0, this indicates the number of additional items beyond the first to return. The order of these additional items will depend on whether sorting is enabled (see SetSorting()).

    See also

    Default value

    See also

    Related limit in Programming Guide

    See also

    SetSorting(Selection::Sorting)

    Parameters: | in_limit – Limit on the number of items that will be returned as selected when performing a selection.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetScope`(KeyPath const &in_start_path, bool in_scope_only = false)

    Sets the starting location at which selection testing will begin. If the selection is being performed from a window, there must be a path from this segment to that window.

    Parameters: | in_start_path – A path of segments and includes, leaf to root, from the segment to begin selection testing to the window key. in_scope_only – If true selections will only occur in the leaf segments of in_start_path, otherwise selections will occur in subsegments and includes of the leaf segments of in_start_path as well.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetScope`(SegmentKey const &in_start_segment, bool in_scope_only = false)

    Sets the starting location at which selection testing will begin. If the selection is being performed from a window, there must be a path from this segment to that window.

    Parameters: | in_start_segment – A segment, that must be a child of the window key, in which to begin selection testing. in_scope_only – If true selections will only occur in the provided scope segment, otherwise selections will occur in subsegments and includes of in_start_segment as well.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetSelectability`(SelectabilityKit const &in_selectability)

    Sets selectability options that are applied during the selection.

    Parameters: | in_selectability – A HPS::SelectabilityKit that encapsulates the selectability options to set on this kit.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetSorting`(bool in_sorting)

    Sets whether to sort selection results. This is only relevant if the related selection limit is greater than 0 (see SetRelatedLimit). Sorting works on an entity level. Subentity components like edges, vertices and faces are not sorted.

    Deprecated:

      This function exists for compatibility and SetSorting(Selection::Sorting) should be preferred in general usage.

    See also

    Default value

    Parameters: | in_sorting – Whether to sort selection results. A value of true is equivalent to passing Selection::Sorting::Default to SetSorting(Selection::Sorting), and a value of false is equivalent to passing Selection::Sorting::Off to SetSorting(Selection::Sorting).
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetSorting`(Selection::Sorting in_sorting)

    Sets how selection results will be sorted.

    This is only relevant if the related selection limit is greater than 0 (see SetRelatedLimit()). Sorting works on an entity level. Subentity components like edges, vertices, and faces are not sorted.

    This option has no effect on SelectByShell.

    For SelectByPoint, all values of the Selection::Sorting enum apply. Selection::Sorting::Default is an alias for Selection::Sorting::Proximity.

    For all other selection types, Selection::Sorting::Proximity does not apply. Selection::Sorting::Default is an alias for Selection::Sorting::ZSorting.

    See also

    Default value

    See also

    Related limit in Programming Guide

    See also

    SetRelatedLimit()

    Parameters: | in_sorting – The type of selection sorting to use.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetTreeContext`(TreeContext const &in_tree_context)

    Sets a TreeContext to be used for this selection. If many shell selections are going to be computed without modifying the segment tree, using the same tree context for all of them can be a significant optimization. If a TreeContext is not specified, a new one is computed each time.

    Parameters: | in_tree_context – The tree context to use for this relation test.
    Returns: | A reference to this object.

  SelectionOptionsKit &`SetVectorCullingRespected`(bool in_state)

    Sets whether to respect the vector culling option during selection. If this value is set to false, the vector culling option (see HPS::CullingKit) will be ignored.

    See also

    Default value Default value

    Parameters: | in_state – Whether to respect the vector culling option during selection.
    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`SetVolumeCullingRespected`(bool in_state)

    Sets whether to respect the volume culling option during selection. If this value is set to false, the volume culling option (see HPS::CullingKit) will be ignored.

    See also

    Default value Default value

    Parameters: | in_state – Whether to respect the volume culling option during selection.
    Returns: | A reference to this SelectionOptionsKit.

  void `Show`(SelectionOptionsKit &out_kit) const

    Copies this SelectionOptionsKit into the given SelectionOptionsKit.

    Parameters: | out_kit – The SelectionOptionsKit to populate with the contents of this SelectionOptionsKit.

  bool `ShowAlgorithm`(Selection::Algorithm &out_algorithm) const

    Shows the selection algorithm.

    Parameters: | out_algorithm – The selection algorithm.
    Returns: | true if the selection algorithm is valid, false otherwise.

  bool `ShowConditions`(UTF8Array &out_conditions) const

    Shows all conditions in this kit.

    Returns: | true if theere are conditions to show, false otherwise.

  bool `ShowDeferralExtentCullingRespected`(bool &out_state) const

    Shows the deferral extent culling respected state.

    Parameters: | out_state – The deferral extent culling respected state.
    Returns: | true if the deferral extent culling respected state is valid, false otherwise.

  bool `ShowDistanceCullingRespected`(bool &out_state) const

    Shows the distance culling respected state.

    Parameters: | out_state – The distance culling respected state.
    Returns: | true if the distance culling respected state is valid, false otherwise.

  bool `ShowExtentCullingRespected`(bool &out_state) const

    Shows the extent culling respected state.

    Parameters: | out_state – The extent culling respected state.
    Returns: | true if the extent culling respected state is valid, false otherwise.

  bool `ShowFaceCullingRespected`(HPS::Culling::Face &out_state) const

    Shows the face culling respected state.

    Parameters: | out_state – The face culling respected state.
    Returns: | true if the face culling respected state is valid, false otherwise.

  bool `ShowFrustumCullingRespected`(bool &out_state) const

    Shows the frustum culling respected state.

    Parameters: | out_state – The frustum culling respected state.
    Returns: | true if the frustum culling respected state is valid, false otherwise.

  bool `ShowGranularity`(Selection::Granularity &out_granularity) const

    Shows the selection granularity.

    Parameters: | out_granularity – The selection granularity.
    Returns: | true if the selection granularity is valid, false otherwise.

  bool `ShowInternalLimit`(size_t &out_limit) const

    Shows the internal selection limit.

    Parameters: | out_limit – The internal selection limit.
    Returns: | true if the internal selection limit is valid, false otherwise.

  bool `ShowLevel`(Selection::Level &out_level) const

    Shows the selection level.

    Parameters: | out_level – The selection level.
    Returns: | true if the level is valid, false otherwise.

  bool `ShowProximity`(float &out_proximity) const

    Shows the selection proximity.

    Parameters: | out_proximity – The selection proximity.
    Returns: | true if the proximity is valid, false otherwise.

  bool `ShowRelatedLimit`(size_t &out_limit) const

    Shows the related selection limit.

    Parameters: | out_limit – The related selection limit.
    Returns: | true if the related selection limit is valid, false otherwise.

  bool `ShowScope`(KeyPath &out_start_path, bool &out_scope_only) const

    Shows the starting location at which selection testing will begin.

    Parameters: | out_start_path – A segment or collection of segments and includes organized from leaf to root. out_scope_only – Whether selections will only occur in the leaf segments of out_start_path or if they can occur in subsegments and includes of the leaf segments of out_start_path.
    Returns: | true if a selection scope was set, false otherwise.

  bool `ShowSelectability`(HPS::SelectabilityKit &out_selectability) const

    Shows the selectability settings.

    Parameters: | out_selectability – The selectability settings
    Returns: | true if the selectability settings are valid, false otherwise.

  bool `ShowSorting`(Selection::Sorting &out_sorting) const

    Shows the type of selection sorting.

    Parameters: | out_sorting – The type of selection sorting to use.
    Returns: | true if the selection sorting type is valid, false otherwise.

  bool `ShowTreeContext`(TreeContext &out_tree_context) const

    Shows the tree context for this SelectionOptionsKit.

    Parameters: | out_tree_context – The tree context to use for this relation test.
    Returns: | true if a tree context was set, false otherwise.

  bool `ShowVectorCullingRespected`(bool &out_state) const

    Shows the vector culling respected state.

    Parameters: | out_state – The vector culling respected state.
    Returns: | true if the vector culling respected state is valid, false otherwise.

  bool `ShowVolumeCullingRespected`(bool &out_state) const

    Shows the volume culling respected state.

    Parameters: | out_state – The volume culling respected state.
    Returns: | true if the volume culling respected state is valid, false otherwise.

  SelectionOptionsKit &`UnsetAlgorithm`()

    Removes the selection algorithm.

    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`UnsetConditions`()

    Unsets all conditions in this kit.

  SelectionOptionsKit &`UnsetDeferralExtentCullingRespected`()

    Removes the deferral extent culling respected option.

    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`UnsetDistanceCullingRespected`()

    Removes the distance culling respected option.

    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`UnsetEverything`()

    Removes all settings from this SelectionOptionsKit.

    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`UnsetExtentCullingRespected`()

    Removes the extent culling respected option.

    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`UnsetFaceCullingRespected`()

    Removes the face culling respected option.

    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`UnsetFrustumCullingRespected`()

    Removes the frustum culling respected option.

    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`UnsetGranularity`()

    Removes the selection granularity.

    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`UnsetInternalLimit`()

    Removes the internal selection limit.

    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`UnsetLevel`()

    Removes the selection level.

    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`UnsetProximity`()

    Removes the selection proximity.

    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`UnsetRelatedLimit`()

    Removes the related selection limit.

    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`UnsetScope`()

    Removes the selection scope setting from this SelectionOptionsKit.

    Returns: | A reference to this object.

  SelectionOptionsKit &`UnsetSelectability`()

    Removes the selectability settings.

    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`UnsetSorting`()

    Removes the selection sorting setting.

    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`UnsetTreeContext`()

    Removes the tree context from this SelectionOptionsKit.

    Returns: | A reference to this object.

  SelectionOptionsKit &`UnsetVectorCullingRespected`()

    Removes the vector culling respected option.

    Returns: | A reference to this SelectionOptionsKit.

  SelectionOptionsKit &`UnsetVolumeCullingRespected`()

    Removes the volume culling respected option.

    Returns: | A reference to this SelectionOptionsKit.

  virtual `~SelectionOptionsKit`()

  Public Static Functions

  static SelectionOptionsKit `GetDefault`()

    Creates a SelectionOptionsKit which contains the default settings. The returned object will not necessarily have values set for every option, but it will have settings for those options where it is reasonable to have a default.

    Returns: | A SelectionOptionsKit with the default settings.

  Public Static Attributes

  static const HPS::Type `staticType` = HPS::Type::SelectionOptionsKit

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your multilingual generative AI assistant for documentation. Ask me anything about HOOPS Visualize Desktop in your own language, or choose a sample question below to start a conversation:

What is HOOPS Visualize Desktop?
What are the latest release notes for HOOPS Visualize Desktop?
How do I start evaluating HOOPS Visualize Desktop?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...