.. role:: ts-api-decorator

##########
PickConfig
##########

.. container:: ts-api-section

   .. js:class:: PickConfig

      Configuration for all pick functions in the View class.



.. container:: api-index-section

   .. rubric:: Constructors

   .. rst-class:: api-index-list-item api-kind-constructor api-parent-kind-class

   * :js:meth:`~PickConfig.constructor`



.. container:: api-index-section

   .. rubric:: Properties

   .. rst-class:: api-index-list-item api-kind-property api-parent-kind-class

   * :js:attr:`~PickConfig.bimMask`
   * :js:attr:`~PickConfig.enableProximityFaces`
   * :js:attr:`~PickConfig.forceEffectiveSceneVisibilityMask`
   * :js:attr:`~PickConfig.forceEffectiveVisibilityMask`
   * :js:attr:`~PickConfig.ignoreCappingGeometry`
   * :js:attr:`~PickConfig.ignoreOverlays`
   * :js:attr:`~PickConfig.maxWorldDistance`
   * :js:attr:`~PickConfig.oneEntityPerTypePerInstance`
   * :js:attr:`~PickConfig.rejectionBitsAll`
   * :js:attr:`~PickConfig.rejectionBitsAny`
   * :js:attr:`~PickConfig.requiredBitsAll`
   * :js:attr:`~PickConfig.requiredBitsAny`
   * :js:attr:`~PickConfig.respectDepthRange`
   * :js:attr:`~PickConfig.respectVisibility`
   * :js:attr:`~PickConfig.restrictLinesAndPointsToSelectedFaceInstances`
   * :js:attr:`~PickConfig.restrictToOverlays`
   * :js:attr:`~PickConfig.selectionMask`



.. container:: api-index-section

   .. rubric:: Accessors

   .. rst-class:: api-index-list-item api-kind-accessor api-parent-kind-class

   * :js:attr:`~PickConfig.allowFaces`
   * :js:attr:`~PickConfig.allowLines`
   * :js:attr:`~PickConfig.allowPoints`



.. container:: api-index-section

   .. rubric:: Methods

   .. rst-class:: api-index-list-item api-kind-method api-parent-kind-class

   * :js:meth:`~PickConfig.copy`





------------

Constructors
============

.. container:: ts-api-section

   .. js:function:: PickConfig.constructor( selectionMask)

      :param selectionMask: None
      :type selectionMask: SelectionMask


      :rtype: PickConfig



Properties
==========

.. container:: ts-api-section

   .. js:attribute:: PickConfig.bimMask

      :type: BimMask :ts-api-decorator:`optional`

      If set, selection will be restricted to geometry of the specified BIM types.



.. container:: ts-api-section

   .. js:attribute:: PickConfig.enableProximityFaces

      :type: boolean

      If true, faces can be selected by proximity (like lines and points).
      This option is only relevant for screen selection.



.. container:: ts-api-section

   .. js:attribute:: PickConfig.forceEffectiveSceneVisibilityMask

      :type: SelectionMask

      For each element type bit in this mask, if the bit is on, then scene visibility is treated
      as if that element type is visible during selection.



.. container:: ts-api-section

   .. js:attribute:: PickConfig.forceEffectiveVisibilityMask

      :type: SelectionMask

      For each element type bit in this mask, if the bit is on, then scene visibility and geometry visibility
      are treated as if that element type is visible during selection.



.. container:: ts-api-section

   .. js:attribute:: PickConfig.ignoreCappingGeometry

      :type: boolean

      Configures whether or not capping geometry is ignored when computing selection results.



.. container:: ts-api-section

   .. js:attribute:: PickConfig.ignoreOverlays

      :type: boolean

      If true, selection will not process geometry contained in overlays.
      This option is only relevant for screen selection.



.. container:: ts-api-section

   .. js:attribute:: PickConfig.maxWorldDistance

      :type: number :ts-api-decorator:`optional`

      If supplied, this is the maximum distance in world-space along
      the selection ray that can be used to select any geometry.

      If this value is negative, it is ignored.

      This parameter is incompatible with line and point selection.



.. container:: ts-api-section

   .. js:attribute:: PickConfig.oneEntityPerTypePerInstance

      :type: boolean

      If true, then only one entity per entity type can be returned per instance.

      For example, consider a cube made from a single mesh instance, where each face is
      a different face entity and backfaces culling is disabled. If this option is true,
      then at most one face from the cube can be selected. If false, then multiple faces
      from the cube can be selected. (This can occur when selecting from the front of the
      cube and then obtaining the face behind the front face in addition to the front face.)



.. container:: ts-api-section

   .. js:attribute:: PickConfig.rejectionBitsAll

      :type: number :ts-api-decorator:`optional`

      (8 bits) If rejectionBitsAll are supplied, a mesh cannot be selected if its selection bits have all the ones supplied.



.. container:: ts-api-section

   .. js:attribute:: PickConfig.rejectionBitsAny

      :type: number :ts-api-decorator:`optional`

      (8 bits) If rejectionBitsAny are supplied, a mesh cannot be selected if its selection bits have any of the ones supplied.



.. container:: ts-api-section

   .. js:attribute:: PickConfig.requiredBitsAll

      :type: number :ts-api-decorator:`optional`

      (8 bits) If requiredBitsAll are supplied, a mesh can only be selected if its selection bits have all the ones supplied.



.. container:: ts-api-section

   .. js:attribute:: PickConfig.requiredBitsAny

      :type: number :ts-api-decorator:`optional`

      (8 bits) If requiredBitsAny are supplied, a mesh can only be selected if its selection bits have any of the ones supplied.



.. container:: ts-api-section

   .. js:attribute:: PickConfig.respectDepthRange

      :type: boolean

      Configures whether or not depth range is respected when performing a selection.
      This option is only relevant for screen selection.



.. container:: ts-api-section

   .. js:attribute:: PickConfig.respectVisibility

      :type: boolean

      Configures whether or not visibility is respected when performing a selection.



.. container:: ts-api-section

   .. js:attribute:: PickConfig.restrictLinesAndPointsToSelectedFaceInstances

      :type: boolean

      Configures whether or not line and point selection is restricted to instances that get selected by face.
      This is only a heuristic and may be ignored.
      This option is only relevant for screen selection.



.. container:: ts-api-section

   .. js:attribute:: PickConfig.restrictToOverlays

      :type: boolean

      If true, selection is performed only within overlays.
      This option is only relevant for screen selection.



.. container:: ts-api-section

   .. js:attribute:: PickConfig.selectionMask

      :type: SelectionMask

      Configures what types of entities are considered for selection.



Accessors
=========

.. container:: ts-api-section

   .. js:function:: allowFaces()
      :noindex:



      :rtype: boolean

   .. js:function:: allowFaces( allow)
      :noindex:

      :param allow: None
      :type allow: boolean


      :rtype: void



.. container:: ts-api-section

   .. js:function:: allowLines()
      :noindex:



      :rtype: boolean

   .. js:function:: allowLines( allow)
      :noindex:

      :param allow: None
      :type allow: boolean


      :rtype: void



.. container:: ts-api-section

   .. js:function:: allowPoints()
      :noindex:



      :rtype: boolean

   .. js:function:: allowPoints( allow)
      :noindex:

      :param allow: None
      :type allow: boolean


      :rtype: void



Methods
=======

.. rst-class:: ts-api-section

copy
----

.. js:method:: PickConfig.copy()



   Returns a copy of this [[PickConfig]].


   :rtype: PickConfig

