SelectionControl

class HPS::SelectionControl : public HPS::Control

The SelectionControl class is a smart pointer that is tied to a database object. It is used to perform both window space selections (by point, by area, by polygon, by line) and object space selections (by shell, by volume, by ray).

Public Functions

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.

SelectionControl &operator=(SelectionControl &&in_that)

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

Parameters

in_that – An rvalue reference to a SelectionControl to take the impl from.

Returns

A reference to this SelectionControl.

SelectionControl &operator=(SelectionControl const &in_that)

Share the underlying smart-pointer of the SelectionControl source.

Parameters

in_that – The SelectionControl source of the assignment.

Returns

A reference to this SelectionControl.

size_t SelectByArea(Rectangle const &in_area, SelectionOptionsKit const &in_options, SelectionResults &out_results) const

Perform a window space area selection starting at the specified segment using the specified selection options.

Parameters
  • in_areaRectangle in window space at which to perform the selection.

  • in_optionsSelection options to use when performing the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByArea(Rectangle const &in_area, SelectionResults &out_results) const

Perform a window space area selection starting at the specified segment using selection options set in the segment tree.

Parameters
  • in_areaRectangle in window space at which to perform the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByLine(PointArray const &in_points, SelectionOptionsKit const &in_options, SelectionResults &out_results) const

Perform a window space line selection starting at the specified segment using the specified selection options. Items outside of the frustum can be selected through this method when using Analytic selection.

Parameters
  • in_pointsLine in window space at which to perform the selection.

  • in_optionsSelection options to use when performing the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByLine(PointArray const &in_points, SelectionResults &out_results) const

Perform a window space line selection starting at the specified segment using the selection options set in the segment tree. Items outside of the frustum can be selected through this method when using Analytic selection.

Parameters
  • in_pointsLine in window space at which to perform the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByLine(size_t in_point_count, Point const in_points[], SelectionOptionsKit const &in_options, SelectionResults &out_results) const

Perform a window space line selection starting at the specified segment using the specified selection options. Items outside of the frustum can be selected through this method when using Analytic selection.

Parameters
  • in_point_count – Size of the following array.

  • in_pointsLine in window space at which to perform the selection.

  • in_optionsSelection options to use when performing the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByLine(size_t in_point_count, Point const in_points[], SelectionResults &out_results) const

Perform a window space line selection with the specified line and start segment using the selection options set in the segment tree. Items outside of the frustum can be selected through this method when using Analytic selection.

Parameters
  • in_point_count – Size of the following array.

  • in_pointsLine in window space at which to perform the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByPoint(Point const &in_location, SelectionOptionsKit const &in_options, SelectionResults &out_results) const

Perform a window space point selection starting at the specified segment using the specified selection options.

Parameters
  • in_location – Point in window space at which to perform the selection.

  • in_optionsSelection options to use when performing the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByPoint(Point const &in_location, SelectionResults &out_results) const

Perform a window space point selection starting at the specified segment using selection options set in segment tree.

Parameters
  • in_location – Point in window space at which to perform the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByPolygon(PointArray const &in_points, SelectionOptionsKit const &in_options, SelectionResults &out_results) const

Perform a window space polygon selection starting at the specified segment using the specified selection options. Items outside of the frustum can be selected through this method when using Analytic selection.

Parameters
  • in_points – Polygon in window space at which to perform the selection.

  • in_optionsSelection options to use when performing the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByPolygon(PointArray const &in_points, SelectionResults &out_results) const

Perform a window space polygon selection starting at the specified segment using selection options set in the segment tree. Items outside of the frustum can be selected through this method when using Analytic selection.

Parameters
  • in_points – Polygon in window space at which to perform the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByPolygon(size_t in_point_count, Point const in_points[], SelectionOptionsKit const &in_options, SelectionResults &out_results) const

Perform a window space polygon selection starting at the specified segment using the specified selection options. Items outside of the frustum can be selected through this method when using Analytic selection.

Parameters
  • in_point_count – Size of the following array.

  • in_points – Polygon in window space for the polygon at which to perform the selection.

  • in_optionsSelection options to use when performing the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByPolygon(size_t in_point_count, Point const in_points[], SelectionResults &out_results) const

Perform a window space polygon selection starting at the specified segment using selection options set in the segment tree. Items outside of the frustum can be selected through this method when using Analytic selection.

Parameters
  • in_point_count – Size of the following array.

  • in_points – Polygon in window space at which to perform the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByRay(Point const &in_start_point, Vector const &in_direction, SelectionOptionsKit const &in_options, SelectionResults &out_results)

Performs an object space selection by ray starting at the specified segment using the specified selection options. This method can only select faceted geometry - not subentities.

Parameters
  • in_start_point – Start point of ray.

  • in_direction – Direction vector for ray.

  • in_optionsSelection options to use when performing the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByRay(Point const &in_start_point, Vector const &in_direction, SelectionResults &out_results)

Performs an object space selection by ray starting at the specified segment using the selection options set in the segment tree. This method can only select faceted geometry - not subentities.

Parameters
  • in_start_point – Start point of ray.

  • in_direction – Direction vector for ray.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByShell(ShellKey const &in_shell, SelectionOptionsKit const &in_options, SelectionResults &out_results)

Performs an object space selection by shell starting at the specified segment using the specified selection options. This method can only select faceted geometry.

Parameters
  • in_shellShell in the database to use to perform the selection.

  • in_optionsSelection options to use when performing the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByShell(ShellKey const &in_shell, SelectionResults &out_results)

Performs an object space selection by shell starting at the specified segment using the selection options set in the segment tree. This method can only select faceted geometry.

Parameters
  • in_shellShell in the database to use to perform the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByShell(ShellKit const &in_shell, SelectionOptionsKit const &in_options, SelectionResults &out_results)

Performs an object space selection by shell starting at the specified segment using the specified selection options. This method can only select faceted geometry.

Parameters
  • in_shellShell to use to perform the selection.

  • in_optionsSelection options to use when performing the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByShell(ShellKit const &in_shell, SelectionResults &out_results)

Performs an object space selection by shell starting at the specified segment using the selection options set in the segment tree. This method can only select faceted geometry.

Parameters
  • in_shellShell to use to perform the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByVolume(SimpleCuboid const &in_volume, SelectionOptionsKit const &in_options, SelectionResults &out_results)

Performs an object space selection by volume starting at the specified segment using the specified selection options. If the volume is invalid, i.e., min > max for any component, an exception will be thrown.

Parameters
  • in_volume – Volume to use when performing the selection.

  • in_optionsSelection options to use when performing the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

size_t SelectByVolume(SimpleCuboid const &in_volume, SelectionResults &out_results)

Performs an object space selection by volume starting at the specified segment using the selection options set in the segment tree. If the volume is invalid, i.e., min > max for any component, an exception will be thrown.

Parameters
  • in_volume – Volume to use when performing the selection.

  • out_results – Results of the selection.

Returns

Number of selected items.

SelectionControl(SelectionControl &&in_that)

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

Parameters

in_that – An rvalue reference to a SelectionControl to take the impl from.

SelectionControl(SelectionControl const &in_that)

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

Parameters

in_that – The source SelectionControl to copy.

explicit SelectionControl(WindowKey const &in_window)

This constructor creates a SelectionControl object which is tied to the specified window.

Parameters

in_window – The window which this SelectionControl should operate on.

~SelectionControl()

Public Static Attributes

static const HPS::Type staticType = HPS::Type::SelectionControl