# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# Do not make changes to this file unless you know what you are doing--modify
# the SWIG interface file instead.

"""
Select3D module, see official documentation at
https://www.opencascade.com/doc/occt-7.4.0/refman/html/package_select3d.html
"""

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _Select3D
else:
    import _Select3D

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


class SwigPyIterator(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _Select3D.delete_SwigPyIterator

    def value(self) -> "PyObject *":
        return _Select3D.SwigPyIterator_value(self)

    def incr(self, n: "size_t"=1) -> "swig::SwigPyIterator *":
        return _Select3D.SwigPyIterator_incr(self, n)

    def decr(self, n: "size_t"=1) -> "swig::SwigPyIterator *":
        return _Select3D.SwigPyIterator_decr(self, n)

    def distance(self, x: "SwigPyIterator") -> "ptrdiff_t":
        return _Select3D.SwigPyIterator_distance(self, x)

    def equal(self, x: "SwigPyIterator") -> "bool":
        return _Select3D.SwigPyIterator_equal(self, x)

    def copy(self) -> "swig::SwigPyIterator *":
        return _Select3D.SwigPyIterator_copy(self)

    def next(self) -> "PyObject *":
        return _Select3D.SwigPyIterator_next(self)

    def __next__(self) -> "PyObject *":
        return _Select3D.SwigPyIterator___next__(self)

    def previous(self) -> "PyObject *":
        return _Select3D.SwigPyIterator_previous(self)

    def advance(self, n: "ptrdiff_t") -> "swig::SwigPyIterator *":
        return _Select3D.SwigPyIterator_advance(self, n)

    def __eq__(self, x: "SwigPyIterator") -> "bool":
        return _Select3D.SwigPyIterator___eq__(self, x)

    def __ne__(self, x: "SwigPyIterator") -> "bool":
        return _Select3D.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator &":
        return _Select3D.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator &":
        return _Select3D.SwigPyIterator___isub__(self, n)

    def __add__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator *":
        return _Select3D.SwigPyIterator___add__(self, n)

    def __sub__(self, *args) -> "ptrdiff_t":
        return _Select3D.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

# Register SwigPyIterator in _Select3D:
_Select3D.SwigPyIterator_swigregister(SwigPyIterator)


def _dumps_object(klass):
    """ Overwrite default string output for any wrapped object.
    By default, __repr__ method returns something like:
    <OCC.Core.TopoDS.TopoDS_Shape; proxy of <Swig Object of type 'TopoDS_Shape *' at 0x02BB0758> >
    This is too much verbose.
    We prefer :
    <class 'gp_Pnt'>
    or
    <class 'TopoDS_Shape'>
    """
    klass_name = str(klass.__class__).split(".")[3].split("'")[0]
    repr_string = "<class '" + klass_name + "'"
# for TopoDS_Shape, we also look for the base type
    if klass_name == "TopoDS_Shape":
        if klass.IsNull():
            repr_string += ": Null>"
            return repr_string
        st = klass.ShapeType()
        types = {OCC.Core.TopAbs.TopAbs_VERTEX: "Vertex",
                 OCC.Core.TopAbs.TopAbs_SOLID: "Solid",
                 OCC.Core.TopAbs.TopAbs_EDGE: "Edge",
                 OCC.Core.TopAbs.TopAbs_FACE: "Face",
                 OCC.Core.TopAbs.TopAbs_SHELL: "Shell",
                 OCC.Core.TopAbs.TopAbs_WIRE: "Wire",
                 OCC.Core.TopAbs.TopAbs_COMPOUND: "Compound",
                 OCC.Core.TopAbs.TopAbs_COMPSOLID: "Compsolid"}
        repr_string += "; Type:%s" % types[st]        
    elif hasattr(klass, "IsNull"):
        if klass.IsNull():
            repr_string += "; Null"
    repr_string += ">"
    return repr_string


def process_exception(error: "Standard_Failure", method_name: "std::string", class_name: "std::string") -> "void":
    return _Select3D.process_exception(error, method_name, class_name)

from six import with_metaclass
import warnings
from OCC.Wrapper.wrapper_utils import Proxy, deprecated

import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.BVH
import OCC.Core.Graphic3d
import OCC.Core.Quantity
import OCC.Core.TCollection
import OCC.Core.gp
import OCC.Core.TColStd
import OCC.Core.Aspect
import OCC.Core.Image
import OCC.Core.TopLoc
import OCC.Core.Bnd
import OCC.Core.TColgp
import OCC.Core.OSD
import OCC.Core.Media
import OCC.Core.SelectMgr
import OCC.Core.PrsMgr
import OCC.Core.Prs3d
import OCC.Core.Poly
import OCC.Core.TShort
import OCC.Core.GeomAbs
import OCC.Core.V3d
import OCC.Core.TopAbs
import OCC.Core.SelectBasics
import OCC.Core.Geom

from enum import IntEnum
from OCC.Core.Exception import *

Select3D_TOS_INTERIOR = _Select3D.Select3D_TOS_INTERIOR
Select3D_TOS_BOUNDARY = _Select3D.Select3D_TOS_BOUNDARY


class Select3D_TypeOfSensitivity(IntEnum):
	Select3D_TOS_INTERIOR = 0
	Select3D_TOS_BOUNDARY = 1
Select3D_TOS_INTERIOR = Select3D_TypeOfSensitivity.Select3D_TOS_INTERIOR
Select3D_TOS_BOUNDARY = Select3D_TypeOfSensitivity.Select3D_TOS_BOUNDARY


def Handle_Select3D_BVHIndexBuffer_Create() -> "opencascade::handle< Select3D_BVHIndexBuffer >":
    return _Select3D.Handle_Select3D_BVHIndexBuffer_Create()

def Handle_Select3D_BVHIndexBuffer_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Select3D_BVHIndexBuffer >":
    return _Select3D.Handle_Select3D_BVHIndexBuffer_DownCast(t)

def Handle_Select3D_BVHIndexBuffer_IsNull(t: "opencascade::handle< Select3D_BVHIndexBuffer > const &") -> "bool":
    return _Select3D.Handle_Select3D_BVHIndexBuffer_IsNull(t)

def Handle_Select3D_SensitiveBox_Create() -> "opencascade::handle< Select3D_SensitiveBox >":
    return _Select3D.Handle_Select3D_SensitiveBox_Create()

def Handle_Select3D_SensitiveBox_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Select3D_SensitiveBox >":
    return _Select3D.Handle_Select3D_SensitiveBox_DownCast(t)

def Handle_Select3D_SensitiveBox_IsNull(t: "opencascade::handle< Select3D_SensitiveBox > const &") -> "bool":
    return _Select3D.Handle_Select3D_SensitiveBox_IsNull(t)

def Handle_Select3D_SensitiveFace_Create() -> "opencascade::handle< Select3D_SensitiveFace >":
    return _Select3D.Handle_Select3D_SensitiveFace_Create()

def Handle_Select3D_SensitiveFace_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Select3D_SensitiveFace >":
    return _Select3D.Handle_Select3D_SensitiveFace_DownCast(t)

def Handle_Select3D_SensitiveFace_IsNull(t: "opencascade::handle< Select3D_SensitiveFace > const &") -> "bool":
    return _Select3D.Handle_Select3D_SensitiveFace_IsNull(t)

def Handle_Select3D_SensitivePoint_Create() -> "opencascade::handle< Select3D_SensitivePoint >":
    return _Select3D.Handle_Select3D_SensitivePoint_Create()

def Handle_Select3D_SensitivePoint_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Select3D_SensitivePoint >":
    return _Select3D.Handle_Select3D_SensitivePoint_DownCast(t)

def Handle_Select3D_SensitivePoint_IsNull(t: "opencascade::handle< Select3D_SensitivePoint > const &") -> "bool":
    return _Select3D.Handle_Select3D_SensitivePoint_IsNull(t)

def Handle_Select3D_SensitiveSegment_Create() -> "opencascade::handle< Select3D_SensitiveSegment >":
    return _Select3D.Handle_Select3D_SensitiveSegment_Create()

def Handle_Select3D_SensitiveSegment_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Select3D_SensitiveSegment >":
    return _Select3D.Handle_Select3D_SensitiveSegment_DownCast(t)

def Handle_Select3D_SensitiveSegment_IsNull(t: "opencascade::handle< Select3D_SensitiveSegment > const &") -> "bool":
    return _Select3D.Handle_Select3D_SensitiveSegment_IsNull(t)

def Handle_Select3D_SensitiveTriangle_Create() -> "opencascade::handle< Select3D_SensitiveTriangle >":
    return _Select3D.Handle_Select3D_SensitiveTriangle_Create()

def Handle_Select3D_SensitiveTriangle_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Select3D_SensitiveTriangle >":
    return _Select3D.Handle_Select3D_SensitiveTriangle_DownCast(t)

def Handle_Select3D_SensitiveTriangle_IsNull(t: "opencascade::handle< Select3D_SensitiveTriangle > const &") -> "bool":
    return _Select3D.Handle_Select3D_SensitiveTriangle_IsNull(t)

def Handle_Select3D_InteriorSensitivePointSet_Create() -> "opencascade::handle< Select3D_InteriorSensitivePointSet >":
    return _Select3D.Handle_Select3D_InteriorSensitivePointSet_Create()

def Handle_Select3D_InteriorSensitivePointSet_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Select3D_InteriorSensitivePointSet >":
    return _Select3D.Handle_Select3D_InteriorSensitivePointSet_DownCast(t)

def Handle_Select3D_InteriorSensitivePointSet_IsNull(t: "opencascade::handle< Select3D_InteriorSensitivePointSet > const &") -> "bool":
    return _Select3D.Handle_Select3D_InteriorSensitivePointSet_IsNull(t)

def Handle_Select3D_SensitiveGroup_Create() -> "opencascade::handle< Select3D_SensitiveGroup >":
    return _Select3D.Handle_Select3D_SensitiveGroup_Create()

def Handle_Select3D_SensitiveGroup_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Select3D_SensitiveGroup >":
    return _Select3D.Handle_Select3D_SensitiveGroup_DownCast(t)

def Handle_Select3D_SensitiveGroup_IsNull(t: "opencascade::handle< Select3D_SensitiveGroup > const &") -> "bool":
    return _Select3D.Handle_Select3D_SensitiveGroup_IsNull(t)

def Handle_Select3D_SensitivePoly_Create() -> "opencascade::handle< Select3D_SensitivePoly >":
    return _Select3D.Handle_Select3D_SensitivePoly_Create()

def Handle_Select3D_SensitivePoly_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Select3D_SensitivePoly >":
    return _Select3D.Handle_Select3D_SensitivePoly_DownCast(t)

def Handle_Select3D_SensitivePoly_IsNull(t: "opencascade::handle< Select3D_SensitivePoly > const &") -> "bool":
    return _Select3D.Handle_Select3D_SensitivePoly_IsNull(t)

def Handle_Select3D_SensitivePrimitiveArray_Create() -> "opencascade::handle< Select3D_SensitivePrimitiveArray >":
    return _Select3D.Handle_Select3D_SensitivePrimitiveArray_Create()

def Handle_Select3D_SensitivePrimitiveArray_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Select3D_SensitivePrimitiveArray >":
    return _Select3D.Handle_Select3D_SensitivePrimitiveArray_DownCast(t)

def Handle_Select3D_SensitivePrimitiveArray_IsNull(t: "opencascade::handle< Select3D_SensitivePrimitiveArray > const &") -> "bool":
    return _Select3D.Handle_Select3D_SensitivePrimitiveArray_IsNull(t)

def Handle_Select3D_SensitiveWire_Create() -> "opencascade::handle< Select3D_SensitiveWire >":
    return _Select3D.Handle_Select3D_SensitiveWire_Create()

def Handle_Select3D_SensitiveWire_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Select3D_SensitiveWire >":
    return _Select3D.Handle_Select3D_SensitiveWire_DownCast(t)

def Handle_Select3D_SensitiveWire_IsNull(t: "opencascade::handle< Select3D_SensitiveWire > const &") -> "bool":
    return _Select3D.Handle_Select3D_SensitiveWire_IsNull(t)

def Handle_Select3D_SensitiveCircle_Create() -> "opencascade::handle< Select3D_SensitiveCircle >":
    return _Select3D.Handle_Select3D_SensitiveCircle_Create()

def Handle_Select3D_SensitiveCircle_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Select3D_SensitiveCircle >":
    return _Select3D.Handle_Select3D_SensitiveCircle_DownCast(t)

def Handle_Select3D_SensitiveCircle_IsNull(t: "opencascade::handle< Select3D_SensitiveCircle > const &") -> "bool":
    return _Select3D.Handle_Select3D_SensitiveCircle_IsNull(t)

def Handle_Select3D_SensitiveCurve_Create() -> "opencascade::handle< Select3D_SensitiveCurve >":
    return _Select3D.Handle_Select3D_SensitiveCurve_Create()

def Handle_Select3D_SensitiveCurve_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Select3D_SensitiveCurve >":
    return _Select3D.Handle_Select3D_SensitiveCurve_DownCast(t)

def Handle_Select3D_SensitiveCurve_IsNull(t: "opencascade::handle< Select3D_SensitiveCurve > const &") -> "bool":
    return _Select3D.Handle_Select3D_SensitiveCurve_IsNull(t)
class Select3D_EntitySequence(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self) -> "NCollection_Sequence< opencascade::handle< Select3D_SensitiveEntity > >::iterator":
        return _Select3D.Select3D_EntitySequence_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< Select3D_SensitiveEntity > >::iterator":
        return _Select3D.Select3D_EntitySequence_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< Select3D_SensitiveEntity > >::const_iterator":
        return _Select3D.Select3D_EntitySequence_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< Select3D_SensitiveEntity > >::const_iterator":
        return _Select3D.Select3D_EntitySequence_cend(self)

    def __init__(self, *args):
        _Select3D.Select3D_EntitySequence_swiginit(self, _Select3D.new_Select3D_EntitySequence(*args))

    def Size(self) -> "Standard_Integer":
        return _Select3D.Select3D_EntitySequence_Size(self)

    def Length(self) -> "Standard_Integer":
        return _Select3D.Select3D_EntitySequence_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _Select3D.Select3D_EntitySequence_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _Select3D.Select3D_EntitySequence_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _Select3D.Select3D_EntitySequence_IsEmpty(self)

    def Reverse(self) -> "void":
        return _Select3D.Select3D_EntitySequence_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _Select3D.Select3D_EntitySequence_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "opencascade::handle< NCollection_BaseAllocator > &") -> "void":
        return _Select3D.Select3D_EntitySequence_delNode(theNode, theAl)

    def Clear(self, theAllocator: "opencascade::handle< NCollection_BaseAllocator > const &"=0) -> "void":
        return _Select3D.Select3D_EntitySequence_Clear(self, theAllocator)

    def Assign(self, theOther: "Select3D_EntitySequence") -> "NCollection_Sequence< opencascade::handle< Select3D_SensitiveEntity > > &":
        return _Select3D.Select3D_EntitySequence_Assign(self, theOther)

    def Set(self, theOther: "Select3D_EntitySequence") -> "NCollection_Sequence< opencascade::handle< Select3D_SensitiveEntity > > &":
        return _Select3D.Select3D_EntitySequence_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _Select3D.Select3D_EntitySequence_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _Select3D.Select3D_EntitySequence_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _Select3D.Select3D_EntitySequence_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _Select3D.Select3D_EntitySequence_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _Select3D.Select3D_EntitySequence_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "Select3D_EntitySequence") -> "void":
        return _Select3D.Select3D_EntitySequence_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< Select3D_SensitiveEntity > const &":
        return _Select3D.Select3D_EntitySequence_First(self)

    def ChangeFirst(self) -> "opencascade::handle< Select3D_SensitiveEntity > &":
        return _Select3D.Select3D_EntitySequence_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< Select3D_SensitiveEntity > const &":
        return _Select3D.Select3D_EntitySequence_Last(self)

    def ChangeLast(self) -> "opencascade::handle< Select3D_SensitiveEntity > &":
        return _Select3D.Select3D_EntitySequence_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< Select3D_SensitiveEntity > const &":
        return _Select3D.Select3D_EntitySequence_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< Select3D_SensitiveEntity > &":
        return _Select3D.Select3D_EntitySequence_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< Select3D_SensitiveEntity > &":
        return _Select3D.Select3D_EntitySequence___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< Select3D_SensitiveEntity > const &") -> "void":
        return _Select3D.Select3D_EntitySequence_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _Select3D.delete_Select3D_EntitySequence

    def __len__(self):
        return self.Size()


# Register Select3D_EntitySequence in _Select3D:
_Select3D.Select3D_EntitySequence_swigregister(Select3D_EntitySequence)

def Select3D_EntitySequence_delNode(theNode: "NCollection_SeqNode *", theAl: "opencascade::handle< NCollection_BaseAllocator > &") -> "void":
    return _Select3D.Select3D_EntitySequence_delNode(theNode, theAl)

class Select3D_EntitySequenceIter(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        _Select3D.Select3D_EntitySequenceIter_swiginit(self, _Select3D.new_Select3D_EntitySequenceIter(*args))

    def More(self) -> "Standard_Boolean":
        return _Select3D.Select3D_EntitySequenceIter_More(self)

    def Next(self) -> "void":
        return _Select3D.Select3D_EntitySequenceIter_Next(self)

    def Value(self) -> "Select3D_EntitySequence const &":
        return _Select3D.Select3D_EntitySequenceIter_Value(self)

    def ChangeValue(self) -> "Select3D_EntitySequence &":
        return _Select3D.Select3D_EntitySequenceIter_ChangeValue(self)
    __swig_destroy__ = _Select3D.delete_Select3D_EntitySequenceIter

# Register Select3D_EntitySequenceIter in _Select3D:
_Select3D.Select3D_EntitySequenceIter_swigregister(Select3D_EntitySequenceIter)

class Select3D_IndexedMapOfEntity(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def cbegin(self) -> "NCollection_IndexedMap< opencascade::handle< Select3D_SensitiveEntity > >::const_iterator":
        return _Select3D.Select3D_IndexedMapOfEntity_cbegin(self)

    def cend(self) -> "NCollection_IndexedMap< opencascade::handle< Select3D_SensitiveEntity > >::const_iterator":
        return _Select3D.Select3D_IndexedMapOfEntity_cend(self)

    def __init__(self, *args):
        _Select3D.Select3D_IndexedMapOfEntity_swiginit(self, _Select3D.new_Select3D_IndexedMapOfEntity(*args))

    def Exchange(self, theOther: "Select3D_IndexedMapOfEntity") -> "void":
        return _Select3D.Select3D_IndexedMapOfEntity_Exchange(self, theOther)

    def Assign(self, theOther: "Select3D_IndexedMapOfEntity") -> "NCollection_IndexedMap< opencascade::handle< Select3D_SensitiveEntity > > &":
        return _Select3D.Select3D_IndexedMapOfEntity_Assign(self, theOther)

    def Set(self, theOther: "Select3D_IndexedMapOfEntity") -> "NCollection_IndexedMap< opencascade::handle< Select3D_SensitiveEntity > > &":
        return _Select3D.Select3D_IndexedMapOfEntity_Set(self, theOther)

    def ReSize(self, theExtent: "Standard_Integer const") -> "void":
        return _Select3D.Select3D_IndexedMapOfEntity_ReSize(self, theExtent)

    def Add(self, theKey1: "opencascade::handle< Select3D_SensitiveEntity > const &") -> "Standard_Integer":
        return _Select3D.Select3D_IndexedMapOfEntity_Add(self, theKey1)

    def Contains(self, theKey1: "opencascade::handle< Select3D_SensitiveEntity > const &") -> "Standard_Boolean":
        return _Select3D.Select3D_IndexedMapOfEntity_Contains(self, theKey1)

    def Substitute(self, theIndex: "Standard_Integer const", theKey1: "opencascade::handle< Select3D_SensitiveEntity > const &") -> "void":
        return _Select3D.Select3D_IndexedMapOfEntity_Substitute(self, theIndex, theKey1)

    def Swap(self, theIndex1: "Standard_Integer const", theIndex2: "Standard_Integer const") -> "void":
        return _Select3D.Select3D_IndexedMapOfEntity_Swap(self, theIndex1, theIndex2)

    def RemoveLast(self) -> "void":
        return _Select3D.Select3D_IndexedMapOfEntity_RemoveLast(self)

    def RemoveFromIndex(self, theIndex: "Standard_Integer const") -> "void":
        return _Select3D.Select3D_IndexedMapOfEntity_RemoveFromIndex(self, theIndex)

    def RemoveKey(self, theKey1: "opencascade::handle< Select3D_SensitiveEntity > const &") -> "Standard_Boolean":
        return _Select3D.Select3D_IndexedMapOfEntity_RemoveKey(self, theKey1)

    def FindKey(self, theIndex: "Standard_Integer const") -> "opencascade::handle< Select3D_SensitiveEntity > const &":
        return _Select3D.Select3D_IndexedMapOfEntity_FindKey(self, theIndex)

    def __call__(self, theIndex: "Standard_Integer const") -> "opencascade::handle< Select3D_SensitiveEntity > const &":
        return _Select3D.Select3D_IndexedMapOfEntity___call__(self, theIndex)

    def FindIndex(self, theKey1: "opencascade::handle< Select3D_SensitiveEntity > const &") -> "Standard_Integer":
        return _Select3D.Select3D_IndexedMapOfEntity_FindIndex(self, theKey1)

    def Clear(self, *args) -> "void":
        return _Select3D.Select3D_IndexedMapOfEntity_Clear(self, *args)
    __swig_destroy__ = _Select3D.delete_Select3D_IndexedMapOfEntity

    def Size(self) -> "Standard_Integer":
        return _Select3D.Select3D_IndexedMapOfEntity_Size(self)

# Register Select3D_IndexedMapOfEntity in _Select3D:
_Select3D.Select3D_IndexedMapOfEntity_swigregister(Select3D_IndexedMapOfEntity)

class Select3D_Vec3(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def Length() -> "int":
        return _Select3D.Select3D_Vec3_Length()

    def __init__(self, *args):
        _Select3D.Select3D_Vec3_swiginit(self, _Select3D.new_Select3D_Vec3(*args))

    def SetValues(self, *args) -> "void":
        return _Select3D.Select3D_Vec3_SetValues(self, *args)

    def xy(self) -> "NCollection_Vec2< double > const":
        return _Select3D.Select3D_Vec3_xy(self)

    def yx(self) -> "NCollection_Vec2< double > const":
        return _Select3D.Select3D_Vec3_yx(self)

    def xz(self) -> "NCollection_Vec2< double > const":
        return _Select3D.Select3D_Vec3_xz(self)

    def zx(self) -> "NCollection_Vec2< double > const":
        return _Select3D.Select3D_Vec3_zx(self)

    def yz(self) -> "NCollection_Vec2< double > const":
        return _Select3D.Select3D_Vec3_yz(self)

    def zy(self) -> "NCollection_Vec2< double > const":
        return _Select3D.Select3D_Vec3_zy(self)

    def xyz(self) -> "NCollection_Vec3< double > const":
        return _Select3D.Select3D_Vec3_xyz(self)

    def xzy(self) -> "NCollection_Vec3< double > const":
        return _Select3D.Select3D_Vec3_xzy(self)

    def yxz(self) -> "NCollection_Vec3< double > const":
        return _Select3D.Select3D_Vec3_yxz(self)

    def yzx(self) -> "NCollection_Vec3< double > const":
        return _Select3D.Select3D_Vec3_yzx(self)

    def zyx(self) -> "NCollection_Vec3< double > const":
        return _Select3D.Select3D_Vec3_zyx(self)

    def zxy(self) -> "NCollection_Vec3< double > const":
        return _Select3D.Select3D_Vec3_zxy(self)

    def x(self, *args) -> "double &":
        return _Select3D.Select3D_Vec3_x(self, *args)

    def r(self, *args) -> "double &":
        return _Select3D.Select3D_Vec3_r(self, *args)

    def y(self, *args) -> "double &":
        return _Select3D.Select3D_Vec3_y(self, *args)

    def g(self, *args) -> "double &":
        return _Select3D.Select3D_Vec3_g(self, *args)

    def z(self, *args) -> "double &":
        return _Select3D.Select3D_Vec3_z(self, *args)

    def b(self, *args) -> "double &":
        return _Select3D.Select3D_Vec3_b(self, *args)

    def IsEqual(self, theOther: "Graphic3d_Vec3d") -> "bool":
        return _Select3D.Select3D_Vec3_IsEqual(self, theOther)

    def __eq__(self, *args) -> "bool":
        return _Select3D.Select3D_Vec3___eq__(self, *args)

    def __ne__(self, *args) -> "bool":
        return _Select3D.Select3D_Vec3___ne__(self, *args)

    def GetData(self) -> "double const *":
        return _Select3D.Select3D_Vec3_GetData(self)

    def ChangeData(self) -> "double *":
        return _Select3D.Select3D_Vec3_ChangeData(self)

    def __iadd__(self, theAdd: "Graphic3d_Vec3d") -> "NCollection_Vec3< Standard_Real > &":
        return _Select3D.Select3D_Vec3___iadd__(self, theAdd)

    def __neg__(self) -> "NCollection_Vec3< Standard_Real >":
        return _Select3D.Select3D_Vec3___neg__(self)

    def __isub__(self, theDec: "Graphic3d_Vec3d") -> "NCollection_Vec3< Standard_Real > &":
        return _Select3D.Select3D_Vec3___isub__(self, theDec)

    def Multiply(self, theFactor: "double const") -> "void":
        return _Select3D.Select3D_Vec3_Multiply(self, theFactor)

    def __imul__(self, *args) -> "NCollection_Vec3< Standard_Real > &":
        return _Select3D.Select3D_Vec3___imul__(self, *args)

    def __mul__(self, theFactor: "double const") -> "NCollection_Vec3< Standard_Real >":
        return _Select3D.Select3D_Vec3___mul__(self, theFactor)

    def Multiplied(self, theFactor: "double const") -> "NCollection_Vec3< Standard_Real >":
        return _Select3D.Select3D_Vec3_Multiplied(self, theFactor)

    def cwiseMin(self, theVec: "Graphic3d_Vec3d") -> "NCollection_Vec3< Standard_Real >":
        return _Select3D.Select3D_Vec3_cwiseMin(self, theVec)

    def cwiseMax(self, theVec: "Graphic3d_Vec3d") -> "NCollection_Vec3< Standard_Real >":
        return _Select3D.Select3D_Vec3_cwiseMax(self, theVec)

    def cwiseAbs(self) -> "NCollection_Vec3< Standard_Real >":
        return _Select3D.Select3D_Vec3_cwiseAbs(self)

    def maxComp(self) -> "double":
        return _Select3D.Select3D_Vec3_maxComp(self)

    def minComp(self) -> "double":
        return _Select3D.Select3D_Vec3_minComp(self)

    def __itruediv__(self, *args):
        return _Select3D.Select3D_Vec3___itruediv__(self, *args)
    __idiv__ = __itruediv__



    def __truediv__(self, *args):
        return _Select3D.Select3D_Vec3___truediv__(self, *args)
    __div__ = __truediv__



    def Dot(self, theOther: "Graphic3d_Vec3d") -> "double":
        return _Select3D.Select3D_Vec3_Dot(self, theOther)

    def Modulus(self) -> "double":
        return _Select3D.Select3D_Vec3_Modulus(self)

    def SquareModulus(self) -> "double":
        return _Select3D.Select3D_Vec3_SquareModulus(self)

    def Normalize(self) -> "void":
        return _Select3D.Select3D_Vec3_Normalize(self)

    def Normalized(self) -> "NCollection_Vec3< Standard_Real >":
        return _Select3D.Select3D_Vec3_Normalized(self)

    @staticmethod
    def Cross(theVec1: "Graphic3d_Vec3d", theVec2: "Graphic3d_Vec3d") -> "NCollection_Vec3< Standard_Real >":
        return _Select3D.Select3D_Vec3_Cross(theVec1, theVec2)

    @staticmethod
    def GetLERP(theFrom: "Graphic3d_Vec3d", theTo: "Graphic3d_Vec3d", theT: "double const") -> "NCollection_Vec3< Standard_Real >":
        return _Select3D.Select3D_Vec3_GetLERP(theFrom, theTo, theT)

    @staticmethod
    def DX() -> "NCollection_Vec3< Standard_Real >":
        return _Select3D.Select3D_Vec3_DX()

    @staticmethod
    def DY() -> "NCollection_Vec3< Standard_Real >":
        return _Select3D.Select3D_Vec3_DY()

    @staticmethod
    def DZ() -> "NCollection_Vec3< Standard_Real >":
        return _Select3D.Select3D_Vec3_DZ()

    def DumpJson(self, theOStream: "Standard_OStream &", theDepth: "Standard_Integer"=-1) -> "void":
        return _Select3D.Select3D_Vec3_DumpJson(self, theOStream, theDepth)
    __swig_destroy__ = _Select3D.delete_Select3D_Vec3

# Register Select3D_Vec3 in _Select3D:
_Select3D.Select3D_Vec3_swigregister(Select3D_Vec3)

def Select3D_Vec3_Length() -> "int":
    return _Select3D.Select3D_Vec3_Length()

def Select3D_Vec3_Cross(theVec1: "Graphic3d_Vec3d", theVec2: "Graphic3d_Vec3d") -> "NCollection_Vec3< Standard_Real >":
    return _Select3D.Select3D_Vec3_Cross(theVec1, theVec2)

def Select3D_Vec3_GetLERP(theFrom: "Graphic3d_Vec3d", theTo: "Graphic3d_Vec3d", theT: "double const") -> "NCollection_Vec3< Standard_Real >":
    return _Select3D.Select3D_Vec3_GetLERP(theFrom, theTo, theT)

def Select3D_Vec3_DX() -> "NCollection_Vec3< Standard_Real >":
    return _Select3D.Select3D_Vec3_DX()

def Select3D_Vec3_DY() -> "NCollection_Vec3< Standard_Real >":
    return _Select3D.Select3D_Vec3_DY()

def Select3D_Vec3_DZ() -> "NCollection_Vec3< Standard_Real >":
    return _Select3D.Select3D_Vec3_DZ()

class Select3D_VectorOfHPoly(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self) -> "NCollection_Vector< opencascade::handle< Select3D_SensitivePoly > >::iterator":
        return _Select3D.Select3D_VectorOfHPoly_begin(self)

    def end(self) -> "NCollection_Vector< opencascade::handle< Select3D_SensitivePoly > >::iterator":
        return _Select3D.Select3D_VectorOfHPoly_end(self)

    def cbegin(self) -> "NCollection_Vector< opencascade::handle< Select3D_SensitivePoly > >::const_iterator":
        return _Select3D.Select3D_VectorOfHPoly_cbegin(self)

    def cend(self) -> "NCollection_Vector< opencascade::handle< Select3D_SensitivePoly > >::const_iterator":
        return _Select3D.Select3D_VectorOfHPoly_cend(self)

    def __init__(self, *args):
        _Select3D.Select3D_VectorOfHPoly_swiginit(self, _Select3D.new_Select3D_VectorOfHPoly(*args))
    __swig_destroy__ = _Select3D.delete_Select3D_VectorOfHPoly

    def Length(self) -> "Standard_Integer":
        return _Select3D.Select3D_VectorOfHPoly_Length(self)

    def Size(self) -> "Standard_Integer":
        return _Select3D.Select3D_VectorOfHPoly_Size(self)

    def Lower(self) -> "Standard_Integer":
        return _Select3D.Select3D_VectorOfHPoly_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _Select3D.Select3D_VectorOfHPoly_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _Select3D.Select3D_VectorOfHPoly_IsEmpty(self)

    def Assign(self, *args) -> "void":
        return _Select3D.Select3D_VectorOfHPoly_Assign(self, *args)

    def Set(self, theOther: "Select3D_VectorOfHPoly") -> "NCollection_Vector< opencascade::handle< Select3D_SensitivePoly > > &":
        return _Select3D.Select3D_VectorOfHPoly_Set(self, theOther)

    def Append(self, theValue: "opencascade::handle< Select3D_SensitivePoly > const &") -> "opencascade::handle< Select3D_SensitivePoly > &":
        return _Select3D.Select3D_VectorOfHPoly_Append(self, theValue)

    def Appended(self) -> "opencascade::handle< Select3D_SensitivePoly > &":
        return _Select3D.Select3D_VectorOfHPoly_Appended(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< Select3D_SensitivePoly > const &":
        return _Select3D.Select3D_VectorOfHPoly_Value(self, theIndex)

    def First(self) -> "opencascade::handle< Select3D_SensitivePoly > const &":
        return _Select3D.Select3D_VectorOfHPoly_First(self)

    def ChangeFirst(self) -> "opencascade::handle< Select3D_SensitivePoly > &":
        return _Select3D.Select3D_VectorOfHPoly_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< Select3D_SensitivePoly > const &":
        return _Select3D.Select3D_VectorOfHPoly_Last(self)

    def ChangeLast(self) -> "opencascade::handle< Select3D_SensitivePoly > &":
        return _Select3D.Select3D_VectorOfHPoly_ChangeLast(self)

    def __call__(self, *args) -> "opencascade::handle< Select3D_SensitivePoly > &":
        return _Select3D.Select3D_VectorOfHPoly___call__(self, *args)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< Select3D_SensitivePoly > &":
        return _Select3D.Select3D_VectorOfHPoly_ChangeValue(self, theIndex)

    def SetValue(self, theIndex: "Standard_Integer const", theValue: "opencascade::handle< Select3D_SensitivePoly > const &") -> "opencascade::handle< Select3D_SensitivePoly > &":
        return _Select3D.Select3D_VectorOfHPoly_SetValue(self, theIndex, theValue)

# Register Select3D_VectorOfHPoly in _Select3D:
_Select3D.Select3D_VectorOfHPoly_swigregister(Select3D_VectorOfHPoly)

class Select3D_BVHIndexBuffer(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Empty constructor.

        Parameters
        ----------
        theAlloc: NCollection_BaseAllocator

        Returns
        -------
        None

        """
        _Select3D.Select3D_BVHIndexBuffer_swiginit(self, _Select3D.new_Select3D_BVHIndexBuffer(*args))

    def HasPatches(self, *args) -> "bool":
        r"""
        No available documentation.

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_BVHIndexBuffer_HasPatches(self, *args)

    def Index(self, *args) -> "Standard_Integer":
        r"""
        Access index at specified position.

        Parameters
        ----------
        theIndex: int

        Returns
        -------
        int

        """
        return _Select3D.Select3D_BVHIndexBuffer_Index(self, *args)

    def Init(self, *args) -> "bool":
        r"""
        Allocates new empty index array.

        Parameters
        ----------
        theNbElems: int
        theHasPatches: bool

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_BVHIndexBuffer_Init(self, *args)

    def PatchSize(self, *args) -> "Standard_Integer":
        r"""
        Access index at specified position.

        Parameters
        ----------
        theIndex: int

        Returns
        -------
        int

        """
        return _Select3D.Select3D_BVHIndexBuffer_PatchSize(self, *args)

    def SetIndex(self, *args) -> "void":
        r"""
        Change index at specified position.

        Parameters
        ----------
        theIndex: int
        theValue: int

        Returns
        -------
        None
        Change index at specified position.

        Parameters
        ----------
        theIndex: int
        theValue: int
        thePatchSize: int

        Returns
        -------
        None

        """
        return _Select3D.Select3D_BVHIndexBuffer_SetIndex(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_Select3D_BVHIndexBuffer_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_BVHIndexBuffer

# Register Select3D_BVHIndexBuffer in _Select3D:
_Select3D.Select3D_BVHIndexBuffer_swigregister(Select3D_BVHIndexBuffer)

class Select3D_Pnt(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    x = property(_Select3D.Select3D_Pnt_x_get, _Select3D.Select3D_Pnt_x_set)
    y = property(_Select3D.Select3D_Pnt_y_get, _Select3D.Select3D_Pnt_y_set)
    z = property(_Select3D.Select3D_Pnt_z_get, _Select3D.Select3D_Pnt_z_set)

    __repr__ = _dumps_object


    def __init__(self):
        _Select3D.Select3D_Pnt_swiginit(self, _Select3D.new_Select3D_Pnt())
    __swig_destroy__ = _Select3D.delete_Select3D_Pnt

# Register Select3D_Pnt in _Select3D:
_Select3D.Select3D_Pnt_swigregister(Select3D_Pnt)

class Select3D_PointData(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Parameters
        ----------
        theNbPoints: int

        Returns
        -------
        None

        """
        _Select3D.Select3D_PointData_swiginit(self, _Select3D.new_Select3D_PointData(*args))

    def Pnt(self, *args) -> "Select3D_Pnt const &":
        r"""
        No available documentation.

        Parameters
        ----------
        theIndex: int

        Returns
        -------
        Select3D_Pnt

        """
        return _Select3D.Select3D_PointData_Pnt(self, *args)

    def Pnt3d(self, *args) -> "gp_Pnt":
        r"""
        No available documentation.

        Parameters
        ----------
        theIndex: int

        Returns
        -------
        gp_Pnt

        """
        return _Select3D.Select3D_PointData_Pnt3d(self, *args)

    def SetPnt(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        theIndex: int
        theValue: Select3D_Pnt

        Returns
        -------
        None
        No available documentation.

        Parameters
        ----------
        theIndex: int
        theValue: gp_Pnt

        Returns
        -------
        None

        """
        return _Select3D.Select3D_PointData_SetPnt(self, *args)

    def Size(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

        """
        return _Select3D.Select3D_PointData_Size(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_PointData

# Register Select3D_PointData in _Select3D:
_Select3D.Select3D_PointData_swigregister(Select3D_PointData)

class Select3D_SensitiveBox(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Constructs a sensitive box object defined by the owner theownerid, and the box thebox.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        theBox: Bnd_Box

        Returns
        -------
        None
        Constructs a sensitive box object defined by the owner theownerid, and the coordinates thexmin, theymin, thezmin, thexmax, theymax, thezmax. thexmin, theymin and thezmin define the minimum point in the front lower left hand corner of the box, and thexmax, theymax and thezmax define the maximum point in the back upper right hand corner of the box.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        theXMin: float
        theYMin: float
        theZMin: float
        theXMax: float
        theYMax: float
        theZMax: float

        Returns
        -------
        None

        """
        _Select3D.Select3D_SensitiveBox_swiginit(self, _Select3D.new_Select3D_SensitiveBox(*args))

    def BoundingBox(self, *args) -> "Select3D_BndBox3d":
        r"""
        Returns coordinates of the box. if location transformation is set, it will be applied.

        Returns
        -------
        Select3D_BndBox3d

        """
        return _Select3D.Select3D_SensitiveBox_BoundingBox(self, *args)

    def CenterOfGeometry(self, *args) -> "gp_Pnt":
        r"""
        Returns center of the box. if location transformation is set, it will be applied.

        Returns
        -------
        gp_Pnt

        """
        return _Select3D.Select3D_SensitiveBox_CenterOfGeometry(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Select3D_SensitiveBox self, int depth=-1) -> std::string"""
        return _Select3D.Select3D_SensitiveBox_DumpJsonToString(self, depth)

    def GetConnected(self, *args) -> "opencascade::handle< Select3D_SensitiveEntity >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        """
        return _Select3D.Select3D_SensitiveBox_GetConnected(self, *args)

    def Matches(self, *args) -> "Standard_Boolean":
        r"""
        Checks whether the box overlaps current selecting volume.

        Parameters
        ----------
        theMgr: SelectBasics_SelectingVolumeManager
        thePickResult: SelectBasics_PickResult

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitiveBox_Matches(self, *args)

    def NbSubElements(self, *args) -> "Standard_Integer":
        r"""
        Returns the amount of sub-entities in sensitive.

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitiveBox_NbSubElements(self, *args)

    def ToBuildBVH(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if bvh tree is in invalidated state.

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitiveBox_ToBuildBVH(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_Select3D_SensitiveBox_DownCast(t)


    __repr__ = _dumps_object

    @methodnotwrapped
    def Box(self):
    	pass

    __swig_destroy__ = _Select3D.delete_Select3D_SensitiveBox

# Register Select3D_SensitiveBox in _Select3D:
_Select3D.Select3D_SensitiveBox_swigregister(Select3D_SensitiveBox)

class Select3D_SensitiveFace(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Constructs a sensitive face object defined by the owner theownerid, the array of points thepoints, and the sensitivity type thetype. the array of points is the outer polygon of the geometric face.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        thePoints: TColgp_Array1OfPnt
        theType: Select3D_TypeOfSensitivity

        Returns
        -------
        None
        Constructs a sensitive face object defined by the owner theownerid, the array of points thepoints, and the sensitivity type thetype. the array of points is the outer polygon of the geometric face.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        thePoints: TColgp_HArray1OfPnt
        theType: Select3D_TypeOfSensitivity

        Returns
        -------
        None

        """
        _Select3D.Select3D_SensitiveFace_swiginit(self, _Select3D.new_Select3D_SensitiveFace(*args))

    def BVH(self, *args) -> "void":
        r"""
        Builds bvh tree for the face.

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitiveFace_BVH(self, *args)

    def BoundingBox(self, *args) -> "Select3D_BndBox3d":
        r"""
        Returns bounding box of the face. if location transformation is set, it will be applied.

        Returns
        -------
        Select3D_BndBox3d

        """
        return _Select3D.Select3D_SensitiveFace_BoundingBox(self, *args)

    def CenterOfGeometry(self, *args) -> "gp_Pnt":
        r"""
        Returns center of the face. if location transformation is set, it will be applied.

        Returns
        -------
        gp_Pnt

        """
        return _Select3D.Select3D_SensitiveFace_CenterOfGeometry(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Select3D_SensitiveFace self, int depth=-1) -> std::string"""
        return _Select3D.Select3D_SensitiveFace_DumpJsonToString(self, depth)

    def GetConnected(self, *args) -> "opencascade::handle< Select3D_SensitiveEntity >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        """
        return _Select3D.Select3D_SensitiveFace_GetConnected(self, *args)

    def GetPoints(self, *args) -> "void":
        r"""
        Initializes the given array theharrayofpnt by 3d coordinates of vertices of the face.

        Parameters
        ----------
        theHArrayOfPnt: TColgp_HArray1OfPnt

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitiveFace_GetPoints(self, *args)

    def Matches(self, *args) -> "Standard_Boolean":
        r"""
        Checks whether the face overlaps current selecting volume.

        Parameters
        ----------
        theMgr: SelectBasics_SelectingVolumeManager
        thePickResult: SelectBasics_PickResult

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitiveFace_Matches(self, *args)

    def NbSubElements(self, *args) -> "Standard_Integer":
        r"""
        Returns the amount of sub-entities (points or planar convex polygons).

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitiveFace_NbSubElements(self, *args)

    def ToBuildBVH(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if bvh tree is in invalidated state.

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitiveFace_ToBuildBVH(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_Select3D_SensitiveFace_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_SensitiveFace

# Register Select3D_SensitiveFace in _Select3D:
_Select3D.Select3D_SensitiveFace_swigregister(Select3D_SensitiveFace)

class Select3D_SensitivePoint(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Constructs a sensitive point object defined by the owner ownerid and the point point.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        thePoint: gp_Pnt

        Returns
        -------
        None

        """
        _Select3D.Select3D_SensitivePoint_swiginit(self, _Select3D.new_Select3D_SensitivePoint(*args))

    def BoundingBox(self, *args) -> "Select3D_BndBox3d":
        r"""
        Returns bounding box of the point. if location transformation is set, it will be applied.

        Returns
        -------
        Select3D_BndBox3d

        """
        return _Select3D.Select3D_SensitivePoint_BoundingBox(self, *args)

    def CenterOfGeometry(self, *args) -> "gp_Pnt":
        r"""
        Returns center of point. if location transformation is set, it will be applied.

        Returns
        -------
        gp_Pnt

        """
        return _Select3D.Select3D_SensitivePoint_CenterOfGeometry(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Select3D_SensitivePoint self, int depth=-1) -> std::string"""
        return _Select3D.Select3D_SensitivePoint_DumpJsonToString(self, depth)

    def GetConnected(self, *args) -> "opencascade::handle< Select3D_SensitiveEntity >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        """
        return _Select3D.Select3D_SensitivePoint_GetConnected(self, *args)

    def Matches(self, *args) -> "Standard_Boolean":
        r"""
        Checks whether the point overlaps current selecting volume.

        Parameters
        ----------
        theMgr: SelectBasics_SelectingVolumeManager
        thePickResult: SelectBasics_PickResult

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitivePoint_Matches(self, *args)

    def NbSubElements(self, *args) -> "Standard_Integer":
        r"""
        Returns the amount of sub-entities in sensitive.

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitivePoint_NbSubElements(self, *args)

    def Point(self, *args) -> "gp_Pnt const":
        r"""
        Returns the point used at the time of construction.

        Returns
        -------
        gp_Pnt

        """
        return _Select3D.Select3D_SensitivePoint_Point(self, *args)

    def ToBuildBVH(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if bvh tree is in invalidated state.

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitivePoint_ToBuildBVH(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_Select3D_SensitivePoint_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_SensitivePoint

# Register Select3D_SensitivePoint in _Select3D:
_Select3D.Select3D_SensitivePoint_swigregister(Select3D_SensitivePoint)

class Select3D_SensitiveSegment(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Constructs the sensitive segment object defined by the owner theownerid, the points thefirstpnt, thelastpnt.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        theFirstPnt: gp_Pnt
        theLastPnt: gp_Pnt

        Returns
        -------
        None

        """
        _Select3D.Select3D_SensitiveSegment_swiginit(self, _Select3D.new_Select3D_SensitiveSegment(*args))

    def BoundingBox(self, *args) -> "Select3D_BndBox3d":
        r"""
        Returns bounding box of the segment. if location transformation is set, it will be applied.

        Returns
        -------
        Select3D_BndBox3d

        """
        return _Select3D.Select3D_SensitiveSegment_BoundingBox(self, *args)

    def CenterOfGeometry(self, *args) -> "gp_Pnt":
        r"""
        Returns center of the segment. if location transformation is set, it will be applied.

        Returns
        -------
        gp_Pnt

        """
        return _Select3D.Select3D_SensitiveSegment_CenterOfGeometry(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Select3D_SensitiveSegment self, int depth=-1) -> std::string"""
        return _Select3D.Select3D_SensitiveSegment_DumpJsonToString(self, depth)

    def EndPoint(self, *args) -> "void":
        r"""
        Gives the 3d end point of the segment.

        Returns
        -------
        gp_Pnt
        Changes the end point of the segment.

        Parameters
        ----------
        thePnt: gp_Pnt

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitiveSegment_EndPoint(self, *args)

    def GetConnected(self, *args) -> "opencascade::handle< Select3D_SensitiveEntity >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        """
        return _Select3D.Select3D_SensitiveSegment_GetConnected(self, *args)

    def Matches(self, *args) -> "Standard_Boolean":
        r"""
        Checks whether the segment overlaps current selecting volume.

        Parameters
        ----------
        theMgr: SelectBasics_SelectingVolumeManager
        thePickResult: SelectBasics_PickResult

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitiveSegment_Matches(self, *args)

    def NbSubElements(self, *args) -> "Standard_Integer":
        r"""
        Returns the amount of points.

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitiveSegment_NbSubElements(self, *args)

    def SetEndPoint(self, *args) -> "void":
        r"""
        Changes the end point of the segment.

        Parameters
        ----------
        thePnt: gp_Pnt

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitiveSegment_SetEndPoint(self, *args)

    def SetStartPoint(self, *args) -> "void":
        r"""
        Changes the start point of the segment;.

        Parameters
        ----------
        thePnt: gp_Pnt

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitiveSegment_SetStartPoint(self, *args)

    def StartPoint(self, *args) -> "void":
        r"""
        Gives the 3d start point of the segment.

        Returns
        -------
        gp_Pnt
        Changes the start point of the segment;.

        Parameters
        ----------
        thePnt: gp_Pnt

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitiveSegment_StartPoint(self, *args)

    def ToBuildBVH(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if bvh tree is in invalidated state.

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitiveSegment_ToBuildBVH(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_Select3D_SensitiveSegment_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_SensitiveSegment

# Register Select3D_SensitiveSegment in _Select3D:
_Select3D.Select3D_SensitiveSegment_swigregister(Select3D_SensitiveSegment)

class Select3D_SensitiveTriangle(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Constructs a sensitive triangle object defined by the owner theownerid, the points p1, p2, p3, and the type of sensitivity sensitivity.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        thePnt0: gp_Pnt
        thePnt1: gp_Pnt
        thePnt2: gp_Pnt
        theType: Select3D_TypeOfSensitivity,optional
        	default value is Select3D_TOS_INTERIOR

        Returns
        -------
        None

        """
        _Select3D.Select3D_SensitiveTriangle_swiginit(self, _Select3D.new_Select3D_SensitiveTriangle(*args))

    def BoundingBox(self, *args) -> "Select3D_BndBox3d":
        r"""
        Returns bounding box of the triangle. if location transformation is set, it will be applied.

        Returns
        -------
        Select3D_BndBox3d

        """
        return _Select3D.Select3D_SensitiveTriangle_BoundingBox(self, *args)

    def Center3D(self, *args) -> "gp_Pnt":
        r"""
        Returns the center point of the sensitive triangle created at construction time.

        Returns
        -------
        gp_Pnt

        """
        return _Select3D.Select3D_SensitiveTriangle_Center3D(self, *args)

    def CenterOfGeometry(self, *args) -> "gp_Pnt":
        r"""
        No available documentation.

        Returns
        -------
        gp_Pnt

        """
        return _Select3D.Select3D_SensitiveTriangle_CenterOfGeometry(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Select3D_SensitiveTriangle self, int depth=-1) -> std::string"""
        return _Select3D.Select3D_SensitiveTriangle_DumpJsonToString(self, depth)

    def GetConnected(self, *args) -> "opencascade::handle< Select3D_SensitiveEntity >":
        r"""
        Returns the copy of this.

        Returns
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        """
        return _Select3D.Select3D_SensitiveTriangle_GetConnected(self, *args)

    def Matches(self, *args) -> "Standard_Boolean":
        r"""
        Checks whether the triangle overlaps current selecting volume.

        Parameters
        ----------
        theMgr: SelectBasics_SelectingVolumeManager
        thePickResult: SelectBasics_PickResult

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitiveTriangle_Matches(self, *args)

    def NbSubElements(self, *args) -> "Standard_Integer":
        r"""
        Returns the amount of points.

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitiveTriangle_NbSubElements(self, *args)

    def Points3D(self, *args) -> "void":
        r"""
        Returns the 3d points p1, p2, p3 used at the time of construction.

        Parameters
        ----------
        thePnt0: gp_Pnt
        thePnt1: gp_Pnt
        thePnt2: gp_Pnt

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitiveTriangle_Points3D(self, *args)

    def ToBuildBVH(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if bvh tree is in invalidated state.

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitiveTriangle_ToBuildBVH(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_Select3D_SensitiveTriangle_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_SensitiveTriangle

# Register Select3D_SensitiveTriangle in _Select3D:
_Select3D.Select3D_SensitiveTriangle_swigregister(Select3D_SensitiveTriangle)

class Select3D_InteriorSensitivePointSet(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Splits the given point set thepoints onto planar convex polygons.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        thePoints: TColgp_Array1OfPnt

        Returns
        -------
        None

        """
        _Select3D.Select3D_InteriorSensitivePointSet_swiginit(self, _Select3D.new_Select3D_InteriorSensitivePointSet(*args))

    def BoundingBox(self, *args) -> "Select3D_BndBox3d":
        r"""
        Returns bounding box of the point set. if location transformation is set, it will be applied.

        Returns
        -------
        Select3D_BndBox3d

        """
        return _Select3D.Select3D_InteriorSensitivePointSet_BoundingBox(self, *args)

    def Box(self, *args) -> "Select3D_BndBox3d":
        r"""
        Returns bounding box of planar convex polygon with index theidx.

        Parameters
        ----------
        theIdx: int

        Returns
        -------
        Select3D_BndBox3d

        """
        return _Select3D.Select3D_InteriorSensitivePointSet_Box(self, *args)

    def Center(self, *args) -> "Standard_Real":
        r"""
        Returns geometry center of planar convex polygon with index theidx in the vector along the given axis theaxis.

        Parameters
        ----------
        theIdx: int
        theAxis: int

        Returns
        -------
        float

        """
        return _Select3D.Select3D_InteriorSensitivePointSet_Center(self, *args)

    def CenterOfGeometry(self, *args) -> "gp_Pnt":
        r"""
        Returns center of the point set. if location transformation is set, it will be applied.

        Returns
        -------
        gp_Pnt

        """
        return _Select3D.Select3D_InteriorSensitivePointSet_CenterOfGeometry(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Select3D_InteriorSensitivePointSet self, int depth=-1) -> std::string"""
        return _Select3D.Select3D_InteriorSensitivePointSet_DumpJsonToString(self, depth)

    def GetPoints(self, *args) -> "void":
        r"""
        Initializes the given array theharrayofpnt by 3d coordinates of vertices of the whole point set.

        Parameters
        ----------
        theHArrayOfPnt: TColgp_HArray1OfPnt

        Returns
        -------
        None

        """
        return _Select3D.Select3D_InteriorSensitivePointSet_GetPoints(self, *args)

    def NbSubElements(self, *args) -> "Standard_Integer":
        r"""
        Returns the amount of points in set.

        Returns
        -------
        int

        """
        return _Select3D.Select3D_InteriorSensitivePointSet_NbSubElements(self, *args)

    def Size(self, *args) -> "Standard_Integer":
        r"""
        Returns the length of vector of planar convex polygons.

        Returns
        -------
        int

        """
        return _Select3D.Select3D_InteriorSensitivePointSet_Size(self, *args)

    def Swap(self, *args) -> "void":
        r"""
        Swaps items with indexes theidx1 and theidx2 in the vector.

        Parameters
        ----------
        theIdx1: int
        theIdx2: int

        Returns
        -------
        None

        """
        return _Select3D.Select3D_InteriorSensitivePointSet_Swap(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_Select3D_InteriorSensitivePointSet_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_InteriorSensitivePointSet

# Register Select3D_InteriorSensitivePointSet in _Select3D:
_Select3D.Select3D_InteriorSensitivePointSet_swigregister(Select3D_InteriorSensitivePointSet)

class Select3D_SensitiveGroup(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Constructs an empty sensitive group object. this is a set of sensitive 3d entities. the sensitive entities will be defined using the function add to fill the entity owner ownerid. if matchall is false, nothing can be added.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        theIsMustMatchAll: bool,optional
        	default value is Standard_True

        Returns
        -------
        None
        Constructs a sensitive group object defined by the list thelist and the entity owner ownerid. if matchall is false, nothing is done.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        theEntities: Select3D_EntitySequence
        theIsMustMatchAll: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

        """
        _Select3D.Select3D_SensitiveGroup_swiginit(self, _Select3D.new_Select3D_SensitiveGroup(*args))

    def Add(self, *args) -> "void":
        r"""
        Adds the list of sensitive entities ll to the empty sensitive group object created at construction time.

        Parameters
        ----------
        theEntities: Select3D_EntitySequence

        Returns
        -------
        None
        Adds the sensitive entity asensitive to the non-empty sensitive group object created at construction time.

        Parameters
        ----------
        theSensitive: Select3D_SensitiveEntity

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitiveGroup_Add(self, *args)

    def BoundingBox(self, *args) -> "Select3D_BndBox3d":
        r"""
        Returns bounding box of the group. if location transformation is set, it will be applied.

        Returns
        -------
        Select3D_BndBox3d

        """
        return _Select3D.Select3D_SensitiveGroup_BoundingBox(self, *args)

    def Box(self, *args) -> "Select3D_BndBox3d":
        r"""
        Returns bounding box of sensitive entity with index theidx.

        Parameters
        ----------
        theIdx: int

        Returns
        -------
        Select3D_BndBox3d

        """
        return _Select3D.Select3D_SensitiveGroup_Box(self, *args)

    def Center(self, *args) -> "Standard_Real":
        r"""
        Returns geometry center of sensitive entity index theidx in the vector along the given axis theaxis.

        Parameters
        ----------
        theIdx: int
        theAxis: int

        Returns
        -------
        float

        """
        return _Select3D.Select3D_SensitiveGroup_Center(self, *args)

    def CenterOfGeometry(self, *args) -> "gp_Pnt":
        r"""
        Returns center of entity set. if location transformation is set, it will be applied.

        Returns
        -------
        gp_Pnt

        """
        return _Select3D.Select3D_SensitiveGroup_CenterOfGeometry(self, *args)

    def Clear(self, *args) -> "void":
        r"""
        Removes all sensitive entities from the list used at the time of construction, or added using the function add.

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitiveGroup_Clear(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Select3D_SensitiveGroup self, int depth=-1) -> std::string"""
        return _Select3D.Select3D_SensitiveGroup_DumpJsonToString(self, depth)

    def Entities(self, *args) -> "Select3D_IndexedMapOfEntity const &":
        r"""
        Gets group content.

        Returns
        -------
        Select3D_IndexedMapOfEntity

        """
        return _Select3D.Select3D_SensitiveGroup_Entities(self, *args)

    def GetConnected(self, *args) -> "opencascade::handle< Select3D_SensitiveEntity >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        """
        return _Select3D.Select3D_SensitiveGroup_GetConnected(self, *args)

    def IsIn(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the sensitive entity asensitive is in the list used at the time of construction, or added using the function add.

        Parameters
        ----------
        theSensitive: Select3D_SensitiveEntity

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitiveGroup_IsIn(self, *args)

    def LastDetectedEntity(self, *args) -> "opencascade::handle< Select3D_SensitiveEntity >":
        r"""
        Return last detected entity.

        Returns
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        """
        return _Select3D.Select3D_SensitiveGroup_LastDetectedEntity(self, *args)

    def LastDetectedEntityIndex(self, *args) -> "Standard_Integer":
        r"""
        Return index of last detected entity.

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitiveGroup_LastDetectedEntityIndex(self, *args)

    def Matches(self, *args) -> "Standard_Boolean":
        r"""
        Checks whether the group overlaps current selecting volume.

        Parameters
        ----------
        theMgr: SelectBasics_SelectingVolumeManager
        thePickResult: SelectBasics_PickResult

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitiveGroup_Matches(self, *args)

    def MustMatchAll(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if all sensitive entities in the list used at the time of construction, or added using the function add must be matched.

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitiveGroup_MustMatchAll(self, *args)

    def NbSubElements(self, *args) -> "Standard_Integer":
        r"""
        Returns the amount of sub-entities.

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitiveGroup_NbSubElements(self, *args)

    def Remove(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        theSensitive: Select3D_SensitiveEntity

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitiveGroup_Remove(self, *args)

    def Set(self, *args) -> "void":
        r"""
        Sets the owner for all entities in group.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitiveGroup_Set(self, *args)

    def SetCheckOverlapAll(self, *args) -> "void":
        r"""
        Returns true if all sensitive entities should be checked within rectangular/polygonal selection, false by default. can be useful for sensitive entities holding detection results as class property.

        Parameters
        ----------
        theToCheckAll: bool

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitiveGroup_SetCheckOverlapAll(self, *args)

    def SetMatchType(self, *args) -> "void":
        r"""
        Sets the requirement that all sensitive entities in the list used at the time of construction, or added using the function add must be matched.

        Parameters
        ----------
        theIsMustMatchAll: bool

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitiveGroup_SetMatchType(self, *args)

    def Size(self, *args) -> "Standard_Integer":
        r"""
        Returns the length of vector of sensitive entities.

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitiveGroup_Size(self, *args)

    def SubEntity(self, *args) -> "opencascade::handle< Select3D_SensitiveEntity > const &":
        r"""
        Access entity by index [1, nbsubelements()].

        Parameters
        ----------
        theIndex: int

        Returns
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        """
        return _Select3D.Select3D_SensitiveGroup_SubEntity(self, *args)

    def Swap(self, *args) -> "void":
        r"""
        Swaps items with indexes theidx1 and theidx2 in the vector.

        Parameters
        ----------
        theIdx1: int
        theIdx2: int

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitiveGroup_Swap(self, *args)

    def ToCheckOverlapAll(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if all sensitive entities should be checked within rectangular/polygonal selection, false by default. can be useful for sensitive entities holding detection results as class property.

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitiveGroup_ToCheckOverlapAll(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_Select3D_SensitiveGroup_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_SensitiveGroup

# Register Select3D_SensitiveGroup in _Select3D:
_Select3D.Select3D_SensitiveGroup_swigregister(Select3D_SensitiveGroup)

class Select3D_SensitivePoly(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Constructs a sensitive face object defined by the owner ownerid, the array of points thepoints, and the sensitivity type sensitivity. the array of points is the outer polygon of the geometric face.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        thePoints: TColgp_Array1OfPnt
        theIsBVHEnabled: bool

        Returns
        -------
        None
        Constructs a sensitive face object defined by the owner ownerid, the array of points thepoints, and the sensitivity type sensitivity. the array of points is the outer polygon of the geometric face.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        thePoints: TColgp_HArray1OfPnt
        theIsBVHEnabled: bool

        Returns
        -------
        None
        Constructs the sensitive circle object defined by the owner ownerid, the circle circle, the boolean filledcircle and the number of points nbofpoints.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        theIsBVHEnabled: bool
        theNbPnts: int,optional
        	default value is 6

        Returns
        -------
        None

        """
        _Select3D.Select3D_SensitivePoly_swiginit(self, _Select3D.new_Select3D_SensitivePoly(*args))

    def ArrayBounds(self, *args) -> "void":
        r"""
        Return array bounds.

        Parameters
        ----------

        Returns
        -------
        theLow: int
        theUp: int

        """
        return _Select3D.Select3D_SensitivePoly_ArrayBounds(self, *args)

    def BoundingBox(self, *args) -> "Select3D_BndBox3d":
        r"""
        Returns bounding box of a polygon. if location transformation is set, it will be applied.

        Returns
        -------
        Select3D_BndBox3d

        """
        return _Select3D.Select3D_SensitivePoly_BoundingBox(self, *args)

    def Box(self, *args) -> "Select3D_BndBox3d":
        r"""
        Returns bounding box of segment with index theidx.

        Parameters
        ----------
        theIdx: int

        Returns
        -------
        Select3D_BndBox3d

        """
        return _Select3D.Select3D_SensitivePoly_Box(self, *args)

    def Center(self, *args) -> "Standard_Real":
        r"""
        Returns geometry center of sensitive entity index theidx in the vector along the given axis theaxis.

        Parameters
        ----------
        theIdx: int
        theAxis: int

        Returns
        -------
        float

        """
        return _Select3D.Select3D_SensitivePoly_Center(self, *args)

    def CenterOfGeometry(self, *args) -> "gp_Pnt":
        r"""
        Returns center of the point set. if location transformation is set, it will be applied.

        Returns
        -------
        gp_Pnt

        """
        return _Select3D.Select3D_SensitivePoly_CenterOfGeometry(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Select3D_SensitivePoly self, int depth=-1) -> std::string"""
        return _Select3D.Select3D_SensitivePoly_DumpJsonToString(self, depth)

    def GetPoint3d(self, *args) -> "gp_Pnt":
        r"""
        Return point.

        Parameters
        ----------
        thePntIdx: int

        Returns
        -------
        gp_Pnt

        """
        return _Select3D.Select3D_SensitivePoly_GetPoint3d(self, *args)

    def NbSubElements(self, *args) -> "Standard_Integer":
        r"""
        Returns the amount of segments in poly.

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitivePoly_NbSubElements(self, *args)

    def Points3D(self, *args) -> "void":
        r"""
        Returns the 3d points of the array used at construction time.

        Parameters
        ----------
        theHArrayOfPnt: TColgp_HArray1OfPnt

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitivePoly_Points3D(self, *args)

    def Size(self, *args) -> "Standard_Integer":
        r"""
        Returns the amount of segments of the poly.

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitivePoly_Size(self, *args)

    def Swap(self, *args) -> "void":
        r"""
        Swaps items with indexes theidx1 and theidx2 in the vector.

        Parameters
        ----------
        theIdx1: int
        theIdx2: int

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitivePoly_Swap(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_Select3D_SensitivePoly_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_SensitivePoly

# Register Select3D_SensitivePoly in _Select3D:
_Select3D.Select3D_SensitivePoly_swigregister(Select3D_SensitivePoly)

class Select3D_SensitivePrimitiveArray(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Constructs an empty sensitive object.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner

        Returns
        -------
        None

        """
        _Select3D.Select3D_SensitivePrimitiveArray_swiginit(self, _Select3D.new_Select3D_SensitivePrimitiveArray(*args))

    def BVH(self, *args) -> "void":
        r"""
        Builds bvh tree for sensitive set.

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_BVH(self, *args)

    def BoundingBox(self, *args) -> "Select3D_BndBox3d":
        r"""
        Returns bounding box of the triangulation. if location transformation is set, it will be applied.

        Returns
        -------
        Select3D_BndBox3d

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_BoundingBox(self, *args)

    def Box(self, *args) -> "Select3D_BndBox3d":
        r"""
        Returns bounding box of triangle/edge with index theidx.

        Parameters
        ----------
        theIdx: int

        Returns
        -------
        Select3D_BndBox3d

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_Box(self, *args)

    def Center(self, *args) -> "Standard_Real":
        r"""
        Returns geometry center of triangle/edge with index theidx in array along the given axis theaxis.

        Parameters
        ----------
        theIdx: int
        theAxis: int

        Returns
        -------
        float

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_Center(self, *args)

    def CenterOfGeometry(self, *args) -> "gp_Pnt":
        r"""
        Returns center of triangulation. if location transformation is set, it will be applied.

        Returns
        -------
        gp_Pnt

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_CenterOfGeometry(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Select3D_SensitivePrimitiveArray self, int depth=-1) -> std::string"""
        return _Select3D.Select3D_SensitivePrimitiveArray_DumpJsonToString(self, depth)

    def GetConnected(self, *args) -> "opencascade::handle< Select3D_SensitiveEntity >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_GetConnected(self, *args)

    def HasInitLocation(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the shape corresponding to the entity has init location.

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_HasInitLocation(self, *args)

    def InitPoints(self, *args) -> "bool":
        r"""
        Initialize the sensitive object from point set. the sub-set of points can be specified by arguments theindexlower and theindexupper (these are for iterating theindices, not to restrict the actual index values!). @param theverts attributes array containing graphic3d_toa_pos with type graphic3d_tod_vec3 or graphic3d_tod_vec2 @param theindices index array defining points @param theinitloc location @param theindexlower the theindices range - first value (inclusive), starting from 0 @param theindexupper the theindices range - last value (inclusive), upto theindices->nbelements-1 @param thetoevalminmax compute bounding box within initialization @param thenbgroups number of groups to split the vertex array into several parts.

        Parameters
        ----------
        theVerts: Graphic3d_Buffer
        theIndices: Graphic3d_IndexBuffer
        theInitLoc: TopLoc_Location
        theIndexLower: int
        theIndexUpper: int
        theToEvalMinMax: bool,optional
        	default value is true
        theNbGroups: int,optional
        	default value is 1

        Returns
        -------
        bool
        Initialize the sensitive object from point set. @param theverts attributes array containing graphic3d_toa_pos with type graphic3d_tod_vec3 or graphic3d_tod_vec2 @param theindices index array to define subset of points @param theinitloc location @param thetoevalminmax compute bounding box within initialization @param thenbgroups number of groups to split the vertex array into several parts.

        Parameters
        ----------
        theVerts: Graphic3d_Buffer
        theIndices: Graphic3d_IndexBuffer
        theInitLoc: TopLoc_Location
        theToEvalMinMax: bool,optional
        	default value is true
        theNbGroups: int,optional
        	default value is 1

        Returns
        -------
        bool
        Initialize the sensitive object from point set. @param theverts attributes array containing graphic3d_toa_pos with type graphic3d_tod_vec3 or graphic3d_tod_vec2 @param theinitloc location @param thetoevalminmax compute bounding box within initialization @param thenbgroups number of groups to split the vertex array into several parts.

        Parameters
        ----------
        theVerts: Graphic3d_Buffer
        theInitLoc: TopLoc_Location
        theToEvalMinMax: bool,optional
        	default value is true
        theNbGroups: int,optional
        	default value is 1

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_InitPoints(self, *args)

    def InitTriangulation(self, *args) -> "bool":
        r"""
        Initialize the sensitive object from triangualtion. the sub-triangulation can be specified by arguments theindexlower and theindexupper (these are for iterating theindices, not to restrict the actual index values!). @param theverts attributes array containing graphic3d_toa_pos with type graphic3d_tod_vec3 or graphic3d_tod_vec2 @param theindices index array defining triangulation @param theinitloc location @param theindexlower the theindices range - first value (inclusive), starting from 0 and multiple by 3 @param theindexupper the theindices range - last value (inclusive), upto theindices->nbelements-1 and multiple by 3 @param thetoevalminmax compute bounding box within initialization @param thenbgroups number of groups to split the vertex array into several parts.

        Parameters
        ----------
        theVerts: Graphic3d_Buffer
        theIndices: Graphic3d_IndexBuffer
        theInitLoc: TopLoc_Location
        theIndexLower: int
        theIndexUpper: int
        theToEvalMinMax: bool,optional
        	default value is true
        theNbGroups: int,optional
        	default value is 1

        Returns
        -------
        bool
        Initialize the sensitive object from triangualtion. @param theverts attributes array containing graphic3d_toa_pos with type graphic3d_tod_vec3 or graphic3d_tod_vec2 @param theindices index array defining triangulation @param theinitloc location @param thetoevalminmax compute bounding box within initialization @param thenbgroups number of groups to split the vertex array into several parts.

        Parameters
        ----------
        theVerts: Graphic3d_Buffer
        theIndices: Graphic3d_IndexBuffer
        theInitLoc: TopLoc_Location
        theToEvalMinMax: bool,optional
        	default value is true
        theNbGroups: int,optional
        	default value is 1

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_InitTriangulation(self, *args)

    def InvInitLocation(self, *args) -> "gp_GTrsf":
        r"""
        Returns inversed location transformation matrix if the shape corresponding to this entity has init location set. otherwise, returns identity matrix.

        Returns
        -------
        gp_GTrsf

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_InvInitLocation(self, *args)

    def LastDetectedEdgeNode1(self, *args) -> "Standard_Integer":
        r"""
        Return the first node of last topmost detected edge or -1 if undefined (axis picking).

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_LastDetectedEdgeNode1(self, *args)

    def LastDetectedEdgeNode2(self, *args) -> "Standard_Integer":
        r"""
        Return the second node of last topmost detected edge or -1 if undefined (axis picking).

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_LastDetectedEdgeNode2(self, *args)

    def LastDetectedElement(self, *args) -> "Standard_Integer":
        r"""
        Return last topmost detected element or -1 if undefined (axis picking).

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_LastDetectedElement(self, *args)

    def LastDetectedElementMap(self, *args) -> "opencascade::handle< TColStd_HPackedMapOfInteger > const &":
        r"""
        Return the index map of last detected elements (rectangle selection).

        Returns
        -------
        opencascade::handle<TColStd_HPackedMapOfInteger>

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_LastDetectedElementMap(self, *args)

    def LastDetectedNode(self, *args) -> "Standard_Integer":
        r"""
        Return last topmost detected node or -1 if undefined (axis picking).

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_LastDetectedNode(self, *args)

    def LastDetectedNodeMap(self, *args) -> "opencascade::handle< TColStd_HPackedMapOfInteger > const &":
        r"""
        Return the index map of last detected nodes (rectangle selection).

        Returns
        -------
        opencascade::handle<TColStd_HPackedMapOfInteger>

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_LastDetectedNodeMap(self, *args)

    def Matches(self, *args) -> "Standard_Boolean":
        r"""
        Checks whether the sensitive entity is overlapped by current selecting volume.

        Parameters
        ----------
        theMgr: SelectBasics_SelectingVolumeManager
        thePickResult: SelectBasics_PickResult

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_Matches(self, *args)

    def NbSubElements(self, *args) -> "Standard_Integer":
        r"""
        Returns the amount of nodes in triangulation.

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_NbSubElements(self, *args)

    def PatchDistance(self, *args) -> "float":
        r"""
        Maximum allowed distance between consequential elements in patch (shortreallast() by default). has no effect on indexed triangulation.

        Returns
        -------
        float

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_PatchDistance(self, *args)

    def PatchSizeMax(self, *args) -> "Standard_Integer":
        r"""
        Return patch size limit (1 by default).

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_PatchSizeMax(self, *args)

    def Set(self, *args) -> "void":
        r"""
        Sets the owner for all entities in group.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_Set(self, *args)

    def SetDetectEdges(self, *args) -> "void":
        r"""
        Setup keeping of the index of last topmost detected edge (axis picking).

        Parameters
        ----------
        theToDetect: bool

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_SetDetectEdges(self, *args)

    def SetDetectElementMap(self, *args) -> "void":
        r"""
        Setup keeping of the index map of last detected elements (rectangle selection).

        Parameters
        ----------
        theToDetect: bool

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_SetDetectElementMap(self, *args)

    def SetDetectElements(self, *args) -> "void":
        r"""
        Setup keeping of the index of last topmost detected element (axis picking).

        Parameters
        ----------
        theToDetect: bool

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_SetDetectElements(self, *args)

    def SetDetectNodeMap(self, *args) -> "void":
        r"""
        Setup keeping of the index map of last detected nodes (rectangle selection).

        Parameters
        ----------
        theToDetect: bool

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_SetDetectNodeMap(self, *args)

    def SetDetectNodes(self, *args) -> "void":
        r"""
        Setup keeping of the index of last topmost detected node (for axis picking).

        Parameters
        ----------
        theToDetect: bool

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_SetDetectNodes(self, *args)

    def SetMinMax(self, *args) -> "void":
        r"""
        Assign new not transformed bounding box.

        Parameters
        ----------
        theMinX: double
        theMinY: double
        theMinZ: double
        theMaxX: double
        theMaxY: double
        theMaxZ: double

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_SetMinMax(self, *args)

    def SetPatchDistance(self, *args) -> "void":
        r"""
        Assign patch distance limit. should be set before initialization.

        Parameters
        ----------
        thePatchDistMax: float

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_SetPatchDistance(self, *args)

    def SetPatchSizeMax(self, *args) -> "void":
        r"""
        Assign patch size limit. should be set before initialization.

        Parameters
        ----------
        thePatchSizeMax: int

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_SetPatchSizeMax(self, *args)

    def Size(self, *args) -> "Standard_Integer":
        r"""
        Returns the length of array of triangles or edges.

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_Size(self, *args)

    def Swap(self, *args) -> "void":
        r"""
        Swaps items with indexes theidx1 and theidx2 in array.

        Parameters
        ----------
        theIdx1: int
        theIdx2: int

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_Swap(self, *args)

    def ToDetectEdges(self, *args) -> "bool":
        r"""
        Return flag to keep index of last topmost detected edge, false by default.

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_ToDetectEdges(self, *args)

    def ToDetectElementMap(self, *args) -> "bool":
        r"""
        Return flag to keep index map of last detected elements, false by default (rectangle selection).

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_ToDetectElementMap(self, *args)

    def ToDetectElements(self, *args) -> "bool":
        r"""
        Return flag to keep index of last topmost detected element, true by default.

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_ToDetectElements(self, *args)

    def ToDetectNodeMap(self, *args) -> "bool":
        r"""
        Return flag to keep index map of last detected nodes, false by default (rectangle selection).

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_ToDetectNodeMap(self, *args)

    def ToDetectNodes(self, *args) -> "bool":
        r"""
        Return flag to keep index of last topmost detected node, false by default.

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitivePrimitiveArray_ToDetectNodes(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_Select3D_SensitivePrimitiveArray_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_SensitivePrimitiveArray

# Register Select3D_SensitivePrimitiveArray in _Select3D:
_Select3D.Select3D_SensitivePrimitiveArray_swigregister(Select3D_SensitivePrimitiveArray)

class Select3D_SensitiveWire(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Constructs a sensitive wire object defined by the owner theownerid.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner

        Returns
        -------
        None

        """
        _Select3D.Select3D_SensitiveWire_swiginit(self, _Select3D.new_Select3D_SensitiveWire(*args))

    def Add(self, *args) -> "void":
        r"""
        Adds the sensitive entity thesensitive to this framework.

        Parameters
        ----------
        theSensitive: Select3D_SensitiveEntity

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitiveWire_Add(self, *args)

    def BoundingBox(self, *args) -> "Select3D_BndBox3d":
        r"""
        Returns bounding box of the wire. if location transformation is set, it will be applied.

        Returns
        -------
        Select3D_BndBox3d

        """
        return _Select3D.Select3D_SensitiveWire_BoundingBox(self, *args)

    def Box(self, *args) -> "Select3D_BndBox3d":
        r"""
        Returns bounding box of sensitive entity with index theidx.

        Parameters
        ----------
        theIdx: int

        Returns
        -------
        Select3D_BndBox3d

        """
        return _Select3D.Select3D_SensitiveWire_Box(self, *args)

    def Center(self, *args) -> "Standard_Real":
        r"""
        Returns geometry center of sensitive entity index theidx in the vector along the given axis theaxis.

        Parameters
        ----------
        theIdx: int
        theAxis: int

        Returns
        -------
        float

        """
        return _Select3D.Select3D_SensitiveWire_Center(self, *args)

    def CenterOfGeometry(self, *args) -> "gp_Pnt":
        r"""
        Returns center of the wire. if location transformation is set, it will be applied.

        Returns
        -------
        gp_Pnt

        """
        return _Select3D.Select3D_SensitiveWire_CenterOfGeometry(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Select3D_SensitiveWire self, int depth=-1) -> std::string"""
        return _Select3D.Select3D_SensitiveWire_DumpJsonToString(self, depth)

    def GetConnected(self, *args) -> "opencascade::handle< Select3D_SensitiveEntity >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        """
        return _Select3D.Select3D_SensitiveWire_GetConnected(self, *args)

    def GetEdges(self, *args) -> "NCollection_Vector< opencascade::handle< Select3D_SensitiveEntity > > const &":
        r"""
        Returns the sensitive edges stored in this wire.

        Returns
        -------
        NCollection_Vector<opencascade::handle<Select3D_SensitiveEntity>>

        """
        return _Select3D.Select3D_SensitiveWire_GetEdges(self, *args)

    def GetLastDetected(self, *args) -> "opencascade::handle< Select3D_SensitiveEntity >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        """
        return _Select3D.Select3D_SensitiveWire_GetLastDetected(self, *args)

    def NbSubElements(self, *args) -> "Standard_Integer":
        r"""
        Returns the amount of sub-entities.

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitiveWire_NbSubElements(self, *args)

    def Set(self, *args) -> "void":
        r"""
        Sets the owner for all entities in wire.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitiveWire_Set(self, *args)

    def Size(self, *args) -> "Standard_Integer":
        r"""
        Returns the length of vector of sensitive entities.

        Returns
        -------
        int

        """
        return _Select3D.Select3D_SensitiveWire_Size(self, *args)

    def Swap(self, *args) -> "void":
        r"""
        Swaps items with indexes theidx1 and theidx2 in the vector.

        Parameters
        ----------
        theIdx1: int
        theIdx2: int

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitiveWire_Swap(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_Select3D_SensitiveWire_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_SensitiveWire

# Register Select3D_SensitiveWire in _Select3D:
_Select3D.Select3D_SensitiveWire_swigregister(Select3D_SensitiveWire)

class Select3D_SensitiveCircle(Select3D_SensitivePoly):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Constructs the sensitive circle object defined by the owner theownerid, the circle thecircle, the boolean theisfilled and the number of points thenbpnts.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        theCircle: gp_Circ
        theIsFilled: bool,optional
        	default value is Standard_False
        theNbPnts: int,optional
        	default value is 12

        Returns
        -------
        None
        Constructs the sensitive arc object defined by the owner theownerid, the circle thecircle, the parameters theu1 and theu2, the boolean theisfilled and the number of points thenbpnts. theu1 and theu2 define the first and last points of the arc on thecircle.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        theCircle: gp_Circ
        theU1: float
        theU2: float
        theIsFilled: bool,optional
        	default value is Standard_False
        theNbPnts: int,optional
        	default value is 12

        Returns
        -------
        None
        Constructs the sensitive circle object defined by the owner theownerid, the array of triangles thepnts3d, and the boolean theisfilled. thepnts3d is an array of consecutive triangles on the circle. the triangle i+1 lies on the intersection of the tangents to the circle of i and i+2. note, that the first point of thepnts3d must be equal to the last point of thepnts3d.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        thePnts3d: TColgp_HArray1OfPnt
        theIsFilled: bool,optional
        	default value is Standard_False

        Returns
        -------
        None
        Constructs the sensitive circle object defined by the owner theownerid, the array of points thepnts3d, and the boolean theisfilled. if the length of thepnts3d is more then 1, the first point of thepnts3d must be equal to the last point of thepnts3d.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        thePnts3d: TColgp_Array1OfPnt
        theIsFilled: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        _Select3D.Select3D_SensitiveCircle_swiginit(self, _Select3D.new_Select3D_SensitiveCircle(*args))

    def BVH(self, *args) -> "void":
        r"""
        Builds bvh tree for a circle's edge segments if needed.

        Returns
        -------
        None

        """
        return _Select3D.Select3D_SensitiveCircle_BVH(self, *args)

    def GetConnected(self, *args) -> "opencascade::handle< Select3D_SensitiveEntity >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        """
        return _Select3D.Select3D_SensitiveCircle_GetConnected(self, *args)

    def Matches(self, *args) -> "Standard_Boolean":
        r"""
        Checks whether the circle overlaps current selecting volume.

        Parameters
        ----------
        theMgr: SelectBasics_SelectingVolumeManager
        thePickResult: SelectBasics_PickResult

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitiveCircle_Matches(self, *args)

    def ToBuildBVH(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if bvh tree is in invalidated state.

        Returns
        -------
        bool

        """
        return _Select3D.Select3D_SensitiveCircle_ToBuildBVH(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_Select3D_SensitiveCircle_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_SensitiveCircle

# Register Select3D_SensitiveCircle in _Select3D:
_Select3D.Select3D_SensitiveCircle_swigregister(Select3D_SensitiveCircle)

class Select3D_SensitiveCurve(Select3D_SensitivePoly):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Constructs a sensitive curve object defined by the owner theownerid, the curve thecurve, and the maximum number of points on the curve: thenbpnts.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        theCurve: Geom_Curve
        theNbPnts: int,optional
        	default value is 17

        Returns
        -------
        None
        Constructs a sensitive curve object defined by the owner theownerid and the set of points thepoints.

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        thePoints: TColgp_HArray1OfPnt

        Returns
        -------
        None
        Creation of sensitive curve from points. warning : this method should disappear in the next version...

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        thePoints: TColgp_Array1OfPnt

        Returns
        -------
        None

        """
        _Select3D.Select3D_SensitiveCurve_swiginit(self, _Select3D.new_Select3D_SensitiveCurve(*args))

    def GetConnected(self, *args) -> "opencascade::handle< Select3D_SensitiveEntity >":
        r"""
        Returns the copy of this.

        Returns
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        """
        return _Select3D.Select3D_SensitiveCurve_GetConnected(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_Select3D_SensitiveCurve_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_SensitiveCurve

# Register Select3D_SensitiveCurve in _Select3D:
_Select3D.Select3D_SensitiveCurve_swigregister(Select3D_SensitiveCurve)


@classnotwrapped
class Select3D_SensitiveTriangulation:
	pass

@classnotwrapped
class Select3D_SensitiveEntity:
	pass

@classnotwrapped
class Handle_Select3D_SensitiveEntity:
	pass

@classnotwrapped
class Select3D_SensitiveSet:
	pass



SelectBasics_SensitiveEntity=Select3D_SensitiveEntity



