# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.2.1
#
# 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.7.0/refman/html/package_select3d.html
"""

from sys import version_info as _swig_python_version_info
# 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 == "this":
            set(self, name, value)
        elif name == "thisown":
            self.this.own(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):
        return _Select3D.SwigPyIterator_value(self)

    def incr(self, n=1):
        return _Select3D.SwigPyIterator_incr(self, n)

    def decr(self, n=1):
        return _Select3D.SwigPyIterator_decr(self, n)

    def distance(self, x):
        return _Select3D.SwigPyIterator_distance(self, x)

    def equal(self, x):
        return _Select3D.SwigPyIterator_equal(self, x)

    def copy(self):
        return _Select3D.SwigPyIterator_copy(self)

    def next(self):
        return _Select3D.SwigPyIterator_next(self)

    def __next__(self):
        return _Select3D.SwigPyIterator___next__(self)

    def previous(self):
        return _Select3D.SwigPyIterator_previous(self)

    def advance(self, n):
        return _Select3D.SwigPyIterator_advance(self, n)

    def __eq__(self, x):
        return _Select3D.SwigPyIterator___eq__(self, x)

    def __ne__(self, x):
        return _Select3D.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n):
        return _Select3D.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n):
        return _Select3D.SwigPyIterator___isub__(self, n)

    def __add__(self, n):
        return _Select3D.SwigPyIterator___add__(self, n)

    def __sub__(self, *args):
        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, method_name, class_name):
    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.SelectBasics
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.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():
    return _Select3D.Handle_Select3D_BVHIndexBuffer_Create()

def Handle_Select3D_BVHIndexBuffer_DownCast(t):
    return _Select3D.Handle_Select3D_BVHIndexBuffer_DownCast(t)

def Handle_Select3D_BVHIndexBuffer_IsNull(t):
    return _Select3D.Handle_Select3D_BVHIndexBuffer_IsNull(t)

def Handle_Select3D_SensitiveBox_Create():
    return _Select3D.Handle_Select3D_SensitiveBox_Create()

def Handle_Select3D_SensitiveBox_DownCast(t):
    return _Select3D.Handle_Select3D_SensitiveBox_DownCast(t)

def Handle_Select3D_SensitiveBox_IsNull(t):
    return _Select3D.Handle_Select3D_SensitiveBox_IsNull(t)

def Handle_Select3D_SensitiveCylinder_Create():
    return _Select3D.Handle_Select3D_SensitiveCylinder_Create()

def Handle_Select3D_SensitiveCylinder_DownCast(t):
    return _Select3D.Handle_Select3D_SensitiveCylinder_DownCast(t)

def Handle_Select3D_SensitiveCylinder_IsNull(t):
    return _Select3D.Handle_Select3D_SensitiveCylinder_IsNull(t)

def Handle_Select3D_SensitiveFace_Create():
    return _Select3D.Handle_Select3D_SensitiveFace_Create()

def Handle_Select3D_SensitiveFace_DownCast(t):
    return _Select3D.Handle_Select3D_SensitiveFace_DownCast(t)

def Handle_Select3D_SensitiveFace_IsNull(t):
    return _Select3D.Handle_Select3D_SensitiveFace_IsNull(t)

def Handle_Select3D_SensitivePoint_Create():
    return _Select3D.Handle_Select3D_SensitivePoint_Create()

def Handle_Select3D_SensitivePoint_DownCast(t):
    return _Select3D.Handle_Select3D_SensitivePoint_DownCast(t)

def Handle_Select3D_SensitivePoint_IsNull(t):
    return _Select3D.Handle_Select3D_SensitivePoint_IsNull(t)

def Handle_Select3D_SensitiveSegment_Create():
    return _Select3D.Handle_Select3D_SensitiveSegment_Create()

def Handle_Select3D_SensitiveSegment_DownCast(t):
    return _Select3D.Handle_Select3D_SensitiveSegment_DownCast(t)

def Handle_Select3D_SensitiveSegment_IsNull(t):
    return _Select3D.Handle_Select3D_SensitiveSegment_IsNull(t)

def Handle_Select3D_SensitiveSphere_Create():
    return _Select3D.Handle_Select3D_SensitiveSphere_Create()

def Handle_Select3D_SensitiveSphere_DownCast(t):
    return _Select3D.Handle_Select3D_SensitiveSphere_DownCast(t)

def Handle_Select3D_SensitiveSphere_IsNull(t):
    return _Select3D.Handle_Select3D_SensitiveSphere_IsNull(t)

def Handle_Select3D_SensitiveTriangle_Create():
    return _Select3D.Handle_Select3D_SensitiveTriangle_Create()

def Handle_Select3D_SensitiveTriangle_DownCast(t):
    return _Select3D.Handle_Select3D_SensitiveTriangle_DownCast(t)

def Handle_Select3D_SensitiveTriangle_IsNull(t):
    return _Select3D.Handle_Select3D_SensitiveTriangle_IsNull(t)

def Handle_Select3D_InteriorSensitivePointSet_Create():
    return _Select3D.Handle_Select3D_InteriorSensitivePointSet_Create()

def Handle_Select3D_InteriorSensitivePointSet_DownCast(t):
    return _Select3D.Handle_Select3D_InteriorSensitivePointSet_DownCast(t)

def Handle_Select3D_InteriorSensitivePointSet_IsNull(t):
    return _Select3D.Handle_Select3D_InteriorSensitivePointSet_IsNull(t)

def Handle_Select3D_SensitiveGroup_Create():
    return _Select3D.Handle_Select3D_SensitiveGroup_Create()

def Handle_Select3D_SensitiveGroup_DownCast(t):
    return _Select3D.Handle_Select3D_SensitiveGroup_DownCast(t)

def Handle_Select3D_SensitiveGroup_IsNull(t):
    return _Select3D.Handle_Select3D_SensitiveGroup_IsNull(t)

def Handle_Select3D_SensitivePoly_Create():
    return _Select3D.Handle_Select3D_SensitivePoly_Create()

def Handle_Select3D_SensitivePoly_DownCast(t):
    return _Select3D.Handle_Select3D_SensitivePoly_DownCast(t)

def Handle_Select3D_SensitivePoly_IsNull(t):
    return _Select3D.Handle_Select3D_SensitivePoly_IsNull(t)

def Handle_Select3D_SensitivePrimitiveArray_Create():
    return _Select3D.Handle_Select3D_SensitivePrimitiveArray_Create()

def Handle_Select3D_SensitivePrimitiveArray_DownCast(t):
    return _Select3D.Handle_Select3D_SensitivePrimitiveArray_DownCast(t)

def Handle_Select3D_SensitivePrimitiveArray_IsNull(t):
    return _Select3D.Handle_Select3D_SensitivePrimitiveArray_IsNull(t)

def Handle_Select3D_SensitiveWire_Create():
    return _Select3D.Handle_Select3D_SensitiveWire_Create()

def Handle_Select3D_SensitiveWire_DownCast(t):
    return _Select3D.Handle_Select3D_SensitiveWire_DownCast(t)

def Handle_Select3D_SensitiveWire_IsNull(t):
    return _Select3D.Handle_Select3D_SensitiveWire_IsNull(t)

def Handle_Select3D_SensitiveCurve_Create():
    return _Select3D.Handle_Select3D_SensitiveCurve_Create()

def Handle_Select3D_SensitiveCurve_DownCast(t):
    return _Select3D.Handle_Select3D_SensitiveCurve_DownCast(t)

def Handle_Select3D_SensitiveCurve_IsNull(t):
    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):
        return _Select3D.Select3D_EntitySequence_begin(self)

    def end(self):
        return _Select3D.Select3D_EntitySequence_end(self)

    def cbegin(self):
        return _Select3D.Select3D_EntitySequence_cbegin(self)

    def cend(self):
        return _Select3D.Select3D_EntitySequence_cend(self)

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

    def Size(self):
        return _Select3D.Select3D_EntitySequence_Size(self)

    def Length(self):
        return _Select3D.Select3D_EntitySequence_Length(self)

    def Lower(self):
        return _Select3D.Select3D_EntitySequence_Lower(self)

    def Upper(self):
        return _Select3D.Select3D_EntitySequence_Upper(self)

    def IsEmpty(self):
        return _Select3D.Select3D_EntitySequence_IsEmpty(self)

    def Reverse(self):
        return _Select3D.Select3D_EntitySequence_Reverse(self)

    def Exchange(self, I, J):
        return _Select3D.Select3D_EntitySequence_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _Select3D.Select3D_EntitySequence_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _Select3D.Select3D_EntitySequence_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _Select3D.Select3D_EntitySequence_Assign(self, theOther)

    def Set(self, theOther):
        return _Select3D.Select3D_EntitySequence_Set(self, theOther)

    def Remove(self, *args):
        return _Select3D.Select3D_EntitySequence_Remove(self, *args)

    def Append(self, *args):
        return _Select3D.Select3D_EntitySequence_Append(self, *args)

    def Prepend(self, *args):
        return _Select3D.Select3D_EntitySequence_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _Select3D.Select3D_EntitySequence_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _Select3D.Select3D_EntitySequence_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _Select3D.Select3D_EntitySequence_Split(self, theIndex, theSeq)

    def First(self):
        return _Select3D.Select3D_EntitySequence_First(self)

    def ChangeFirst(self):
        return _Select3D.Select3D_EntitySequence_ChangeFirst(self)

    def Last(self):
        return _Select3D.Select3D_EntitySequence_Last(self)

    def ChangeLast(self):
        return _Select3D.Select3D_EntitySequence_ChangeLast(self)

    def Value(self, theIndex):
        return _Select3D.Select3D_EntitySequence_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _Select3D.Select3D_EntitySequence_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _Select3D.Select3D_EntitySequence___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        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)
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):
        return _Select3D.Select3D_EntitySequenceIter_More(self)

    def Next(self):
        return _Select3D.Select3D_EntitySequenceIter_Next(self)

    def Value(self):
        return _Select3D.Select3D_EntitySequenceIter_Value(self)

    def ChangeValue(self):
        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):
        return _Select3D.Select3D_IndexedMapOfEntity_cbegin(self)

    def cend(self):
        return _Select3D.Select3D_IndexedMapOfEntity_cend(self)

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

    def Exchange(self, theOther):
        return _Select3D.Select3D_IndexedMapOfEntity_Exchange(self, theOther)

    def Assign(self, theOther):
        return _Select3D.Select3D_IndexedMapOfEntity_Assign(self, theOther)

    def Set(self, theOther):
        return _Select3D.Select3D_IndexedMapOfEntity_Set(self, theOther)

    def ReSize(self, theExtent):
        return _Select3D.Select3D_IndexedMapOfEntity_ReSize(self, theExtent)

    def Add(self, theKey1):
        return _Select3D.Select3D_IndexedMapOfEntity_Add(self, theKey1)

    def Contains(self, theKey1):
        return _Select3D.Select3D_IndexedMapOfEntity_Contains(self, theKey1)

    def Substitute(self, theIndex, theKey1):
        return _Select3D.Select3D_IndexedMapOfEntity_Substitute(self, theIndex, theKey1)

    def Swap(self, theIndex1, theIndex2):
        return _Select3D.Select3D_IndexedMapOfEntity_Swap(self, theIndex1, theIndex2)

    def RemoveLast(self):
        return _Select3D.Select3D_IndexedMapOfEntity_RemoveLast(self)

    def RemoveFromIndex(self, theIndex):
        return _Select3D.Select3D_IndexedMapOfEntity_RemoveFromIndex(self, theIndex)

    def RemoveKey(self, theKey1):
        return _Select3D.Select3D_IndexedMapOfEntity_RemoveKey(self, theKey1)

    def FindKey(self, theIndex):
        return _Select3D.Select3D_IndexedMapOfEntity_FindKey(self, theIndex)

    def __call__(self, theIndex):
        return _Select3D.Select3D_IndexedMapOfEntity___call__(self, theIndex)

    def FindIndex(self, theKey1):
        return _Select3D.Select3D_IndexedMapOfEntity_FindIndex(self, theKey1)

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

    def Size(self):
        return _Select3D.Select3D_IndexedMapOfEntity_Size(self)

# Register Select3D_IndexedMapOfEntity in _Select3D:
_Select3D.Select3D_IndexedMapOfEntity_swigregister(Select3D_IndexedMapOfEntity)
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):
        return _Select3D.Select3D_VectorOfHPoly_begin(self)

    def end(self):
        return _Select3D.Select3D_VectorOfHPoly_end(self)

    def cbegin(self):
        return _Select3D.Select3D_VectorOfHPoly_cbegin(self)

    def cend(self):
        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):
        return _Select3D.Select3D_VectorOfHPoly_Length(self)

    def Size(self):
        return _Select3D.Select3D_VectorOfHPoly_Size(self)

    def Lower(self):
        return _Select3D.Select3D_VectorOfHPoly_Lower(self)

    def Upper(self):
        return _Select3D.Select3D_VectorOfHPoly_Upper(self)

    def IsEmpty(self):
        return _Select3D.Select3D_VectorOfHPoly_IsEmpty(self)

    def Assign(self, *args):
        return _Select3D.Select3D_VectorOfHPoly_Assign(self, *args)

    def Set(self, theOther):
        return _Select3D.Select3D_VectorOfHPoly_Set(self, theOther)

    def Append(self, theValue):
        return _Select3D.Select3D_VectorOfHPoly_Append(self, theValue)

    def Appended(self):
        return _Select3D.Select3D_VectorOfHPoly_Appended(self)

    def Value(self, theIndex):
        return _Select3D.Select3D_VectorOfHPoly_Value(self, theIndex)

    def First(self):
        return _Select3D.Select3D_VectorOfHPoly_First(self)

    def ChangeFirst(self):
        return _Select3D.Select3D_VectorOfHPoly_ChangeFirst(self)

    def Last(self):
        return _Select3D.Select3D_VectorOfHPoly_Last(self)

    def ChangeLast(self):
        return _Select3D.Select3D_VectorOfHPoly_ChangeLast(self)

    def __call__(self, *args):
        return _Select3D.Select3D_VectorOfHPoly___call__(self, *args)

    def ChangeValue(self, theIndex):
        return _Select3D.Select3D_VectorOfHPoly_ChangeValue(self, theIndex)

    def SetValue(self, theIndex, theValue):
        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"""

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

        Return
        -------
        None

        Description
        -----------
        Empty constructor.

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

    def HasPatches(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        No available documentation.

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

    def Index(self, *args):
        r"""

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

        Return
        -------
        int

        Description
        -----------
        Access index at specified position.

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

    def Init(self, *args):
        r"""

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

        Return
        -------
        bool

        Description
        -----------
        Allocates new empty index array.

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

    def PatchSize(self, *args):
        r"""

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

        Return
        -------
        int

        Description
        -----------
        Access index at specified position.

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

    def SetIndex(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Change index at specified position.

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

        Return
        -------
        None

        Description
        -----------
        Change index at specified position.

        """
        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"""

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

        Return
        -------
        None

        Description
        -----------
        No available documentation.

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

    def Pnt(self, *args):
        r"""

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

        Return
        -------
        Select3D_Pnt

        Description
        -----------
        No available documentation.

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

    def Pnt3d(self, *args):
        r"""

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

        Return
        -------
        gp_Pnt

        Description
        -----------
        No available documentation.

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

    def SetPnt(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        No available documentation.

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

        Return
        -------
        None

        Description
        -----------
        No available documentation.

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

    def Size(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        No available documentation.

        """
        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"""

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

        Return
        -------
        None

        Description
        -----------
        Constructs a sensitive box object defined by the owner theownerid, and the box thebox.

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

        Return
        -------
        None

        Description
        -----------
        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.

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

    def BoundingBox(self, *args):
        r"""
        Return
        -------
        Select3D_BndBox3d

        Description
        -----------
        Returns coordinates of the box. if location transformation is set, it will be applied.

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

    def CenterOfGeometry(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns center of the box. if location transformation is set, it will be applied.

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

    def DumpJsonToString(self, depth=-1):
        r"""Json string serializer.Json string serializer."""
        return _Select3D.Select3D_SensitiveBox_DumpJsonToString(self, depth)

    def GetConnected(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        Description
        -----------
        No available documentation.

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

    def Matches(self, *args):
        r"""

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

        Return
        -------
        bool

        Description
        -----------
        Checks whether the box overlaps current selecting volume.

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

    def NbSubElements(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the amount of sub-entities in sensitive.

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

    def ToBuildBVH(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if bvh tree is in invalidated state.

        """
        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_SensitiveCylinder(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"""

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        theBottomRad: float
        theTopRad: float
        theHeight: float
        theTrsf: gp_Trsf
        theIsHollow: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        Constructs a sensitive cylinder object defined by the owner theownerid, @param[in] thebottomrad cylinder bottom radius @param[in] thetoprad cylinder top radius @param[in] theheight cylinder height.

        """
        _Select3D.Select3D_SensitiveCylinder_swiginit(self, _Select3D.new_Select3D_SensitiveCylinder(*args))

    def BottomRadius(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns cylinder bottom radius.

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

    def BoundingBox(self, *args):
        r"""
        Return
        -------
        Select3D_BndBox3d

        Description
        -----------
        Returns bounding box of the cylinder. if location transformation is set, it will be applied.

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

    def CenterOfGeometry(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns center of the cylinder with transformation applied.

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

    def Height(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns cylinder height.

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

    def IsHollow(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if the cylinder is empty inside.

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

    def Matches(self, *args):
        r"""

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

        Return
        -------
        bool

        Description
        -----------
        Checks whether the cylinder overlaps current selecting volume.

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

    def NbSubElements(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the amount of points.

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

    def ToBuildBVH(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Always returns standard_false.

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

    def TopRadius(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns cylinder top radius.

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

    def Transformation(self, *args):
        r"""
        Return
        -------
        gp_Trsf

        Description
        -----------
        Returns cylinder transformation.

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


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_SensitiveCylinder

# Register Select3D_SensitiveCylinder in _Select3D:
_Select3D.Select3D_SensitiveCylinder_swigregister(Select3D_SensitiveCylinder)
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"""

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

        Return
        -------
        None

        Description
        -----------
        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

        Return
        -------
        None

        Description
        -----------
        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.

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

    def BVH(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        Builds bvh tree for the face.

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

    def BoundingBox(self, *args):
        r"""
        Return
        -------
        Select3D_BndBox3d

        Description
        -----------
        Returns bounding box of the face. if location transformation is set, it will be applied.

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

    def CenterOfGeometry(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns center of the face. if location transformation is set, it will be applied.

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

    def DumpJsonToString(self, depth=-1):
        r"""Json string serializer.Json string serializer."""
        return _Select3D.Select3D_SensitiveFace_DumpJsonToString(self, depth)

    def GetConnected(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        Description
        -----------
        No available documentation.

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

    def GetPoints(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Initializes the given array theharrayofpnt by 3d coordinates of vertices of the face.

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

    def Matches(self, *args):
        r"""

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

        Return
        -------
        bool

        Description
        -----------
        Checks whether the face overlaps current selecting volume.

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

    def NbSubElements(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the amount of sub-entities (points or planar convex polygons).

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

    def ToBuildBVH(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if bvh tree is in invalidated state.

        """
        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"""

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

        Return
        -------
        None

        Description
        -----------
        Constructs a sensitive point object defined by the owner ownerid and the point point.

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

    def BoundingBox(self, *args):
        r"""
        Return
        -------
        Select3D_BndBox3d

        Description
        -----------
        Returns bounding box of the point. if location transformation is set, it will be applied.

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

    def CenterOfGeometry(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns center of point. if location transformation is set, it will be applied.

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

    def DumpJsonToString(self, depth=-1):
        r"""Json string serializer.Json string serializer."""
        return _Select3D.Select3D_SensitivePoint_DumpJsonToString(self, depth)

    def GetConnected(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        Description
        -----------
        No available documentation.

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

    def Matches(self, *args):
        r"""

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

        Return
        -------
        bool

        Description
        -----------
        Checks whether the point overlaps current selecting volume.

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

    def NbSubElements(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the amount of sub-entities in sensitive.

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

    def Point(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns the point used at the time of construction.

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

    def ToBuildBVH(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if bvh tree is in invalidated state.

        """
        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"""

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

        Return
        -------
        None

        Description
        -----------
        Constructs the sensitive segment object defined by the owner theownerid, the points thefirstpnt, thelastpnt.

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

    def BoundingBox(self, *args):
        r"""
        Return
        -------
        Select3D_BndBox3d

        Description
        -----------
        Returns bounding box of the segment. if location transformation is set, it will be applied.

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

    def CenterOfGeometry(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns center of the segment. if location transformation is set, it will be applied.

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

    def DumpJsonToString(self, depth=-1):
        r"""Json string serializer.Json string serializer."""
        return _Select3D.Select3D_SensitiveSegment_DumpJsonToString(self, depth)

    def EndPoint(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Gives the 3d end point of the segment.

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

        Return
        -------
        None

        Description
        -----------
        Changes the end point of the segment.

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

    def GetConnected(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        Description
        -----------
        No available documentation.

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

    def Matches(self, *args):
        r"""

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

        Return
        -------
        bool

        Description
        -----------
        Checks whether the segment overlaps current selecting volume.

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

    def NbSubElements(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the amount of points.

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

    def SetEndPoint(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Changes the end point of the segment.

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

    def SetStartPoint(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Changes the start point of the segment;.

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

    def StartPoint(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Gives the 3d start point of the segment.

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

        Return
        -------
        None

        Description
        -----------
        Changes the start point of the segment;.

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

    def ToBuildBVH(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if bvh tree is in invalidated state.

        """
        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_SensitiveSphere(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"""

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        theCenter: gp_Pnt
        theRadius: float

        Return
        -------
        None

        Description
        -----------
        Constructs a sensitive sphere object defined by the owner theownerid, the center of the sphere and it's radius.

        """
        _Select3D.Select3D_SensitiveSphere_swiginit(self, _Select3D.new_Select3D_SensitiveSphere(*args))

    def BoundingBox(self, *args):
        r"""
        Return
        -------
        Select3D_BndBox3d

        Description
        -----------
        Returns bounding box of the sphere. if location transformation is set, it will be applied.

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

    def CenterOfGeometry(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns center of the sphere with transformation applied.

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

    def GetConnected(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        Description
        -----------
        Returns the copy of this.

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

    def LastDetectedPoint(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns the position of detected point on the sphere.

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

    def Matches(self, *args):
        r"""

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

        Return
        -------
        bool

        Description
        -----------
        Checks whether the sphere overlaps current selecting volume.

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

    def NbSubElements(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the amount of points.

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

    def Radius(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the radius of the sphere.

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

    def ResetLastDetectedPoint(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        Invalidate the position of detected point on the sphere.

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

    def ToBuildBVH(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Always returns standard_false.

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


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_SensitiveSphere

# Register Select3D_SensitiveSphere in _Select3D:
_Select3D.Select3D_SensitiveSphere_swigregister(Select3D_SensitiveSphere)
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"""

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        thePnt0: gp_Pnt
        thePnt1: gp_Pnt
        thePnt2: gp_Pnt
        theType: Select3D_TypeOfSensitivity (optional, default to Select3D_TOS_INTERIOR)

        Return
        -------
        None

        Description
        -----------
        Constructs a sensitive triangle object defined by the owner theownerid, the points p1, p2, p3, and the type of sensitivity sensitivity.

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

    def BoundingBox(self, *args):
        r"""
        Return
        -------
        Select3D_BndBox3d

        Description
        -----------
        Returns bounding box of the triangle. if location transformation is set, it will be applied.

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

    def Center3D(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns the center point of the sensitive triangle created at construction time.

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

    def CenterOfGeometry(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        No available documentation.

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

    def DumpJsonToString(self, depth=-1):
        r"""Json string serializer.Json string serializer."""
        return _Select3D.Select3D_SensitiveTriangle_DumpJsonToString(self, depth)

    def GetConnected(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        Description
        -----------
        Returns the copy of this.

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

    def Matches(self, *args):
        r"""

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

        Return
        -------
        bool

        Description
        -----------
        Checks whether the triangle overlaps current selecting volume.

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

    def NbSubElements(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the amount of points.

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

    def Points3D(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Returns the 3d points p1, p2, p3 used at the time of construction.

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

    def ToBuildBVH(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if bvh tree is in invalidated state.

        """
        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"""

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

        Return
        -------
        None

        Description
        -----------
        Splits the given point set thepoints onto planar convex polygons.

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

    def BoundingBox(self, *args):
        r"""
        Return
        -------
        Select3D_BndBox3d

        Description
        -----------
        Returns bounding box of the point set. if location transformation is set, it will be applied.

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

    def Box(self, *args):
        r"""

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

        Return
        -------
        Select3D_BndBox3d

        Description
        -----------
        Returns bounding box of planar convex polygon with index theidx.

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

    def Center(self, *args):
        r"""

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

        Return
        -------
        float

        Description
        -----------
        Returns geometry center of planar convex polygon with index theidx in the vector along the given axis theaxis.

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

    def CenterOfGeometry(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns center of the point set. if location transformation is set, it will be applied.

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

    def DumpJsonToString(self, depth=-1):
        r"""Json string serializer.Json string serializer."""
        return _Select3D.Select3D_InteriorSensitivePointSet_DumpJsonToString(self, depth)

    def GetPoints(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Initializes the given array theharrayofpnt by 3d coordinates of vertices of the whole point set.

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

    def NbSubElements(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the amount of points in set.

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

    def Size(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the length of vector of planar convex polygons.

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

    def Swap(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Swaps items with indexes theidx1 and theidx2 in the vector.

        """
        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"""

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        theIsMustMatchAll: bool (optional, default to Standard_True)

        Return
        -------
        None

        Description
        -----------
        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
        theEntities: Select3D_EntitySequence
        theIsMustMatchAll: bool (optional, default to Standard_True)

        Return
        -------
        None

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

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

    def Add(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Adds the list of sensitive entities ll to the empty sensitive group object created at construction time.

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

        Return
        -------
        None

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

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

    def BoundingBox(self, *args):
        r"""
        Return
        -------
        Select3D_BndBox3d

        Description
        -----------
        Returns bounding box of the group. if location transformation is set, it will be applied.

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

    def Box(self, *args):
        r"""

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

        Return
        -------
        Select3D_BndBox3d

        Description
        -----------
        Returns bounding box of sensitive entity with index theidx.

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

    def Center(self, *args):
        r"""

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

        Return
        -------
        float

        Description
        -----------
        Returns geometry center of sensitive entity index theidx in the vector along the given axis theaxis.

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

    def CenterOfGeometry(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns center of entity set. if location transformation is set, it will be applied.

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

    def Clear(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        Removes all sensitive entities from the list used at the time of construction, or added using the function add.

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

    def DumpJsonToString(self, depth=-1):
        r"""Json string serializer.Json string serializer."""
        return _Select3D.Select3D_SensitiveGroup_DumpJsonToString(self, depth)

    def Entities(self, *args):
        r"""
        Return
        -------
        Select3D_IndexedMapOfEntity

        Description
        -----------
        Gets group content.

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

    def GetConnected(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        Description
        -----------
        No available documentation.

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

    def IsIn(self, *args):
        r"""

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

        Return
        -------
        bool

        Description
        -----------
        Returns true if the sensitive entity asensitive is in the list used at the time of construction, or added using the function add.

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

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

        Description
        -----------
        Return last detected entity.

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

    def LastDetectedEntityIndex(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Return index of last detected entity.

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

    def Matches(self, *args):
        r"""

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

        Return
        -------
        bool

        Description
        -----------
        Checks whether the group overlaps current selecting volume.

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

    def MustMatchAll(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if all sensitive entities in the list used at the time of construction, or added using the function add must be matched.

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

    def NbSubElements(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the amount of sub-entities.

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

    def Remove(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        No available documentation.

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

    def Set(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Sets the owner for all entities in group.

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

    def SetCheckOverlapAll(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        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.

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

    def SetMatchType(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        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.

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

    def Size(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the length of vector of sensitive entities.

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

    def SubEntity(self, *args):
        r"""

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

        Return
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        Description
        -----------
        Access entity by index [1, nbsubelements()].

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

    def Swap(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Swaps items with indexes theidx1 and theidx2 in the vector.

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

    def ToCheckOverlapAll(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        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.

        """
        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"""

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

        Return
        -------
        None

        Description
        -----------
        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

        Return
        -------
        None

        Description
        -----------
        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
        theCircle: gp_Circ
        theU1: float
        theU2: float
        theIsFilled: bool (optional, default to Standard_False)
        theNbPnts: int (optional, default to 12)

        Return
        -------
        None

        Description
        -----------
        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
        theIsBVHEnabled: bool
        theNbPnts: int (optional, default to 6)

        Return
        -------
        None

        Description
        -----------
        Constructs a sensitive curve or arc object defined by the owner theownerid, the theisbvhenabled flag, and the maximum number of points on the curve: thenbpnts.

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

    def ArrayBounds(self, *args):
        r"""

        Parameters
        ----------

        Return
        -------
        theLow: int
        theUp: int

        Description
        -----------
        Return array bounds.

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

    def BoundingBox(self, *args):
        r"""
        Return
        -------
        Select3D_BndBox3d

        Description
        -----------
        Returns bounding box of a polygon. if location transformation is set, it will be applied.

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

    def Box(self, *args):
        r"""

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

        Return
        -------
        Select3D_BndBox3d

        Description
        -----------
        Returns bounding box of segment with index theidx.

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

    def Center(self, *args):
        r"""

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

        Return
        -------
        float

        Description
        -----------
        Returns geometry center of sensitive entity index theidx in the vector along the given axis theaxis.

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

    def CenterOfGeometry(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns center of the point set. if location transformation is set, it will be applied.

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

    def DumpJsonToString(self, depth=-1):
        r"""Json string serializer.Json string serializer."""
        return _Select3D.Select3D_SensitivePoly_DumpJsonToString(self, depth)

    def GetPoint3d(self, *args):
        r"""

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

        Return
        -------
        gp_Pnt

        Description
        -----------
        Return point.

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

    def Matches(self, *args):
        r"""

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

        Return
        -------
        bool

        Description
        -----------
        Checks whether the poly overlaps current selecting volume.

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

    def NbSubElements(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the amount of segments in poly.

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

    def Points3D(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Returns the 3d points of the array used at construction time.

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

    def Size(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the amount of segments of the poly.

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

    def Swap(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Swaps items with indexes theidx1 and theidx2 in the vector.

        """
        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"""

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

        Return
        -------
        None

        Description
        -----------
        Constructs an empty sensitive object.

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

    def BVH(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        Builds bvh tree for sensitive set.

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

    def BoundingBox(self, *args):
        r"""
        Return
        -------
        Select3D_BndBox3d

        Description
        -----------
        Returns bounding box of the triangulation. if location transformation is set, it will be applied.

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

    def Box(self, *args):
        r"""

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

        Return
        -------
        Select3D_BndBox3d

        Description
        -----------
        Returns bounding box of triangle/edge with index theidx.

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

    def Center(self, *args):
        r"""

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

        Return
        -------
        float

        Description
        -----------
        Returns geometry center of triangle/edge with index theidx in array along the given axis theaxis.

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

    def CenterOfGeometry(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns center of triangulation. if location transformation is set, it will be applied.

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

    def DumpJsonToString(self, depth=-1):
        r"""Json string serializer.Json string serializer."""
        return _Select3D.Select3D_SensitivePrimitiveArray_DumpJsonToString(self, depth)

    def GetConnected(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        Description
        -----------
        No available documentation.

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

    def HasInitLocation(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if the shape corresponding to the entity has init location.

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

    def InitPoints(self, *args):
        r"""

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

        Return
        -------
        bool

        Description
        -----------
        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
        theToEvalMinMax: bool (optional, default to true)
        theNbGroups: int (optional, default to 1)

        Return
        -------
        bool

        Description
        -----------
        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
        theInitLoc: TopLoc_Location
        theToEvalMinMax: bool (optional, default to true)
        theNbGroups: int (optional, default to 1)

        Return
        -------
        bool

        Description
        -----------
        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.

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

    def InitTriangulation(self, *args):
        r"""

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

        Return
        -------
        bool

        Description
        -----------
        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
        theToEvalMinMax: bool (optional, default to true)
        theNbGroups: int (optional, default to 1)

        Return
        -------
        bool

        Description
        -----------
        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.

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

    def InvInitLocation(self, *args):
        r"""
        Return
        -------
        gp_GTrsf

        Description
        -----------
        Returns inversed location transformation matrix if the shape corresponding to this entity has init location set. otherwise, returns identity matrix.

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

    def LastDetectedEdgeNode1(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Return the first node of last topmost detected edge or -1 if undefined (axis picking).

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

    def LastDetectedEdgeNode2(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Return the second node of last topmost detected edge or -1 if undefined (axis picking).

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

    def LastDetectedElement(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Return last topmost detected element or -1 if undefined (axis picking).

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

    def LastDetectedElementMap(self, *args):
        r"""
        Return
        -------
        opencascade::handle<TColStd_HPackedMapOfInteger>

        Description
        -----------
        Return the index map of last detected elements (rectangle selection).

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

    def LastDetectedNode(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Return last topmost detected node or -1 if undefined (axis picking).

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

    def LastDetectedNodeMap(self, *args):
        r"""
        Return
        -------
        opencascade::handle<TColStd_HPackedMapOfInteger>

        Description
        -----------
        Return the index map of last detected nodes (rectangle selection).

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

    def Matches(self, *args):
        r"""

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

        Return
        -------
        bool

        Description
        -----------
        Checks whether the sensitive entity is overlapped by current selecting volume.

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

    def NbSubElements(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the amount of nodes in triangulation.

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

    def PatchDistance(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Maximum allowed distance between consequential elements in patch (shortreallast() by default). has no effect on indexed triangulation.

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

    def PatchSizeMax(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Return patch size limit (1 by default).

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

    def Set(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Sets the owner for all entities in group.

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

    def SetDetectEdges(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Setup keeping of the index of last topmost detected edge (axis picking).

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

    def SetDetectElementMap(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Setup keeping of the index map of last detected elements (rectangle selection).

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

    def SetDetectElements(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Setup keeping of the index of last topmost detected element (axis picking).

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

    def SetDetectNodeMap(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Setup keeping of the index map of last detected nodes (rectangle selection).

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

    def SetDetectNodes(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Setup keeping of the index of last topmost detected node (for axis picking).

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

    def SetMinMax(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Assign new not transformed bounding box.

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

    def SetPatchDistance(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Assign patch distance limit. should be set before initialization.

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

    def SetPatchSizeMax(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Assign patch size limit. should be set before initialization.

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

    def Size(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the length of array of triangles or edges.

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

    def Swap(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Swaps items with indexes theidx1 and theidx2 in array.

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

    def ToDetectEdges(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Return flag to keep index of last topmost detected edge, false by default.

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

    def ToDetectElementMap(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Return flag to keep index map of last detected elements, false by default (rectangle selection).

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

    def ToDetectElements(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Return flag to keep index of last topmost detected element, true by default.

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

    def ToDetectNodeMap(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Return flag to keep index map of last detected nodes, false by default (rectangle selection).

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

    def ToDetectNodes(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Return flag to keep index of last topmost detected node, false by default.

        """
        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"""

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

        Return
        -------
        None

        Description
        -----------
        Constructs a sensitive wire object defined by the owner theownerid.

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

    def Add(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Adds the sensitive entity thesensitive to this framework.

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

    def BoundingBox(self, *args):
        r"""
        Return
        -------
        Select3D_BndBox3d

        Description
        -----------
        Returns bounding box of the wire. if location transformation is set, it will be applied.

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

    def Box(self, *args):
        r"""

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

        Return
        -------
        Select3D_BndBox3d

        Description
        -----------
        Returns bounding box of sensitive entity with index theidx.

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

    def Center(self, *args):
        r"""

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

        Return
        -------
        float

        Description
        -----------
        Returns geometry center of sensitive entity index theidx in the vector along the given axis theaxis.

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

    def CenterOfGeometry(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns center of the wire. if location transformation is set, it will be applied.

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

    def DumpJsonToString(self, depth=-1):
        r"""Json string serializer.Json string serializer."""
        return _Select3D.Select3D_SensitiveWire_DumpJsonToString(self, depth)

    def GetConnected(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        Description
        -----------
        No available documentation.

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

    def GetEdges(self, *args):
        r"""
        Return
        -------
        NCollection_Vector<opencascade::handle<Select3D_SensitiveEntity>>

        Description
        -----------
        Returns the sensitive edges stored in this wire.

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

    def GetLastDetected(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        Description
        -----------
        No available documentation.

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

    def NbSubElements(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the amount of sub-entities.

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

    def Set(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Sets the owner for all entities in wire.

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

    def Size(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the length of vector of sensitive entities.

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

    def Swap(self, *args):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Swaps items with indexes theidx1 and theidx2 in the vector.

        """
        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_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"""

        Parameters
        ----------
        theOwnerId: SelectMgr_EntityOwner
        theCurve: Geom_Curve
        theNbPnts: int (optional, default to 17)

        Return
        -------
        None

        Description
        -----------
        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
        thePoints: TColgp_HArray1OfPnt

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

    def GetConnected(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Select3D_SensitiveEntity>

        Description
        -----------
        Returns the copy of this.

        """
        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

@classnotwrapped
class Select3D_SensitiveCircle:
	pass



SelectBasics_SensitiveEntity=Select3D_SensitiveEntity


