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

"""
SelectMgr module, see official documentation at
https://www.opencascade.com/doc/occt-7.4.0/refman/html/package_selectmgr.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 _SelectMgr
else:
    import _SelectMgr

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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


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


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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


def process_exception(error: "Standard_Failure", method_name: "std::string", class_name: "std::string") -> "void":
    return _SelectMgr.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.Graphic3d
import OCC.Core.BVH
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.Select3D
import OCC.Core.SelectBasics
import OCC.Core.Geom
import OCC.Core.GeomAbs
import OCC.Core.PrsMgr
import OCC.Core.Prs3d
import OCC.Core.Poly
import OCC.Core.TShort
import OCC.Core.V3d
import OCC.Core.TopAbs

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

SelectMgr_FilterType_AND = _SelectMgr.SelectMgr_FilterType_AND
SelectMgr_FilterType_OR = _SelectMgr.SelectMgr_FilterType_OR
SelectMgr_TypeOfDepthTolerance_Uniform = _SelectMgr.SelectMgr_TypeOfDepthTolerance_Uniform
SelectMgr_TypeOfDepthTolerance_UniformPixels = _SelectMgr.SelectMgr_TypeOfDepthTolerance_UniformPixels
SelectMgr_TypeOfDepthTolerance_SensitivityFactor = _SelectMgr.SelectMgr_TypeOfDepthTolerance_SensitivityFactor
SelectMgr_TOU_Full = _SelectMgr.SelectMgr_TOU_Full
SelectMgr_TOU_Partial = _SelectMgr.SelectMgr_TOU_Partial
SelectMgr_TOU_None = _SelectMgr.SelectMgr_TOU_None
SelectMgr_TBU_Add = _SelectMgr.SelectMgr_TBU_Add
SelectMgr_TBU_Remove = _SelectMgr.SelectMgr_TBU_Remove
SelectMgr_TBU_Renew = _SelectMgr.SelectMgr_TBU_Renew
SelectMgr_TBU_Invalidate = _SelectMgr.SelectMgr_TBU_Invalidate
SelectMgr_TBU_None = _SelectMgr.SelectMgr_TBU_None
SelectMgr_SOS_Any = _SelectMgr.SelectMgr_SOS_Any
SelectMgr_SOS_Unknown = _SelectMgr.SelectMgr_SOS_Unknown
SelectMgr_SOS_Deactivated = _SelectMgr.SelectMgr_SOS_Deactivated
SelectMgr_SOS_Activated = _SelectMgr.SelectMgr_SOS_Activated
SelectMgr_PickingStrategy_FirstAcceptable = _SelectMgr.SelectMgr_PickingStrategy_FirstAcceptable
SelectMgr_PickingStrategy_OnlyTopmost = _SelectMgr.SelectMgr_PickingStrategy_OnlyTopmost


class SelectMgr_FilterType(IntEnum):
	SelectMgr_FilterType_AND = 0
	SelectMgr_FilterType_OR = 1
SelectMgr_FilterType_AND = SelectMgr_FilterType.SelectMgr_FilterType_AND
SelectMgr_FilterType_OR = SelectMgr_FilterType.SelectMgr_FilterType_OR

class SelectMgr_TypeOfDepthTolerance(IntEnum):
	SelectMgr_TypeOfDepthTolerance_Uniform = 0
	SelectMgr_TypeOfDepthTolerance_UniformPixels = 1
	SelectMgr_TypeOfDepthTolerance_SensitivityFactor = 2
SelectMgr_TypeOfDepthTolerance_Uniform = SelectMgr_TypeOfDepthTolerance.SelectMgr_TypeOfDepthTolerance_Uniform
SelectMgr_TypeOfDepthTolerance_UniformPixels = SelectMgr_TypeOfDepthTolerance.SelectMgr_TypeOfDepthTolerance_UniformPixels
SelectMgr_TypeOfDepthTolerance_SensitivityFactor = SelectMgr_TypeOfDepthTolerance.SelectMgr_TypeOfDepthTolerance_SensitivityFactor

class SelectMgr_TypeOfUpdate(IntEnum):
	SelectMgr_TOU_Full = 0
	SelectMgr_TOU_Partial = 1
	SelectMgr_TOU_None = 2
SelectMgr_TOU_Full = SelectMgr_TypeOfUpdate.SelectMgr_TOU_Full
SelectMgr_TOU_Partial = SelectMgr_TypeOfUpdate.SelectMgr_TOU_Partial
SelectMgr_TOU_None = SelectMgr_TypeOfUpdate.SelectMgr_TOU_None

class SelectMgr_TypeOfBVHUpdate(IntEnum):
	SelectMgr_TBU_Add = 0
	SelectMgr_TBU_Remove = 1
	SelectMgr_TBU_Renew = 2
	SelectMgr_TBU_Invalidate = 3
	SelectMgr_TBU_None = 4
SelectMgr_TBU_Add = SelectMgr_TypeOfBVHUpdate.SelectMgr_TBU_Add
SelectMgr_TBU_Remove = SelectMgr_TypeOfBVHUpdate.SelectMgr_TBU_Remove
SelectMgr_TBU_Renew = SelectMgr_TypeOfBVHUpdate.SelectMgr_TBU_Renew
SelectMgr_TBU_Invalidate = SelectMgr_TypeOfBVHUpdate.SelectMgr_TBU_Invalidate
SelectMgr_TBU_None = SelectMgr_TypeOfBVHUpdate.SelectMgr_TBU_None

class SelectMgr_StateOfSelection(IntEnum):
	SelectMgr_SOS_Any = - 2
	SelectMgr_SOS_Unknown = - 1
	SelectMgr_SOS_Deactivated = 0
	SelectMgr_SOS_Activated = 1
SelectMgr_SOS_Any = SelectMgr_StateOfSelection.SelectMgr_SOS_Any
SelectMgr_SOS_Unknown = SelectMgr_StateOfSelection.SelectMgr_SOS_Unknown
SelectMgr_SOS_Deactivated = SelectMgr_StateOfSelection.SelectMgr_SOS_Deactivated
SelectMgr_SOS_Activated = SelectMgr_StateOfSelection.SelectMgr_SOS_Activated

class SelectMgr_PickingStrategy(IntEnum):
	SelectMgr_PickingStrategy_FirstAcceptable = 0
	SelectMgr_PickingStrategy_OnlyTopmost = 1
SelectMgr_PickingStrategy_FirstAcceptable = SelectMgr_PickingStrategy.SelectMgr_PickingStrategy_FirstAcceptable
SelectMgr_PickingStrategy_OnlyTopmost = SelectMgr_PickingStrategy.SelectMgr_PickingStrategy_OnlyTopmost


def Handle_SelectMgr_BVHThreadPool_Create() -> "opencascade::handle< SelectMgr_BVHThreadPool >":
    return _SelectMgr.Handle_SelectMgr_BVHThreadPool_Create()

def Handle_SelectMgr_BVHThreadPool_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< SelectMgr_BVHThreadPool >":
    return _SelectMgr.Handle_SelectMgr_BVHThreadPool_DownCast(t)

def Handle_SelectMgr_BVHThreadPool_IsNull(t: "opencascade::handle< SelectMgr_BVHThreadPool > const &") -> "bool":
    return _SelectMgr.Handle_SelectMgr_BVHThreadPool_IsNull(t)

def Handle_SelectMgr_EntityOwner_Create() -> "opencascade::handle< SelectMgr_EntityOwner >":
    return _SelectMgr.Handle_SelectMgr_EntityOwner_Create()

def Handle_SelectMgr_EntityOwner_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< SelectMgr_EntityOwner >":
    return _SelectMgr.Handle_SelectMgr_EntityOwner_DownCast(t)

def Handle_SelectMgr_EntityOwner_IsNull(t: "opencascade::handle< SelectMgr_EntityOwner > const &") -> "bool":
    return _SelectMgr.Handle_SelectMgr_EntityOwner_IsNull(t)

def Handle_SelectMgr_Filter_Create() -> "opencascade::handle< SelectMgr_Filter >":
    return _SelectMgr.Handle_SelectMgr_Filter_Create()

def Handle_SelectMgr_Filter_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< SelectMgr_Filter >":
    return _SelectMgr.Handle_SelectMgr_Filter_DownCast(t)

def Handle_SelectMgr_Filter_IsNull(t: "opencascade::handle< SelectMgr_Filter > const &") -> "bool":
    return _SelectMgr.Handle_SelectMgr_Filter_IsNull(t)

def Handle_SelectMgr_SelectableObject_Create() -> "opencascade::handle< SelectMgr_SelectableObject >":
    return _SelectMgr.Handle_SelectMgr_SelectableObject_Create()

def Handle_SelectMgr_SelectableObject_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< SelectMgr_SelectableObject >":
    return _SelectMgr.Handle_SelectMgr_SelectableObject_DownCast(t)

def Handle_SelectMgr_SelectableObject_IsNull(t: "opencascade::handle< SelectMgr_SelectableObject > const &") -> "bool":
    return _SelectMgr.Handle_SelectMgr_SelectableObject_IsNull(t)

def Handle_SelectMgr_Selection_Create() -> "opencascade::handle< SelectMgr_Selection >":
    return _SelectMgr.Handle_SelectMgr_Selection_Create()

def Handle_SelectMgr_Selection_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< SelectMgr_Selection >":
    return _SelectMgr.Handle_SelectMgr_Selection_DownCast(t)

def Handle_SelectMgr_Selection_IsNull(t: "opencascade::handle< SelectMgr_Selection > const &") -> "bool":
    return _SelectMgr.Handle_SelectMgr_Selection_IsNull(t)

def Handle_SelectMgr_SelectionImageFiller_Create() -> "opencascade::handle< SelectMgr_SelectionImageFiller >":
    return _SelectMgr.Handle_SelectMgr_SelectionImageFiller_Create()

def Handle_SelectMgr_SelectionImageFiller_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< SelectMgr_SelectionImageFiller >":
    return _SelectMgr.Handle_SelectMgr_SelectionImageFiller_DownCast(t)

def Handle_SelectMgr_SelectionImageFiller_IsNull(t: "opencascade::handle< SelectMgr_SelectionImageFiller > const &") -> "bool":
    return _SelectMgr.Handle_SelectMgr_SelectionImageFiller_IsNull(t)

def Handle_SelectMgr_SelectionManager_Create() -> "opencascade::handle< SelectMgr_SelectionManager >":
    return _SelectMgr.Handle_SelectMgr_SelectionManager_Create()

def Handle_SelectMgr_SelectionManager_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< SelectMgr_SelectionManager >":
    return _SelectMgr.Handle_SelectMgr_SelectionManager_DownCast(t)

def Handle_SelectMgr_SelectionManager_IsNull(t: "opencascade::handle< SelectMgr_SelectionManager > const &") -> "bool":
    return _SelectMgr.Handle_SelectMgr_SelectionManager_IsNull(t)

def Handle_SelectMgr_SensitiveEntity_Create() -> "opencascade::handle< SelectMgr_SensitiveEntity >":
    return _SelectMgr.Handle_SelectMgr_SensitiveEntity_Create()

def Handle_SelectMgr_SensitiveEntity_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< SelectMgr_SensitiveEntity >":
    return _SelectMgr.Handle_SelectMgr_SensitiveEntity_DownCast(t)

def Handle_SelectMgr_SensitiveEntity_IsNull(t: "opencascade::handle< SelectMgr_SensitiveEntity > const &") -> "bool":
    return _SelectMgr.Handle_SelectMgr_SensitiveEntity_IsNull(t)

def Handle_SelectMgr_CompositionFilter_Create() -> "opencascade::handle< SelectMgr_CompositionFilter >":
    return _SelectMgr.Handle_SelectMgr_CompositionFilter_Create()

def Handle_SelectMgr_CompositionFilter_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< SelectMgr_CompositionFilter >":
    return _SelectMgr.Handle_SelectMgr_CompositionFilter_DownCast(t)

def Handle_SelectMgr_CompositionFilter_IsNull(t: "opencascade::handle< SelectMgr_CompositionFilter > const &") -> "bool":
    return _SelectMgr.Handle_SelectMgr_CompositionFilter_IsNull(t)

def Handle_SelectMgr_ViewerSelector3d_Create() -> "opencascade::handle< SelectMgr_ViewerSelector3d >":
    return _SelectMgr.Handle_SelectMgr_ViewerSelector3d_Create()

def Handle_SelectMgr_ViewerSelector3d_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< SelectMgr_ViewerSelector3d >":
    return _SelectMgr.Handle_SelectMgr_ViewerSelector3d_DownCast(t)

def Handle_SelectMgr_ViewerSelector3d_IsNull(t: "opencascade::handle< SelectMgr_ViewerSelector3d > const &") -> "bool":
    return _SelectMgr.Handle_SelectMgr_ViewerSelector3d_IsNull(t)

def Handle_SelectMgr_AndFilter_Create() -> "opencascade::handle< SelectMgr_AndFilter >":
    return _SelectMgr.Handle_SelectMgr_AndFilter_Create()

def Handle_SelectMgr_AndFilter_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< SelectMgr_AndFilter >":
    return _SelectMgr.Handle_SelectMgr_AndFilter_DownCast(t)

def Handle_SelectMgr_AndFilter_IsNull(t: "opencascade::handle< SelectMgr_AndFilter > const &") -> "bool":
    return _SelectMgr.Handle_SelectMgr_AndFilter_IsNull(t)

def Handle_SelectMgr_AndOrFilter_Create() -> "opencascade::handle< SelectMgr_AndOrFilter >":
    return _SelectMgr.Handle_SelectMgr_AndOrFilter_Create()

def Handle_SelectMgr_AndOrFilter_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< SelectMgr_AndOrFilter >":
    return _SelectMgr.Handle_SelectMgr_AndOrFilter_DownCast(t)

def Handle_SelectMgr_AndOrFilter_IsNull(t: "opencascade::handle< SelectMgr_AndOrFilter > const &") -> "bool":
    return _SelectMgr.Handle_SelectMgr_AndOrFilter_IsNull(t)

def Handle_SelectMgr_OrFilter_Create() -> "opencascade::handle< SelectMgr_OrFilter >":
    return _SelectMgr.Handle_SelectMgr_OrFilter_Create()

def Handle_SelectMgr_OrFilter_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< SelectMgr_OrFilter >":
    return _SelectMgr.Handle_SelectMgr_OrFilter_DownCast(t)

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

    def begin(self) -> "NCollection_DataMap< int,SelectMgr_SelectingVolumeManager >::iterator":
        return _SelectMgr.SelectMgr_FrustumCache_begin(self)

    def end(self) -> "NCollection_DataMap< int,SelectMgr_SelectingVolumeManager >::iterator":
        return _SelectMgr.SelectMgr_FrustumCache_end(self)

    def cbegin(self) -> "NCollection_DataMap< int,SelectMgr_SelectingVolumeManager >::const_iterator":
        return _SelectMgr.SelectMgr_FrustumCache_cbegin(self)

    def cend(self) -> "NCollection_DataMap< int,SelectMgr_SelectingVolumeManager >::const_iterator":
        return _SelectMgr.SelectMgr_FrustumCache_cend(self)

    def __init__(self, *args):
        _SelectMgr.SelectMgr_FrustumCache_swiginit(self, _SelectMgr.new_SelectMgr_FrustumCache(*args))

    def Exchange(self, theOther: "SelectMgr_FrustumCache") -> "void":
        return _SelectMgr.SelectMgr_FrustumCache_Exchange(self, theOther)

    def Assign(self, theOther: "SelectMgr_FrustumCache") -> "NCollection_DataMap< Standard_Integer,SelectMgr_SelectingVolumeManager > &":
        return _SelectMgr.SelectMgr_FrustumCache_Assign(self, theOther)

    def Set(self, theOther: "SelectMgr_FrustumCache") -> "NCollection_DataMap< Standard_Integer,SelectMgr_SelectingVolumeManager > &":
        return _SelectMgr.SelectMgr_FrustumCache_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _SelectMgr.SelectMgr_FrustumCache_ReSize(self, N)

    def Bind(self, theKey: "int const &", theItem: "SelectMgr_SelectingVolumeManager") -> "Standard_Boolean":
        return _SelectMgr.SelectMgr_FrustumCache_Bind(self, theKey, theItem)

    def Bound(self, theKey: "int const &", theItem: "SelectMgr_SelectingVolumeManager") -> "SelectMgr_SelectingVolumeManager *":
        return _SelectMgr.SelectMgr_FrustumCache_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "int const &") -> "Standard_Boolean":
        return _SelectMgr.SelectMgr_FrustumCache_IsBound(self, theKey)

    def UnBind(self, theKey: "int const &") -> "Standard_Boolean":
        return _SelectMgr.SelectMgr_FrustumCache_UnBind(self, theKey)

    def Seek(self, theKey: "int const &") -> "SelectMgr_SelectingVolumeManager const *":
        return _SelectMgr.SelectMgr_FrustumCache_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _SelectMgr.SelectMgr_FrustumCache_Find(self, *args)

    def ChangeSeek(self, theKey: "int const &") -> "SelectMgr_SelectingVolumeManager *":
        return _SelectMgr.SelectMgr_FrustumCache_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "int const &") -> "SelectMgr_SelectingVolumeManager &":
        return _SelectMgr.SelectMgr_FrustumCache_ChangeFind(self, theKey)

    def __call__(self, *args) -> "SelectMgr_SelectingVolumeManager &":
        return _SelectMgr.SelectMgr_FrustumCache___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _SelectMgr.SelectMgr_FrustumCache_Clear(self, *args)
    __swig_destroy__ = _SelectMgr.delete_SelectMgr_FrustumCache

    def Size(self) -> "Standard_Integer":
        return _SelectMgr.SelectMgr_FrustumCache_Size(self)

    def Keys(self) -> "PyObject *":
        return _SelectMgr.SelectMgr_FrustumCache_Keys(self)

# Register SelectMgr_FrustumCache in _SelectMgr:
_SelectMgr.SelectMgr_FrustumCache_swigregister(SelectMgr_FrustumCache)

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

    def begin(self) -> "NCollection_IndexedDataMap< opencascade::handle< SelectMgr_EntityOwner >,SelectMgr_SortCriterion,NCollection_DefaultHasher< opencascade::handle< Standard_Transient > > >::iterator":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_begin(self)

    def end(self) -> "NCollection_IndexedDataMap< opencascade::handle< SelectMgr_EntityOwner >,SelectMgr_SortCriterion,NCollection_DefaultHasher< opencascade::handle< Standard_Transient > > >::iterator":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_end(self)

    def cbegin(self) -> "NCollection_IndexedDataMap< opencascade::handle< SelectMgr_EntityOwner >,SelectMgr_SortCriterion,NCollection_DefaultHasher< opencascade::handle< Standard_Transient > > >::const_iterator":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_cbegin(self)

    def cend(self) -> "NCollection_IndexedDataMap< opencascade::handle< SelectMgr_EntityOwner >,SelectMgr_SortCriterion,NCollection_DefaultHasher< opencascade::handle< Standard_Transient > > >::const_iterator":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_cend(self)

    def __init__(self, *args):
        _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_swiginit(self, _SelectMgr.new_SelectMgr_IndexedDataMapOfOwnerCriterion(*args))

    def Exchange(self, theOther: "SelectMgr_IndexedDataMapOfOwnerCriterion") -> "void":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_Exchange(self, theOther)

    def Assign(self, theOther: "SelectMgr_IndexedDataMapOfOwnerCriterion") -> "NCollection_IndexedDataMap< opencascade::handle< SelectMgr_EntityOwner >,SelectMgr_SortCriterion,TColStd_MapTransientHasher > &":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_Assign(self, theOther)

    def Set(self, theOther: "SelectMgr_IndexedDataMapOfOwnerCriterion") -> "NCollection_IndexedDataMap< opencascade::handle< SelectMgr_EntityOwner >,SelectMgr_SortCriterion,TColStd_MapTransientHasher > &":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_ReSize(self, N)

    def Add(self, theKey1: "opencascade::handle< SelectMgr_EntityOwner > const &", theItem: "SelectMgr_SortCriterion") -> "Standard_Integer":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_Add(self, theKey1, theItem)

    def Contains(self, theKey1: "opencascade::handle< SelectMgr_EntityOwner > const &") -> "Standard_Boolean":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_Contains(self, theKey1)

    def Substitute(self, theIndex: "Standard_Integer const", theKey1: "opencascade::handle< SelectMgr_EntityOwner > const &", theItem: "SelectMgr_SortCriterion") -> "void":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_Substitute(self, theIndex, theKey1, theItem)

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

    def RemoveLast(self) -> "void":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_RemoveLast(self)

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

    def RemoveKey(self, theKey1: "opencascade::handle< SelectMgr_EntityOwner > const &") -> "void":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_RemoveKey(self, theKey1)

    def FindKey(self, theIndex: "Standard_Integer const") -> "opencascade::handle< SelectMgr_EntityOwner > const &":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_FindKey(self, theIndex)

    def FindFromIndex(self, theIndex: "Standard_Integer const") -> "SelectMgr_SortCriterion const &":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_FindFromIndex(self, theIndex)

    def ChangeFromIndex(self, theIndex: "Standard_Integer const") -> "SelectMgr_SortCriterion &":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_ChangeFromIndex(self, theIndex)

    def __call__(self, *args) -> "SelectMgr_SortCriterion &":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion___call__(self, *args)

    def FindIndex(self, theKey1: "opencascade::handle< SelectMgr_EntityOwner > const &") -> "Standard_Integer":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_FindIndex(self, theKey1)

    def ChangeFromKey(self, theKey1: "opencascade::handle< SelectMgr_EntityOwner > const &") -> "SelectMgr_SortCriterion &":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_ChangeFromKey(self, theKey1)

    def Seek(self, theKey1: "opencascade::handle< SelectMgr_EntityOwner > const &") -> "SelectMgr_SortCriterion const *":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_Seek(self, theKey1)

    def ChangeSeek(self, theKey1: "opencascade::handle< SelectMgr_EntityOwner > const &") -> "SelectMgr_SortCriterion *":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_ChangeSeek(self, theKey1)

    def FindFromKey(self, *args) -> "Standard_Boolean":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_FindFromKey(self, *args)

    def Clear(self, *args) -> "void":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_Clear(self, *args)
    __swig_destroy__ = _SelectMgr.delete_SelectMgr_IndexedDataMapOfOwnerCriterion

    def Size(self) -> "Standard_Integer":
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_Size(self)

# Register SelectMgr_IndexedDataMapOfOwnerCriterion in _SelectMgr:
_SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_swigregister(SelectMgr_IndexedDataMapOfOwnerCriterion)

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

    def cbegin(self) -> "NCollection_IndexedMap< opencascade::handle< SelectMgr_SensitiveEntity > >::const_iterator":
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_cbegin(self)

    def cend(self) -> "NCollection_IndexedMap< opencascade::handle< SelectMgr_SensitiveEntity > >::const_iterator":
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_cend(self)

    def __init__(self, *args):
        _SelectMgr.SelectMgr_IndexedMapOfHSensitive_swiginit(self, _SelectMgr.new_SelectMgr_IndexedMapOfHSensitive(*args))

    def Exchange(self, theOther: "SelectMgr_IndexedMapOfHSensitive") -> "void":
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_Exchange(self, theOther)

    def Assign(self, theOther: "SelectMgr_IndexedMapOfHSensitive") -> "NCollection_IndexedMap< opencascade::handle< SelectMgr_SensitiveEntity > > &":
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_Assign(self, theOther)

    def Set(self, theOther: "SelectMgr_IndexedMapOfHSensitive") -> "NCollection_IndexedMap< opencascade::handle< SelectMgr_SensitiveEntity > > &":
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_Set(self, theOther)

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

    def Add(self, theKey1: "opencascade::handle< SelectMgr_SensitiveEntity > const &") -> "Standard_Integer":
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_Add(self, theKey1)

    def Contains(self, theKey1: "opencascade::handle< SelectMgr_SensitiveEntity > const &") -> "Standard_Boolean":
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_Contains(self, theKey1)

    def Substitute(self, theIndex: "Standard_Integer const", theKey1: "opencascade::handle< SelectMgr_SensitiveEntity > const &") -> "void":
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_Substitute(self, theIndex, theKey1)

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

    def RemoveLast(self) -> "void":
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_RemoveLast(self)

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

    def RemoveKey(self, theKey1: "opencascade::handle< SelectMgr_SensitiveEntity > const &") -> "Standard_Boolean":
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_RemoveKey(self, theKey1)

    def FindKey(self, theIndex: "Standard_Integer const") -> "opencascade::handle< SelectMgr_SensitiveEntity > const &":
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_FindKey(self, theIndex)

    def __call__(self, theIndex: "Standard_Integer const") -> "opencascade::handle< SelectMgr_SensitiveEntity > const &":
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive___call__(self, theIndex)

    def FindIndex(self, theKey1: "opencascade::handle< SelectMgr_SensitiveEntity > const &") -> "Standard_Integer":
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_FindIndex(self, theKey1)

    def Clear(self, *args) -> "void":
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_Clear(self, *args)
    __swig_destroy__ = _SelectMgr.delete_SelectMgr_IndexedMapOfHSensitive

    def Size(self) -> "Standard_Integer":
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_Size(self)

# Register SelectMgr_IndexedMapOfHSensitive in _SelectMgr:
_SelectMgr.SelectMgr_IndexedMapOfHSensitive_swigregister(SelectMgr_IndexedMapOfHSensitive)

class SelectMgr_ListIteratorOfListOfFilter(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):
        _SelectMgr.SelectMgr_ListIteratorOfListOfFilter_swiginit(self, _SelectMgr.new_SelectMgr_ListIteratorOfListOfFilter(*args))

    def More(self) -> "Standard_Boolean":
        return _SelectMgr.SelectMgr_ListIteratorOfListOfFilter_More(self)

    def Next(self) -> "void":
        return _SelectMgr.SelectMgr_ListIteratorOfListOfFilter_Next(self)

    def Value(self) -> "opencascade::handle< SelectMgr_Filter > const &":
        return _SelectMgr.SelectMgr_ListIteratorOfListOfFilter_Value(self)

    def ChangeValue(self) -> "opencascade::handle< SelectMgr_Filter > &":
        return _SelectMgr.SelectMgr_ListIteratorOfListOfFilter_ChangeValue(self)
    __swig_destroy__ = _SelectMgr.delete_SelectMgr_ListIteratorOfListOfFilter

# Register SelectMgr_ListIteratorOfListOfFilter in _SelectMgr:
_SelectMgr.SelectMgr_ListIteratorOfListOfFilter_swigregister(SelectMgr_ListIteratorOfListOfFilter)

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

    def begin(self) -> "NCollection_List< opencascade::handle< SelectMgr_Filter > >::iterator":
        return _SelectMgr.SelectMgr_ListOfFilter_begin(self)

    def end(self) -> "NCollection_List< opencascade::handle< SelectMgr_Filter > >::iterator":
        return _SelectMgr.SelectMgr_ListOfFilter_end(self)

    def cbegin(self) -> "NCollection_List< opencascade::handle< SelectMgr_Filter > >::const_iterator":
        return _SelectMgr.SelectMgr_ListOfFilter_cbegin(self)

    def cend(self) -> "NCollection_List< opencascade::handle< SelectMgr_Filter > >::const_iterator":
        return _SelectMgr.SelectMgr_ListOfFilter_cend(self)

    def __init__(self, *args):
        _SelectMgr.SelectMgr_ListOfFilter_swiginit(self, _SelectMgr.new_SelectMgr_ListOfFilter(*args))

    def Size(self) -> "Standard_Integer":
        return _SelectMgr.SelectMgr_ListOfFilter_Size(self)

    def Assign(self, theOther: "SelectMgr_ListOfFilter") -> "NCollection_List< opencascade::handle< SelectMgr_Filter > > &":
        return _SelectMgr.SelectMgr_ListOfFilter_Assign(self, theOther)

    def Set(self, theOther: "SelectMgr_ListOfFilter") -> "NCollection_List< opencascade::handle< SelectMgr_Filter > > &":
        return _SelectMgr.SelectMgr_ListOfFilter_Set(self, theOther)

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

    def First(self) -> "opencascade::handle< SelectMgr_Filter > const &":
        return _SelectMgr.SelectMgr_ListOfFilter_First(self)

    def Last(self) -> "opencascade::handle< SelectMgr_Filter > const &":
        return _SelectMgr.SelectMgr_ListOfFilter_Last(self)

    def Append(self, *args) -> "void":
        return _SelectMgr.SelectMgr_ListOfFilter_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _SelectMgr.SelectMgr_ListOfFilter_Prepend(self, *args)

    def RemoveFirst(self) -> "void":
        return _SelectMgr.SelectMgr_ListOfFilter_RemoveFirst(self)

    def Remove(self, theIter: "SelectMgr_ListIteratorOfListOfFilter") -> "void":
        return _SelectMgr.SelectMgr_ListOfFilter_Remove(self, theIter)

    def InsertBefore(self, *args) -> "void":
        return _SelectMgr.SelectMgr_ListOfFilter_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _SelectMgr.SelectMgr_ListOfFilter_InsertAfter(self, *args)

    def Reverse(self) -> "void":
        return _SelectMgr.SelectMgr_ListOfFilter_Reverse(self)
    __swig_destroy__ = _SelectMgr.delete_SelectMgr_ListOfFilter

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


# Register SelectMgr_ListOfFilter in _SelectMgr:
_SelectMgr.SelectMgr_ListOfFilter_swigregister(SelectMgr_ListOfFilter)

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

    @staticmethod
    def Rows() -> "size_t":
        return _SelectMgr.SelectMgr_Mat4_Rows()

    @staticmethod
    def Cols() -> "size_t":
        return _SelectMgr.SelectMgr_Mat4_Cols()

    def __init__(self):
        _SelectMgr.SelectMgr_Mat4_swiginit(self, _SelectMgr.new_SelectMgr_Mat4())

    def GetValue(self, theRow: "size_t const", theCol: "size_t const") -> "double":
        return _SelectMgr.SelectMgr_Mat4_GetValue(self, theRow, theCol)

    def ChangeValue(self, theRow: "size_t const", theCol: "size_t const") -> "double &":
        return _SelectMgr.SelectMgr_Mat4_ChangeValue(self, theRow, theCol)

    def SetValue(self, theRow: "size_t const", theCol: "size_t const", theValue: "double const") -> "void":
        return _SelectMgr.SelectMgr_Mat4_SetValue(self, theRow, theCol, theValue)

    def GetRow(self, theRow: "size_t const") -> "NCollection_Vec4< double >":
        return _SelectMgr.SelectMgr_Mat4_GetRow(self, theRow)

    def SetRow(self, *args) -> "void":
        return _SelectMgr.SelectMgr_Mat4_SetRow(self, *args)

    def GetColumn(self, theCol: "size_t const") -> "NCollection_Vec4< double >":
        return _SelectMgr.SelectMgr_Mat4_GetColumn(self, theCol)

    def SetColumn(self, *args) -> "void":
        return _SelectMgr.SelectMgr_Mat4_SetColumn(self, *args)

    def GetDiagonal(self) -> "NCollection_Vec4< double >":
        return _SelectMgr.SelectMgr_Mat4_GetDiagonal(self)

    def SetDiagonal(self, *args) -> "void":
        return _SelectMgr.SelectMgr_Mat4_SetDiagonal(self, *args)

    def InitIdentity(self) -> "void":
        return _SelectMgr.SelectMgr_Mat4_InitIdentity(self)

    def IsIdentity(self) -> "bool":
        return _SelectMgr.SelectMgr_Mat4_IsIdentity(self)

    def IsEqual(self, theOther: "Graphic3d_Mat4d") -> "bool":
        return _SelectMgr.SelectMgr_Mat4_IsEqual(self, theOther)

    def __eq__(self, *args) -> "bool":
        return _SelectMgr.SelectMgr_Mat4___eq__(self, *args)

    def __ne__(self, *args) -> "bool":
        return _SelectMgr.SelectMgr_Mat4___ne__(self, *args)

    def GetData(self) -> "double const *":
        return _SelectMgr.SelectMgr_Mat4_GetData(self)

    def ChangeData(self) -> "double *":
        return _SelectMgr.SelectMgr_Mat4_ChangeData(self)

    def Multiply(self, *args) -> "void":
        return _SelectMgr.SelectMgr_Mat4_Multiply(self, *args)

    def __imul__(self, *args) -> "NCollection_Mat4< Standard_Real > &":
        return _SelectMgr.SelectMgr_Mat4___imul__(self, *args)

    def __mul__(self, *args) -> "NCollection_Mat4< Standard_Real >":
        return _SelectMgr.SelectMgr_Mat4___mul__(self, *args)

    def Multiplied(self, *args) -> "NCollection_Mat4< Standard_Real >":
        return _SelectMgr.SelectMgr_Mat4_Multiplied(self, *args)

    def Translate(self, theVec: "Graphic3d_Vec3d") -> "void":
        return _SelectMgr.SelectMgr_Mat4_Translate(self, theVec)

    def Transposed(self) -> "NCollection_Mat4< Standard_Real >":
        return _SelectMgr.SelectMgr_Mat4_Transposed(self)

    def Transpose(self) -> "void":
        return _SelectMgr.SelectMgr_Mat4_Transpose(self)

    def Inverted(self, theOutMx: "Graphic3d_Mat4d") -> "bool":
        return _SelectMgr.SelectMgr_Mat4_Inverted(self, theOutMx)

    @staticmethod
    def Map(*args) -> "NCollection_Mat4< double > const &":
        return _SelectMgr.SelectMgr_Mat4_Map(*args)

    def DumpJson(self, theOStream: "Standard_OStream &", arg3: "Standard_Integer") -> "void":
        return _SelectMgr.SelectMgr_Mat4_DumpJson(self, theOStream, arg3)
    __swig_destroy__ = _SelectMgr.delete_SelectMgr_Mat4

# Register SelectMgr_Mat4 in _SelectMgr:
_SelectMgr.SelectMgr_Mat4_swigregister(SelectMgr_Mat4)

def SelectMgr_Mat4_Rows() -> "size_t":
    return _SelectMgr.SelectMgr_Mat4_Rows()

def SelectMgr_Mat4_Cols() -> "size_t":
    return _SelectMgr.SelectMgr_Mat4_Cols()

def SelectMgr_Mat4_Map(*args) -> "NCollection_Mat4< double > const &":
    return _SelectMgr.SelectMgr_Mat4_Map(*args)

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

    def begin(self) -> "NCollection_Sequence< opencascade::handle< SelectMgr_Filter > >::iterator":
        return _SelectMgr.SelectMgr_SequenceOfFilter_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< SelectMgr_Filter > >::iterator":
        return _SelectMgr.SelectMgr_SequenceOfFilter_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< SelectMgr_Filter > >::const_iterator":
        return _SelectMgr.SelectMgr_SequenceOfFilter_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< SelectMgr_Filter > >::const_iterator":
        return _SelectMgr.SelectMgr_SequenceOfFilter_cend(self)

    def __init__(self, *args):
        _SelectMgr.SelectMgr_SequenceOfFilter_swiginit(self, _SelectMgr.new_SelectMgr_SequenceOfFilter(*args))

    def Size(self) -> "Standard_Integer":
        return _SelectMgr.SelectMgr_SequenceOfFilter_Size(self)

    def Length(self) -> "Standard_Integer":
        return _SelectMgr.SelectMgr_SequenceOfFilter_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _SelectMgr.SelectMgr_SequenceOfFilter_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _SelectMgr.SelectMgr_SequenceOfFilter_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _SelectMgr.SelectMgr_SequenceOfFilter_IsEmpty(self)

    def Reverse(self) -> "void":
        return _SelectMgr.SelectMgr_SequenceOfFilter_Reverse(self)

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

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

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

    def Assign(self, theOther: "SelectMgr_SequenceOfFilter") -> "NCollection_Sequence< opencascade::handle< SelectMgr_Filter > > &":
        return _SelectMgr.SelectMgr_SequenceOfFilter_Assign(self, theOther)

    def Set(self, theOther: "SelectMgr_SequenceOfFilter") -> "NCollection_Sequence< opencascade::handle< SelectMgr_Filter > > &":
        return _SelectMgr.SelectMgr_SequenceOfFilter_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _SelectMgr.SelectMgr_SequenceOfFilter_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _SelectMgr.SelectMgr_SequenceOfFilter_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _SelectMgr.SelectMgr_SequenceOfFilter_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _SelectMgr.SelectMgr_SequenceOfFilter_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _SelectMgr.SelectMgr_SequenceOfFilter_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "SelectMgr_SequenceOfFilter") -> "void":
        return _SelectMgr.SelectMgr_SequenceOfFilter_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< SelectMgr_Filter > const &":
        return _SelectMgr.SelectMgr_SequenceOfFilter_First(self)

    def ChangeFirst(self) -> "opencascade::handle< SelectMgr_Filter > &":
        return _SelectMgr.SelectMgr_SequenceOfFilter_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< SelectMgr_Filter > const &":
        return _SelectMgr.SelectMgr_SequenceOfFilter_Last(self)

    def ChangeLast(self) -> "opencascade::handle< SelectMgr_Filter > &":
        return _SelectMgr.SelectMgr_SequenceOfFilter_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< SelectMgr_Filter > const &":
        return _SelectMgr.SelectMgr_SequenceOfFilter_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< SelectMgr_Filter > &":
        return _SelectMgr.SelectMgr_SequenceOfFilter_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< SelectMgr_Filter > &":
        return _SelectMgr.SelectMgr_SequenceOfFilter___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< SelectMgr_Filter > const &") -> "void":
        return _SelectMgr.SelectMgr_SequenceOfFilter_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _SelectMgr.delete_SelectMgr_SequenceOfFilter

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


# Register SelectMgr_SequenceOfFilter in _SelectMgr:
_SelectMgr.SelectMgr_SequenceOfFilter_swigregister(SelectMgr_SequenceOfFilter)

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

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

    def begin(self) -> "NCollection_Sequence< opencascade::handle< SelectMgr_EntityOwner > >::iterator":
        return _SelectMgr.SelectMgr_SequenceOfOwner_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< SelectMgr_EntityOwner > >::iterator":
        return _SelectMgr.SelectMgr_SequenceOfOwner_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< SelectMgr_EntityOwner > >::const_iterator":
        return _SelectMgr.SelectMgr_SequenceOfOwner_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< SelectMgr_EntityOwner > >::const_iterator":
        return _SelectMgr.SelectMgr_SequenceOfOwner_cend(self)

    def __init__(self, *args):
        _SelectMgr.SelectMgr_SequenceOfOwner_swiginit(self, _SelectMgr.new_SelectMgr_SequenceOfOwner(*args))

    def Size(self) -> "Standard_Integer":
        return _SelectMgr.SelectMgr_SequenceOfOwner_Size(self)

    def Length(self) -> "Standard_Integer":
        return _SelectMgr.SelectMgr_SequenceOfOwner_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _SelectMgr.SelectMgr_SequenceOfOwner_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _SelectMgr.SelectMgr_SequenceOfOwner_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _SelectMgr.SelectMgr_SequenceOfOwner_IsEmpty(self)

    def Reverse(self) -> "void":
        return _SelectMgr.SelectMgr_SequenceOfOwner_Reverse(self)

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

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

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

    def Assign(self, theOther: "SelectMgr_SequenceOfOwner") -> "NCollection_Sequence< opencascade::handle< SelectMgr_EntityOwner > > &":
        return _SelectMgr.SelectMgr_SequenceOfOwner_Assign(self, theOther)

    def Set(self, theOther: "SelectMgr_SequenceOfOwner") -> "NCollection_Sequence< opencascade::handle< SelectMgr_EntityOwner > > &":
        return _SelectMgr.SelectMgr_SequenceOfOwner_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _SelectMgr.SelectMgr_SequenceOfOwner_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _SelectMgr.SelectMgr_SequenceOfOwner_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _SelectMgr.SelectMgr_SequenceOfOwner_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _SelectMgr.SelectMgr_SequenceOfOwner_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _SelectMgr.SelectMgr_SequenceOfOwner_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "SelectMgr_SequenceOfOwner") -> "void":
        return _SelectMgr.SelectMgr_SequenceOfOwner_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< SelectMgr_EntityOwner > const &":
        return _SelectMgr.SelectMgr_SequenceOfOwner_First(self)

    def ChangeFirst(self) -> "opencascade::handle< SelectMgr_EntityOwner > &":
        return _SelectMgr.SelectMgr_SequenceOfOwner_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< SelectMgr_EntityOwner > const &":
        return _SelectMgr.SelectMgr_SequenceOfOwner_Last(self)

    def ChangeLast(self) -> "opencascade::handle< SelectMgr_EntityOwner > &":
        return _SelectMgr.SelectMgr_SequenceOfOwner_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< SelectMgr_EntityOwner > const &":
        return _SelectMgr.SelectMgr_SequenceOfOwner_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< SelectMgr_EntityOwner > &":
        return _SelectMgr.SelectMgr_SequenceOfOwner_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< SelectMgr_EntityOwner > &":
        return _SelectMgr.SelectMgr_SequenceOfOwner___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< SelectMgr_EntityOwner > const &") -> "void":
        return _SelectMgr.SelectMgr_SequenceOfOwner_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _SelectMgr.delete_SelectMgr_SequenceOfOwner

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


# Register SelectMgr_SequenceOfOwner in _SelectMgr:
_SelectMgr.SelectMgr_SequenceOfOwner_swigregister(SelectMgr_SequenceOfOwner)

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

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

    def begin(self) -> "NCollection_Sequence< opencascade::handle< SelectMgr_Selection > >::iterator":
        return _SelectMgr.SelectMgr_SequenceOfSelection_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< SelectMgr_Selection > >::iterator":
        return _SelectMgr.SelectMgr_SequenceOfSelection_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< SelectMgr_Selection > >::const_iterator":
        return _SelectMgr.SelectMgr_SequenceOfSelection_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< SelectMgr_Selection > >::const_iterator":
        return _SelectMgr.SelectMgr_SequenceOfSelection_cend(self)

    def __init__(self, *args):
        _SelectMgr.SelectMgr_SequenceOfSelection_swiginit(self, _SelectMgr.new_SelectMgr_SequenceOfSelection(*args))

    def Size(self) -> "Standard_Integer":
        return _SelectMgr.SelectMgr_SequenceOfSelection_Size(self)

    def Length(self) -> "Standard_Integer":
        return _SelectMgr.SelectMgr_SequenceOfSelection_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _SelectMgr.SelectMgr_SequenceOfSelection_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _SelectMgr.SelectMgr_SequenceOfSelection_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _SelectMgr.SelectMgr_SequenceOfSelection_IsEmpty(self)

    def Reverse(self) -> "void":
        return _SelectMgr.SelectMgr_SequenceOfSelection_Reverse(self)

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

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

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

    def Assign(self, theOther: "SelectMgr_SequenceOfSelection") -> "NCollection_Sequence< opencascade::handle< SelectMgr_Selection > > &":
        return _SelectMgr.SelectMgr_SequenceOfSelection_Assign(self, theOther)

    def Set(self, theOther: "SelectMgr_SequenceOfSelection") -> "NCollection_Sequence< opencascade::handle< SelectMgr_Selection > > &":
        return _SelectMgr.SelectMgr_SequenceOfSelection_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _SelectMgr.SelectMgr_SequenceOfSelection_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _SelectMgr.SelectMgr_SequenceOfSelection_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _SelectMgr.SelectMgr_SequenceOfSelection_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _SelectMgr.SelectMgr_SequenceOfSelection_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _SelectMgr.SelectMgr_SequenceOfSelection_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "SelectMgr_SequenceOfSelection") -> "void":
        return _SelectMgr.SelectMgr_SequenceOfSelection_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< SelectMgr_Selection > const &":
        return _SelectMgr.SelectMgr_SequenceOfSelection_First(self)

    def ChangeFirst(self) -> "opencascade::handle< SelectMgr_Selection > &":
        return _SelectMgr.SelectMgr_SequenceOfSelection_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< SelectMgr_Selection > const &":
        return _SelectMgr.SelectMgr_SequenceOfSelection_Last(self)

    def ChangeLast(self) -> "opencascade::handle< SelectMgr_Selection > &":
        return _SelectMgr.SelectMgr_SequenceOfSelection_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< SelectMgr_Selection > const &":
        return _SelectMgr.SelectMgr_SequenceOfSelection_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< SelectMgr_Selection > &":
        return _SelectMgr.SelectMgr_SequenceOfSelection_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< SelectMgr_Selection > &":
        return _SelectMgr.SelectMgr_SequenceOfSelection___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< SelectMgr_Selection > const &") -> "void":
        return _SelectMgr.SelectMgr_SequenceOfSelection_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _SelectMgr.delete_SelectMgr_SequenceOfSelection

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


# Register SelectMgr_SequenceOfSelection in _SelectMgr:
_SelectMgr.SelectMgr_SequenceOfSelection_swigregister(SelectMgr_SequenceOfSelection)

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

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

    @staticmethod
    def Length() -> "int":
        return _SelectMgr.SelectMgr_Vec3_Length()

    def __init__(self, *args):
        _SelectMgr.SelectMgr_Vec3_swiginit(self, _SelectMgr.new_SelectMgr_Vec3(*args))

    def SetValues(self, *args) -> "void":
        return _SelectMgr.SelectMgr_Vec3_SetValues(self, *args)

    def xy(self) -> "NCollection_Vec2< double > const":
        return _SelectMgr.SelectMgr_Vec3_xy(self)

    def yx(self) -> "NCollection_Vec2< double > const":
        return _SelectMgr.SelectMgr_Vec3_yx(self)

    def xz(self) -> "NCollection_Vec2< double > const":
        return _SelectMgr.SelectMgr_Vec3_xz(self)

    def zx(self) -> "NCollection_Vec2< double > const":
        return _SelectMgr.SelectMgr_Vec3_zx(self)

    def yz(self) -> "NCollection_Vec2< double > const":
        return _SelectMgr.SelectMgr_Vec3_yz(self)

    def zy(self) -> "NCollection_Vec2< double > const":
        return _SelectMgr.SelectMgr_Vec3_zy(self)

    def xyz(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec3_xyz(self)

    def xzy(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec3_xzy(self)

    def yxz(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec3_yxz(self)

    def yzx(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec3_yzx(self)

    def zyx(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec3_zyx(self)

    def zxy(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec3_zxy(self)

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

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

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

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

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

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

    def IsEqual(self, theOther: "Graphic3d_Vec3d") -> "bool":
        return _SelectMgr.SelectMgr_Vec3_IsEqual(self, theOther)

    def __eq__(self, *args) -> "bool":
        return _SelectMgr.SelectMgr_Vec3___eq__(self, *args)

    def __ne__(self, *args) -> "bool":
        return _SelectMgr.SelectMgr_Vec3___ne__(self, *args)

    def GetData(self) -> "double const *":
        return _SelectMgr.SelectMgr_Vec3_GetData(self)

    def ChangeData(self) -> "double *":
        return _SelectMgr.SelectMgr_Vec3_ChangeData(self)

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

    def __neg__(self) -> "NCollection_Vec3< Standard_Real >":
        return _SelectMgr.SelectMgr_Vec3___neg__(self)

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

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

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

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

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

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

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

    def cwiseAbs(self) -> "NCollection_Vec3< Standard_Real >":
        return _SelectMgr.SelectMgr_Vec3_cwiseAbs(self)

    def maxComp(self) -> "double":
        return _SelectMgr.SelectMgr_Vec3_maxComp(self)

    def minComp(self) -> "double":
        return _SelectMgr.SelectMgr_Vec3_minComp(self)

    def __itruediv__(self, *args):
        return _SelectMgr.SelectMgr_Vec3___itruediv__(self, *args)
    __idiv__ = __itruediv__



    def __truediv__(self, *args):
        return _SelectMgr.SelectMgr_Vec3___truediv__(self, *args)
    __div__ = __truediv__



    def Dot(self, theOther: "Graphic3d_Vec3d") -> "double":
        return _SelectMgr.SelectMgr_Vec3_Dot(self, theOther)

    def Modulus(self) -> "double":
        return _SelectMgr.SelectMgr_Vec3_Modulus(self)

    def SquareModulus(self) -> "double":
        return _SelectMgr.SelectMgr_Vec3_SquareModulus(self)

    def Normalize(self) -> "void":
        return _SelectMgr.SelectMgr_Vec3_Normalize(self)

    def Normalized(self) -> "NCollection_Vec3< Standard_Real >":
        return _SelectMgr.SelectMgr_Vec3_Normalized(self)

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

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

    @staticmethod
    def DX() -> "NCollection_Vec3< Standard_Real >":
        return _SelectMgr.SelectMgr_Vec3_DX()

    @staticmethod
    def DY() -> "NCollection_Vec3< Standard_Real >":
        return _SelectMgr.SelectMgr_Vec3_DY()

    @staticmethod
    def DZ() -> "NCollection_Vec3< Standard_Real >":
        return _SelectMgr.SelectMgr_Vec3_DZ()

    def DumpJson(self, theOStream: "Standard_OStream &", theDepth: "Standard_Integer"=-1) -> "void":
        return _SelectMgr.SelectMgr_Vec3_DumpJson(self, theOStream, theDepth)
    __swig_destroy__ = _SelectMgr.delete_SelectMgr_Vec3

# Register SelectMgr_Vec3 in _SelectMgr:
_SelectMgr.SelectMgr_Vec3_swigregister(SelectMgr_Vec3)

def SelectMgr_Vec3_Length() -> "int":
    return _SelectMgr.SelectMgr_Vec3_Length()

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

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

def SelectMgr_Vec3_DX() -> "NCollection_Vec3< Standard_Real >":
    return _SelectMgr.SelectMgr_Vec3_DX()

def SelectMgr_Vec3_DY() -> "NCollection_Vec3< Standard_Real >":
    return _SelectMgr.SelectMgr_Vec3_DY()

def SelectMgr_Vec3_DZ() -> "NCollection_Vec3< Standard_Real >":
    return _SelectMgr.SelectMgr_Vec3_DZ()

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

    @staticmethod
    def Length() -> "int":
        return _SelectMgr.SelectMgr_Vec4_Length()

    def __init__(self, *args):
        _SelectMgr.SelectMgr_Vec4_swiginit(self, _SelectMgr.new_SelectMgr_Vec4(*args))

    def SetValues(self, *args) -> "void":
        return _SelectMgr.SelectMgr_Vec4_SetValues(self, *args)

    def xy(self) -> "NCollection_Vec2< double > const":
        return _SelectMgr.SelectMgr_Vec4_xy(self)

    def yx(self) -> "NCollection_Vec2< double > const":
        return _SelectMgr.SelectMgr_Vec4_yx(self)

    def xz(self) -> "NCollection_Vec2< double > const":
        return _SelectMgr.SelectMgr_Vec4_xz(self)

    def zx(self) -> "NCollection_Vec2< double > const":
        return _SelectMgr.SelectMgr_Vec4_zx(self)

    def xw(self) -> "NCollection_Vec2< double > const":
        return _SelectMgr.SelectMgr_Vec4_xw(self)

    def wx(self) -> "NCollection_Vec2< double > const":
        return _SelectMgr.SelectMgr_Vec4_wx(self)

    def yz(self) -> "NCollection_Vec2< double > const":
        return _SelectMgr.SelectMgr_Vec4_yz(self)

    def zy(self) -> "NCollection_Vec2< double > const":
        return _SelectMgr.SelectMgr_Vec4_zy(self)

    def yw(self) -> "NCollection_Vec2< double > const":
        return _SelectMgr.SelectMgr_Vec4_yw(self)

    def wy(self) -> "NCollection_Vec2< double > const":
        return _SelectMgr.SelectMgr_Vec4_wy(self)

    def zw(self) -> "NCollection_Vec2< double > const":
        return _SelectMgr.SelectMgr_Vec4_zw(self)

    def wz(self) -> "NCollection_Vec2< double > const":
        return _SelectMgr.SelectMgr_Vec4_wz(self)

    def xyz(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_xyz(self)

    def xzy(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_xzy(self)

    def yxz(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_yxz(self)

    def yzx(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_yzx(self)

    def zyx(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_zyx(self)

    def zxy(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_zxy(self)

    def xyw(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_xyw(self)

    def xwy(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_xwy(self)

    def yxw(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_yxw(self)

    def ywx(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_ywx(self)

    def wyx(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_wyx(self)

    def wxy(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_wxy(self)

    def xzw(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_xzw(self)

    def xwz(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_xwz(self)

    def zxw(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_zxw(self)

    def zwx(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_zwx(self)

    def wzx(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_wzx(self)

    def wxz(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_wxz(self)

    def yzw(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_yzw(self)

    def ywz(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_ywz(self)

    def zyw(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_zyw(self)

    def zwy(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_zwy(self)

    def wzy(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_wzy(self)

    def wyz(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_wyz(self)

    def rgb(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_rgb(self)

    def rbg(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_rbg(self)

    def grb(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_grb(self)

    def gbr(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_gbr(self)

    def bgr(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_bgr(self)

    def brg(self) -> "NCollection_Vec3< double > const":
        return _SelectMgr.SelectMgr_Vec4_brg(self)

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

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

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

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

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

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

    def w(self, *args) -> "double &":
        return _SelectMgr.SelectMgr_Vec4_w(self, *args)

    def a(self, *args) -> "double &":
        return _SelectMgr.SelectMgr_Vec4_a(self, *args)

    def IsEqual(self, theOther: "Graphic3d_Vec4d") -> "bool":
        return _SelectMgr.SelectMgr_Vec4_IsEqual(self, theOther)

    def __eq__(self, *args) -> "bool":
        return _SelectMgr.SelectMgr_Vec4___eq__(self, *args)

    def __ne__(self, *args) -> "bool":
        return _SelectMgr.SelectMgr_Vec4___ne__(self, *args)

    def GetData(self) -> "double const *":
        return _SelectMgr.SelectMgr_Vec4_GetData(self)

    def ChangeData(self) -> "double *":
        return _SelectMgr.SelectMgr_Vec4_ChangeData(self)

    def __iadd__(self, theAdd: "Graphic3d_Vec4d") -> "NCollection_Vec4< Standard_Real > &":
        return _SelectMgr.SelectMgr_Vec4___iadd__(self, theAdd)

    def __neg__(self) -> "NCollection_Vec4< Standard_Real >":
        return _SelectMgr.SelectMgr_Vec4___neg__(self)

    def __isub__(self, theDec: "Graphic3d_Vec4d") -> "NCollection_Vec4< Standard_Real > &":
        return _SelectMgr.SelectMgr_Vec4___isub__(self, theDec)

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

    def __imul__(self, *args) -> "NCollection_Vec4< Standard_Real > &":
        return _SelectMgr.SelectMgr_Vec4___imul__(self, *args)

    def __mul__(self, theFactor: "double const") -> "NCollection_Vec4< Standard_Real >":
        return _SelectMgr.SelectMgr_Vec4___mul__(self, theFactor)

    def Multiplied(self, theFactor: "double const") -> "NCollection_Vec4< Standard_Real >":
        return _SelectMgr.SelectMgr_Vec4_Multiplied(self, theFactor)

    def cwiseMin(self, theVec: "Graphic3d_Vec4d") -> "NCollection_Vec4< Standard_Real >":
        return _SelectMgr.SelectMgr_Vec4_cwiseMin(self, theVec)

    def cwiseMax(self, theVec: "Graphic3d_Vec4d") -> "NCollection_Vec4< Standard_Real >":
        return _SelectMgr.SelectMgr_Vec4_cwiseMax(self, theVec)

    def cwiseAbs(self) -> "NCollection_Vec4< Standard_Real >":
        return _SelectMgr.SelectMgr_Vec4_cwiseAbs(self)

    def maxComp(self) -> "double":
        return _SelectMgr.SelectMgr_Vec4_maxComp(self)

    def minComp(self) -> "double":
        return _SelectMgr.SelectMgr_Vec4_minComp(self)

    def Dot(self, theOther: "Graphic3d_Vec4d") -> "double":
        return _SelectMgr.SelectMgr_Vec4_Dot(self, theOther)

    def __itruediv__(self, *args):
        return _SelectMgr.SelectMgr_Vec4___itruediv__(self, *args)
    __idiv__ = __itruediv__



    def __truediv__(self, *args):
        return _SelectMgr.SelectMgr_Vec4___truediv__(self, *args)
    __div__ = __truediv__



    def DumpJson(self, theOStream: "Standard_OStream &", theDepth: "Standard_Integer"=-1) -> "void":
        return _SelectMgr.SelectMgr_Vec4_DumpJson(self, theOStream, theDepth)
    __swig_destroy__ = _SelectMgr.delete_SelectMgr_Vec4

# Register SelectMgr_Vec4 in _SelectMgr:
_SelectMgr.SelectMgr_Vec4_swigregister(SelectMgr_Vec4)

def SelectMgr_Vec4_Length() -> "int":
    return _SelectMgr.SelectMgr_Vec4_Length()

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

    @staticmethod
    def ComputeSensitivePrs(*args) -> "void":
        r"""
        Compute debug presentation for sensitive objects.

        Parameters
        ----------
        theStructure: Graphic3d_Structure
        theSel: SelectMgr_Selection
        theLoc: gp_Trsf
        theTrsfPers: Graphic3d_TransformPers

        Returns
        -------
        None

        """
        return _SelectMgr.selectmgr_ComputeSensitivePrs(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _SelectMgr.selectmgr_swiginit(self, _SelectMgr.new_selectmgr())
    __swig_destroy__ = _SelectMgr.delete_selectmgr

# Register selectmgr in _SelectMgr:
_SelectMgr.selectmgr_swigregister(selectmgr)

def selectmgr_ComputeSensitivePrs(*args) -> "void":
    r"""
    Compute debug presentation for sensitive objects.

    Parameters
    ----------
    theStructure: Graphic3d_Structure
    theSel: SelectMgr_Selection
    theLoc: gp_Trsf
    theTrsfPers: Graphic3d_TransformPers

    Returns
    -------
    None

    """
    return _SelectMgr.selectmgr_ComputeSensitivePrs(*args)

class SelectMgr_BVHThreadPool(OCC.Core.Standard.Standard_Transient):
    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"""
        Main constructor.

        Parameters
        ----------
        theNbThreads: int

        Returns
        -------
        None

        """
        _SelectMgr.SelectMgr_BVHThreadPool_swiginit(self, _SelectMgr.new_SelectMgr_BVHThreadPool(*args))

    def AddEntity(self, *args) -> "void":
        r"""
        Queue a sensitive entity to build its bvh.

        Parameters
        ----------
        theEntity: Select3D_SensitiveEntity

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_BVHThreadPool_AddEntity(self, *args)

    def StopThreads(self, *args) -> "void":
        r"""
        Stops threads.

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_BVHThreadPool_StopThreads(self, *args)

    def Threads(self, *args) -> "NCollection_Array1< SelectMgr_BVHThreadPool::BVHThread > &":
        r"""
        Returns array of threads.

        Returns
        -------
        NCollection_Array1<BVHThread>

        """
        return _SelectMgr.SelectMgr_BVHThreadPool_Threads(self, *args)

    def WaitThreads(self, *args) -> "void":
        r"""
        Waits for all threads finish their jobs.

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_BVHThreadPool_WaitThreads(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_BVHThreadPool

# Register SelectMgr_BVHThreadPool in _SelectMgr:
_SelectMgr.SelectMgr_BVHThreadPool_swigregister(SelectMgr_BVHThreadPool)

class SelectMgr_EntityOwner(OCC.Core.Standard.Standard_Transient):
    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"""
        Initializes the selection priority apriority.

        Parameters
        ----------
        aPriority: int,optional
        	default value is 0

        Returns
        -------
        None
        Constructs a framework with the selectable object anso being attributed the selection priority apriority.

        Parameters
        ----------
        aSO: SelectMgr_SelectableObject
        aPriority: int,optional
        	default value is 0

        Returns
        -------
        None
        Constructs a framework from existing one anso being attributed the selection priority apriority.

        Parameters
        ----------
        theOwner: SelectMgr_EntityOwner
        aPriority: int,optional
        	default value is 0

        Returns
        -------
        None

        """
        _SelectMgr.SelectMgr_EntityOwner_swiginit(self, _SelectMgr.new_SelectMgr_EntityOwner(*args))

    def Clear(self, *args) -> "void":
        r"""
        Clears the owners matching the value of the selection mode amode from the presentation manager object apm.

        Parameters
        ----------
        thePrsMgr: PrsMgr_PresentationManager
        theMode: int,optional
        	default value is 0

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_EntityOwner_Clear(self, *args)

    def ComesFromDecomposition(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if this owner points to a part of object and false for entire object.

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_EntityOwner_ComesFromDecomposition(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(SelectMgr_EntityOwner self, int depth=-1) -> std::string"""
        return _SelectMgr.SelectMgr_EntityOwner_DumpJsonToString(self, depth)

    def HandleMouseClick(self, *args) -> "Standard_Boolean":
        r"""
        Handle mouse button click event. does nothing by default and returns false. @param thepoint mouse cursor position @param thebutton clicked button @param themodifiers key modifiers @param theisdoubleclick flag indicating double mouse click returns true if object handled click.

        Parameters
        ----------
        thePoint: Graphic3d_Vec2i
        theButton: Aspect_VKeyMouse
        theModifiers: Aspect_VKeyFlags
        theIsDoubleClick: bool

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_EntityOwner_HandleMouseClick(self, *args)

    def HasLocation(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if selectable has transformation.

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_EntityOwner_HasLocation(self, *args)

    def HasSelectable(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if there is a selectable object to serve as an owner.

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_EntityOwner_HasSelectable(self, *args)

    def HilightWithColor(self, *args) -> "void":
        r"""
        Highlights selectable object's presentation with display mode in presentation manager with given highlight style. also a check for auto-highlight is performed - if selectable object manages highlighting on its own, execution will be passed to selectmgr_selectableobject::hilightownerwithcolor method.

        Parameters
        ----------
        thePrsMgr: PrsMgr_PresentationManager
        theStyle: Prs3d_Drawer
        theMode: int,optional
        	default value is 0

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_EntityOwner_HilightWithColor(self, *args)

    def IsAutoHilight(self, *args) -> "Standard_Boolean":
        r"""
        If owner is not auto hilighted, for group contains many such owners will be called one method hilightselected of selectableobject.

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_EntityOwner_IsAutoHilight(self, *args)

    def IsForcedHilight(self, *args) -> "Standard_Boolean":
        r"""
        If this method returns true the owner will always call method hilight for selectableobject when the owner is detected. by default it always return false.

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_EntityOwner_IsForcedHilight(self, *args)

    def IsHilighted(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the presentation manager highlights selections corresponding to the selection mode.

        Parameters
        ----------
        thePrsMgr: PrsMgr_PresentationManager
        theMode: int,optional
        	default value is 0

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_EntityOwner_IsHilighted(self, *args)

    def IsSameSelectable(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if pointer to selectable object of this owner is equal to the given one.

        Parameters
        ----------
        theOther: SelectMgr_SelectableObject

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_EntityOwner_IsSameSelectable(self, *args)

    def IsSelected(self, *args) -> "Standard_Boolean":
        r"""
        Returns standard_true if the owner is selected.

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_EntityOwner_IsSelected(self, *args)

    def Location(self, *args) -> "TopLoc_Location":
        r"""
        Returns transformation of selectable.

        Returns
        -------
        TopLoc_Location

        """
        return _SelectMgr.SelectMgr_EntityOwner_Location(self, *args)

    def Priority(self, *args) -> "Standard_Integer":
        r"""
        Return selection priority (within range [0-9]) for results with the same depth; 0 by default. example - selection of shapes: the owners are selectable objects (presentations) a user can give vertex priority [3], edges [2] faces [1] shape [0], so that if during selection one vertex one edge and one face are simultaneously detected, the vertex will only be hilighted.

        Returns
        -------
        int

        """
        return _SelectMgr.SelectMgr_EntityOwner_Priority(self, *args)

    def Selectable(self, *args) -> "opencascade::handle< SelectMgr_SelectableObject >":
        r"""
        Returns a selectable object detected in the working context.

        Returns
        -------
        opencascade::handle<SelectMgr_SelectableObject>

        """
        return _SelectMgr.SelectMgr_EntityOwner_Selectable(self, *args)

    def Set(self, *args) -> "void":
        r"""
        Sets the selectable object.

        Parameters
        ----------
        theSelObj: SelectMgr_SelectableObject

        Returns
        -------
        None
        Sets the selectable priority of the owner.

        Parameters
        ----------
        thePriority: int

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_EntityOwner_Set(self, *args)

    def SetComesFromDecomposition(self, *args) -> "void":
        r"""
        Sets flag indicating this owner points to a part of object (true) or to entire object (false).

        Parameters
        ----------
        theIsFromDecomposition: bool

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_EntityOwner_SetComesFromDecomposition(self, *args)

    def SetLocation(self, *args) -> "void":
        r"""
        Change owner location (callback for handling change of location of selectable object).

        Parameters
        ----------
        theLocation: TopLoc_Location

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_EntityOwner_SetLocation(self, *args)

    def SetPriority(self, *args) -> "void":
        r"""
        Sets the selectable priority of the owner within range [0-9].

        Parameters
        ----------
        thePriority: int

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_EntityOwner_SetPriority(self, *args)

    def SetSelectable(self, *args) -> "void":
        r"""
        Sets the selectable object.

        Parameters
        ----------
        theSelObj: SelectMgr_SelectableObject

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_EntityOwner_SetSelectable(self, *args)

    def SetSelected(self, *args) -> "void":
        r"""
        Set the state of the owner. @param theisselected [in] shows if owner is selected.

        Parameters
        ----------
        theIsSelected: bool

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_EntityOwner_SetSelected(self, *args)

    def SetZLayer(self, *args) -> "void":
        r"""
        Set z layer id and update all presentations.

        Parameters
        ----------
        theLayerId: int

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_EntityOwner_SetZLayer(self, *args)

    def State(self, *args) -> "void":
        r"""
        Returns selection state.

        Returns
        -------
        int
        Set the state of the owner. the method is deprecated. use setselected() instead.

        Parameters
        ----------
        theStatus: int

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_EntityOwner_State(self, *args)

    def Unhilight(self, *args) -> "void":
        r"""
        Removes highlighting from the owner of a detected selectable object in the presentation manager. this object could be the owner of a sensitive primitive. @param theprsmgr presentation manager @param themode obsolete argument for compatibility, should be ignored by implementations.

        Parameters
        ----------
        thePrsMgr: PrsMgr_PresentationManager
        theMode: int,optional
        	default value is 0

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_EntityOwner_Unhilight(self, *args)

    def UpdateHighlightTrsf(self, *args) -> "void":
        r"""
        Implements immediate application of location transformation of parent object to dynamic highlight structure.

        Parameters
        ----------
        theViewer: V3d_Viewer
        theManager: PrsMgr_PresentationManager
        theDispMode: int

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_EntityOwner_UpdateHighlightTrsf(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_EntityOwner

# Register SelectMgr_EntityOwner in _SelectMgr:
_SelectMgr.SelectMgr_EntityOwner_swigregister(SelectMgr_EntityOwner)

class SelectMgr_Filter(OCC.Core.Standard.Standard_Transient):
    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")
    __repr__ = _swig_repr

    def ActsOn(self, *args) -> "Standard_Boolean":
        r"""
        Returns true in an ais local context, if this filter operates on a type of subshape defined in a filter class inheriting this framework. this function completes isok in an ais local context.

        Parameters
        ----------
        aStandardMode: TopAbs_ShapeEnum

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_Filter_ActsOn(self, *args)

    def IsOk(self, *args) -> "Standard_Boolean":
        r"""
        Indicates that the selected interactive object passes the filter. the owner, anobj, can be either direct or user. a direct owner is the corresponding construction element, whereas a user is the compound shape of which the entity forms a part. when an object is detected by the mouse - in ais, this is done through a context selector - its owner is passed to the filter as an argument. if the object returns standard_true, it is kept; if not, it is rejected. if you are creating a filter class inheriting this framework, and the daughter class is to be used in an ais local context, you will need to implement the virtual function actson.

        Parameters
        ----------
        anObj: SelectMgr_EntityOwner

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_Filter_IsOk(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_Filter

# Register SelectMgr_Filter in _SelectMgr:
_SelectMgr.SelectMgr_Filter_swigregister(SelectMgr_Filter)

class SelectMgr_SelectableObject(OCC.Core.PrsMgr.PrsMgr_PresentableObject):
    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")
    __repr__ = _swig_repr

    def AcceptShapeDecomposition(self, *args) -> "Standard_Boolean":
        r"""
        Informs the graphic context that the interactive object may be decomposed into sub-shapes for dynamic selection. the most used interactive object is ais_shape.

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_SelectableObject_AcceptShapeDecomposition(self, *args)

    def AddSelection(self, *args) -> "void":
        r"""
        Adds the selection aselection with the selection mode index amode to this framework.

        Parameters
        ----------
        aSelection: SelectMgr_Selection
        aMode: int

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectableObject_AddSelection(self, *args)

    def ClearDynamicHighlight(self, *args) -> "void":
        r"""
        Method that needs to be implemented when the object manages selection and dynamic highlighting on its own. clears or invalidates dynamic highlight presentation. by default it clears immediate draw of given presentation manager.

        Parameters
        ----------
        theMgr: PrsMgr_PresentationManager

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectableObject_ClearDynamicHighlight(self, *args)

    def ClearSelected(self, *args) -> "void":
        r"""
        Method which clear all selected owners belonging to this selectable object ( for fast presentation draw ).

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectableObject_ClearSelected(self, *args)

    def ClearSelections(self, *args) -> "void":
        r"""
        Empties all the selections in the selectableobject <update> parameter defines whether all object's selections should be flagged for further update or not. this improved method can be used to recompute an object's selection (without redisplaying the object completely) when some selection mode is activated not for the first time.

        Parameters
        ----------
        update: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectableObject_ClearSelections(self, *args)

    def ComputeSelection(self, *args) -> "void":
        r"""
        Computes sensitive primitives for the given selection mode - key interface method of selectable object. @param theselection selection to fill @param themode selection mode to create sensitive primitives.

        Parameters
        ----------
        theSelection: SelectMgr_Selection
        theMode: int

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectableObject_ComputeSelection(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(SelectMgr_SelectableObject self, int depth=-1) -> std::string"""
        return _SelectMgr.SelectMgr_SelectableObject_DumpJsonToString(self, depth)

    def ErasePresentations(self, *args) -> "void":
        r"""
        Removes presentations returned by gethilightpresentation() and getselectpresentation().

        Parameters
        ----------
        theToRemove: bool

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectableObject_ErasePresentations(self, *args)

    def GetAssemblyOwner(self, *args) -> "opencascade::handle< SelectMgr_EntityOwner > const &":
        r"""
        Returns common entity owner if the object is an assembly.

        Returns
        -------
        opencascade::handle<SelectMgr_EntityOwner>

        """
        return _SelectMgr.SelectMgr_SelectableObject_GetAssemblyOwner(self, *args)

    def GetHilightPresentation(self, *args) -> "opencascade::handle< Prs3d_Presentation >":
        r"""
        Creates or returns existing presentation for highlighting detected object. @param theprsmgr presentation manager to create new presentation returns existing or newly created presentation (when theprsmgr is not null).

        Parameters
        ----------
        thePrsMgr: PrsMgr_PresentationManager

        Returns
        -------
        opencascade::handle<Prs3d_Presentation>

        """
        return _SelectMgr.SelectMgr_SelectableObject_GetHilightPresentation(self, *args)

    def GetSelectPresentation(self, *args) -> "opencascade::handle< Prs3d_Presentation >":
        r"""
        Creates or returns existing presentation for highlighting selected object. @param theprsmgr presentation manager to create new presentation returns existing or newly created presentation (when theprsmgr is not null).

        Parameters
        ----------
        thePrsMgr: PrsMgr_PresentationManager

        Returns
        -------
        opencascade::handle<Prs3d_Presentation>

        """
        return _SelectMgr.SelectMgr_SelectableObject_GetSelectPresentation(self, *args)

    def GlobalSelOwner(self, *args) -> "opencascade::handle< SelectMgr_EntityOwner >":
        r"""
        Returns the owner of mode for selection of object as a whole.

        Returns
        -------
        opencascade::handle<SelectMgr_EntityOwner>

        """
        return _SelectMgr.SelectMgr_SelectableObject_GlobalSelOwner(self, *args)

    def GlobalSelectionMode(self, *args) -> "Standard_Integer":
        r"""
        Returns the mode for selection of object as a whole; 0 by default.

        Returns
        -------
        int

        """
        return _SelectMgr.SelectMgr_SelectableObject_GlobalSelectionMode(self, *args)

    def HasSelection(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if a selection corresponding to the selection mode themode was computed for this object.

        Parameters
        ----------
        theMode: int

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_SelectableObject_HasSelection(self, *args)

    def HilightOwnerWithColor(self, *args) -> "void":
        r"""
        Method which hilight an owner belonging to this selectable object ( for fast presentation draw ).

        Parameters
        ----------
        thePM: PrsMgr_PresentationManager
        theStyle: Prs3d_Drawer
        theOwner: SelectMgr_EntityOwner

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectableObject_HilightOwnerWithColor(self, *args)

    def HilightSelected(self, *args) -> "void":
        r"""
        Method which draws selected owners ( for fast presentation draw ).

        Parameters
        ----------
        thePrsMgr: PrsMgr_PresentationManager
        theSeq: SelectMgr_SequenceOfOwner

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectableObject_HilightSelected(self, *args)

    def IsAutoHilight(self, *args) -> "Standard_Boolean":
        r"""
        If returns true, the old mechanism for highlighting selected objects is used (hilightselected method may be empty). if returns false, the hilightselected method will be fully responsible for highlighting selected entity owners belonging to this selectable object.

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_SelectableObject_IsAutoHilight(self, *args)

    def RecomputePrimitives(self, *args) -> "void":
        r"""
        Re-computes the sensitive primitives for all modes. important: do not use this method to update selection primitives except implementing custom selection manager! this method does not take into account necessary bvh updates, but may invalidate the pointers it refers to. to update selection properly from outside classes, use method updateselection.

        Returns
        -------
        None
        Re-computes the sensitive primitives which correspond to the <themode>th selection mode. important: do not use this method to update selection primitives except implementing custom selection manager! selection manager! this method does not take into account necessary bvh updates, but may invalidate the pointers it refers to. to update selection properly from outside classes, use method updateselection.

        Parameters
        ----------
        theMode: int

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectableObject_RecomputePrimitives(self, *args)

    def Selection(self, *args) -> "opencascade::handle< SelectMgr_Selection > const &":
        r"""
        Returns the selection having specified selection mode or null.

        Parameters
        ----------
        theMode: int

        Returns
        -------
        opencascade::handle<SelectMgr_Selection>

        """
        return _SelectMgr.SelectMgr_SelectableObject_Selection(self, *args)

    def Selections(self, *args) -> "SelectMgr_SequenceOfSelection const &":
        r"""
        Return the sequence of selections.

        Returns
        -------
        SelectMgr_SequenceOfSelection

        """
        return _SelectMgr.SelectMgr_SelectableObject_Selections(self, *args)

    def SetAssemblyOwner(self, *args) -> "void":
        r"""
        Sets common entity owner for assembly sensitive object entities.

        Parameters
        ----------
        theOwner: SelectMgr_EntityOwner
        theMode: int,optional
        	default value is -1

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectableObject_SetAssemblyOwner(self, *args)

    def SetAutoHilight(self, *args) -> "void":
        r"""
        Set autohilight property to true or false.

        Parameters
        ----------
        theAutoHilight: bool

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectableObject_SetAutoHilight(self, *args)

    def UpdateSelection(self, *args) -> "void":
        r"""
        Sets update status full to selections of the object. must be used as the only method of updateselection from outer classes to prevent bvh structures from being outdated.

        Parameters
        ----------
        theMode: int,optional
        	default value is -1

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectableObject_UpdateSelection(self, *args)

    def UpdateTransformations(self, *args) -> "void":
        r"""
        Updates locations in all sensitive entities from <aselection> and in corresponding entity owners.

        Parameters
        ----------
        aSelection: SelectMgr_Selection

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectableObject_UpdateTransformations(self, *args)


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


    __repr__ = _dumps_object

    @methodnotwrapped
    def BndBoxOfSelected(self):
    	pass

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_SelectableObject

# Register SelectMgr_SelectableObject in _SelectMgr:
_SelectMgr.SelectMgr_SelectableObject_swigregister(SelectMgr_SelectableObject)

class SelectMgr_SelectableObjectSet(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    BVHSubset_3d = _SelectMgr.SelectMgr_SelectableObjectSet_BVHSubset_3d
    BVHSubset_3dPersistent = _SelectMgr.SelectMgr_SelectableObjectSet_BVHSubset_3dPersistent
    BVHSubset_2dPersistent = _SelectMgr.SelectMgr_SelectableObjectSet_BVHSubset_2dPersistent
    BVHSubsetNb = _SelectMgr.SelectMgr_SelectableObjectSet_BVHSubsetNb


    class BVHSubset(IntEnum):
    	BVHSubset_3d = 0
    	BVHSubset_3dPersistent = 1
    	BVHSubset_2dPersistent = 2
    	BVHSubsetNb = 3
    BVHSubset_3d = BVHSubset.BVHSubset_3d
    BVHSubset_3dPersistent = BVHSubset.BVHSubset_3dPersistent
    BVHSubset_2dPersistent = BVHSubset.BVHSubset_2dPersistent
    BVHSubsetNb = BVHSubset.BVHSubsetNb


    def __init__(self, *args):
        r"""
        Creates new empty objects set and initializes bvh tree builders for each subset.

        Returns
        -------
        None

        """
        _SelectMgr.SelectMgr_SelectableObjectSet_swiginit(self, _SelectMgr.new_SelectMgr_SelectableObjectSet(*args))

    def Append(self, *args) -> "Standard_Boolean":
        r"""
        Adds the new selectable object to the set. the selectable object is placed into one of the predefined subsets depending on its persistence type. after adding an object, this method marks the corresponding bvh tree for rebuild. returns true if selectable object is added, otherwise returns false (selectable object is already in the set).

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_SelectableObjectSet_Append(self, *args)

    def BVH(self, *args) -> "opencascade::handle< BVH_Tree< Standard_Real,3 > > const &":
        r"""
        Returns computed bvh for the thesubset given.

        Parameters
        ----------
        theSubset: BVHSubset

        Returns
        -------
        opencascade::handle<BVH_Tree<float, 3>>

        """
        return _SelectMgr.SelectMgr_SelectableObjectSet_BVH(self, *args)

    def ChangeSubset(self, *args) -> "void":
        r"""
        Performs necessary updates when object's persistence types changes. this method should be called right after changing transformation persistence flags of the objects and before updating bvh tree - to provide up-to-date state of the object set.

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectableObjectSet_ChangeSubset(self, *args)

    def Contains(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if this objects set contains theobject given.

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_SelectableObjectSet_Contains(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(SelectMgr_SelectableObjectSet self, int depth=-1) -> std::string"""
        return _SelectMgr.SelectMgr_SelectableObjectSet_DumpJsonToString(self, depth)

    def GetObjectById(self, *args) -> "opencascade::handle< SelectMgr_SelectableObject > const &":
        r"""
        Returns object from subset thesubset by theindex given. the method allows to get selectable object referred by the index of an element of the subset's bvh tree.

        Parameters
        ----------
        theSubset: BVHSubset
        theIndex: int

        Returns
        -------
        opencascade::handle<SelectMgr_SelectableObject>

        """
        return _SelectMgr.SelectMgr_SelectableObjectSet_GetObjectById(self, *args)

    def IsEmpty(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the object set does not contain any selectable objects.

        Returns
        -------
        bool
        Returns true if the specified object subset is empty.

        Parameters
        ----------
        theSubset: BVHSubset

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_SelectableObjectSet_IsEmpty(self, *args)

    def MarkDirty(self, *args) -> "void":
        r"""
        Marks every bvh subset for update.

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectableObjectSet_MarkDirty(self, *args)

    def Remove(self, *args) -> "Standard_Boolean":
        r"""
        Removes the selectable object from the set. the selectable object is removed from the subset it has been placed into. after removing an object, this method marks the corresponding bvh tree for rebuild. returns true if selectable object is removed, otherwise returns false (selectable object is not in the set).

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_SelectableObjectSet_Remove(self, *args)

    def UpdateBVH(self, *args) -> "void":
        r"""
        Updates outdated bvh trees and remembers the last state of the camera view-projection matrices and viewport (window) dimensions.

        Parameters
        ----------
        theCamera: Graphic3d_Camera
        theProjectionMat: Graphic3d_Mat4d
        theWorldViewMat: Graphic3d_Mat4d
        theViewState: Graphic3d_WorldViewProjState
        theViewportWidth: int
        theViewportHeight: int

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectableObjectSet_UpdateBVH(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_SelectableObjectSet

# Register SelectMgr_SelectableObjectSet in _SelectMgr:
_SelectMgr.SelectMgr_SelectableObjectSet_swigregister(SelectMgr_SelectableObjectSet)

class SelectMgr_SelectingVolumeManager(OCC.Core.SelectBasics.SelectBasics_SelectingVolumeManager):
    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"""
        Creates instances of all available selecting volume types.

        Parameters
        ----------
        theToAllocateFrustums: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

        """
        _SelectMgr.SelectMgr_SelectingVolumeManager_swiginit(self, _SelectMgr.new_SelectMgr_SelectingVolumeManager(*args))

    def AllowOverlapDetection(self, *args) -> "void":
        r"""
        If theistoallow is false, only fully included sensitives will be detected, otherwise the algorithm will mark both included and overlapped entities as matched.

        Parameters
        ----------
        theIsToAllow: bool

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_AllowOverlapDetection(self, *args)

    def BuildSelectingVolume(self, *args) -> "void":
        r"""
        Builds rectangular selecting frustum for point selection.

        Parameters
        ----------
        thePoint: gp_Pnt2d

        Returns
        -------
        None
        Builds rectangular selecting frustum for box selection.

        Parameters
        ----------
        theMinPt: gp_Pnt2d
        theMaxPt: gp_Pnt2d

        Returns
        -------
        None
        Builds set of triangular selecting frustums for polyline selection.

        Parameters
        ----------
        thePoints: TColgp_Array1OfPnt2d

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_BuildSelectingVolume(self, *args)

    def Camera(self, *args) -> "opencascade::handle< Graphic3d_Camera > const &":
        r"""
        Returns current camera definition.

        Returns
        -------
        opencascade::handle<Graphic3d_Camera>

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_Camera(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(SelectMgr_SelectingVolumeManager self, int depth=-1) -> std::string"""
        return _SelectMgr.SelectMgr_SelectingVolumeManager_DumpJsonToString(self, depth)

    def GetVertices(self, *args) -> "gp_Pnt const *":
        r"""
        A set of helper functions that return rectangular selecting frustum data.

        Returns
        -------
        gp_Pnt *

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_GetVertices(self, *args)

    def ObjectClipping(self, *args) -> "opencascade::handle< Graphic3d_SequenceOfHClipPlane > const &":
        r"""
        Return object clipping planes.

        Returns
        -------
        opencascade::handle<Graphic3d_SequenceOfHClipPlane>

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_ObjectClipping(self, *args)

    def Overlaps(self, *args) -> "Standard_Boolean":
        r"""
        Sat intersection test between defined volume and given axis-aligned box.

        Parameters
        ----------
        theBoxMin: SelectMgr_Vec3
        theBoxMax: SelectMgr_Vec3
        thePickResult: SelectBasics_PickResult

        Returns
        -------
        bool
        Returns true if selecting volume is overlapped by axis-aligned bounding box with minimum corner at point theminpt and maximum at point themaxpt.

        Parameters
        ----------
        theBoxMin: SelectMgr_Vec3
        theBoxMax: SelectMgr_Vec3
        theInside: bool *,optional
        	default value is NULL

        Returns
        -------
        bool
        Intersection test between defined volume and given point.

        Parameters
        ----------
        thePnt: gp_Pnt
        thePickResult: SelectBasics_PickResult

        Returns
        -------
        bool
        Intersection test between defined volume and given point.

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

        Returns
        -------
        bool
        Sat intersection test between defined volume and given ordered set of points, representing line segments. the test may be considered of interior part or boundary line defined by segments depending on given sensitivity type.

        Parameters
        ----------
        theArrayOfPts: TColgp_HArray1OfPnt
        theSensType: int
        thePickResult: SelectBasics_PickResult

        Returns
        -------
        bool
        Sat intersection test between defined volume and given ordered set of points, representing line segments. the test may be considered of interior part or boundary line defined by segments depending on given sensitivity type.

        Parameters
        ----------
        theArrayOfPts: TColgp_Array1OfPnt
        theSensType: int
        thePickResult: SelectBasics_PickResult

        Returns
        -------
        bool
        Checks if line segment overlaps selecting frustum.

        Parameters
        ----------
        thePnt1: gp_Pnt
        thePnt2: gp_Pnt
        thePickResult: SelectBasics_PickResult

        Returns
        -------
        bool
        Sat intersection test between defined volume and given triangle. the test may be considered of interior part or boundary line defined by triangle vertices depending on given sensitivity type.

        Parameters
        ----------
        thePnt1: gp_Pnt
        thePnt2: gp_Pnt
        thePnt3: gp_Pnt
        theSensType: int
        thePickResult: SelectBasics_PickResult

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_Overlaps(self, *args)

    def ProjectionMatrix(self, *args) -> "Graphic3d_Mat4d const &":
        r"""
        Returns current projection transformation common for all selecting volumes.

        Returns
        -------
        Graphic3d_Mat4d

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_ProjectionMatrix(self, *args)

    def ScaleAndTransform(self, *args) -> "SelectMgr_SelectingVolumeManager":
        r"""
        Important: scaling makes sense only for frustum built on a single point! note that this method does not perform any checks on type of the frustum. //! returns a copy of the frustum resized according to the scale factor given and transforms it using the matrix given. there are no default parameters, but in case if: - transformation only is needed: @thescalefactor must be initialized as any negative value; - scale only is needed: @thetrsf must be set to gp_identity. builder is an optional argument that represents corresponding settings for re-constructing transformed frustum from scratch. can be null if reconstruction is not expected furthermore.

        Parameters
        ----------
        theScaleFactor: int
        theTrsf: gp_GTrsf
        theBuilder: SelectMgr_FrustumBuilder,optional
        	default value is NULL

        Returns
        -------
        SelectMgr_SelectingVolumeManager

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_ScaleAndTransform(self, *args)

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

        Parameters
        ----------
        theType: SelectionType

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_SetActiveSelectionType(self, *args)

    def SetCamera(self, *args) -> "void":
        r"""
        Updates camera projection and orientation matrices in all selecting volumes.

        Parameters
        ----------
        theCamera: Graphic3d_Camera

        Returns
        -------
        None
        Updates camera projection and orientation matrices in all selecting volumes.

        Parameters
        ----------
        theProjection: Graphic3d_Mat4d
        theWorldView: Graphic3d_Mat4d
        theIsOrthographic: bool
        theWVPState: Graphic3d_WorldViewProjState,optional
        	default value is Graphic3d_WorldViewProjState()

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_SetCamera(self, *args)

    def SetPixelTolerance(self, *args) -> "void":
        r"""
        Updates pixel tolerance in all selecting volumes.

        Parameters
        ----------
        theTolerance: int

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_SetPixelTolerance(self, *args)

    def SetViewClipRanges(self, *args) -> "void":
        r"""
        Set clipping range.

        Parameters
        ----------
        theRange: SelectMgr_ViewClipRange

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_SetViewClipRanges(self, *args)

    def SetViewClipping(self, *args) -> "void":
        r"""
        Valid for point selection only! computes depth range for clipping planes. @param theviewplanes [in] global view planes @param theobjplanes [in] object planes @param theworldselmgr [in] selection volume in world space for computing clipping plane ranges.

        Parameters
        ----------
        theViewPlanes: Graphic3d_SequenceOfHClipPlane
        theObjPlanes: Graphic3d_SequenceOfHClipPlane
        theWorldSelMgr: SelectMgr_SelectingVolumeManager *

        Returns
        -------
        None
        Copy clipping planes from another volume manager.

        Parameters
        ----------
        theOther: SelectMgr_SelectingVolumeManager

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_SetViewClipping(self, *args)

    def SetViewport(self, *args) -> "void":
        r"""
        Updates viewport in all selecting volumes.

        Parameters
        ----------
        theX: float
        theY: float
        theWidth: float
        theHeight: float

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_SetViewport(self, *args)

    def SetWindowSize(self, *args) -> "void":
        r"""
        Updates window size in all selecting volumes.

        Parameters
        ----------
        theWidth: int
        theHeight: int

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_SetWindowSize(self, *args)

    def ViewClipRanges(self, *args) -> "SelectMgr_ViewClipRange const &":
        r"""
        Return clipping range.

        Returns
        -------
        SelectMgr_ViewClipRange

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_ViewClipRanges(self, *args)

    def ViewClipping(self, *args) -> "opencascade::handle< Graphic3d_SequenceOfHClipPlane > const &":
        r"""
        Return view clipping planes.

        Returns
        -------
        opencascade::handle<Graphic3d_SequenceOfHClipPlane>

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_ViewClipping(self, *args)

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

        Parameters
        ----------

        Returns
        -------
        theWidth: int
        theHeight: int

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_WindowSize(self, *args)

    def WorldViewMatrix(self, *args) -> "Graphic3d_Mat4d const &":
        r"""
        Returns current world view transformation common for all selecting volumes.

        Returns
        -------
        Graphic3d_Mat4d

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_WorldViewMatrix(self, *args)

    def WorldViewProjState(self, *args) -> "Graphic3d_WorldViewProjState const &":
        r"""
        Returns current camera world view projection transformation state common for all selecting volumes.

        Returns
        -------
        Graphic3d_WorldViewProjState

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_WorldViewProjState(self, *args)

    __repr__ = _dumps_object

    @methodnotwrapped
    def ActiveVolume(self):
    	pass

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_SelectingVolumeManager

# Register SelectMgr_SelectingVolumeManager in _SelectMgr:
_SelectMgr.SelectMgr_SelectingVolumeManager_swigregister(SelectMgr_SelectingVolumeManager)

class SelectMgr_Selection(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Constructs a selection object defined by the selection mode idmode. the default setting 0 is the selection mode for a shape in its entirety.

        Parameters
        ----------
        theModeIdx: int,optional
        	default value is 0

        Returns
        -------
        None

        """
        _SelectMgr.SelectMgr_Selection_swiginit(self, _SelectMgr.new_SelectMgr_Selection(*args))

    def Add(self, *args) -> "void":
        r"""
        Adds the sensitive primitive to the list of stored entities in this object. raises nullobject if the primitive is a null handle.

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

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_Selection_Add(self, *args)

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

        Returns
        -------
        SelectMgr_TypeOfBVHUpdate

        """
        return _SelectMgr.SelectMgr_Selection_BVHUpdateStatus(self, *args)

    def ChangeEntities(self, *args) -> "NCollection_Vector< opencascade::handle< SelectMgr_SensitiveEntity > > &":
        r"""
        Return entities.

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

        """
        return _SelectMgr.SelectMgr_Selection_ChangeEntities(self, *args)

    def Clear(self, *args) -> "void":
        r"""
        Empties the selection from all the stored entities.

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_Selection_Clear(self, *args)

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

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_Selection_Destroy(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(SelectMgr_Selection self, int depth=-1) -> std::string"""
        return _SelectMgr.SelectMgr_Selection_DumpJsonToString(self, depth)

    def Entities(self, *args) -> "NCollection_Vector< opencascade::handle< SelectMgr_SensitiveEntity > > const &":
        r"""
        Return entities.

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

        """
        return _SelectMgr.SelectMgr_Selection_Entities(self, *args)

    def GetSelectionState(self, *args) -> "SelectMgr_StateOfSelection":
        r"""
        Returns status of selection.

        Returns
        -------
        SelectMgr_StateOfSelection

        """
        return _SelectMgr.SelectMgr_Selection_GetSelectionState(self, *args)

    def IsEmpty(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if no sensitive entity is stored.

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_Selection_IsEmpty(self, *args)

    def Mode(self, *args) -> "Standard_Integer":
        r"""
        Returns the selection mode represented by this selection.

        Returns
        -------
        int

        """
        return _SelectMgr.SelectMgr_Selection_Mode(self, *args)

    def Sensitivity(self, *args) -> "Standard_Integer":
        r"""
        Returns sensitivity of the selection.

        Returns
        -------
        int

        """
        return _SelectMgr.SelectMgr_Selection_Sensitivity(self, *args)

    def SetSelectionState(self, *args) -> "void":
        r"""
        Sets status of selection.

        Parameters
        ----------
        theState: SelectMgr_StateOfSelection

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_Selection_SetSelectionState(self, *args)

    def SetSensitivity(self, *args) -> "void":
        r"""
        Changes sensitivity of the selection and all its entities to the given value. important: this method does not update any outer selection structures, so for proper updates use selectmgr_selectionmanager::setselectionsensitivity method.

        Parameters
        ----------
        theNewSens: int

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_Selection_SetSensitivity(self, *args)

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

        Parameters
        ----------
        theStatus: SelectMgr_TypeOfBVHUpdate

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_Selection_UpdateBVHStatus(self, *args)

    def UpdateStatus(self, *args) -> "void":
        r"""
        Returns the flag updateflag. this flage gives the update status of this framework in a viewerselector object: - full - partial, or - none.

        Returns
        -------
        SelectMgr_TypeOfUpdate
        No available documentation.

        Parameters
        ----------
        theStatus: SelectMgr_TypeOfUpdate

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_Selection_UpdateStatus(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_Selection

# Register SelectMgr_Selection in _SelectMgr:
_SelectMgr.SelectMgr_Selection_swigregister(SelectMgr_Selection)

class SelectMgr_SelectionImageFiller(OCC.Core.Standard.Standard_Transient):
    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")
    __repr__ = _swig_repr

    def Fill(self, *args) -> "void":
        r"""
        Fill pixel at specified position.

        Parameters
        ----------
        theCol: int
        theRow: int
        thePicked: int

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectionImageFiller_Fill(self, *args)

    def Flush(self, *args) -> "void":
        r"""
        Flush results into final image.

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectionImageFiller_Flush(self, *args)


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


    __repr__ = _dumps_object

    @methodnotwrapped
    def CreateFiller(self):
    	pass

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_SelectionImageFiller

# Register SelectMgr_SelectionImageFiller in _SelectMgr:
_SelectMgr.SelectMgr_SelectionImageFiller_swigregister(SelectMgr_SelectionImageFiller)

class SelectMgr_SelectionManager(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        theSelector: SelectMgr_ViewerSelector

        Returns
        -------
        None

        """
        _SelectMgr.SelectMgr_SelectionManager_swiginit(self, _SelectMgr.new_SelectMgr_SelectionManager(*args))

    def Activate(self, *args) -> "void":
        r"""
        Activates the selection mode themode in the selector theselector for the selectable object anobject. by default, themode is equal to 0. if theselector is set to default (null), the selection with the mode themode will be activated in all the viewers available.

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject
        theMode: int,optional
        	default value is 0

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectionManager_Activate(self, *args)

    def ClearSelectionStructures(self, *args) -> "void":
        r"""
        Removes sensitive entities from all viewer selectors after method clear() was called to the selection they belonged to or it was recomputed somehow.

        Parameters
        ----------
        theObj: SelectMgr_SelectableObject
        theMode: int,optional
        	default value is -1

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectionManager_ClearSelectionStructures(self, *args)

    def Contains(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the manager contains the selectable object theobject.

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_SelectionManager_Contains(self, *args)

    def Deactivate(self, *args) -> "void":
        r"""
        Deactivates mode themode of theobject in theselector. if themode value is set to default (-1), all active selection modes will be deactivated. likewise, if theselector value is set to default (null), themode will be deactivated in all viewer selectors.

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject
        theMode: int,optional
        	default value is -1

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectionManager_Deactivate(self, *args)

    def IsActivated(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the selection with themode is active for the selectable object theobject and selector theselector. if all parameters are set to default values, it returns it there is any active selection in any known viewer selector for object theobject.

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject
        theMode: int,optional
        	default value is -1

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_SelectionManager_IsActivated(self, *args)

    def Load(self, *args) -> "void":
        r"""
        Loads and computes selection mode themode (if it is not equal to -1) in global context and adds selectable object to bvh tree. if the object theobject has an already calculated selection with mode themode and it was removed, the selection will be recalculated.

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject
        theMode: int,optional
        	default value is -1

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectionManager_Load(self, *args)

    def RecomputeSelection(self, *args) -> "void":
        r"""
        Recomputes activated selections of theobject for all known viewer selectors according to themode specified. if themode is set to default (-1), then all activated selections will be recomputed. if theisforce is set to true, then selection mode themode for object theobject will be recomputed regardless of its activation status.

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject
        theIsForce: bool,optional
        	default value is Standard_False
        theMode: int,optional
        	default value is -1

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectionManager_RecomputeSelection(self, *args)

    def Remove(self, *args) -> "void":
        r"""
        Removes selectable object theobject from all viewer selectors it was added to previously, removes it from all contexts and clears all computed selections of theobject.

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectionManager_Remove(self, *args)

    def RestoreSelectionStructures(self, *args) -> "void":
        r"""
        Re-adds newly calculated sensitive entities of recomputed selection defined by mode themode to all viewer selectors contained that selection.

        Parameters
        ----------
        theObj: SelectMgr_SelectableObject
        theMode: int,optional
        	default value is -1

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectionManager_RestoreSelectionStructures(self, *args)

    def Selector(self, *args) -> "opencascade::handle< SelectMgr_ViewerSelector > const &":
        r"""
        Return the selector.

        Returns
        -------
        opencascade::handle<SelectMgr_ViewerSelector>

        """
        return _SelectMgr.SelectMgr_SelectionManager_Selector(self, *args)

    def SetSelectionSensitivity(self, *args) -> "void":
        r"""
        Allows to manage sensitivity of a particular selection of interactive object theobject and changes previous sensitivity value of all sensitive entities in selection with themode to the given thenewsensitivity.

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject
        theMode: int
        theNewSens: int

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectionManager_SetSelectionSensitivity(self, *args)

    def SetUpdateMode(self, *args) -> "void":
        r"""
        Sets type of update of all selections of theobject to the given thetype.

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject
        theType: SelectMgr_TypeOfUpdate

        Returns
        -------
        None
        Sets type of update of selection with themode of theobject to the given thetype.

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject
        theMode: int
        theType: SelectMgr_TypeOfUpdate

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectionManager_SetUpdateMode(self, *args)

    def Update(self, *args) -> "void":
        r"""
        Updates all selections of theobject in all viewer selectors according to its current update status. if theisforce is set to true, the call is equal to recomputation.

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject
        theIsForce: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectionManager_Update(self, *args)

    def UpdateSelection(self, *args) -> "void":
        r"""
        Re-adds selectable object in bvhs in all viewer selectors.

        Parameters
        ----------
        theObj: SelectMgr_SelectableObject

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SelectionManager_UpdateSelection(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_SelectionManager

# Register SelectMgr_SelectionManager in _SelectMgr:
_SelectMgr.SelectMgr_SelectionManager_swigregister(SelectMgr_SelectionManager)

class SelectMgr_SensitiveEntity(OCC.Core.Standard.Standard_Transient):
    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"""
        Creates new inactive for selection object with base entity theentity.

        Parameters
        ----------
        theEntity: Select3D_SensitiveEntity

        Returns
        -------
        None

        """
        _SelectMgr.SelectMgr_SensitiveEntity_swiginit(self, _SelectMgr.new_SelectMgr_SensitiveEntity(*args))

    def BaseSensitive(self, *args) -> "opencascade::handle< Select3D_SensitiveEntity > const &":
        r"""
        Returns related instance of selectbasics class.

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

        """
        return _SelectMgr.SelectMgr_SensitiveEntity_BaseSensitive(self, *args)

    def Clear(self, *args) -> "void":
        r"""
        Clears up all resources and memory.

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SensitiveEntity_Clear(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(SelectMgr_SensitiveEntity self, int depth=-1) -> std::string"""
        return _SelectMgr.SelectMgr_SensitiveEntity_DumpJsonToString(self, depth)

    def IsActiveForSelection(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if this entity belongs to the active selection mode of parent object.

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_SensitiveEntity_IsActiveForSelection(self, *args)

    def ResetSelectionActiveStatus(self, *args) -> "void":
        r"""
        Marks entity as inactive for selection.

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SensitiveEntity_ResetSelectionActiveStatus(self, *args)

    def SetActiveForSelection(self, *args) -> "void":
        r"""
        Marks entity as active for selection.

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_SensitiveEntity_SetActiveForSelection(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_SensitiveEntity

# Register SelectMgr_SensitiveEntity in _SelectMgr:
_SelectMgr.SelectMgr_SensitiveEntity_swigregister(SelectMgr_SensitiveEntity)

class SelectMgr_SortCriterion(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Entity = property(_SelectMgr.SelectMgr_SortCriterion_Entity_get, _SelectMgr.SelectMgr_SortCriterion_Entity_set)
    Point = property(_SelectMgr.SelectMgr_SortCriterion_Point_get, _SelectMgr.SelectMgr_SortCriterion_Point_set)
    Normal = property(_SelectMgr.SelectMgr_SortCriterion_Normal_get, _SelectMgr.SelectMgr_SortCriterion_Normal_set)
    Depth = property(_SelectMgr.SelectMgr_SortCriterion_Depth_get, _SelectMgr.SelectMgr_SortCriterion_Depth_set)
    MinDist = property(_SelectMgr.SelectMgr_SortCriterion_MinDist_get, _SelectMgr.SelectMgr_SortCriterion_MinDist_set)
    Tolerance = property(_SelectMgr.SelectMgr_SortCriterion_Tolerance_get, _SelectMgr.SelectMgr_SortCriterion_Tolerance_set)
    Priority = property(_SelectMgr.SelectMgr_SortCriterion_Priority_get, _SelectMgr.SelectMgr_SortCriterion_Priority_set)
    ZLayerPosition = property(_SelectMgr.SelectMgr_SortCriterion_ZLayerPosition_get, _SelectMgr.SelectMgr_SortCriterion_ZLayerPosition_set)
    NbOwnerMatches = property(_SelectMgr.SelectMgr_SortCriterion_NbOwnerMatches_get, _SelectMgr.SelectMgr_SortCriterion_NbOwnerMatches_set)

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

        Returns
        -------
        None

        """
        _SelectMgr.SelectMgr_SortCriterion_swiginit(self, _SelectMgr.new_SelectMgr_SortCriterion(*args))

    def IsCloserDepth(self, *args) -> "bool":
        r"""
        Compare with another item by depth, priority and mindist.

        Parameters
        ----------
        theOther: SelectMgr_SortCriterion

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_SortCriterion_IsCloserDepth(self, *args)

    def IsHigherPriority(self, *args) -> "bool":
        r"""
        Compare with another item using old logic (occt version <= 6.3.1) with priority considered preceding depth.

        Parameters
        ----------
        theOther: SelectMgr_SortCriterion

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_SortCriterion_IsHigherPriority(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_SortCriterion

# Register SelectMgr_SortCriterion in _SelectMgr:
_SelectMgr.SelectMgr_SortCriterion_swigregister(SelectMgr_SortCriterion)

class SelectMgr_ViewClipRange(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"""
        Creates an empty clip range.

        Returns
        -------
        None

        """
        _SelectMgr.SelectMgr_ViewClipRange_swiginit(self, _SelectMgr.new_SelectMgr_ViewClipRange(*args))

    def AddClipSubRange(self, *args) -> "void":
        r"""
        Adds a clipping sub-range (for clipping chains).

        Parameters
        ----------
        theRange: Bnd_Range

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_ViewClipRange_AddClipSubRange(self, *args)

    def AddClippingPlanes(self, *args) -> "void":
        r"""
        Add clipping planes. planes and picking ray should be defined in the same coordinate system.

        Parameters
        ----------
        thePlanes: Graphic3d_SequenceOfHClipPlane
        thePickRay: gp_Ax1

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_ViewClipRange_AddClippingPlanes(self, *args)

    def ChangeUnclipRange(self, *args) -> "Bnd_Range &":
        r"""
        Returns the main unclipped range; [-inf, inf] by default.

        Returns
        -------
        Bnd_Range

        """
        return _SelectMgr.SelectMgr_ViewClipRange_ChangeUnclipRange(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(SelectMgr_ViewClipRange self, int depth=-1) -> std::string"""
        return _SelectMgr.SelectMgr_ViewClipRange_DumpJsonToString(self, depth)

    def GetNearestDepth(self, *args) -> "Standard_Boolean":
        r"""
        Calculates the min not clipped value from the range. returns false if the whole range is clipped.

        Parameters
        ----------
        theRange: Bnd_Range

        Returns
        -------
        theDepth: float

        """
        return _SelectMgr.SelectMgr_ViewClipRange_GetNearestDepth(self, *args)

    def IsClipped(self, *args) -> "Standard_Boolean":
        r"""
        Check if the given depth is not within clipping range(s), e.g. true means depth is clipped.

        Parameters
        ----------
        theDepth: float

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_ViewClipRange_IsClipped(self, *args)

    def SetVoid(self, *args) -> "void":
        r"""
        Clears clipping range.

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_ViewClipRange_SetVoid(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_ViewClipRange

# Register SelectMgr_ViewClipRange in _SelectMgr:
_SelectMgr.SelectMgr_ViewClipRange_swigregister(SelectMgr_ViewClipRange)

class SelectMgr_CompositionFilter(SelectMgr_Filter):
    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")
    __repr__ = _swig_repr

    def Add(self, *args) -> "void":
        r"""
        Adds the filter afilter to a filter object created by a filter class inheriting this framework.

        Parameters
        ----------
        afilter: SelectMgr_Filter

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_CompositionFilter_Add(self, *args)

    def Clear(self, *args) -> "void":
        r"""
        Clears the filters used in this framework.

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_CompositionFilter_Clear(self, *args)

    def IsEmpty(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if this framework is empty.

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_CompositionFilter_IsEmpty(self, *args)

    def IsIn(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the filter afilter is in this framework.

        Parameters
        ----------
        aFilter: SelectMgr_Filter

        Returns
        -------
        bool

        """
        return _SelectMgr.SelectMgr_CompositionFilter_IsIn(self, *args)

    def Remove(self, *args) -> "void":
        r"""
        Removes the filter afilter from this framework.

        Parameters
        ----------
        aFilter: SelectMgr_Filter

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_CompositionFilter_Remove(self, *args)

    def StoredFilters(self, *args) -> "SelectMgr_ListOfFilter const &":
        r"""
        Returns the list of stored filters from this framework.

        Returns
        -------
        SelectMgr_ListOfFilter

        """
        return _SelectMgr.SelectMgr_CompositionFilter_StoredFilters(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_CompositionFilter

# Register SelectMgr_CompositionFilter in _SelectMgr:
_SelectMgr.SelectMgr_CompositionFilter_swigregister(SelectMgr_CompositionFilter)

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

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

        Returns
        -------
        None

        """
        _SelectMgr.SelectMgr_ViewerSelector3d_swiginit(self, _SelectMgr.new_SelectMgr_ViewerSelector3d(*args))

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

        Parameters
        ----------
        theView: V3d_View

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_ViewerSelector3d_ClearSensitive(self, *args)

    def DisplaySensitive(self, *args) -> "void":
        r"""
        Displays sensitives in view <theview>.

        Parameters
        ----------
        theView: V3d_View

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

        Parameters
        ----------
        theSel: SelectMgr_Selection
        theTrsf: gp_Trsf
        theView: V3d_View
        theToClearOthers: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_ViewerSelector3d_DisplaySensitive(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(SelectMgr_ViewerSelector3d self, int depth=-1) -> std::string"""
        return _SelectMgr.SelectMgr_ViewerSelector3d_DumpJsonToString(self, depth)

    def Pick(self, *args) -> "void":
        r"""
        Picks the sensitive entity at the pixel coordinates of the mouse <thexpix> and <theypix>. the selector looks for touched areas and owners.

        Parameters
        ----------
        theXPix: int
        theYPix: int
        theView: V3d_View

        Returns
        -------
        None
        Picks the sensitive entity according to the minimum and maximum pixel values <thexpmin>, <theypmin>, <thexpmax> and <theypmax> defining a 2d area for selection in the 3d view aview.

        Parameters
        ----------
        theXPMin: int
        theYPMin: int
        theXPMax: int
        theYPMax: int
        theView: V3d_View

        Returns
        -------
        None
        Pick action - input pixel values for polyline selection for selection.

        Parameters
        ----------
        thePolyline: TColgp_Array1OfPnt2d
        theView: V3d_View

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_ViewerSelector3d_Pick(self, *args)


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


    __repr__ = _dumps_object

    @methodnotwrapped
    def ToPixMap(self):
    	pass

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_ViewerSelector3d

# Register SelectMgr_ViewerSelector3d in _SelectMgr:
_SelectMgr.SelectMgr_ViewerSelector3d_swigregister(SelectMgr_ViewerSelector3d)

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

    def __init__(self, *args):
        r"""
        Constructs an empty selection filter object for two or more types of entity.

        Returns
        -------
        None

        """
        _SelectMgr.SelectMgr_AndFilter_swiginit(self, _SelectMgr.new_SelectMgr_AndFilter(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_AndFilter

# Register SelectMgr_AndFilter in _SelectMgr:
_SelectMgr.SelectMgr_AndFilter_swigregister(SelectMgr_AndFilter)

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

    def __init__(self, *args):
        r"""
        Constructs an empty selection filter.

        Parameters
        ----------
        theFilterType: SelectMgr_FilterType

        Returns
        -------
        None

        """
        _SelectMgr.SelectMgr_AndOrFilter_swiginit(self, _SelectMgr.new_SelectMgr_AndOrFilter(*args))

    def FilterType(self, *args) -> "SelectMgr_FilterType":
        r"""
        Returns a selection filter type (@sa selectmgr_filtertype).

        Returns
        -------
        SelectMgr_FilterType

        """
        return _SelectMgr.SelectMgr_AndOrFilter_FilterType(self, *args)

    def SetDisabledObjects(self, *args) -> "void":
        r"""
        Disable selection of specified objects.

        Parameters
        ----------
        theObjects: Graphic3d_NMapOfTransient

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_AndOrFilter_SetDisabledObjects(self, *args)

    def SetFilterType(self, *args) -> "void":
        r"""
        Sets a selection filter type. selectmgr_filtertype_or selection filter is used be default. @param thefiltertype the filter type.

        Parameters
        ----------
        theFilterType: SelectMgr_FilterType

        Returns
        -------
        None

        """
        return _SelectMgr.SelectMgr_AndOrFilter_SetFilterType(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_AndOrFilter

# Register SelectMgr_AndOrFilter in _SelectMgr:
_SelectMgr.SelectMgr_AndOrFilter_swigregister(SelectMgr_AndOrFilter)

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

    def __init__(self, *args):
        r"""
        Constructs an empty or selection filter.

        Returns
        -------
        None

        """
        _SelectMgr.SelectMgr_OrFilter_swiginit(self, _SelectMgr.new_SelectMgr_OrFilter(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_OrFilter

# Register SelectMgr_OrFilter in _SelectMgr:
_SelectMgr.SelectMgr_OrFilter_swigregister(SelectMgr_OrFilter)


@classnotwrapped
class SelectMgr_Frustum:
	pass

@classnotwrapped
class SelectMgr_FrustumBuilder:
	pass

@classnotwrapped
class SelectMgr_BaseFrustum:
	pass

@classnotwrapped
class SelectMgr_TriangularFrustum:
	pass

@classnotwrapped
class SelectMgr_RectangularFrustum:
	pass

@classnotwrapped
class SelectMgr_TriangularFrustumSet:
	pass

@classnotwrapped
class SelectMgr_ToleranceMap:
	pass

@classnotwrapped
class SelectMgr_ViewerSelector:
	pass

@classnotwrapped
class SelectMgr_SensitiveEntitySet:
	pass



SelectBasics_EntityOwner=SelectMgr_EntityOwner



