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

"""
SelectMgr module, see official documentation at
https://www.opencascade.com/doc/occt-7.7.0/refman/html/package_selectmgr.html
"""

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _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 == "this":
            set(self, name, value)
        elif name == "thisown":
            self.this.own(value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


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


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


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


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

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

    def value(self):
        return _SelectMgr.SwigPyIterator_value(self)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    def __sub__(self, *args):
        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, method_name, class_name):
    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_PickingStrategy_FirstAcceptable = _SelectMgr.SelectMgr_PickingStrategy_FirstAcceptable
SelectMgr_PickingStrategy_OnlyTopmost = _SelectMgr.SelectMgr_PickingStrategy_OnlyTopmost
SelectMgr_SelectionType_Unknown = _SelectMgr.SelectMgr_SelectionType_Unknown
SelectMgr_SelectionType_Point = _SelectMgr.SelectMgr_SelectionType_Point
SelectMgr_SelectionType_Box = _SelectMgr.SelectMgr_SelectionType_Box
SelectMgr_SelectionType_Polyline = _SelectMgr.SelectMgr_SelectionType_Polyline
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_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_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


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

class SelectMgr_SelectionType(IntEnum):
	SelectMgr_SelectionType_Unknown = - 1
	SelectMgr_SelectionType_Point = 1
	SelectMgr_SelectionType_Box = 2
	SelectMgr_SelectionType_Polyline = 3
SelectMgr_SelectionType_Unknown = SelectMgr_SelectionType.SelectMgr_SelectionType_Unknown
SelectMgr_SelectionType_Point = SelectMgr_SelectionType.SelectMgr_SelectionType_Point
SelectMgr_SelectionType_Box = SelectMgr_SelectionType.SelectMgr_SelectionType_Box
SelectMgr_SelectionType_Polyline = SelectMgr_SelectionType.SelectMgr_SelectionType_Polyline

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


def Handle_SelectMgr_BVHThreadPool_Create():
    return _SelectMgr.Handle_SelectMgr_BVHThreadPool_Create()

def Handle_SelectMgr_BVHThreadPool_DownCast(t):
    return _SelectMgr.Handle_SelectMgr_BVHThreadPool_DownCast(t)

def Handle_SelectMgr_BVHThreadPool_IsNull(t):
    return _SelectMgr.Handle_SelectMgr_BVHThreadPool_IsNull(t)

def Handle_SelectMgr_BaseIntersector_Create():
    return _SelectMgr.Handle_SelectMgr_BaseIntersector_Create()

def Handle_SelectMgr_BaseIntersector_DownCast(t):
    return _SelectMgr.Handle_SelectMgr_BaseIntersector_DownCast(t)

def Handle_SelectMgr_BaseIntersector_IsNull(t):
    return _SelectMgr.Handle_SelectMgr_BaseIntersector_IsNull(t)

def Handle_SelectMgr_EntityOwner_Create():
    return _SelectMgr.Handle_SelectMgr_EntityOwner_Create()

def Handle_SelectMgr_EntityOwner_DownCast(t):
    return _SelectMgr.Handle_SelectMgr_EntityOwner_DownCast(t)

def Handle_SelectMgr_EntityOwner_IsNull(t):
    return _SelectMgr.Handle_SelectMgr_EntityOwner_IsNull(t)

def Handle_SelectMgr_Filter_Create():
    return _SelectMgr.Handle_SelectMgr_Filter_Create()

def Handle_SelectMgr_Filter_DownCast(t):
    return _SelectMgr.Handle_SelectMgr_Filter_DownCast(t)

def Handle_SelectMgr_Filter_IsNull(t):
    return _SelectMgr.Handle_SelectMgr_Filter_IsNull(t)

def Handle_SelectMgr_SelectableObject_Create():
    return _SelectMgr.Handle_SelectMgr_SelectableObject_Create()

def Handle_SelectMgr_SelectableObject_DownCast(t):
    return _SelectMgr.Handle_SelectMgr_SelectableObject_DownCast(t)

def Handle_SelectMgr_SelectableObject_IsNull(t):
    return _SelectMgr.Handle_SelectMgr_SelectableObject_IsNull(t)

def Handle_SelectMgr_Selection_Create():
    return _SelectMgr.Handle_SelectMgr_Selection_Create()

def Handle_SelectMgr_Selection_DownCast(t):
    return _SelectMgr.Handle_SelectMgr_Selection_DownCast(t)

def Handle_SelectMgr_Selection_IsNull(t):
    return _SelectMgr.Handle_SelectMgr_Selection_IsNull(t)

def Handle_SelectMgr_SelectionImageFiller_Create():
    return _SelectMgr.Handle_SelectMgr_SelectionImageFiller_Create()

def Handle_SelectMgr_SelectionImageFiller_DownCast(t):
    return _SelectMgr.Handle_SelectMgr_SelectionImageFiller_DownCast(t)

def Handle_SelectMgr_SelectionImageFiller_IsNull(t):
    return _SelectMgr.Handle_SelectMgr_SelectionImageFiller_IsNull(t)

def Handle_SelectMgr_SelectionManager_Create():
    return _SelectMgr.Handle_SelectMgr_SelectionManager_Create()

def Handle_SelectMgr_SelectionManager_DownCast(t):
    return _SelectMgr.Handle_SelectMgr_SelectionManager_DownCast(t)

def Handle_SelectMgr_SelectionManager_IsNull(t):
    return _SelectMgr.Handle_SelectMgr_SelectionManager_IsNull(t)

def Handle_SelectMgr_SensitiveEntity_Create():
    return _SelectMgr.Handle_SelectMgr_SensitiveEntity_Create()

def Handle_SelectMgr_SensitiveEntity_DownCast(t):
    return _SelectMgr.Handle_SelectMgr_SensitiveEntity_DownCast(t)

def Handle_SelectMgr_SensitiveEntity_IsNull(t):
    return _SelectMgr.Handle_SelectMgr_SensitiveEntity_IsNull(t)

def Handle_SelectMgr_AxisIntersector_Create():
    return _SelectMgr.Handle_SelectMgr_AxisIntersector_Create()

def Handle_SelectMgr_AxisIntersector_DownCast(t):
    return _SelectMgr.Handle_SelectMgr_AxisIntersector_DownCast(t)

def Handle_SelectMgr_AxisIntersector_IsNull(t):
    return _SelectMgr.Handle_SelectMgr_AxisIntersector_IsNull(t)

def Handle_SelectMgr_CompositionFilter_Create():
    return _SelectMgr.Handle_SelectMgr_CompositionFilter_Create()

def Handle_SelectMgr_CompositionFilter_DownCast(t):
    return _SelectMgr.Handle_SelectMgr_CompositionFilter_DownCast(t)

def Handle_SelectMgr_CompositionFilter_IsNull(t):
    return _SelectMgr.Handle_SelectMgr_CompositionFilter_IsNull(t)

def Handle_SelectMgr_AndFilter_Create():
    return _SelectMgr.Handle_SelectMgr_AndFilter_Create()

def Handle_SelectMgr_AndFilter_DownCast(t):
    return _SelectMgr.Handle_SelectMgr_AndFilter_DownCast(t)

def Handle_SelectMgr_AndFilter_IsNull(t):
    return _SelectMgr.Handle_SelectMgr_AndFilter_IsNull(t)

def Handle_SelectMgr_AndOrFilter_Create():
    return _SelectMgr.Handle_SelectMgr_AndOrFilter_Create()

def Handle_SelectMgr_AndOrFilter_DownCast(t):
    return _SelectMgr.Handle_SelectMgr_AndOrFilter_DownCast(t)

def Handle_SelectMgr_AndOrFilter_IsNull(t):
    return _SelectMgr.Handle_SelectMgr_AndOrFilter_IsNull(t)

def Handle_SelectMgr_OrFilter_Create():
    return _SelectMgr.Handle_SelectMgr_OrFilter_Create()

def Handle_SelectMgr_OrFilter_DownCast(t):
    return _SelectMgr.Handle_SelectMgr_OrFilter_DownCast(t)

def Handle_SelectMgr_OrFilter_IsNull(t):
    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):
        return _SelectMgr.SelectMgr_FrustumCache_begin(self)

    def end(self):
        return _SelectMgr.SelectMgr_FrustumCache_end(self)

    def cbegin(self):
        return _SelectMgr.SelectMgr_FrustumCache_cbegin(self)

    def cend(self):
        return _SelectMgr.SelectMgr_FrustumCache_cend(self)

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

    def Exchange(self, theOther):
        return _SelectMgr.SelectMgr_FrustumCache_Exchange(self, theOther)

    def Assign(self, theOther):
        return _SelectMgr.SelectMgr_FrustumCache_Assign(self, theOther)

    def Set(self, theOther):
        return _SelectMgr.SelectMgr_FrustumCache_Set(self, theOther)

    def ReSize(self, N):
        return _SelectMgr.SelectMgr_FrustumCache_ReSize(self, N)

    def Bind(self, theKey, theItem):
        return _SelectMgr.SelectMgr_FrustumCache_Bind(self, theKey, theItem)

    def Bound(self, theKey, theItem):
        return _SelectMgr.SelectMgr_FrustumCache_Bound(self, theKey, theItem)

    def IsBound(self, theKey):
        return _SelectMgr.SelectMgr_FrustumCache_IsBound(self, theKey)

    def UnBind(self, theKey):
        return _SelectMgr.SelectMgr_FrustumCache_UnBind(self, theKey)

    def Seek(self, theKey):
        return _SelectMgr.SelectMgr_FrustumCache_Seek(self, theKey)

    def Find(self, *args):
        return _SelectMgr.SelectMgr_FrustumCache_Find(self, *args)

    def ChangeSeek(self, theKey):
        return _SelectMgr.SelectMgr_FrustumCache_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey):
        return _SelectMgr.SelectMgr_FrustumCache_ChangeFind(self, theKey)

    def __call__(self, *args):
        return _SelectMgr.SelectMgr_FrustumCache___call__(self, *args)

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

    def Size(self):
        return _SelectMgr.SelectMgr_FrustumCache_Size(self)

    def Keys(self):
        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):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_begin(self)

    def end(self):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_end(self)

    def cbegin(self):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_cbegin(self)

    def cend(self):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_cend(self)

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

    def Exchange(self, theOther):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_Exchange(self, theOther)

    def Assign(self, theOther):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_Assign(self, theOther)

    def Set(self, theOther):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_Set(self, theOther)

    def ReSize(self, N):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_ReSize(self, N)

    def Add(self, theKey1, theItem):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_Add(self, theKey1, theItem)

    def Contains(self, theKey1):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_Contains(self, theKey1)

    def Substitute(self, theIndex, theKey1, theItem):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_Substitute(self, theIndex, theKey1, theItem)

    def Swap(self, theIndex1, theIndex2):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_Swap(self, theIndex1, theIndex2)

    def RemoveLast(self):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_RemoveLast(self)

    def RemoveFromIndex(self, theIndex):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_RemoveFromIndex(self, theIndex)

    def RemoveKey(self, theKey1):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_RemoveKey(self, theKey1)

    def FindKey(self, theIndex):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_FindKey(self, theIndex)

    def FindFromIndex(self, theIndex):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_FindFromIndex(self, theIndex)

    def ChangeFromIndex(self, theIndex):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_ChangeFromIndex(self, theIndex)

    def __call__(self, *args):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion___call__(self, *args)

    def FindIndex(self, theKey1):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_FindIndex(self, theKey1)

    def ChangeFromKey(self, theKey1):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_ChangeFromKey(self, theKey1)

    def Seek(self, theKey1):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_Seek(self, theKey1)

    def ChangeSeek(self, theKey1):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_ChangeSeek(self, theKey1)

    def FindFromKey(self, *args):
        return _SelectMgr.SelectMgr_IndexedDataMapOfOwnerCriterion_FindFromKey(self, *args)

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

    def Size(self):
        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):
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_cbegin(self)

    def cend(self):
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_cend(self)

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

    def Exchange(self, theOther):
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_Exchange(self, theOther)

    def Assign(self, theOther):
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_Assign(self, theOther)

    def Set(self, theOther):
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_Set(self, theOther)

    def ReSize(self, theExtent):
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_ReSize(self, theExtent)

    def Add(self, theKey1):
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_Add(self, theKey1)

    def Contains(self, theKey1):
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_Contains(self, theKey1)

    def Substitute(self, theIndex, theKey1):
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_Substitute(self, theIndex, theKey1)

    def Swap(self, theIndex1, theIndex2):
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_Swap(self, theIndex1, theIndex2)

    def RemoveLast(self):
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_RemoveLast(self)

    def RemoveFromIndex(self, theIndex):
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_RemoveFromIndex(self, theIndex)

    def RemoveKey(self, theKey1):
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_RemoveKey(self, theKey1)

    def FindKey(self, theIndex):
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_FindKey(self, theIndex)

    def __call__(self, theIndex):
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive___call__(self, theIndex)

    def FindIndex(self, theKey1):
        return _SelectMgr.SelectMgr_IndexedMapOfHSensitive_FindIndex(self, theKey1)

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

    def Size(self):
        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):
        return _SelectMgr.SelectMgr_ListIteratorOfListOfFilter_More(self)

    def Next(self):
        return _SelectMgr.SelectMgr_ListIteratorOfListOfFilter_Next(self)

    def Value(self):
        return _SelectMgr.SelectMgr_ListIteratorOfListOfFilter_Value(self)

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

    def end(self):
        return _SelectMgr.SelectMgr_ListOfFilter_end(self)

    def cbegin(self):
        return _SelectMgr.SelectMgr_ListOfFilter_cbegin(self)

    def cend(self):
        return _SelectMgr.SelectMgr_ListOfFilter_cend(self)

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

    def Size(self):
        return _SelectMgr.SelectMgr_ListOfFilter_Size(self)

    def Assign(self, theOther):
        return _SelectMgr.SelectMgr_ListOfFilter_Assign(self, theOther)

    def Set(self, theOther):
        return _SelectMgr.SelectMgr_ListOfFilter_Set(self, theOther)

    def Clear(self, theAllocator=0):
        return _SelectMgr.SelectMgr_ListOfFilter_Clear(self, theAllocator)

    def First(self):
        return _SelectMgr.SelectMgr_ListOfFilter_First(self)

    def Last(self):
        return _SelectMgr.SelectMgr_ListOfFilter_Last(self)

    def Append(self, *args):
        return _SelectMgr.SelectMgr_ListOfFilter_Append(self, *args)

    def Prepend(self, *args):
        return _SelectMgr.SelectMgr_ListOfFilter_Prepend(self, *args)

    def RemoveFirst(self):
        return _SelectMgr.SelectMgr_ListOfFilter_RemoveFirst(self)

    def Remove(self, theIter):
        return _SelectMgr.SelectMgr_ListOfFilter_Remove(self, theIter)

    def InsertBefore(self, *args):
        return _SelectMgr.SelectMgr_ListOfFilter_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _SelectMgr.SelectMgr_ListOfFilter_InsertAfter(self, *args)

    def Reverse(self):
        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_MapOfOwners(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self):
        return _SelectMgr.SelectMgr_MapOfOwners_begin(self)

    def end(self):
        return _SelectMgr.SelectMgr_MapOfOwners_end(self)

    def cbegin(self):
        return _SelectMgr.SelectMgr_MapOfOwners_cbegin(self)

    def cend(self):
        return _SelectMgr.SelectMgr_MapOfOwners_cend(self)

    def __init__(self, *args):
        _SelectMgr.SelectMgr_MapOfOwners_swiginit(self, _SelectMgr.new_SelectMgr_MapOfOwners(*args))

    def Exchange(self, theOther):
        return _SelectMgr.SelectMgr_MapOfOwners_Exchange(self, theOther)

    def Assign(self, theOther):
        return _SelectMgr.SelectMgr_MapOfOwners_Assign(self, theOther)

    def Set(self, theOther):
        return _SelectMgr.SelectMgr_MapOfOwners_Set(self, theOther)

    def ReSize(self, N):
        return _SelectMgr.SelectMgr_MapOfOwners_ReSize(self, N)

    def Bind(self, theKey, theItem):
        return _SelectMgr.SelectMgr_MapOfOwners_Bind(self, theKey, theItem)

    def Bound(self, theKey, theItem):
        return _SelectMgr.SelectMgr_MapOfOwners_Bound(self, theKey, theItem)

    def IsBound(self, theKey):
        return _SelectMgr.SelectMgr_MapOfOwners_IsBound(self, theKey)

    def UnBind(self, theKey):
        return _SelectMgr.SelectMgr_MapOfOwners_UnBind(self, theKey)

    def Seek(self, theKey):
        return _SelectMgr.SelectMgr_MapOfOwners_Seek(self, theKey)

    def Find(self, *args):
        return _SelectMgr.SelectMgr_MapOfOwners_Find(self, *args)

    def ChangeSeek(self, theKey):
        return _SelectMgr.SelectMgr_MapOfOwners_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey):
        return _SelectMgr.SelectMgr_MapOfOwners_ChangeFind(self, theKey)

    def __call__(self, *args):
        return _SelectMgr.SelectMgr_MapOfOwners___call__(self, *args)

    def Clear(self, *args):
        return _SelectMgr.SelectMgr_MapOfOwners_Clear(self, *args)
    __swig_destroy__ = _SelectMgr.delete_SelectMgr_MapOfOwners

    def Size(self):
        return _SelectMgr.SelectMgr_MapOfOwners_Size(self)

# Register SelectMgr_MapOfOwners in _SelectMgr:
_SelectMgr.SelectMgr_MapOfOwners_swigregister(SelectMgr_MapOfOwners)
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):
        return _SelectMgr.SelectMgr_SequenceOfOwner_begin(self)

    def end(self):
        return _SelectMgr.SelectMgr_SequenceOfOwner_end(self)

    def cbegin(self):
        return _SelectMgr.SelectMgr_SequenceOfOwner_cbegin(self)

    def cend(self):
        return _SelectMgr.SelectMgr_SequenceOfOwner_cend(self)

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

    def Size(self):
        return _SelectMgr.SelectMgr_SequenceOfOwner_Size(self)

    def Length(self):
        return _SelectMgr.SelectMgr_SequenceOfOwner_Length(self)

    def Lower(self):
        return _SelectMgr.SelectMgr_SequenceOfOwner_Lower(self)

    def Upper(self):
        return _SelectMgr.SelectMgr_SequenceOfOwner_Upper(self)

    def IsEmpty(self):
        return _SelectMgr.SelectMgr_SequenceOfOwner_IsEmpty(self)

    def Reverse(self):
        return _SelectMgr.SelectMgr_SequenceOfOwner_Reverse(self)

    def Exchange(self, I, J):
        return _SelectMgr.SelectMgr_SequenceOfOwner_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _SelectMgr.SelectMgr_SequenceOfOwner_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _SelectMgr.SelectMgr_SequenceOfOwner_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _SelectMgr.SelectMgr_SequenceOfOwner_Assign(self, theOther)

    def Set(self, theOther):
        return _SelectMgr.SelectMgr_SequenceOfOwner_Set(self, theOther)

    def Remove(self, *args):
        return _SelectMgr.SelectMgr_SequenceOfOwner_Remove(self, *args)

    def Append(self, *args):
        return _SelectMgr.SelectMgr_SequenceOfOwner_Append(self, *args)

    def Prepend(self, *args):
        return _SelectMgr.SelectMgr_SequenceOfOwner_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _SelectMgr.SelectMgr_SequenceOfOwner_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _SelectMgr.SelectMgr_SequenceOfOwner_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _SelectMgr.SelectMgr_SequenceOfOwner_Split(self, theIndex, theSeq)

    def First(self):
        return _SelectMgr.SelectMgr_SequenceOfOwner_First(self)

    def ChangeFirst(self):
        return _SelectMgr.SelectMgr_SequenceOfOwner_ChangeFirst(self)

    def Last(self):
        return _SelectMgr.SelectMgr_SequenceOfOwner_Last(self)

    def ChangeLast(self):
        return _SelectMgr.SelectMgr_SequenceOfOwner_ChangeLast(self)

    def Value(self, theIndex):
        return _SelectMgr.SelectMgr_SequenceOfOwner_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _SelectMgr.SelectMgr_SequenceOfOwner_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _SelectMgr.SelectMgr_SequenceOfOwner___call__(self, *args)

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

    def end(self):
        return _SelectMgr.SelectMgr_SequenceOfSelection_end(self)

    def cbegin(self):
        return _SelectMgr.SelectMgr_SequenceOfSelection_cbegin(self)

    def cend(self):
        return _SelectMgr.SelectMgr_SequenceOfSelection_cend(self)

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

    def Size(self):
        return _SelectMgr.SelectMgr_SequenceOfSelection_Size(self)

    def Length(self):
        return _SelectMgr.SelectMgr_SequenceOfSelection_Length(self)

    def Lower(self):
        return _SelectMgr.SelectMgr_SequenceOfSelection_Lower(self)

    def Upper(self):
        return _SelectMgr.SelectMgr_SequenceOfSelection_Upper(self)

    def IsEmpty(self):
        return _SelectMgr.SelectMgr_SequenceOfSelection_IsEmpty(self)

    def Reverse(self):
        return _SelectMgr.SelectMgr_SequenceOfSelection_Reverse(self)

    def Exchange(self, I, J):
        return _SelectMgr.SelectMgr_SequenceOfSelection_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _SelectMgr.SelectMgr_SequenceOfSelection_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _SelectMgr.SelectMgr_SequenceOfSelection_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _SelectMgr.SelectMgr_SequenceOfSelection_Assign(self, theOther)

    def Set(self, theOther):
        return _SelectMgr.SelectMgr_SequenceOfSelection_Set(self, theOther)

    def Remove(self, *args):
        return _SelectMgr.SelectMgr_SequenceOfSelection_Remove(self, *args)

    def Append(self, *args):
        return _SelectMgr.SelectMgr_SequenceOfSelection_Append(self, *args)

    def Prepend(self, *args):
        return _SelectMgr.SelectMgr_SequenceOfSelection_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _SelectMgr.SelectMgr_SequenceOfSelection_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _SelectMgr.SelectMgr_SequenceOfSelection_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _SelectMgr.SelectMgr_SequenceOfSelection_Split(self, theIndex, theSeq)

    def First(self):
        return _SelectMgr.SelectMgr_SequenceOfSelection_First(self)

    def ChangeFirst(self):
        return _SelectMgr.SelectMgr_SequenceOfSelection_ChangeFirst(self)

    def Last(self):
        return _SelectMgr.SelectMgr_SequenceOfSelection_Last(self)

    def ChangeLast(self):
        return _SelectMgr.SelectMgr_SequenceOfSelection_ChangeLast(self)

    def Value(self, theIndex):
        return _SelectMgr.SelectMgr_SequenceOfSelection_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _SelectMgr.SelectMgr_SequenceOfSelection_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _SelectMgr.SelectMgr_SequenceOfSelection___call__(self, *args)

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

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

        Return
        -------
        None

        Description
        -----------
        Compute debug presentation for sensitive objects.

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

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

        Return
        -------
        None

        Description
        -----------
        Main constructor.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Queue a sensitive entity to build its bvh.

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

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

        Description
        -----------
        Stops threads.

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

    def Threads(self, *args):
        r"""
        Return
        -------
        NCollection_Array1<BVHThread>

        Description
        -----------
        Returns array of threads.

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

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

        Description
        -----------
        Waits for all threads finish their jobs.

        """
        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_BaseIntersector(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 Build(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        Builds intersector according to internal parameters.

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

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

        Description
        -----------
        Return camera definition.

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

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

        Parameters
        ----------
        theDepth: float

        Return
        -------
        gp_Pnt

        Description
        -----------
        Calculates the point on a view ray that was detected during the run of selection algo by given depth. it makes sense only for intersectors built on a single point. this method returns infinite point for the base class.

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

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

        Parameters
        ----------
        theCOG: gp_Pnt

        Return
        -------
        float

        Description
        -----------
        Measures distance between 3d projection of user-picked screen point and given point thecog. it makes sense only for intersectors built on a single point. this method returns infinite value for the base class.

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

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

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

        Description
        -----------
        Returns far point of intersector. this method returns zero point for the base class.

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

    def GetMousePosition(self, *args):
        r"""
        Return
        -------
        gp_Pnt2d

        Description
        -----------
        Returns current mouse coordinates. this method returns infinite point for the base class.

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

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

        Description
        -----------
        Returns near point of intersector. this method returns zero point for the base class.

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

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

        Parameters
        ----------
        thePlaneEquations: NCollection_Vector<SelectMgr_Vec4>

        Return
        -------
        None

        Description
        -----------
        Stores plane equation coefficients (in the following form: ax + by + cz + d = 0) to the given vector. this method only clears input vector for the base class.

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

    def GetSelectionType(self, *args):
        r"""
        Return
        -------
        SelectMgr_SelectionType

        Description
        -----------
        Returns selection type of this intersector.

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

    def GetViewRayDirection(self, *args):
        r"""
        Return
        -------
        gp_Dir

        Description
        -----------
        Returns direction ray of intersector. this method returns zero direction for the base class.

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

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

        Description
        -----------
        Checks if it is possible to scale this intersector.

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

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

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

        Return
        -------
        bool

        Description
        -----------
        Sat intersection test between defined volume and given axis-aligned box.

        Parameters
        ----------
        theBoxMin: SelectMgr_Vec3
        theBoxMax: SelectMgr_Vec3
        theInside: bool * (optional, default to NULL)

        Return
        -------
        bool

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

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

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

        Parameters
        ----------
        theBottomRad: float
        theTrsf: gp_Trsf
        theIsFilled: bool
        theClipRange: SelectMgr_ViewClipRange
        thePickResult: SelectBasics_PickResult

        Return
        -------
        bool

        Description
        -----------
        Returns true if selecting volume is overlapped by circle with radius theradius, boolean theisfilled and transformation to apply thetrsf. the position and orientation of the circle are specified via thetrsf transformation for gp::xoy() with center in gp::origin().

        Parameters
        ----------
        theBottomRad: float
        theTrsf: gp_Trsf
        theIsFilled: bool
        theInside: bool * (optional, default to NULL)

        Return
        -------
        bool

        Description
        -----------
        Returns true if selecting volume is overlapped by circle with radius theradius, boolean theisfilled and transformation to apply thetrsf. the position and orientation of the circle are specified via thetrsf transformation for gp::xoy() with center in gp::origin().

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

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

        Parameters
        ----------
        theBottomRad: float
        theTopRad: float
        theHeight: float
        theTrsf: gp_Trsf
        theIsHollow: bool
        theClipRange: SelectMgr_ViewClipRange
        thePickResult: SelectBasics_PickResult

        Return
        -------
        bool

        Description
        -----------
        Returns true if selecting volume is overlapped by cylinder (or cone) with radiuses thebottomrad and thetoprad, height theheight and transformation to apply thetrsf.

        Parameters
        ----------
        theBottomRad: float
        theTopRad: float
        theHeight: float
        theTrsf: gp_Trsf
        theIsHollow: bool
        theInside: bool * (optional, default to NULL)

        Return
        -------
        bool

        Description
        -----------
        Returns true if selecting volume is overlapped by cylinder (or cone) with radiuses thebottomrad and thetoprad, height theheight and transformation to apply thetrsf.

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

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

        Parameters
        ----------
        thePnt: gp_Pnt
        theClipRange: SelectMgr_ViewClipRange
        thePickResult: SelectBasics_PickResult

        Return
        -------
        bool

        Description
        -----------
        Intersection test between defined volume and given point.

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

        Return
        -------
        bool

        Description
        -----------
        Intersection test between defined volume and given point does not perform depth calculation, so this method is defined as helper function for inclusion test. therefore, its implementation makes sense only for rectangular frustum with box selection mode activated.

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

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

        Parameters
        ----------
        theArrayOfPnts: TColgp_Array1OfPnt
        theSensType: Select3D_TypeOfSensitivity
        theClipRange: SelectMgr_ViewClipRange
        thePickResult: SelectBasics_PickResult

        Return
        -------
        bool

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

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

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

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

        Return
        -------
        bool

        Description
        -----------
        Checks if line segment overlaps selecting frustum.

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

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

        Parameters
        ----------
        theCenter: gp_Pnt
        theRadius: float
        theInside: bool * (optional, default to NULL)

        Return
        -------
        bool

        Description
        -----------
        Returns true if selecting volume is overlapped by sphere with center thecenter and radius theradius.

        Parameters
        ----------
        theCenter: gp_Pnt
        theRadius: float
        theClipRange: SelectMgr_ViewClipRange
        thePickResult: SelectBasics_PickResult

        Return
        -------
        bool

        Description
        -----------
        Returns true if selecting volume is overlapped by sphere with center thecenter and radius theradius.

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

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

        Parameters
        ----------
        thePnt1: gp_Pnt
        thePnt2: gp_Pnt
        thePnt3: gp_Pnt
        theSensType: Select3D_TypeOfSensitivity
        theClipRange: SelectMgr_ViewClipRange
        thePickResult: SelectBasics_PickResult

        Return
        -------
        bool

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

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

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

        Parameters
        ----------
        theRadius: float
        theLoc: gp_Pnt
        theRayDir: gp_Dir
        theIsFilled: bool

        Return
        -------
        theTime: float

        Description
        -----------
        Checks whether the ray that starts at the point theloc and directs with the direction theraydir intersects with the circle @param[in] theradius the circle radius @param[in] theloc the location of the ray @param[in] theraydir the ray direction @param[in] theisfilled true if it's a circle, false if it's a circle outline @param[out] thetime the intersection.

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

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

        Parameters
        ----------
        theBottomRadius: float
        theTopRadius: float
        theHeight: float
        theLoc: gp_Pnt
        theRayDir: gp_Dir
        theIsHollow: bool

        Return
        -------
        theTimeEnter: float
        theTimeLeave: float

        Description
        -----------
        Checks whether the ray that starts at the point theloc and directs with the direction theraydir intersects with the hollow cylinder (or cone) @param[in] thebottomradius the bottom cylinder radius @param[in] thetopradius the top cylinder radius @param[in] theheight the cylinder height @param[in] theloc the location of the ray @param[in] theraydir the ray direction @param[in] theishollow true if the cylinder is hollow @param[out] thetimeenter the entering the intersection @param[out] thetimeleave the leaving the intersection.

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

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

        Parameters
        ----------
        theCenter: gp_Pnt
        theRadius: float
        theLoc: gp_Pnt
        theRayDir: gp_Dir

        Return
        -------
        theTimeEnter: float
        theTimeLeave: float

        Description
        -----------
        Checks whether the ray that starts at the point theloc and directs with the direction theraydir intersects with the sphere with center at thecenter and radius theradius.

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

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

        Parameters
        ----------
        theScaleFactor: int
        theTrsf: gp_GTrsf
        theBuilder: SelectMgr_FrustumBuilder

        Return
        -------
        opencascade::handle<SelectMgr_BaseIntersector>

        Description
        -----------
        Note that this method does not perform any checks on type of the frustum. @param thescalefactor [in] scale factor for new intersector or negative value if undefined;  important: scaling makes sense only for scalable ::isscalable() intersectors (built on a single point)! @param thetrsf [in] transformation for new intersector or gp_identity if undefined @param thebuilder [in] an optional argument that represents corresponding settings for re-constructing transformed frustum from scratch; could be null if reconstruction is not expected furthermore return a copy of the frustum resized according to the scale factor given and transforms it using the matrix given.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Saves camera definition.

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

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

        Parameters
        ----------
        theTol: int

        Return
        -------
        None

        Description
        -----------
        Sets pixel tolerance. it makes sense only for scalable intersectors (built on a single point). this method does nothing for the base class.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Sets viewport parameters. this method does nothing for the base class.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Sets current window size. this method does nothing for the base class.

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

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

        Parameters
        ----------

        Return
        -------
        theWidth: int
        theHeight: int

        Description
        -----------
        Returns current window size. this method doesn't set any output values for the base class.

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


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


    __repr__ = _dumps_object

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_BaseIntersector

# Register SelectMgr_BaseIntersector in _SelectMgr:
_SelectMgr.SelectMgr_BaseIntersector_swigregister(SelectMgr_BaseIntersector)
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"""

        Parameters
        ----------
        aPriority: int (optional, default to 0)

        Return
        -------
        None

        Description
        -----------
        Initializes the selection priority apriority.

        Parameters
        ----------
        aSO: SelectMgr_SelectableObject
        aPriority: int (optional, default to 0)

        Return
        -------
        None

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

        Parameters
        ----------
        theOwner: SelectMgr_EntityOwner
        aPriority: int (optional, default to 0)

        Return
        -------
        None

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

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

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

        Parameters
        ----------
        thePrsMgr: PrsMgr_PresentationManager
        theMode: int (optional, default to 0)

        Return
        -------
        None

        Description
        -----------
        Clears the owners matching the value of the selection mode amode from the presentation manager object apm.

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

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

        Description
        -----------
        Returns true if this owner points to a part of object and false for entire object.

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

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

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

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

        Return
        -------
        bool

        Description
        -----------
        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 return true if object handled click.

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

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

        Description
        -----------
        Returns true if selectable has transformation.

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

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

        Description
        -----------
        Returns true if there is a selectable object to serve as an owner.

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

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

        Parameters
        ----------
        thePrsMgr: PrsMgr_PresentationManager
        theStyle: Prs3d_Drawer
        theMode: int (optional, default to 0)

        Return
        -------
        None

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

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

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

        Description
        -----------
        If owner is not auto hilighted, for group contains many such owners will be called one method hilightselected of selectableobject.

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

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

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

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

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

        Parameters
        ----------
        thePrsMgr: PrsMgr_PresentationManager
        theMode: int (optional, default to 0)

        Return
        -------
        bool

        Description
        -----------
        Returns true if the presentation manager highlights selections corresponding to the selection mode.

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

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

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

        Return
        -------
        bool

        Description
        -----------
        Returns true if pointer to selectable object of this owner is equal to the given one.

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

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

        Description
        -----------
        Return standard_true if the owner is selected.

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

    def Location(self, *args):
        r"""
        Return
        -------
        TopLoc_Location

        Description
        -----------
        Returns transformation of selectable.

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

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

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

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

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

        Description
        -----------
        Returns a selectable object detected in the working context.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Sets the selectable object.

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

        Return
        -------
        None

        Description
        -----------
        Sets the selectable priority of the owner.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Sets flag indicating this owner points to a part of object (true) or to entire object (false).

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

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

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

        Return
        -------
        None

        Description
        -----------
        Change owner location (callback for handling change of location of selectable object).

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

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

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

        Return
        -------
        None

        Description
        -----------
        Sets the selectable priority of the owner within range [0-9].

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

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

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

        Return
        -------
        None

        Description
        -----------
        Sets the selectable object.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Set the state of the owner. @param theisselected [in] shows if owner is selected.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Set z layer id and update all presentations.

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

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

        Description
        -----------
        Returns selection state.

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

        Return
        -------
        None

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

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

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

        Parameters
        ----------
        thePrsMgr: PrsMgr_PresentationManager
        theMode: int (optional, default to 0)

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

        Description
        -----------
        Implements immediate application of location transformation of parent object to dynamic highlight structure.

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


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


    __repr__ = _dumps_object

    @methodnotwrapped
    def Select(self):
    	pass

    __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):
        r"""

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

        Return
        -------
        bool

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

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

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

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

        Return
        -------
        bool

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

        """
        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):
        r"""
        Return
        -------
        bool

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

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

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

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

        Return
        -------
        None

        Description
        -----------
        Adds the selection aselection with the selection mode index amode to this framework.

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

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

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

        Return
        -------
        None

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

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

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

        Description
        -----------
        Method which clear all selected owners belonging to this selectable object ( for fast presentation draw ).

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

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

        Parameters
        ----------
        update: bool (optional, default to Standard_False)

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

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

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

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

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

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

        Return
        -------
        None

        Description
        -----------
        Removes presentations returned by gethilightpresentation() and getselectpresentation().

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

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

        Description
        -----------
        Returns common entity owner if the object is an assembly.

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

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

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

        Return
        -------
        opencascade::handle<Prs3d_Presentation>

        Description
        -----------
        Creates or returns existing presentation for highlighting detected object. @param theprsmgr presentation manager to create new presentation return existing or newly created presentation (when theprsmgr is not null).

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

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

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

        Return
        -------
        opencascade::handle<Prs3d_Presentation>

        Description
        -----------
        Creates or returns existing presentation for highlighting selected object. @param theprsmgr presentation manager to create new presentation return existing or newly created presentation (when theprsmgr is not null).

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

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

        Description
        -----------
        Returns the owner of mode for selection of object as a whole.

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

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

        Description
        -----------
        Returns the mode for selection of object as a whole; 0 by default.

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

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

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

        Return
        -------
        bool

        Description
        -----------
        Returns true if a selection corresponding to the selection mode themode was computed for this object.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Method which hilight an owner belonging to this selectable object ( for fast presentation draw ).

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

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

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

        Return
        -------
        None

        Description
        -----------
        Method which draws selected owners ( for fast presentation draw ).

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

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

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

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

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

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

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

        Return
        -------
        None

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

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

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

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

        Return
        -------
        opencascade::handle<SelectMgr_Selection>

        Description
        -----------
        Returns the selection having specified selection mode or null.

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

    def Selections(self, *args):
        r"""
        Return
        -------
        SelectMgr_SequenceOfSelection

        Description
        -----------
        Return the sequence of selections.

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

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

        Parameters
        ----------
        theOwner: SelectMgr_EntityOwner
        theMode: int (optional, default to -1)

        Return
        -------
        None

        Description
        -----------
        Sets common entity owner for assembly sensitive object entities.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Set autohilight property to true or false.

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

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

        Parameters
        ----------
        theMode: int (optional, default to -1)

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

        Description
        -----------
        Updates locations in all sensitive entities from <aselection> and in corresponding entity owners.

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

        Description
        -----------
        Creates new empty objects set and initializes bvh tree builders for each subset.

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

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

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

        Return
        -------
        bool

        Description
        -----------
        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. return true if selectable object is added, otherwise returns false (selectable object is already in the set).

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

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

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

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

        Description
        -----------
        Returns computed bvh for the thesubset given.

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

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

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

        Return
        -------
        None

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

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

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

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

        Return
        -------
        bool

        Description
        -----------
        Returns true if this objects set contains theobject given.

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

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

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

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

        Return
        -------
        opencascade::handle<SelectMgr_SelectableObject>

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

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

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

        Description
        -----------
        Returns true if the object set does not contain any selectable objects.

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

        Return
        -------
        bool

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

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

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

        Description
        -----------
        Marks every bvh subset for update.

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

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

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

        Return
        -------
        bool

        Description
        -----------
        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. return true if selectable object is removed, otherwise returns false (selectable object is not in the set).

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

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

        Parameters
        ----------
        theCam: Graphic3d_Camera
        theWinSize: Graphic3d_Vec2i

        Return
        -------
        None

        Description
        -----------
        Updates outdated bvh trees and remembers the last state of the camera view-projection matrices and viewport (window) dimensions.

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

        Description
        -----------
        Creates instances of all available selecting volume types.

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

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

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

        Return
        -------
        None

        Description
        -----------
        If theistoallow is false, only fully included sensitives will be detected, otherwise the algorithm will mark both included and overlapped entities as matched.

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

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

        Description
        -----------
        Builds previously initialized selecting volume.

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

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

        Description
        -----------
        Returns current camera definition.

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

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

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

        Description
        -----------
        A set of helper functions that return rectangular selecting frustum data.

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

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

        Parameters
        ----------
        theAxis: gp_Ax1

        Return
        -------
        None

        Description
        -----------
        Creates and activates axis selector for point selection.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Creates, initializes and activates rectangular selecting frustum for box selection.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Creates, initializes and activates rectangular selecting frustum for point selection.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Creates, initializes and activates set of triangular selecting frustums for polyline selection.

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

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

        Parameters
        ----------
        theVolume: SelectMgr_BaseIntersector

        Return
        -------
        None

        Description
        -----------
        Sets as active the custom selecting volume.

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

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

        Description
        -----------
        Return object clipping planes.

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

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

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

        Return
        -------
        bool

        Description
        -----------
        Sat intersection test between defined volume and given axis-aligned box.

        Parameters
        ----------
        theBoxMin: SelectMgr_Vec3
        theBoxMax: SelectMgr_Vec3
        theInside: bool * (optional, default to NULL)

        Return
        -------
        bool

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

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

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

        Parameters
        ----------
        theBottomRad: float
        theTrsf: gp_Trsf
        theIsFilled: bool
        thePickResult: SelectBasics_PickResult

        Return
        -------
        bool

        Description
        -----------
        Returns true if selecting volume is overlapped by circle with radius theradius, boolean theisfilled and transformation to apply thetrsf. the position and orientation of the circle are specified via thetrsf transformation for gp::xoy() with center in gp::origin().

        Parameters
        ----------
        theBottomRad: float
        theTrsf: gp_Trsf
        theIsFilled: bool
        theInside: bool * (optional, default to NULL)

        Return
        -------
        bool

        Description
        -----------
        Returns true if selecting volume is overlapped by circle with radius theradius, boolean theisfilled and transformation to apply thetrsf. the position and orientation of the circle are specified via thetrsf transformation for gp::xoy() with center in gp::origin().

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

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

        Parameters
        ----------
        theBottomRad: float
        theTopRad: float
        theHeight: float
        theTrsf: gp_Trsf
        theIsHollow: bool
        thePickResult: SelectBasics_PickResult

        Return
        -------
        bool

        Description
        -----------
        Returns true if selecting volume is overlapped by cylinder (or cone) with radiuses thebottomrad and thetoprad, height theheight and transformation to apply thetrsf.

        Parameters
        ----------
        theBottomRad: float
        theTopRad: float
        theHeight: float
        theTrsf: gp_Trsf
        theIsHollow: bool
        theInside: bool * (optional, default to NULL)

        Return
        -------
        bool

        Description
        -----------
        Returns true if selecting volume is overlapped by cylinder (or cone) with radiuses thebottomrad and thetoprad, height theheight and transformation to apply thetrsf.

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

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

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

        Return
        -------
        bool

        Description
        -----------
        Intersection test between defined volume and given point.

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

        Return
        -------
        bool

        Description
        -----------
        Intersection test between defined volume and given point.

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

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

        Parameters
        ----------
        theCenter: gp_Pnt
        theRadius: float
        thePickResult: SelectBasics_PickResult

        Return
        -------
        bool

        Description
        -----------
        Intersection test between defined volume and given sphere.

        Parameters
        ----------
        theCenter: gp_Pnt
        theRadius: float
        theInside: bool * (optional, default to NULL)

        Return
        -------
        bool

        Description
        -----------
        Intersection test between defined volume and given sphere.

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

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

        Parameters
        ----------
        theScaleFactor: int
        theTrsf: gp_GTrsf
        theBuilder: SelectMgr_FrustumBuilder

        Return
        -------
        SelectMgr_SelectingVolumeManager

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

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

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

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

        Return
        -------
        None

        Description
        -----------
        Updates camera projection and orientation matrices in all selecting volumes note: this method should be called after selection volume building else exception will be thrown.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Updates pixel tolerance in all selecting volumes note: this method should be called after selection volume building else exception will be thrown.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Set clipping range.

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

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

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

        Return
        -------
        None

        Description
        -----------
        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
        ----------
        theOther: SelectMgr_SelectingVolumeManager

        Return
        -------
        None

        Description
        -----------
        Copy clipping planes from another volume manager.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Updates viewport in all selecting volumes note: this method should be called after selection volume building else exception will be thrown.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Updates window size in all selecting volumes note: this method should be called after selection volume building else exception will be thrown.

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

    def ViewClipRanges(self, *args):
        r"""
        Return
        -------
        SelectMgr_ViewClipRange

        Description
        -----------
        Return clipping range.

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

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

        Description
        -----------
        Return view clipping planes.

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

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

        Parameters
        ----------

        Return
        -------
        theWidth: int
        theHeight: int

        Description
        -----------
        Returns window size.

        """
        return _SelectMgr.SelectMgr_SelectingVolumeManager_WindowSize(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"""

        Parameters
        ----------
        theModeIdx: int (optional, default to 0)

        Return
        -------
        None

        Description
        -----------
        Constructs a selection object defined by the selection mode idmode. the default setting 0 is the selection mode for a shape in its entirety.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Adds the sensitive primitive to the list of stored entities in this object. raises nullobject if the primitive is a null handle.

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

    def BVHUpdateStatus(self, *args):
        r"""
        Return
        -------
        SelectMgr_TypeOfBVHUpdate

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

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

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

        Description
        -----------
        Return entities.

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

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

        Description
        -----------
        Empties the selection from all the stored entities.

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

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

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

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

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

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

        Description
        -----------
        Return entities.

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

    def GetSelectionState(self, *args):
        r"""
        Return
        -------
        SelectMgr_StateOfSelection

        Description
        -----------
        Returns status of selection.

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

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

        Description
        -----------
        Returns true if no sensitive entity is stored.

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

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

        Description
        -----------
        Returns the selection mode represented by this selection.

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

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

        Description
        -----------
        Returns sensitivity of the selection.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Sets status of selection.

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

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

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

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

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

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

    def UpdateStatus(self, *args):
        r"""
        Return
        -------
        SelectMgr_TypeOfUpdate

        Description
        -----------
        Returns the flag updateflag. this flage gives the update status of this framework in a viewerselector object: - full - partial, or - none.

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

        Return
        -------
        None

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

        """
        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):
        r"""

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

        Return
        -------
        None

        Description
        -----------
        Fill pixel at specified position.

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

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

        Description
        -----------
        Flush results into final image.

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

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

        Return
        -------
        None

        Description
        -----------
        Constructs an empty selection manager object.

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

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

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject
        theMode: int (optional, default to 0)

        Return
        -------
        None

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

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

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

        Parameters
        ----------
        theObj: SelectMgr_SelectableObject
        theMode: int (optional, default to -1)

        Return
        -------
        None

        Description
        -----------
        Removes sensitive entities from all viewer selectors after method clear() was called to the selection they belonged to or it was recomputed somehow.

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

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

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

        Return
        -------
        bool

        Description
        -----------
        Returns true if the manager contains the selectable object theobject.

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

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

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject
        theMode: int (optional, default to -1)

        Return
        -------
        None

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

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

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

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject
        theMode: int (optional, default to -1)

        Return
        -------
        bool

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

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

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

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject
        theMode: int (optional, default to -1)

        Return
        -------
        None

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

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

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

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject
        theIsForce: bool (optional, default to Standard_False)
        theMode: int (optional, default to -1)

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

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

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

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

        Parameters
        ----------
        theObj: SelectMgr_SelectableObject
        theMode: int (optional, default to -1)

        Return
        -------
        None

        Description
        -----------
        Re-adds newly calculated sensitive entities of recomputed selection defined by mode themode to all viewer selectors contained that selection.

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

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

        Description
        -----------
        Return the selector.

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

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

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject
        theMode: int
        theNewSens: int

        Return
        -------
        None

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

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

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

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject
        theType: SelectMgr_TypeOfUpdate

        Return
        -------
        None

        Description
        -----------
        Sets type of update of all selections of theobject to the given thetype.

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject
        theMode: int
        theType: SelectMgr_TypeOfUpdate

        Return
        -------
        None

        Description
        -----------
        Sets type of update of selection with themode of theobject to the given thetype.

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

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

        Parameters
        ----------
        theObject: SelectMgr_SelectableObject
        theIsForce: bool (optional, default to Standard_True)

        Return
        -------
        None

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

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

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

        Parameters
        ----------
        theObj: SelectMgr_SelectableObject

        Return
        -------
        None

        Description
        -----------
        Re-adds selectable object in bvhs in all viewer selectors.

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

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

        Return
        -------
        None

        Description
        -----------
        Creates new inactive for selection object with base entity theentity.

        """
        _SelectMgr.SelectMgr_SensitiveEntity_swiginit(self, _SelectMgr.new_SelectMgr_SensitiveEntity(*args))

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

        Description
        -----------
        Returns related instance of selectbasics class.

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

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

        Description
        -----------
        Clears up all resources and memory.

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

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

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

        Description
        -----------
        Returns true if this entity belongs to the active selection mode of parent object.

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

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

        Description
        -----------
        Marks entity as inactive for selection.

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

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

        Description
        -----------
        Marks entity as active for selection.

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

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

        """
        _SelectMgr.SelectMgr_SortCriterion_swiginit(self, _SelectMgr.new_SelectMgr_SortCriterion(*args))

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

        Parameters
        ----------
        theOther: SelectMgr_SortCriterion

        Return
        -------
        bool

        Description
        -----------
        Compare with another item by depth, priority and mindist.

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

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

        Parameters
        ----------
        theOther: SelectMgr_SortCriterion

        Return
        -------
        bool

        Description
        -----------
        Compare with another item using old logic (occt version <= 6.3.1) with priority considered preceding depth.

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

        Description
        -----------
        Creates an empty clip range.

        """
        _SelectMgr.SelectMgr_ViewClipRange_swiginit(self, _SelectMgr.new_SelectMgr_ViewClipRange(*args))

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

        Parameters
        ----------
        theRange: Bnd_Range

        Return
        -------
        None

        Description
        -----------
        Adds a clipping sub-range (for clipping chains).

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

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

        Parameters
        ----------
        thePlanes: Graphic3d_SequenceOfHClipPlane
        thePickRay: gp_Ax1

        Return
        -------
        None

        Description
        -----------
        Add clipping planes. planes and picking ray should be defined in the same coordinate system.

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

    def ChangeUnclipRange(self, *args):
        r"""
        Return
        -------
        Bnd_Range

        Description
        -----------
        Returns the main unclipped range; [-inf, inf] by default.

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

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

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

        Parameters
        ----------
        theRange: Bnd_Range

        Return
        -------
        theDepth: float

        Description
        -----------
        Calculates the min not clipped value from the range. returns false if the whole range is clipped.

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

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

        Parameters
        ----------
        theDepth: float

        Return
        -------
        bool

        Description
        -----------
        Check if the given depth is not within clipping range(s), e.g. true means depth is clipped.

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

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

        Description
        -----------
        Clears clipping range.

        """
        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_AxisIntersector(SelectMgr_BaseIntersector):
    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"""
        Return
        -------
        None

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

        """
        _SelectMgr.SelectMgr_AxisIntersector_swiginit(self, _SelectMgr.new_SelectMgr_AxisIntersector(*args))

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

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

        Parameters
        ----------
        theAxis: gp_Ax1

        Return
        -------
        None

        Description
        -----------
        Initializes selecting axis according to the input one.

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

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

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

        Return
        -------
        bool

        Description
        -----------
        Intersection test between defined axis and given axis-aligned box.

        Parameters
        ----------
        theBoxMin: SelectMgr_Vec3
        theBoxMax: SelectMgr_Vec3
        theInside: bool *

        Return
        -------
        bool

        Description
        -----------
        Returns true if selecting axis intersects axis-aligned bounding box with minimum corner at point theminpt and maximum at point themaxpt.

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

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

        Parameters
        ----------
        theRadius: float
        theTrsf: gp_Trsf
        theIsFilled: bool
        theClipRange: SelectMgr_ViewClipRange
        thePickResult: SelectBasics_PickResult

        Return
        -------
        bool

        Description
        -----------
        Returns true if selecting volume is overlapped by circle with radius theradius, boolean theisfilled and transformation to apply thetrsf. the position and orientation of the circle are specified via thetrsf transformation for gp::xoy() with center in gp::origin().

        Parameters
        ----------
        theRadius: float
        theTrsf: gp_Trsf
        theIsFilled: bool
        theInside: bool * (optional, default to NULL)

        Return
        -------
        bool

        Description
        -----------
        Returns true if selecting volume is overlapped by circle with radius theradius, boolean theisfilled and transformation to apply thetrsf. the position and orientation of the circle are specified via thetrsf transformation for gp::xoy() with center in gp::origin().

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

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

        Parameters
        ----------
        theBottomRad: float
        theTopRad: float
        theHeight: float
        theTrsf: gp_Trsf
        theIsHollow: bool
        theClipRange: SelectMgr_ViewClipRange
        thePickResult: SelectBasics_PickResult

        Return
        -------
        bool

        Description
        -----------
        Returns true if selecting volume is overlapped by cylinder (or cone) with radiuses thebottomrad and thetoprad, height theheight and transformation to apply thetrsf.

        Parameters
        ----------
        theBottomRad: float
        theTopRad: float
        theHeight: float
        theTrsf: gp_Trsf
        theIsHollow: bool
        theInside: bool * (optional, default to NULL)

        Return
        -------
        bool

        Description
        -----------
        Returns true if selecting volume is overlapped by cylinder (or cone) with radiuses thebottomrad and thetoprad, height theheight and transformation to apply thetrsf.

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

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

        Parameters
        ----------
        thePnt: gp_Pnt
        theClipRange: SelectMgr_ViewClipRange
        thePickResult: SelectBasics_PickResult

        Return
        -------
        bool

        Description
        -----------
        Intersection test between defined axis and given point.

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

        Return
        -------
        bool

        Description
        -----------
        Intersection test between defined axis and given point.

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

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

        Parameters
        ----------
        theCenter: gp_Pnt
        theRadius: float
        theInside: bool * (optional, default to NULL)

        Return
        -------
        bool

        Description
        -----------
        Intersection test between defined axis and given sphere with center thecenter and radius theradius.

        Parameters
        ----------
        theCenter: gp_Pnt
        theRadius: float
        theClipRange: SelectMgr_ViewClipRange
        thePickResult: SelectBasics_PickResult

        Return
        -------
        bool

        Description
        -----------
        Intersection test between defined axis and given sphere with center thecenter and radius theradius.

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


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


    __repr__ = _dumps_object

    __swig_destroy__ = _SelectMgr.delete_SelectMgr_AxisIntersector

# Register SelectMgr_AxisIntersector in _SelectMgr:
_SelectMgr.SelectMgr_AxisIntersector_swigregister(SelectMgr_AxisIntersector)
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):
        r"""

        Parameters
        ----------
        afilter: SelectMgr_Filter

        Return
        -------
        None

        Description
        -----------
        Adds the filter afilter to a filter object created by a filter class inheriting this framework.

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

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

        Description
        -----------
        Clears the filters used in this framework.

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

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

        Description
        -----------
        Returns true if this framework is empty.

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

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

        Parameters
        ----------
        aFilter: SelectMgr_Filter

        Return
        -------
        bool

        Description
        -----------
        Returns true if the filter afilter is in this framework.

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

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

        Parameters
        ----------
        aFilter: SelectMgr_Filter

        Return
        -------
        None

        Description
        -----------
        Removes the filter afilter from this framework.

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

    def StoredFilters(self, *args):
        r"""
        Return
        -------
        SelectMgr_ListOfFilter

        Description
        -----------
        Returns the list of stored filters from this framework.

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

        Description
        -----------
        Constructs an empty selection filter object for two or more types of entity.

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

        Parameters
        ----------
        theFilterType: SelectMgr_FilterType

        Return
        -------
        None

        Description
        -----------
        Constructs an empty selection filter.

        """
        _SelectMgr.SelectMgr_AndOrFilter_swiginit(self, _SelectMgr.new_SelectMgr_AndOrFilter(*args))

    def FilterType(self, *args):
        r"""
        Return
        -------
        SelectMgr_FilterType

        Description
        -----------
        Return a selection filter type (@sa selectmgr_filtertype).

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

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

        Parameters
        ----------
        theObjects: Graphic3d_NMapOfTransient

        Return
        -------
        None

        Description
        -----------
        Disable selection of specified objects.

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

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

        Parameters
        ----------
        theFilterType: SelectMgr_FilterType

        Return
        -------
        None

        Description
        -----------
        Sets a selection filter type. selectmgr_filtertype_or selection filter is used be default. @param thefiltertype the filter type.

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

        Description
        -----------
        Constructs an empty or selection filter.

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


@deprecated
def selectmgr_ComputeSensitivePrs(*args):
	return selectmgr.ComputeSensitivePrs(*args)



