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

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

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

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

_swig_new_instance_method = _Select3D.SWIG_PyInstanceMethod_New
_swig_new_static_method = _Select3D.SWIG_PyStaticMethod_New

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


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


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


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


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


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

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _Select3D.delete_SwigPyIterator
    value = _swig_new_instance_method(_Select3D.SwigPyIterator_value)
    incr = _swig_new_instance_method(_Select3D.SwigPyIterator_incr)
    decr = _swig_new_instance_method(_Select3D.SwigPyIterator_decr)
    distance = _swig_new_instance_method(_Select3D.SwigPyIterator_distance)
    equal = _swig_new_instance_method(_Select3D.SwigPyIterator_equal)
    copy = _swig_new_instance_method(_Select3D.SwigPyIterator_copy)
    next = _swig_new_instance_method(_Select3D.SwigPyIterator_next)
    __next__ = _swig_new_instance_method(_Select3D.SwigPyIterator___next__)
    previous = _swig_new_instance_method(_Select3D.SwigPyIterator_previous)
    advance = _swig_new_instance_method(_Select3D.SwigPyIterator_advance)
    __eq__ = _swig_new_instance_method(_Select3D.SwigPyIterator___eq__)
    __ne__ = _swig_new_instance_method(_Select3D.SwigPyIterator___ne__)
    __iadd__ = _swig_new_instance_method(_Select3D.SwigPyIterator___iadd__)
    __isub__ = _swig_new_instance_method(_Select3D.SwigPyIterator___isub__)
    __add__ = _swig_new_instance_method(_Select3D.SwigPyIterator___add__)
    __sub__ = _swig_new_instance_method(_Select3D.SwigPyIterator___sub__)
    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


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.Aspect
import OCC.Core.Geom
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.TColStd
import OCC.Core.Bnd
import OCC.Core.Image
import OCC.Core.OSD
import OCC.Core.SelectBasics
import OCC.Core.SelectMgr
import OCC.Core.PrsMgr
import OCC.Core.Prs3d
import OCC.Core.TopoDS
import OCC.Core.Message
import OCC.Core.TopAbs
import OCC.Core.TopLoc
import OCC.Core.HLRAlgo
import OCC.Core.Poly
import OCC.Core.TShort
import OCC.Core.TopTools
import OCC.Core.V3d
Select3D_TOS_INTERIOR = _Select3D.Select3D_TOS_INTERIOR
Select3D_TOS_BOUNDARY = _Select3D.Select3D_TOS_BOUNDARY
Handle_Select3D_BVHIndexBuffer_Create = _Select3D.Handle_Select3D_BVHIndexBuffer_Create
Handle_Select3D_BVHIndexBuffer_DownCast = _Select3D.Handle_Select3D_BVHIndexBuffer_DownCast
Handle_Select3D_BVHIndexBuffer_IsNull = _Select3D.Handle_Select3D_BVHIndexBuffer_IsNull
Handle_Select3D_SensitiveBox_Create = _Select3D.Handle_Select3D_SensitiveBox_Create
Handle_Select3D_SensitiveBox_DownCast = _Select3D.Handle_Select3D_SensitiveBox_DownCast
Handle_Select3D_SensitiveBox_IsNull = _Select3D.Handle_Select3D_SensitiveBox_IsNull
Handle_Select3D_SensitiveFace_Create = _Select3D.Handle_Select3D_SensitiveFace_Create
Handle_Select3D_SensitiveFace_DownCast = _Select3D.Handle_Select3D_SensitiveFace_DownCast
Handle_Select3D_SensitiveFace_IsNull = _Select3D.Handle_Select3D_SensitiveFace_IsNull
Handle_Select3D_SensitivePoint_Create = _Select3D.Handle_Select3D_SensitivePoint_Create
Handle_Select3D_SensitivePoint_DownCast = _Select3D.Handle_Select3D_SensitivePoint_DownCast
Handle_Select3D_SensitivePoint_IsNull = _Select3D.Handle_Select3D_SensitivePoint_IsNull
Handle_Select3D_SensitiveSegment_Create = _Select3D.Handle_Select3D_SensitiveSegment_Create
Handle_Select3D_SensitiveSegment_DownCast = _Select3D.Handle_Select3D_SensitiveSegment_DownCast
Handle_Select3D_SensitiveSegment_IsNull = _Select3D.Handle_Select3D_SensitiveSegment_IsNull
Handle_Select3D_SensitiveTriangle_Create = _Select3D.Handle_Select3D_SensitiveTriangle_Create
Handle_Select3D_SensitiveTriangle_DownCast = _Select3D.Handle_Select3D_SensitiveTriangle_DownCast
Handle_Select3D_SensitiveTriangle_IsNull = _Select3D.Handle_Select3D_SensitiveTriangle_IsNull
Handle_Select3D_InteriorSensitivePointSet_Create = _Select3D.Handle_Select3D_InteriorSensitivePointSet_Create
Handle_Select3D_InteriorSensitivePointSet_DownCast = _Select3D.Handle_Select3D_InteriorSensitivePointSet_DownCast
Handle_Select3D_InteriorSensitivePointSet_IsNull = _Select3D.Handle_Select3D_InteriorSensitivePointSet_IsNull
Handle_Select3D_SensitiveGroup_Create = _Select3D.Handle_Select3D_SensitiveGroup_Create
Handle_Select3D_SensitiveGroup_DownCast = _Select3D.Handle_Select3D_SensitiveGroup_DownCast
Handle_Select3D_SensitiveGroup_IsNull = _Select3D.Handle_Select3D_SensitiveGroup_IsNull
Handle_Select3D_SensitivePoly_Create = _Select3D.Handle_Select3D_SensitivePoly_Create
Handle_Select3D_SensitivePoly_DownCast = _Select3D.Handle_Select3D_SensitivePoly_DownCast
Handle_Select3D_SensitivePoly_IsNull = _Select3D.Handle_Select3D_SensitivePoly_IsNull
Handle_Select3D_SensitivePrimitiveArray_Create = _Select3D.Handle_Select3D_SensitivePrimitiveArray_Create
Handle_Select3D_SensitivePrimitiveArray_DownCast = _Select3D.Handle_Select3D_SensitivePrimitiveArray_DownCast
Handle_Select3D_SensitivePrimitiveArray_IsNull = _Select3D.Handle_Select3D_SensitivePrimitiveArray_IsNull
Handle_Select3D_SensitiveWire_Create = _Select3D.Handle_Select3D_SensitiveWire_Create
Handle_Select3D_SensitiveWire_DownCast = _Select3D.Handle_Select3D_SensitiveWire_DownCast
Handle_Select3D_SensitiveWire_IsNull = _Select3D.Handle_Select3D_SensitiveWire_IsNull
Handle_Select3D_SensitiveCircle_Create = _Select3D.Handle_Select3D_SensitiveCircle_Create
Handle_Select3D_SensitiveCircle_DownCast = _Select3D.Handle_Select3D_SensitiveCircle_DownCast
Handle_Select3D_SensitiveCircle_IsNull = _Select3D.Handle_Select3D_SensitiveCircle_IsNull
Handle_Select3D_SensitiveCurve_Create = _Select3D.Handle_Select3D_SensitiveCurve_Create
Handle_Select3D_SensitiveCurve_DownCast = _Select3D.Handle_Select3D_SensitiveCurve_DownCast
Handle_Select3D_SensitiveCurve_IsNull = _Select3D.Handle_Select3D_SensitiveCurve_IsNull
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
    begin = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_begin)
    end = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_end)
    cbegin = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_cbegin)
    cend = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_cend)

    def __init__(self, *args):
        _Select3D.Select3D_EntitySequence_swiginit(self, _Select3D.new_Select3D_EntitySequence(*args))
    Size = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_Size)
    Length = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_Length)
    Lower = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_Lower)
    Upper = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_Upper)
    IsEmpty = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_IsEmpty)
    Reverse = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_Reverse)
    Exchange = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_Exchange)
    delNode = _swig_new_static_method(_Select3D.Select3D_EntitySequence_delNode)
    Clear = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_Clear)
    Assign = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_Assign)
    Set = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_Set)
    Remove = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_Remove)
    Append = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_Append)
    Prepend = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_Prepend)
    InsertBefore = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_InsertBefore)
    InsertAfter = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_InsertAfter)
    Split = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_Split)
    First = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_First)
    ChangeFirst = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_ChangeFirst)
    Last = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_Last)
    ChangeLast = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_ChangeLast)
    Value = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_Value)
    ChangeValue = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_ChangeValue)
    __call__ = _swig_new_instance_method(_Select3D.Select3D_EntitySequence___call__)
    SetValue = _swig_new_instance_method(_Select3D.Select3D_EntitySequence_SetValue)
    __swig_destroy__ = _Select3D.delete_Select3D_EntitySequence

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

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))
    More = _swig_new_instance_method(_Select3D.Select3D_EntitySequenceIter_More)
    Next = _swig_new_instance_method(_Select3D.Select3D_EntitySequenceIter_Next)
    Value = _swig_new_instance_method(_Select3D.Select3D_EntitySequenceIter_Value)
    ChangeValue = _swig_new_instance_method(_Select3D.Select3D_EntitySequenceIter_ChangeValue)
    __swig_destroy__ = _Select3D.delete_Select3D_EntitySequenceIter

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

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
    begin = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_begin)
    end = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_end)
    cbegin = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_cbegin)
    cend = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_cend)

    def __init__(self, *args):
        _Select3D.Select3D_VectorOfHPoly_swiginit(self, _Select3D.new_Select3D_VectorOfHPoly(*args))
    __swig_destroy__ = _Select3D.delete_Select3D_VectorOfHPoly
    Length = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_Length)
    Size = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_Size)
    Lower = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_Lower)
    Upper = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_Upper)
    IsEmpty = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_IsEmpty)
    Assign = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_Assign)
    Set = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_Set)
    Append = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_Append)
    Appended = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_Appended)
    Value = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_Value)
    First = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_First)
    ChangeFirst = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_ChangeFirst)
    Last = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_Last)
    ChangeLast = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_ChangeLast)
    __call__ = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly___call__)
    ChangeValue = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_ChangeValue)
    SetValue = _swig_new_instance_method(_Select3D.Select3D_VectorOfHPoly_SetValue)

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

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

    def __init__(self, *args):
        _Select3D.Select3D_Vec3_swiginit(self, _Select3D.new_Select3D_Vec3(*args))
    SetValues = _swig_new_instance_method(_Select3D.Select3D_Vec3_SetValues)
    xy = _swig_new_instance_method(_Select3D.Select3D_Vec3_xy)
    yx = _swig_new_instance_method(_Select3D.Select3D_Vec3_yx)
    xz = _swig_new_instance_method(_Select3D.Select3D_Vec3_xz)
    zx = _swig_new_instance_method(_Select3D.Select3D_Vec3_zx)
    yz = _swig_new_instance_method(_Select3D.Select3D_Vec3_yz)
    zy = _swig_new_instance_method(_Select3D.Select3D_Vec3_zy)
    xyz = _swig_new_instance_method(_Select3D.Select3D_Vec3_xyz)
    xzy = _swig_new_instance_method(_Select3D.Select3D_Vec3_xzy)
    yxz = _swig_new_instance_method(_Select3D.Select3D_Vec3_yxz)
    yzx = _swig_new_instance_method(_Select3D.Select3D_Vec3_yzx)
    zyx = _swig_new_instance_method(_Select3D.Select3D_Vec3_zyx)
    zxy = _swig_new_instance_method(_Select3D.Select3D_Vec3_zxy)
    x = _swig_new_instance_method(_Select3D.Select3D_Vec3_x)
    r = _swig_new_instance_method(_Select3D.Select3D_Vec3_r)
    y = _swig_new_instance_method(_Select3D.Select3D_Vec3_y)
    g = _swig_new_instance_method(_Select3D.Select3D_Vec3_g)
    z = _swig_new_instance_method(_Select3D.Select3D_Vec3_z)
    b = _swig_new_instance_method(_Select3D.Select3D_Vec3_b)
    IsEqual = _swig_new_instance_method(_Select3D.Select3D_Vec3_IsEqual)
    __eq__ = _swig_new_instance_method(_Select3D.Select3D_Vec3___eq__)
    __ne__ = _swig_new_instance_method(_Select3D.Select3D_Vec3___ne__)
    GetData = _swig_new_instance_method(_Select3D.Select3D_Vec3_GetData)
    ChangeData = _swig_new_instance_method(_Select3D.Select3D_Vec3_ChangeData)
    __iadd__ = _swig_new_instance_method(_Select3D.Select3D_Vec3___iadd__)
    __neg__ = _swig_new_instance_method(_Select3D.Select3D_Vec3___neg__)
    __isub__ = _swig_new_instance_method(_Select3D.Select3D_Vec3___isub__)
    Multiply = _swig_new_instance_method(_Select3D.Select3D_Vec3_Multiply)
    __imul__ = _swig_new_instance_method(_Select3D.Select3D_Vec3___imul__)
    __mul__ = _swig_new_instance_method(_Select3D.Select3D_Vec3___mul__)
    Multiplied = _swig_new_instance_method(_Select3D.Select3D_Vec3_Multiplied)
    cwiseMin = _swig_new_instance_method(_Select3D.Select3D_Vec3_cwiseMin)
    cwiseMax = _swig_new_instance_method(_Select3D.Select3D_Vec3_cwiseMax)
    cwiseAbs = _swig_new_instance_method(_Select3D.Select3D_Vec3_cwiseAbs)
    maxComp = _swig_new_instance_method(_Select3D.Select3D_Vec3_maxComp)
    minComp = _swig_new_instance_method(_Select3D.Select3D_Vec3_minComp)

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



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


    Dot = _swig_new_instance_method(_Select3D.Select3D_Vec3_Dot)
    Modulus = _swig_new_instance_method(_Select3D.Select3D_Vec3_Modulus)
    SquareModulus = _swig_new_instance_method(_Select3D.Select3D_Vec3_SquareModulus)
    Normalize = _swig_new_instance_method(_Select3D.Select3D_Vec3_Normalize)
    Normalized = _swig_new_instance_method(_Select3D.Select3D_Vec3_Normalized)
    Cross = _swig_new_static_method(_Select3D.Select3D_Vec3_Cross)
    GetLERP = _swig_new_static_method(_Select3D.Select3D_Vec3_GetLERP)
    DX = _swig_new_static_method(_Select3D.Select3D_Vec3_DX)
    DY = _swig_new_static_method(_Select3D.Select3D_Vec3_DY)
    DZ = _swig_new_static_method(_Select3D.Select3D_Vec3_DZ)
    __swig_destroy__ = _Select3D.delete_Select3D_Vec3

# Register Select3D_Vec3 in _Select3D:
_Select3D.Select3D_Vec3_swigregister(Select3D_Vec3)
Select3D_Vec3_Length = _Select3D.Select3D_Vec3_Length
Select3D_Vec3_Cross = _Select3D.Select3D_Vec3_Cross
Select3D_Vec3_GetLERP = _Select3D.Select3D_Vec3_GetLERP
Select3D_Vec3_DX = _Select3D.Select3D_Vec3_DX
Select3D_Vec3_DY = _Select3D.Select3D_Vec3_DY
Select3D_Vec3_DZ = _Select3D.Select3D_Vec3_DZ

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
    cbegin = _swig_new_instance_method(_Select3D.Select3D_IndexedMapOfEntity_cbegin)
    cend = _swig_new_instance_method(_Select3D.Select3D_IndexedMapOfEntity_cend)

    def __init__(self, *args):
        _Select3D.Select3D_IndexedMapOfEntity_swiginit(self, _Select3D.new_Select3D_IndexedMapOfEntity(*args))
    Exchange = _swig_new_instance_method(_Select3D.Select3D_IndexedMapOfEntity_Exchange)
    Assign = _swig_new_instance_method(_Select3D.Select3D_IndexedMapOfEntity_Assign)
    Set = _swig_new_instance_method(_Select3D.Select3D_IndexedMapOfEntity_Set)
    ReSize = _swig_new_instance_method(_Select3D.Select3D_IndexedMapOfEntity_ReSize)
    Add = _swig_new_instance_method(_Select3D.Select3D_IndexedMapOfEntity_Add)
    Contains = _swig_new_instance_method(_Select3D.Select3D_IndexedMapOfEntity_Contains)
    Substitute = _swig_new_instance_method(_Select3D.Select3D_IndexedMapOfEntity_Substitute)
    Swap = _swig_new_instance_method(_Select3D.Select3D_IndexedMapOfEntity_Swap)
    RemoveLast = _swig_new_instance_method(_Select3D.Select3D_IndexedMapOfEntity_RemoveLast)
    RemoveFromIndex = _swig_new_instance_method(_Select3D.Select3D_IndexedMapOfEntity_RemoveFromIndex)
    RemoveKey = _swig_new_instance_method(_Select3D.Select3D_IndexedMapOfEntity_RemoveKey)
    FindKey = _swig_new_instance_method(_Select3D.Select3D_IndexedMapOfEntity_FindKey)
    __call__ = _swig_new_instance_method(_Select3D.Select3D_IndexedMapOfEntity___call__)
    FindIndex = _swig_new_instance_method(_Select3D.Select3D_IndexedMapOfEntity_FindIndex)
    Clear = _swig_new_instance_method(_Select3D.Select3D_IndexedMapOfEntity_Clear)
    __swig_destroy__ = _Select3D.delete_Select3D_IndexedMapOfEntity
    Size = _swig_new_instance_method(_Select3D.Select3D_IndexedMapOfEntity_Size)

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

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
    HasPatches = _swig_new_instance_method(_Select3D.Select3D_BVHIndexBuffer_HasPatches)
    Index = _swig_new_instance_method(_Select3D.Select3D_BVHIndexBuffer_Index)
    Init = _swig_new_instance_method(_Select3D.Select3D_BVHIndexBuffer_Init)
    PatchSize = _swig_new_instance_method(_Select3D.Select3D_BVHIndexBuffer_PatchSize)

    def __init__(self, *args):
        r"""
        * Empty constructor.
        	:param theAlloc:
        	:type theAlloc: NCollection_BaseAllocator
        	:rtype: None
        """
        _Select3D.Select3D_BVHIndexBuffer_swiginit(self, _Select3D.new_Select3D_BVHIndexBuffer(*args))
    SetIndex = _swig_new_instance_method(_Select3D.Select3D_BVHIndexBuffer_SetIndex)


    @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)
    Set = _swig_new_instance_method(_Select3D.Select3D_Pnt_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
    Pnt = _swig_new_instance_method(_Select3D.Select3D_PointData_Pnt)
    Pnt3d = _swig_new_instance_method(_Select3D.Select3D_PointData_Pnt3d)

    def __init__(self, *args):
        r"""
        :param theNbPoints:
        	:type theNbPoints: int
        	:rtype: None
        """
        _Select3D.Select3D_PointData_swiginit(self, _Select3D.new_Select3D_PointData(*args))
    SetPnt = _swig_new_instance_method(_Select3D.Select3D_PointData_SetPnt)
    Size = _swig_new_instance_method(_Select3D.Select3D_PointData_Size)

    __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
    BoundingBox = _swig_new_instance_method(_Select3D.Select3D_SensitiveBox_BoundingBox)
    CenterOfGeometry = _swig_new_instance_method(_Select3D.Select3D_SensitiveBox_CenterOfGeometry)
    GetConnected = _swig_new_instance_method(_Select3D.Select3D_SensitiveBox_GetConnected)
    Matches = _swig_new_instance_method(_Select3D.Select3D_SensitiveBox_Matches)
    NbSubElements = _swig_new_instance_method(_Select3D.Select3D_SensitiveBox_NbSubElements)

    def __init__(self, *args):
        r"""
        * Constructs a sensitive box object defined by the owner theOwnerId, and the box theBox.
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param theBox:
        	:type theBox: Bnd_Box
        	:rtype: None* Constructs a sensitive box object defined by the owner theOwnerId, and the coordinates theXmin, theYMin, theZMin, theXMax, theYMax, theZMax. theXmin, theYMin and theZMin define the minimum point in the front lower left hand corner of the box, and theXMax, theYMax and theZMax define the maximum point in the back upper right hand corner of the box.
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param theXMin:
        	:type theXMin: float
        	:param theYMin:
        	:type theYMin: float
        	:param theZMin:
        	:type theZMin: float
        	:param theXMax:
        	:type theXMax: float
        	:param theYMax:
        	:type theYMax: float
        	:param theZMax:
        	:type theZMax: float
        	:rtype: None
        """
        _Select3D.Select3D_SensitiveBox_swiginit(self, _Select3D.new_Select3D_SensitiveBox(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_SensitiveBox

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

class Select3D_SensitiveFace(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    BVH = _swig_new_instance_method(_Select3D.Select3D_SensitiveFace_BVH)
    BoundingBox = _swig_new_instance_method(_Select3D.Select3D_SensitiveFace_BoundingBox)
    CenterOfGeometry = _swig_new_instance_method(_Select3D.Select3D_SensitiveFace_CenterOfGeometry)
    GetConnected = _swig_new_instance_method(_Select3D.Select3D_SensitiveFace_GetConnected)
    GetPoints = _swig_new_instance_method(_Select3D.Select3D_SensitiveFace_GetPoints)
    Matches = _swig_new_instance_method(_Select3D.Select3D_SensitiveFace_Matches)
    NbSubElements = _swig_new_instance_method(_Select3D.Select3D_SensitiveFace_NbSubElements)

    def __init__(self, *args):
        r"""
        * Constructs a sensitive face object defined by the owner theOwnerId, the array of points thePoints, and the sensitivity type theType. The array of points is the outer polygon of the geometric face.
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param thePoints:
        	:type thePoints: TColgp_Array1OfPnt
        	:param theType:
        	:type theType: Select3D_TypeOfSensitivity
        	:rtype: None* Constructs a sensitive face object defined by the owner theOwnerId, the array of points thePoints, and the sensitivity type theType. The array of points is the outer polygon of the geometric face.
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param thePoints:
        	:type thePoints: TColgp_HArray1OfPnt
        	:param theType:
        	:type theType: Select3D_TypeOfSensitivity
        	:rtype: None
        """
        _Select3D.Select3D_SensitiveFace_swiginit(self, _Select3D.new_Select3D_SensitiveFace(*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
    BoundingBox = _swig_new_instance_method(_Select3D.Select3D_SensitivePoint_BoundingBox)
    CenterOfGeometry = _swig_new_instance_method(_Select3D.Select3D_SensitivePoint_CenterOfGeometry)
    GetConnected = _swig_new_instance_method(_Select3D.Select3D_SensitivePoint_GetConnected)
    Matches = _swig_new_instance_method(_Select3D.Select3D_SensitivePoint_Matches)
    NbSubElements = _swig_new_instance_method(_Select3D.Select3D_SensitivePoint_NbSubElements)
    Point = _swig_new_instance_method(_Select3D.Select3D_SensitivePoint_Point)

    def __init__(self, *args):
        r"""
        * Constructs a sensitive point object defined by the owner OwnerId and the point Point.
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param thePoint:
        	:type thePoint: gp_Pnt
        	:rtype: None
        """
        _Select3D.Select3D_SensitivePoint_swiginit(self, _Select3D.new_Select3D_SensitivePoint(*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
    BoundingBox = _swig_new_instance_method(_Select3D.Select3D_SensitiveSegment_BoundingBox)
    CenterOfGeometry = _swig_new_instance_method(_Select3D.Select3D_SensitiveSegment_CenterOfGeometry)
    EndPoint = _swig_new_instance_method(_Select3D.Select3D_SensitiveSegment_EndPoint)
    GetConnected = _swig_new_instance_method(_Select3D.Select3D_SensitiveSegment_GetConnected)
    Matches = _swig_new_instance_method(_Select3D.Select3D_SensitiveSegment_Matches)
    NbSubElements = _swig_new_instance_method(_Select3D.Select3D_SensitiveSegment_NbSubElements)

    def __init__(self, *args):
        r"""
        * Constructs the sensitive segment object defined by the owner theOwnerId, the points theFirstPnt, theLastPnt
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param theFirstPnt:
        	:type theFirstPnt: gp_Pnt
        	:param theLastPnt:
        	:type theLastPnt: gp_Pnt
        	:rtype: None
        """
        _Select3D.Select3D_SensitiveSegment_swiginit(self, _Select3D.new_Select3D_SensitiveSegment(*args))
    SetEndPoint = _swig_new_instance_method(_Select3D.Select3D_SensitiveSegment_SetEndPoint)
    SetStartPoint = _swig_new_instance_method(_Select3D.Select3D_SensitiveSegment_SetStartPoint)
    StartPoint = _swig_new_instance_method(_Select3D.Select3D_SensitiveSegment_StartPoint)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_SensitiveSegment

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

class Select3D_SensitiveTriangle(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    BoundingBox = _swig_new_instance_method(_Select3D.Select3D_SensitiveTriangle_BoundingBox)
    Center3D = _swig_new_instance_method(_Select3D.Select3D_SensitiveTriangle_Center3D)
    CenterOfGeometry = _swig_new_instance_method(_Select3D.Select3D_SensitiveTriangle_CenterOfGeometry)
    GetConnected = _swig_new_instance_method(_Select3D.Select3D_SensitiveTriangle_GetConnected)
    Matches = _swig_new_instance_method(_Select3D.Select3D_SensitiveTriangle_Matches)
    NbSubElements = _swig_new_instance_method(_Select3D.Select3D_SensitiveTriangle_NbSubElements)
    Points3D = _swig_new_instance_method(_Select3D.Select3D_SensitiveTriangle_Points3D)

    def __init__(self, *args):
        r"""
        * Constructs a sensitive triangle object defined by the owner theOwnerId, the points P1, P2, P3, and the type of sensitivity Sensitivity.
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param thePnt0:
        	:type thePnt0: gp_Pnt
        	:param thePnt1:
        	:type thePnt1: gp_Pnt
        	:param thePnt2:
        	:type thePnt2: gp_Pnt
        	:param theType: default value is Select3D_TOS_INTERIOR
        	:type theType: Select3D_TypeOfSensitivity
        	:rtype: None
        """
        _Select3D.Select3D_SensitiveTriangle_swiginit(self, _Select3D.new_Select3D_SensitiveTriangle(*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
    BoundingBox = _swig_new_instance_method(_Select3D.Select3D_InteriorSensitivePointSet_BoundingBox)
    Box = _swig_new_instance_method(_Select3D.Select3D_InteriorSensitivePointSet_Box)
    Center = _swig_new_instance_method(_Select3D.Select3D_InteriorSensitivePointSet_Center)
    CenterOfGeometry = _swig_new_instance_method(_Select3D.Select3D_InteriorSensitivePointSet_CenterOfGeometry)
    GetPoints = _swig_new_instance_method(_Select3D.Select3D_InteriorSensitivePointSet_GetPoints)
    NbSubElements = _swig_new_instance_method(_Select3D.Select3D_InteriorSensitivePointSet_NbSubElements)

    def __init__(self, *args):
        r"""
        * Splits the given point set thePoints onto planar convex polygons
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param thePoints:
        	:type thePoints: TColgp_Array1OfPnt
        	:rtype: None
        """
        _Select3D.Select3D_InteriorSensitivePointSet_swiginit(self, _Select3D.new_Select3D_InteriorSensitivePointSet(*args))
    Size = _swig_new_instance_method(_Select3D.Select3D_InteriorSensitivePointSet_Size)
    Swap = _swig_new_instance_method(_Select3D.Select3D_InteriorSensitivePointSet_Swap)


    @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
    Add = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_Add)
    BoundingBox = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_BoundingBox)
    Box = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_Box)
    Center = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_Center)
    CenterOfGeometry = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_CenterOfGeometry)
    Clear = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_Clear)
    Entities = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_Entities)
    GetConnected = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_GetConnected)
    IsIn = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_IsIn)
    LastDetectedEntity = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_LastDetectedEntity)
    LastDetectedEntityIndex = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_LastDetectedEntityIndex)
    Matches = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_Matches)
    MustMatchAll = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_MustMatchAll)
    NbSubElements = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_NbSubElements)
    Remove = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_Remove)

    def __init__(self, *args):
        r"""
        * Constructs an empty sensitive group object. This is a set of sensitive 3D entities. The sensitive entities will be defined using the function Add to fill the entity owner OwnerId. If MatchAll is false, nothing can be added.
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param theIsMustMatchAll: default value is Standard_True
        	:type theIsMustMatchAll: bool
        	:rtype: None* Constructs a sensitive group object defined by the list TheList and the entity owner OwnerId. If MatchAll is false, nothing is done.
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param theEntities:
        	:type theEntities: Select3D_EntitySequence
        	:param theIsMustMatchAll: default value is Standard_True
        	:type theIsMustMatchAll: bool
        	:rtype: None
        """
        _Select3D.Select3D_SensitiveGroup_swiginit(self, _Select3D.new_Select3D_SensitiveGroup(*args))
    Set = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_Set)
    SetCheckOverlapAll = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_SetCheckOverlapAll)
    SetMatchType = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_SetMatchType)
    Size = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_Size)
    SubEntity = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_SubEntity)
    Swap = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_Swap)
    ToCheckOverlapAll = _swig_new_instance_method(_Select3D.Select3D_SensitiveGroup_ToCheckOverlapAll)


    @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
    BoundingBox = _swig_new_instance_method(_Select3D.Select3D_SensitivePoly_BoundingBox)
    Box = _swig_new_instance_method(_Select3D.Select3D_SensitivePoly_Box)
    Center = _swig_new_instance_method(_Select3D.Select3D_SensitivePoly_Center)
    CenterOfGeometry = _swig_new_instance_method(_Select3D.Select3D_SensitivePoly_CenterOfGeometry)
    NbSubElements = _swig_new_instance_method(_Select3D.Select3D_SensitivePoly_NbSubElements)
    Points3D = _swig_new_instance_method(_Select3D.Select3D_SensitivePoly_Points3D)

    def __init__(self, *args):
        r"""
        * Constructs a sensitive face object defined by the owner OwnerId, the array of points ThePoints, and the sensitivity type Sensitivity. The array of points is the outer polygon of the geometric face.
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param thePoints:
        	:type thePoints: TColgp_Array1OfPnt
        	:param theIsBVHEnabled:
        	:type theIsBVHEnabled: bool
        	:rtype: None* Constructs a sensitive face object defined by the owner OwnerId, the array of points ThePoints, and the sensitivity type Sensitivity. The array of points is the outer polygon of the geometric face.
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param thePoints:
        	:type thePoints: TColgp_HArray1OfPnt
        	:param theIsBVHEnabled:
        	:type theIsBVHEnabled: bool
        	:rtype: None* Constructs the sensitive circle object defined by the owner OwnerId, the circle Circle, the Boolean FilledCircle and the number of points NbOfPoints.
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param theIsBVHEnabled:
        	:type theIsBVHEnabled: bool
        	:param theNbPnts: default value is 6
        	:type theNbPnts: int
        	:rtype: None
        """
        _Select3D.Select3D_SensitivePoly_swiginit(self, _Select3D.new_Select3D_SensitivePoly(*args))
    Size = _swig_new_instance_method(_Select3D.Select3D_SensitivePoly_Size)
    Swap = _swig_new_instance_method(_Select3D.Select3D_SensitivePoly_Swap)


    @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
    BVH = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_BVH)
    BoundingBox = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_BoundingBox)
    Box = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_Box)
    Center = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_Center)
    CenterOfGeometry = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_CenterOfGeometry)
    GetConnected = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_GetConnected)
    HasInitLocation = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_HasInitLocation)
    InitPoints = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_InitPoints)
    InitTriangulation = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_InitTriangulation)
    InvInitLocation = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_InvInitLocation)
    LastDetectedEdgeNode1 = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_LastDetectedEdgeNode1)
    LastDetectedEdgeNode2 = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_LastDetectedEdgeNode2)
    LastDetectedElement = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_LastDetectedElement)
    LastDetectedElementMap = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_LastDetectedElementMap)
    LastDetectedNode = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_LastDetectedNode)
    LastDetectedNodeMap = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_LastDetectedNodeMap)
    Matches = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_Matches)
    NbSubElements = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_NbSubElements)
    PatchDistance = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_PatchDistance)
    PatchSizeMax = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_PatchSizeMax)

    def __init__(self, *args):
        r"""
        * Constructs an empty sensitive object.
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:rtype: None
        """
        _Select3D.Select3D_SensitivePrimitiveArray_swiginit(self, _Select3D.new_Select3D_SensitivePrimitiveArray(*args))
    Set = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_Set)
    SetDetectEdges = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_SetDetectEdges)
    SetDetectElementMap = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_SetDetectElementMap)
    SetDetectElements = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_SetDetectElements)
    SetDetectNodeMap = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_SetDetectNodeMap)
    SetDetectNodes = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_SetDetectNodes)
    SetMinMax = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_SetMinMax)
    SetPatchDistance = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_SetPatchDistance)
    SetPatchSizeMax = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_SetPatchSizeMax)
    Size = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_Size)
    Swap = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_Swap)
    ToDetectEdges = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_ToDetectEdges)
    ToDetectElementMap = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_ToDetectElementMap)
    ToDetectElements = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_ToDetectElements)
    ToDetectNodeMap = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_ToDetectNodeMap)
    ToDetectNodes = _swig_new_instance_method(_Select3D.Select3D_SensitivePrimitiveArray_ToDetectNodes)


    @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
    Add = _swig_new_instance_method(_Select3D.Select3D_SensitiveWire_Add)
    BoundingBox = _swig_new_instance_method(_Select3D.Select3D_SensitiveWire_BoundingBox)
    Box = _swig_new_instance_method(_Select3D.Select3D_SensitiveWire_Box)
    Center = _swig_new_instance_method(_Select3D.Select3D_SensitiveWire_Center)
    CenterOfGeometry = _swig_new_instance_method(_Select3D.Select3D_SensitiveWire_CenterOfGeometry)
    GetConnected = _swig_new_instance_method(_Select3D.Select3D_SensitiveWire_GetConnected)
    GetEdges = _swig_new_instance_method(_Select3D.Select3D_SensitiveWire_GetEdges)
    GetLastDetected = _swig_new_instance_method(_Select3D.Select3D_SensitiveWire_GetLastDetected)
    NbSubElements = _swig_new_instance_method(_Select3D.Select3D_SensitiveWire_NbSubElements)

    def __init__(self, *args):
        r"""
        * Constructs a sensitive wire object defined by the owner theOwnerId
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:rtype: None
        """
        _Select3D.Select3D_SensitiveWire_swiginit(self, _Select3D.new_Select3D_SensitiveWire(*args))
    Set = _swig_new_instance_method(_Select3D.Select3D_SensitiveWire_Set)
    Size = _swig_new_instance_method(_Select3D.Select3D_SensitiveWire_Size)
    Swap = _swig_new_instance_method(_Select3D.Select3D_SensitiveWire_Swap)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_SensitiveWire

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

class Select3D_SensitiveCircle(Select3D_SensitivePoly):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    ArrayBounds = _swig_new_instance_method(_Select3D.Select3D_SensitiveCircle_ArrayBounds)
    BVH = _swig_new_instance_method(_Select3D.Select3D_SensitiveCircle_BVH)
    GetConnected = _swig_new_instance_method(_Select3D.Select3D_SensitiveCircle_GetConnected)
    GetPoint3d = _swig_new_instance_method(_Select3D.Select3D_SensitiveCircle_GetPoint3d)
    Matches = _swig_new_instance_method(_Select3D.Select3D_SensitiveCircle_Matches)

    def __init__(self, *args):
        r"""
        * Constructs the sensitive circle object defined by the owner theOwnerId, the circle theCircle, the boolean theIsFilled and the number of points theNbPnts.
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param theCircle:
        	:type theCircle: Geom_Circle
        	:param theIsFilled: default value is Standard_False
        	:type theIsFilled: bool
        	:param theNbPnts: default value is 12
        	:type theNbPnts: int
        	:rtype: None* Constructs the sensitive arc object defined by the owner theOwnerId, the circle theCircle, the parameters theU1 and theU2, the boolean theIsFilled and the number of points theNbPnts. theU1 and theU2 define the first and last points of the arc on theCircle.
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param theCircle:
        	:type theCircle: Geom_Circle
        	:param theU1:
        	:type theU1: float
        	:param theU2:
        	:type theU2: float
        	:param theIsFilled: default value is Standard_False
        	:type theIsFilled: bool
        	:param theNbPnts: default value is 12
        	:type theNbPnts: int
        	:rtype: None* Constructs the sensitive circle object defined by the owner theOwnerId, the array of triangles thePnts3d, and the boolean theIsFilled. thePnts3d is an array of consecutive triangles on the circle. The triangle i+1 lies on the intersection of the tangents to the circle of i and i+2. Note, that the first point of thePnts3d must be equal to the last point of thePnts3d.
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param thePnts3d:
        	:type thePnts3d: TColgp_HArray1OfPnt
        	:param theIsFilled: default value is Standard_False
        	:type theIsFilled: bool
        	:rtype: None* Constructs the sensitive circle object defined by the owner theOwnerId, the array of points thePnts3d, and the boolean theIsFilled. If the length of thePnts3d is more then 1, the first point of thePnts3d must be equal to the last point of thePnts3d.
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param thePnts3d:
        	:type thePnts3d: TColgp_Array1OfPnt
        	:param theIsFilled: default value is Standard_False
        	:type theIsFilled: bool
        	:rtype: None
        """
        _Select3D.Select3D_SensitiveCircle_swiginit(self, _Select3D.new_Select3D_SensitiveCircle(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Select3D.delete_Select3D_SensitiveCircle

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

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

    def __init__(self, *args):
        r"""
        * Constructs a sensitive curve object defined by the owner theOwnerId, the curve theCurve, and the maximum number of points on the curve: theNbPnts.
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param theCurve:
        	:type theCurve: Geom_Curve
        	:param theNbPnts: default value is 17
        	:type theNbPnts: int
        	:rtype: None* Constructs a sensitive curve object defined by the owner theOwnerId and the set of points ThePoints.
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param thePoints:
        	:type thePoints: TColgp_HArray1OfPnt
        	:rtype: None* Creation of Sensitive Curve from Points. Warning : This Method should disappear in the next version...
        	:param theOwnerId:
        	:type theOwnerId: SelectMgr_EntityOwner
        	:param thePoints:
        	:type thePoints: TColgp_Array1OfPnt
        	:rtype: None
        """
        _Select3D.Select3D_SensitiveCurve_swiginit(self, _Select3D.new_Select3D_SensitiveCurve(*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)



