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

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

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

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

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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


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


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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


def process_exception(error: "Standard_Failure", method_name: "std::string", class_name: "std::string") -> "void":
    return _PrsMgr.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.Prs3d
import OCC.Core.TColgp
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.OSD
import OCC.Core.Media
import OCC.Core.Poly
import OCC.Core.TShort
import OCC.Core.GeomAbs
import OCC.Core.V3d

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

PrsMgr_TOP_AllView = _PrsMgr.PrsMgr_TOP_AllView
PrsMgr_TOP_ProjectorDependant = _PrsMgr.PrsMgr_TOP_ProjectorDependant


class PrsMgr_TypeOfPresentation3d(IntEnum):
	PrsMgr_TOP_AllView = 0
	PrsMgr_TOP_ProjectorDependant = 1
PrsMgr_TOP_AllView = PrsMgr_TypeOfPresentation3d.PrsMgr_TOP_AllView
PrsMgr_TOP_ProjectorDependant = PrsMgr_TypeOfPresentation3d.PrsMgr_TOP_ProjectorDependant


def Handle_PrsMgr_PresentableObject_Create() -> "opencascade::handle< PrsMgr_PresentableObject >":
    return _PrsMgr.Handle_PrsMgr_PresentableObject_Create()

def Handle_PrsMgr_PresentableObject_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< PrsMgr_PresentableObject >":
    return _PrsMgr.Handle_PrsMgr_PresentableObject_DownCast(t)

def Handle_PrsMgr_PresentableObject_IsNull(t: "opencascade::handle< PrsMgr_PresentableObject > const &") -> "bool":
    return _PrsMgr.Handle_PrsMgr_PresentableObject_IsNull(t)

def Handle_PrsMgr_Presentation_Create() -> "opencascade::handle< PrsMgr_Presentation >":
    return _PrsMgr.Handle_PrsMgr_Presentation_Create()

def Handle_PrsMgr_Presentation_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< PrsMgr_Presentation >":
    return _PrsMgr.Handle_PrsMgr_Presentation_DownCast(t)

def Handle_PrsMgr_Presentation_IsNull(t: "opencascade::handle< PrsMgr_Presentation > const &") -> "bool":
    return _PrsMgr.Handle_PrsMgr_Presentation_IsNull(t)

def Handle_PrsMgr_PresentationManager_Create() -> "opencascade::handle< PrsMgr_PresentationManager >":
    return _PrsMgr.Handle_PrsMgr_PresentationManager_Create()

def Handle_PrsMgr_PresentationManager_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< PrsMgr_PresentationManager >":
    return _PrsMgr.Handle_PrsMgr_PresentationManager_DownCast(t)

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

    def begin(self) -> "NCollection_List< opencascade::handle< PrsMgr_PresentableObject > >::iterator":
        return _PrsMgr.PrsMgr_ListOfPresentableObjects_begin(self)

    def end(self) -> "NCollection_List< opencascade::handle< PrsMgr_PresentableObject > >::iterator":
        return _PrsMgr.PrsMgr_ListOfPresentableObjects_end(self)

    def cbegin(self) -> "NCollection_List< opencascade::handle< PrsMgr_PresentableObject > >::const_iterator":
        return _PrsMgr.PrsMgr_ListOfPresentableObjects_cbegin(self)

    def cend(self) -> "NCollection_List< opencascade::handle< PrsMgr_PresentableObject > >::const_iterator":
        return _PrsMgr.PrsMgr_ListOfPresentableObjects_cend(self)

    def __init__(self, *args):
        _PrsMgr.PrsMgr_ListOfPresentableObjects_swiginit(self, _PrsMgr.new_PrsMgr_ListOfPresentableObjects(*args))

    def Size(self) -> "Standard_Integer":
        return _PrsMgr.PrsMgr_ListOfPresentableObjects_Size(self)

    def Assign(self, theOther: "PrsMgr_ListOfPresentableObjects") -> "NCollection_List< opencascade::handle< PrsMgr_PresentableObject > > &":
        return _PrsMgr.PrsMgr_ListOfPresentableObjects_Assign(self, theOther)

    def Set(self, theOther: "PrsMgr_ListOfPresentableObjects") -> "NCollection_List< opencascade::handle< PrsMgr_PresentableObject > > &":
        return _PrsMgr.PrsMgr_ListOfPresentableObjects_Set(self, theOther)

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

    def First(self) -> "opencascade::handle< PrsMgr_PresentableObject > const &":
        return _PrsMgr.PrsMgr_ListOfPresentableObjects_First(self)

    def Last(self) -> "opencascade::handle< PrsMgr_PresentableObject > const &":
        return _PrsMgr.PrsMgr_ListOfPresentableObjects_Last(self)

    def Append(self, *args) -> "void":
        return _PrsMgr.PrsMgr_ListOfPresentableObjects_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _PrsMgr.PrsMgr_ListOfPresentableObjects_Prepend(self, *args)

    def RemoveFirst(self) -> "void":
        return _PrsMgr.PrsMgr_ListOfPresentableObjects_RemoveFirst(self)

    def Remove(self, theIter: "NCollection_List< opencascade::handle< PrsMgr_PresentableObject > >::Iterator &") -> "void":
        return _PrsMgr.PrsMgr_ListOfPresentableObjects_Remove(self, theIter)

    def InsertBefore(self, *args) -> "void":
        return _PrsMgr.PrsMgr_ListOfPresentableObjects_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _PrsMgr.PrsMgr_ListOfPresentableObjects_InsertAfter(self, *args)

    def Reverse(self) -> "void":
        return _PrsMgr.PrsMgr_ListOfPresentableObjects_Reverse(self)
    __swig_destroy__ = _PrsMgr.delete_PrsMgr_ListOfPresentableObjects

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


# Register PrsMgr_ListOfPresentableObjects in _PrsMgr:
_PrsMgr.PrsMgr_ListOfPresentableObjects_swigregister(PrsMgr_ListOfPresentableObjects)

class PrsMgr_ListOfPresentableObjectsIter(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):
        _PrsMgr.PrsMgr_ListOfPresentableObjectsIter_swiginit(self, _PrsMgr.new_PrsMgr_ListOfPresentableObjectsIter(*args))

    def More(self) -> "Standard_Boolean":
        return _PrsMgr.PrsMgr_ListOfPresentableObjectsIter_More(self)

    def Next(self) -> "void":
        return _PrsMgr.PrsMgr_ListOfPresentableObjectsIter_Next(self)

    def Value(self) -> "PrsMgr_ListOfPresentableObjects const &":
        return _PrsMgr.PrsMgr_ListOfPresentableObjectsIter_Value(self)

    def ChangeValue(self) -> "PrsMgr_ListOfPresentableObjects &":
        return _PrsMgr.PrsMgr_ListOfPresentableObjectsIter_ChangeValue(self)
    __swig_destroy__ = _PrsMgr.delete_PrsMgr_ListOfPresentableObjectsIter

# Register PrsMgr_ListOfPresentableObjectsIter in _PrsMgr:
_PrsMgr.PrsMgr_ListOfPresentableObjectsIter_swigregister(PrsMgr_ListOfPresentableObjectsIter)

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

    def begin(self) -> "NCollection_List< opencascade::handle< Graphic3d_Structure > >::iterator":
        return _PrsMgr.PrsMgr_ListOfPresentations_begin(self)

    def end(self) -> "NCollection_List< opencascade::handle< Graphic3d_Structure > >::iterator":
        return _PrsMgr.PrsMgr_ListOfPresentations_end(self)

    def cbegin(self) -> "NCollection_List< opencascade::handle< Graphic3d_Structure > >::const_iterator":
        return _PrsMgr.PrsMgr_ListOfPresentations_cbegin(self)

    def cend(self) -> "NCollection_List< opencascade::handle< Graphic3d_Structure > >::const_iterator":
        return _PrsMgr.PrsMgr_ListOfPresentations_cend(self)

    def __init__(self, *args):
        _PrsMgr.PrsMgr_ListOfPresentations_swiginit(self, _PrsMgr.new_PrsMgr_ListOfPresentations(*args))

    def Size(self) -> "Standard_Integer":
        return _PrsMgr.PrsMgr_ListOfPresentations_Size(self)

    def Assign(self, theOther: "PrsMgr_ListOfPresentations") -> "NCollection_List< opencascade::handle< Prs3d_Presentation > > &":
        return _PrsMgr.PrsMgr_ListOfPresentations_Assign(self, theOther)

    def Set(self, theOther: "PrsMgr_ListOfPresentations") -> "NCollection_List< opencascade::handle< Prs3d_Presentation > > &":
        return _PrsMgr.PrsMgr_ListOfPresentations_Set(self, theOther)

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

    def First(self) -> "opencascade::handle< Graphic3d_Structure > const &":
        return _PrsMgr.PrsMgr_ListOfPresentations_First(self)

    def Last(self) -> "opencascade::handle< Graphic3d_Structure > const &":
        return _PrsMgr.PrsMgr_ListOfPresentations_Last(self)

    def Append(self, *args) -> "void":
        return _PrsMgr.PrsMgr_ListOfPresentations_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _PrsMgr.PrsMgr_ListOfPresentations_Prepend(self, *args)

    def RemoveFirst(self) -> "void":
        return _PrsMgr.PrsMgr_ListOfPresentations_RemoveFirst(self)

    def Remove(self, theIter: "NCollection_List< opencascade::handle< Graphic3d_Structure > >::Iterator &") -> "void":
        return _PrsMgr.PrsMgr_ListOfPresentations_Remove(self, theIter)

    def InsertBefore(self, *args) -> "void":
        return _PrsMgr.PrsMgr_ListOfPresentations_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _PrsMgr.PrsMgr_ListOfPresentations_InsertAfter(self, *args)

    def Reverse(self) -> "void":
        return _PrsMgr.PrsMgr_ListOfPresentations_Reverse(self)
    __swig_destroy__ = _PrsMgr.delete_PrsMgr_ListOfPresentations

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


# Register PrsMgr_ListOfPresentations in _PrsMgr:
_PrsMgr.PrsMgr_ListOfPresentations_swigregister(PrsMgr_ListOfPresentations)

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

    def begin(self) -> "NCollection_Sequence< opencascade::handle< PrsMgr_Presentation > >::iterator":
        return _PrsMgr.PrsMgr_Presentations_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< PrsMgr_Presentation > >::iterator":
        return _PrsMgr.PrsMgr_Presentations_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< PrsMgr_Presentation > >::const_iterator":
        return _PrsMgr.PrsMgr_Presentations_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< PrsMgr_Presentation > >::const_iterator":
        return _PrsMgr.PrsMgr_Presentations_cend(self)

    def __init__(self, *args):
        _PrsMgr.PrsMgr_Presentations_swiginit(self, _PrsMgr.new_PrsMgr_Presentations(*args))

    def Size(self) -> "Standard_Integer":
        return _PrsMgr.PrsMgr_Presentations_Size(self)

    def Length(self) -> "Standard_Integer":
        return _PrsMgr.PrsMgr_Presentations_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _PrsMgr.PrsMgr_Presentations_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _PrsMgr.PrsMgr_Presentations_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _PrsMgr.PrsMgr_Presentations_IsEmpty(self)

    def Reverse(self) -> "void":
        return _PrsMgr.PrsMgr_Presentations_Reverse(self)

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

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

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

    def Assign(self, theOther: "PrsMgr_Presentations") -> "NCollection_Sequence< opencascade::handle< PrsMgr_Presentation > > &":
        return _PrsMgr.PrsMgr_Presentations_Assign(self, theOther)

    def Set(self, theOther: "PrsMgr_Presentations") -> "NCollection_Sequence< opencascade::handle< PrsMgr_Presentation > > &":
        return _PrsMgr.PrsMgr_Presentations_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _PrsMgr.PrsMgr_Presentations_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _PrsMgr.PrsMgr_Presentations_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _PrsMgr.PrsMgr_Presentations_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _PrsMgr.PrsMgr_Presentations_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _PrsMgr.PrsMgr_Presentations_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "PrsMgr_Presentations") -> "void":
        return _PrsMgr.PrsMgr_Presentations_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< PrsMgr_Presentation > const &":
        return _PrsMgr.PrsMgr_Presentations_First(self)

    def ChangeFirst(self) -> "opencascade::handle< PrsMgr_Presentation > &":
        return _PrsMgr.PrsMgr_Presentations_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< PrsMgr_Presentation > const &":
        return _PrsMgr.PrsMgr_Presentations_Last(self)

    def ChangeLast(self) -> "opencascade::handle< PrsMgr_Presentation > &":
        return _PrsMgr.PrsMgr_Presentations_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< PrsMgr_Presentation > const &":
        return _PrsMgr.PrsMgr_Presentations_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< PrsMgr_Presentation > &":
        return _PrsMgr.PrsMgr_Presentations_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< PrsMgr_Presentation > &":
        return _PrsMgr.PrsMgr_Presentations___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< PrsMgr_Presentation > const &") -> "void":
        return _PrsMgr.PrsMgr_Presentations_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _PrsMgr.delete_PrsMgr_Presentations

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


# Register PrsMgr_Presentations in _PrsMgr:
_PrsMgr.PrsMgr_Presentations_swigregister(PrsMgr_Presentations)

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

class PrsMgr_PresentableObject(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 AcceptDisplayMode(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the class of objects accepts specified display mode index. the interactive context can have a default mode of representation for the set of interactive objects. this mode may not be accepted by a given class of objects. consequently, this virtual method allowing us to get information about the class in question must be implemented. at least one display mode index should be accepted by this method. although subclass can leave default implementation, it is highly desired defining exact list of supported modes instead, which is usually an enumeration for one object or objects class sharing similar list of display modes.

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

        Returns
        -------
        bool

        """
        return _PrsMgr.PrsMgr_PresentableObject_AcceptDisplayMode(self, *args)

    def AddChild(self, *args) -> "void":
        r"""
        Makes theobject child of current object in scene hierarchy.

        Parameters
        ----------
        theObject: PrsMgr_PresentableObject

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_AddChild(self, *args)

    def AddChildWithCurrentTransformation(self, *args) -> "void":
        r"""
        Makes theobject child of current object in scene hierarchy with keeping the current global transformation so the object keeps the same position/orientation in the global cs.

        Parameters
        ----------
        theObject: PrsMgr_PresentableObject

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_AddChildWithCurrentTransformation(self, *args)

    def AddClipPlane(self, *args) -> "void":
        r"""
        Adds clip plane for graphical clipping for all display mode presentations. the composition of clip planes truncates the rendering space to convex volume. please be aware that number of supported clip plane is limited. the planes which exceed the limit are ignored. besides of this, some planes can be already set in view where the object is shown: the number of these planes should be subtracted from limit to predict the maximum possible number of object clipping planes. @param theplane [in] the clip plane to be appended to map of clip planes.

        Parameters
        ----------
        thePlane: Graphic3d_ClipPlane

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_AddClipPlane(self, *args)

    def Attributes(self, *args) -> "opencascade::handle< Prs3d_Drawer > const &":
        r"""
        Returns the attributes settings.

        Returns
        -------
        opencascade::handle<Prs3d_Drawer>

        """
        return _PrsMgr.PrsMgr_PresentableObject_Attributes(self, *args)

    def BoundingBox(self, *args) -> "void":
        r"""
        Returns bounding box of object correspondingly to its current display mode. this method requires presentation to be already computed, since it relies on bounding box of presentation structures, which are supposed to be same/close amongst different display modes of this object.

        Parameters
        ----------
        theBndBox: Bnd_Box

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_BoundingBox(self, *args)

    def Children(self, *args) -> "PrsMgr_ListOfPresentableObjects const &":
        r"""
        Returns children of the current object.

        Returns
        -------
        PrsMgr_ListOfPresentableObjects

        """
        return _PrsMgr.PrsMgr_PresentableObject_Children(self, *args)

    def ClipPlanes(self, *args) -> "opencascade::handle< Graphic3d_SequenceOfHClipPlane > const &":
        r"""
        Get clip planes. returns set of previously added clip planes for all display mode presentations.

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

        """
        return _PrsMgr.PrsMgr_PresentableObject_ClipPlanes(self, *args)

    def Color(self, *args) -> "void":
        r"""
        Returns the color setting of the interactive object.

        Parameters
        ----------
        theColor: Quantity_Color

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_Color(self, *args)

    def CombinedParentTransformation(self, *args) -> "opencascade::handle< TopLoc_Datum3D > const &":
        r"""
        Return combined parent transformation.

        Returns
        -------
        opencascade::handle<TopLoc_Datum3D>

        """
        return _PrsMgr.PrsMgr_PresentableObject_CombinedParentTransformation(self, *args)

    def CurrentFacingModel(self, *args) -> "Aspect_TypeOfFacingModel":
        r"""
        Returns the current facing model which is in effect.

        Returns
        -------
        Aspect_TypeOfFacingModel

        """
        return _PrsMgr.PrsMgr_PresentableObject_CurrentFacingModel(self, *args)

    def DefaultDisplayMode(self, *args) -> "Standard_Integer":
        r"""
        Returns the default display mode.

        Returns
        -------
        int

        """
        return _PrsMgr.PrsMgr_PresentableObject_DefaultDisplayMode(self, *args)

    def DisplayMode(self, *args) -> "Standard_Integer":
        r"""
        Returns the display mode setting of the interactive object. the range of supported display mode indexes should be specified within object definition and filtered by accepdisplaymode(). @sa acceptdisplaymode().

        Returns
        -------
        int

        """
        return _PrsMgr.PrsMgr_PresentableObject_DisplayMode(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(PrsMgr_PresentableObject self, int depth=-1) -> std::string"""
        return _PrsMgr.PrsMgr_PresentableObject_DumpJsonToString(self, depth)

    def DynamicHilightAttributes(self, *args) -> "opencascade::handle< Prs3d_Drawer > const &":
        r"""
        Returns the hilight attributes settings. when not null, overrides both prs3d_typeofhighlight_localdynamic and prs3d_typeofhighlight_dynamic defined within ais_interactivecontext.

        Returns
        -------
        opencascade::handle<Prs3d_Drawer>

        """
        return _PrsMgr.PrsMgr_PresentableObject_DynamicHilightAttributes(self, *args)

    def GetTransformPersistenceMode(self, *args) -> "Graphic3d_TransModeFlags":
        r"""
        Gets transform persistence mode for this object.

        Returns
        -------
        Graphic3d_TransModeFlags

        """
        return _PrsMgr.PrsMgr_PresentableObject_GetTransformPersistenceMode(self, *args)

    def GetTransformPersistencePoint(self, *args) -> "gp_Pnt":
        r"""
        Gets point of transform persistence for this object.

        Returns
        -------
        gp_Pnt

        """
        return _PrsMgr.PrsMgr_PresentableObject_GetTransformPersistencePoint(self, *args)

    def HasColor(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the interactive object has color.

        Returns
        -------
        bool

        """
        return _PrsMgr.PrsMgr_PresentableObject_HasColor(self, *args)

    def HasDisplayMode(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the interactive object has display mode setting overriding global setting (within interactive context).

        Returns
        -------
        bool

        """
        return _PrsMgr.PrsMgr_PresentableObject_HasDisplayMode(self, *args)

    def HasHilightMode(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the interactive object is in highlight mode.

        Returns
        -------
        bool

        """
        return _PrsMgr.PrsMgr_PresentableObject_HasHilightMode(self, *args)

    def HasMaterial(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the interactive object has a setting for material.

        Returns
        -------
        bool

        """
        return _PrsMgr.PrsMgr_PresentableObject_HasMaterial(self, *args)

    def HasOwnPresentations(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if object should have own presentations.

        Returns
        -------
        bool

        """
        return _PrsMgr.PrsMgr_PresentableObject_HasOwnPresentations(self, *args)

    def HasPolygonOffsets(self, *args) -> "Standard_Boolean":
        r"""
        Returns standard_true if <mydrawer> has non-null shading aspect.

        Returns
        -------
        bool

        """
        return _PrsMgr.PrsMgr_PresentableObject_HasPolygonOffsets(self, *args)

    def HasTransformation(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if object has a transformation that is different from the identity.

        Returns
        -------
        bool

        """
        return _PrsMgr.PrsMgr_PresentableObject_HasTransformation(self, *args)

    def HasWidth(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the interactive object has width.

        Returns
        -------
        bool

        """
        return _PrsMgr.PrsMgr_PresentableObject_HasWidth(self, *args)

    def HilightAttributes(self, *args) -> "opencascade::handle< Prs3d_Drawer > const &":
        r"""
        Returns the hilight attributes settings. when not null, overrides both prs3d_typeofhighlight_localselected and prs3d_typeofhighlight_selected defined within ais_interactivecontext.

        Returns
        -------
        opencascade::handle<Prs3d_Drawer>

        """
        return _PrsMgr.PrsMgr_PresentableObject_HilightAttributes(self, *args)

    def HilightMode(self, *args) -> "Standard_Integer":
        r"""
        Returns highlight display mode. this is obsolete method for backward compatibility - use ::hilightattributes() and ::dynamichilightattributes() instead.

        Returns
        -------
        int

        """
        return _PrsMgr.PrsMgr_PresentableObject_HilightMode(self, *args)

    def InversedTransformation(self, *args) -> "gp_GTrsf const":
        r"""
        Return inversed transformation.

        Returns
        -------
        gp_GTrsf

        """
        return _PrsMgr.PrsMgr_PresentableObject_InversedTransformation(self, *args)

    def IsInfinite(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the interactive object is infinite; false by default. this flag affects various operations operating on bounding box of graphic presentations of this object. for instance, infinite objects are not taken in account for view fitall. this does not necessarily means that object is actually infinite, auxiliary objects might be also marked with this flag to achieve desired behavior.

        Returns
        -------
        bool

        """
        return _PrsMgr.PrsMgr_PresentableObject_IsInfinite(self, *args)

    def IsMutable(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if object has mutable nature (content or location are be changed regularly). mutable object will be managed in different way than static onces (another optimizations).

        Returns
        -------
        bool

        """
        return _PrsMgr.PrsMgr_PresentableObject_IsMutable(self, *args)

    def IsTransparent(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if there is a transparency setting.

        Returns
        -------
        bool

        """
        return _PrsMgr.PrsMgr_PresentableObject_IsTransparent(self, *args)

    def LocalTransformation(self, *args) -> "gp_Trsf const":
        r"""
        Return the local transformation. note that the local transformation of the object having transformation persistence is applied within local coordinate system defined by this persistence.

        Returns
        -------
        gp_Trsf

        """
        return _PrsMgr.PrsMgr_PresentableObject_LocalTransformation(self, *args)

    def LocalTransformationGeom(self, *args) -> "opencascade::handle< TopLoc_Datum3D > const &":
        r"""
        Return the local transformation. note that the local transformation of the object having transformation persistence is applied within local coordinate system defined by this persistence.

        Returns
        -------
        opencascade::handle<TopLoc_Datum3D>

        """
        return _PrsMgr.PrsMgr_PresentableObject_LocalTransformationGeom(self, *args)

    def Material(self, *args) -> "Graphic3d_NameOfMaterial":
        r"""
        Returns the current material setting as enumeration value.

        Returns
        -------
        Graphic3d_NameOfMaterial

        """
        return _PrsMgr.PrsMgr_PresentableObject_Material(self, *args)

    def Parent(self, *args) -> "PrsMgr_PresentableObject *":
        r"""
        Returns parent of current object in scene hierarchy.

        Returns
        -------
        PrsMgr_PresentableObject *

        """
        return _PrsMgr.PrsMgr_PresentableObject_Parent(self, *args)

    def PolygonOffsets(self, *args) -> "void":
        r"""
        Retrieves current polygon offsets settings from <mydrawer>.

        Parameters
        ----------
        aFactor: Standard_ShortReal
        aUnits: Standard_ShortReal

        Returns
        -------
        aMode: int

        """
        return _PrsMgr.PrsMgr_PresentableObject_PolygonOffsets(self, *args)

    def Presentations(self, *args) -> "PrsMgr_Presentations &":
        r"""
        Return presentations.

        Returns
        -------
        PrsMgr_Presentations

        """
        return _PrsMgr.PrsMgr_PresentableObject_Presentations(self, *args)

    def RemoveChild(self, *args) -> "void":
        r"""
        Removes theobject from children of current object in scene hierarchy.

        Parameters
        ----------
        theObject: PrsMgr_PresentableObject

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_RemoveChild(self, *args)

    def RemoveChildWithRestoreTransformation(self, *args) -> "void":
        r"""
        Removes theobject from children of current object in scene hierarchy with keeping the current global transformation. so the object keeps the same position/orientation in the global cs.

        Parameters
        ----------
        theObject: PrsMgr_PresentableObject

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_RemoveChildWithRestoreTransformation(self, *args)

    def RemoveClipPlane(self, *args) -> "void":
        r"""
        Removes previously added clip plane. @param theplane [in] the clip plane to be removed from map of clip planes.

        Parameters
        ----------
        thePlane: Graphic3d_ClipPlane

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_RemoveClipPlane(self, *args)

    def ResetTransformation(self, *args) -> "void":
        r"""
        Resets local transformation to identity.

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_ResetTransformation(self, *args)

    def SetAttributes(self, *args) -> "void":
        r"""
        Initializes the drawing tool thedrawer.

        Parameters
        ----------
        theDrawer: Prs3d_Drawer

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetAttributes(self, *args)

    def SetClipPlanes(self, *args) -> "void":
        r"""
        Set clip planes for graphical clipping for all display mode presentations. the composition of clip planes truncates the rendering space to convex volume. please be aware that number of supported clip plane is limited. the planes which exceed the limit are ignored. besides of this, some planes can be already set in view where the object is shown: the number of these planes should be subtracted from limit to predict the maximum possible number of object clipping planes.

        Parameters
        ----------
        thePlanes: Graphic3d_SequenceOfHClipPlane

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

        Parameters
        ----------
        thePlanes: Graphic3d_SequenceOfHClipPlane

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetClipPlanes(self, *args)

    def SetColor(self, *args) -> "void":
        r"""
        Only the interactive object knowns which drawer attribute is affected by the color, if any (ex: for a wire,it's the wireaspect field of the drawer, but for a vertex, only the point aspect field is affected by the color). warning : do not forget to set the corresponding fields here (hasowncolor and mydrawer->setcolor()).

        Parameters
        ----------
        theColor: Quantity_Color

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetColor(self, *args)

    def SetCurrentFacingModel(self, *args) -> "void":
        r"""
        Change the current facing model apply on polygons for setcolor(), settransparency(), setmaterial() methods default facing model is aspect_tofm_two_side. this mean that attributes is applying both on the front and back face.

        Parameters
        ----------
        theModel: Aspect_TypeOfFacingModel,optional
        	default value is Aspect_TOFM_BOTH_SIDE

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetCurrentFacingModel(self, *args)

    def SetDisplayMode(self, *args) -> "void":
        r"""
        Sets the display mode for the interactive object. an object can have its own temporary display mode, which is different from that proposed by the interactive context. @sa acceptdisplaymode().

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

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetDisplayMode(self, *args)

    def SetDynamicHilightAttributes(self, *args) -> "void":
        r"""
        Initializes the dynamic hilight drawing tool.

        Parameters
        ----------
        theDrawer: Prs3d_Drawer

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetDynamicHilightAttributes(self, *args)

    def SetHilightAttributes(self, *args) -> "void":
        r"""
        Initializes the hilight drawing tool thedrawer.

        Parameters
        ----------
        theDrawer: Prs3d_Drawer

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetHilightAttributes(self, *args)

    def SetHilightMode(self, *args) -> "void":
        r"""
        Sets highlight display mode. this is obsolete method for backward compatibility - use ::hilightattributes() and ::dynamichilightattributes() instead.

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

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetHilightMode(self, *args)

    def SetInfiniteState(self, *args) -> "void":
        r"""
        Sets if object should be considered as infinite.

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

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetInfiniteState(self, *args)

    def SetIsoOnTriangulation(self, *args) -> "void":
        r"""
        Enables or disables on-triangulation build of isolines according to the flag given.

        Parameters
        ----------
        theIsEnabled: bool

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetIsoOnTriangulation(self, *args)

    def SetLocalTransformation(self, *args) -> "void":
        r"""
        Sets local transformation to thetransformation. note that the local transformation of the object having transformation persistence is applied within local coordinate system defined by this persistence.

        Parameters
        ----------
        theTrsf: gp_Trsf

        Returns
        -------
        None
        Sets local transformation to thetransformation. note that the local transformation of the object having transformation persistence is applied within local coordinate system defined by this persistence.

        Parameters
        ----------
        theTrsf: TopLoc_Datum3D

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetLocalTransformation(self, *args)

    def SetMaterial(self, *args) -> "void":
        r"""
        Sets the material amat defining this display attribute for the interactive object. material aspect determines shading aspect, color and transparency of visible entities.

        Parameters
        ----------
        aName: Graphic3d_MaterialAspect

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetMaterial(self, *args)

    def SetMutable(self, *args) -> "void":
        r"""
        Sets if the object has mutable nature (content or location will be changed regularly). this method should be called before object displaying to take effect.

        Parameters
        ----------
        theIsMutable: bool

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetMutable(self, *args)

    def SetPolygonOffsets(self, *args) -> "void":
        r"""
        Sets up polygon offsets for this object. @sa graphic3d_aspects::setpolygonoffsets().

        Parameters
        ----------
        aMode: int
        aFactor: Standard_ShortReal,optional
        	default value is 1.0
        aUnits: Standard_ShortReal,optional
        	default value is 0.0

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetPolygonOffsets(self, *args)

    def SetPropagateVisualState(self, *args) -> "void":
        r"""
        Change the value of the flag 'propagate visual state'.

        Parameters
        ----------
        theFlag: bool

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetPropagateVisualState(self, *args)

    def SetToUpdate(self, *args) -> "void":
        r"""
        Flags presentation to be updated; updatepresentations() will recompute these presentations. @param themode presentation (display mode) to invalidate, or -1 to invalidate them all.

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

        Returns
        -------
        None
        Flags all the presentations to be updated.

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetToUpdate(self, *args)

    def SetTransformPersistence(self, *args) -> "void":
        r"""
        Sets up transform persistence defining a special local coordinate system where this object should be located. note that management of transform persistence object is more expensive than of the normal one, because it requires its position being recomputed basing on camera position within each draw call / traverse. @sa graphic3d_transformpers class description.

        Parameters
        ----------
        theTrsfPers: Graphic3d_TransformPers

        Returns
        -------
        None
        Sets up transform persistence mode for this object. this function used to lock in object position, rotation and / or zooming relative to camera position. object will be drawn in the origin setted by thepoint parameter (except graphic3d_tmf_triedronpers flag - see description later). themode should be: - graphic3d_tmf_none - no persistence attributes (reset); - graphic3d_tmf_zoompers - object doesn't resize; - graphic3d_tmf_rotatepers - object doesn't rotate; - graphic3d_tmf_zoomrotatepers - object doesn't resize and rotate; - graphic3d_tmf_rotatepers - object doesn't rotate; - graphic3d_tmf_triedronpers - object behaves like trihedron. if graphic3d_tmf_triedronpers or graphic3d_tmf_2d persistence mode selected thepoint coordinates x and y means: - x = 0.0, y = 0.0 - center of view window; - x > 0.0, y > 0.0 - right upper corner of view window; - x > 0.0, y < 0.0 - right lower corner of view window; - x < 0.0, y > 0.0 - left upper corner of view window; - x < 0.0, y < 0.0 - left lower corner of view window. and z coordinate defines the gap from border of view window (except center position).

        Parameters
        ----------
        theMode: Graphic3d_TransModeFlags
        thePoint: gp_Pnt,optional
        	default value is gp_Pnt(0.0,0.0,0.0)

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetTransformPersistence(self, *args)

    def SetTransparency(self, *args) -> "void":
        r"""
        Attributes a setting avalue for transparency. the transparency value should be between 0.0 and 1.0. at 0.0 an object will be totally opaque, and at 1.0, fully transparent. warning at a value of 1.0, there may be nothing visible.

        Parameters
        ----------
        aValue: float,optional
        	default value is 0.6

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetTransparency(self, *args)

    def SetTypeOfPresentation(self, *args) -> "void":
        r"""
        Set type of presentation.

        Parameters
        ----------
        theType: PrsMgr_TypeOfPresentation3d

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetTypeOfPresentation(self, *args)

    def SetWidth(self, *args) -> "void":
        r"""
        Allows you to provide the setting avalue for width. only the interactive object knows which drawer attribute is affected by the width setting.

        Parameters
        ----------
        theWidth: float

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetWidth(self, *args)

    def SetZLayer(self, *args) -> "void":
        r"""
        Set z layer id and update all presentations of the presentable object. the layers mechanism allows drawing objects in higher layers in overlay of objects in lower layers.

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

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SetZLayer(self, *args)

    def SynchronizeAspects(self, *args) -> "void":
        r"""
        Synchronize presentation aspects after their modification. //! this method should be called after modifying primitive aspect properties (material, texture, shader) so that modifications will take effect on already computed presentation groups (thus avoiding re-displaying the object).

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_SynchronizeAspects(self, *args)

    def ToBeUpdated(self, *args) -> "void":
        r"""
        Returns true if any active presentation has invalidation flag. @param thetoincludehidden when true, also checks hidden presentations.

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

        Returns
        -------
        bool
        Gives the list of modes which are flagged 'to be updated'.

        Parameters
        ----------
        ListOfMode: TColStd_ListOfInteger

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_ToBeUpdated(self, *args)

    def ToPropagateVisualState(self, *args) -> "Standard_Boolean":
        r"""
        Get value of the flag 'propagate visual state' it means that the display/erase/color visual state is propagated automatically to all children; by default, the flag is true .

        Returns
        -------
        bool

        """
        return _PrsMgr.PrsMgr_PresentableObject_ToPropagateVisualState(self, *args)

    def TransformPersistence(self, *args) -> "opencascade::handle< Graphic3d_TransformPers > const &":
        r"""
        Returns transformation persistence defining a special local coordinate system where this presentable object is located or null handle if not defined. position of the object having transformation persistence is mutable and depends on camera position. the same applies to a bounding box of the object. @sa graphic3d_transformpers class description.

        Returns
        -------
        opencascade::handle<Graphic3d_TransformPers>

        """
        return _PrsMgr.PrsMgr_PresentableObject_TransformPersistence(self, *args)

    def Transformation(self, *args) -> "gp_Trsf const":
        r"""
        Return the transformation taking into account transformation of parent object(s). note that the local transformation of the object having transformation persistence is applied within local coordinate system defined by this persistence.

        Returns
        -------
        gp_Trsf

        """
        return _PrsMgr.PrsMgr_PresentableObject_Transformation(self, *args)

    def TransformationGeom(self, *args) -> "opencascade::handle< TopLoc_Datum3D > const &":
        r"""
        Return the transformation taking into account transformation of parent object(s). note that the local transformation of the object having transformation persistence is applied within local coordinate system defined by this persistence.

        Returns
        -------
        opencascade::handle<TopLoc_Datum3D>

        """
        return _PrsMgr.PrsMgr_PresentableObject_TransformationGeom(self, *args)

    def Transparency(self, *args) -> "Standard_Real":
        r"""
        Returns the transparency setting. this will be between 0.0 and 1.0. at 0.0 an object will be totally opaque, and at 1.0, fully transparent.

        Returns
        -------
        float

        """
        return _PrsMgr.PrsMgr_PresentableObject_Transparency(self, *args)

    def TypeOfPresentation3d(self, *args) -> "PrsMgr_TypeOfPresentation3d":
        r"""
        Returns information on whether the object accepts display in hlr mode or not.

        Returns
        -------
        PrsMgr_TypeOfPresentation3d

        """
        return _PrsMgr.PrsMgr_PresentableObject_TypeOfPresentation3d(self, *args)

    def UnsetAttributes(self, *args) -> "void":
        r"""
        Clears settings provided by the drawing tool adrawer.

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_UnsetAttributes(self, *args)

    def UnsetColor(self, *args) -> "void":
        r"""
        Removes color settings. only the interactive object knows which drawer attribute is affected by the color setting. for a wire, for example, wire aspect is the attribute affected. for a vertex, however, only point aspect is affected by the color setting.

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_UnsetColor(self, *args)

    def UnsetDisplayMode(self, *args) -> "void":
        r"""
        Removes display mode settings from the interactive object.

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_UnsetDisplayMode(self, *args)

    def UnsetHilightAttributes(self, *args) -> "void":
        r"""
        Clears settings provided by the hilight drawing tool thedrawer.

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_UnsetHilightAttributes(self, *args)

    def UnsetHilightMode(self, *args) -> "void":
        r"""
        Unsets highlight display mode.

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_UnsetHilightMode(self, *args)

    def UnsetMaterial(self, *args) -> "void":
        r"""
        Removes the setting for material.

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_UnsetMaterial(self, *args)

    def UnsetTransparency(self, *args) -> "void":
        r"""
        Removes the transparency setting. the object is opaque by default.

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_UnsetTransparency(self, *args)

    def UnsetWidth(self, *args) -> "void":
        r"""
        Reset width to default value.

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_UnsetWidth(self, *args)

    def UpdateTransformation(self, *args) -> "void":
        r"""
        Updates final transformation (parent + local) of presentable object and its presentations.

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentableObject_UpdateTransformation(self, *args)

    def Width(self, *args) -> "Standard_Real":
        r"""
        Returns the width setting of the interactive object.

        Returns
        -------
        float

        """
        return _PrsMgr.PrsMgr_PresentableObject_Width(self, *args)

    def ZLayer(self, *args) -> "Graphic3d_ZLayerId":
        r"""
        Get id of z layer for main presentation.

        Returns
        -------
        Graphic3d_ZLayerId

        """
        return _PrsMgr.PrsMgr_PresentableObject_ZLayer(self, *args)


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


    __repr__ = _dumps_object


# Register PrsMgr_PresentableObject in _PrsMgr:
_PrsMgr.PrsMgr_PresentableObject_swigregister(PrsMgr_PresentableObject)

class PrsMgr_Presentation(OCC.Core.Graphic3d.Graphic3d_Structure):
    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 DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(PrsMgr_Presentation self, int depth=-1) -> std::string"""
        return _PrsMgr.PrsMgr_Presentation_DumpJsonToString(self, depth)

    def Highlight(self, *args) -> "void":
        r"""
        Highlight structure.

        Parameters
        ----------
        theStyle: Prs3d_Drawer

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_Presentation_Highlight(self, *args)

    def Mode(self, *args) -> "Standard_Integer":
        r"""
        Return display mode index.

        Returns
        -------
        int

        """
        return _PrsMgr.PrsMgr_Presentation_Mode(self, *args)

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

        Returns
        -------
        bool

        """
        return _PrsMgr.PrsMgr_Presentation_MustBeUpdated(self, *args)

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

        Returns
        -------
        Prs3d_Presentation *

        """
        return _PrsMgr.PrsMgr_Presentation_Presentation(self, *args)

    def PresentationManager(self, *args) -> "opencascade::handle< PrsMgr_PresentationManager > const &":
        r"""
        Returns the presentationmanager in which the presentation has been created.

        Returns
        -------
        opencascade::handle<PrsMgr_PresentationManager>

        """
        return _PrsMgr.PrsMgr_Presentation_PresentationManager(self, *args)

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

        Parameters
        ----------
        theUpdateStatus: bool

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_Presentation_SetUpdateStatus(self, *args)

    def Unhighlight(self, *args) -> "void":
        r"""
        Unhighlight structure.

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_Presentation_Unhighlight(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsMgr.delete_PrsMgr_Presentation

# Register PrsMgr_Presentation in _PrsMgr:
_PrsMgr.PrsMgr_Presentation_swigregister(PrsMgr_Presentation)

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

    def __init__(self, *args):
        r"""
        Creates a framework to manage displays and graphic entities with the 3d view thestructuremanager.

        Parameters
        ----------
        theStructureManager: Graphic3d_StructureManager

        Returns
        -------
        None

        """
        _PrsMgr.PrsMgr_PresentationManager_swiginit(self, _PrsMgr.new_PrsMgr_PresentationManager(*args))

    def AddToImmediateList(self, *args) -> "void":
        r"""
        Stores theprs in the transient list of presentations to be displayed in immediate mode. will be taken in account in endimmediatedraw method.

        Parameters
        ----------
        thePrs: Prs3d_Presentation

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentationManager_AddToImmediateList(self, *args)

    def BeginImmediateDraw(self, *args) -> "void":
        r"""
        Resets the transient list of presentations previously displayed in immediate mode and begins accumulation of new list by following addtoimmediatelist()/color()/highlight() calls.

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentationManager_BeginImmediateDraw(self, *args)

    def Clear(self, *args) -> "void":
        r"""
        Clears the presentation of the presentable object theprsobject in this framework with the display mode themode.

        Parameters
        ----------
        thePrsObject: PrsMgr_PresentableObject
        theMode: int,optional
        	default value is 0

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentationManager_Clear(self, *args)

    def ClearImmediateDraw(self, *args) -> "void":
        r"""
        Resets the transient list of presentations previously displayed in immediate mode.

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentationManager_ClearImmediateDraw(self, *args)

    def Color(self, *args) -> "void":
        r"""
        Highlights the graphic object theprsobject in the color thecolor. theprsobject has the display mode themode; this has the default value of 0, that is, the wireframe display mode.

        Parameters
        ----------
        thePrsObject: PrsMgr_PresentableObject
        theStyle: Prs3d_Drawer
        theMode: int,optional
        	default value is 0
        theSelObj: PrsMgr_PresentableObject,optional
        	default value is NULL
        theImmediateStructLayerId: int,optional
        	default value is Graphic3d_ZLayerId_Topmost

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentationManager_Color(self, *args)

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

        Parameters
        ----------
        thePrsObject: PrsMgr_PresentableObject
        theOtherObject: PrsMgr_PresentableObject
        theMode: int,optional
        	default value is 0
        theOtherMode: int,optional
        	default value is 0

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentationManager_Connect(self, *args)

    def Display(self, *args) -> "void":
        r"""
        Displays the presentation of the object in the given presentation manager with the given mode. the mode should be enumerated by the object which inherits presentableobject.

        Parameters
        ----------
        thePrsObject: PrsMgr_PresentableObject
        theMode: int,optional
        	default value is 0

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentationManager_Display(self, *args)

    def DisplayPriority(self, *args) -> "Standard_Integer":
        r"""
        Returns the display priority of the presentable object theprsobject in this framework with the display mode themode.

        Parameters
        ----------
        thePrsObject: PrsMgr_PresentableObject
        theMode: int

        Returns
        -------
        int

        """
        return _PrsMgr.PrsMgr_PresentationManager_DisplayPriority(self, *args)

    def EndImmediateDraw(self, *args) -> "void":
        r"""
        Allows rapid drawing of the each view in theviewer by avoiding an update of the whole background.

        Parameters
        ----------
        theViewer: V3d_Viewer

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentationManager_EndImmediateDraw(self, *args)

    def Erase(self, *args) -> "void":
        r"""
        Erases the presentation of the object in the given presentation manager with the given mode. if @themode is -1, then erases all presentations of the object.

        Parameters
        ----------
        thePrsObject: PrsMgr_PresentableObject
        theMode: int,optional
        	default value is 0

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentationManager_Erase(self, *args)

    def GetZLayer(self, *args) -> "Graphic3d_ZLayerId":
        r"""
        Get z layer id assigned to all presentations of the object. method returns -1 value if object has no presentations and is impossible to get layer index.

        Parameters
        ----------
        thePrsObject: PrsMgr_PresentableObject

        Returns
        -------
        Graphic3d_ZLayerId

        """
        return _PrsMgr.PrsMgr_PresentationManager_GetZLayer(self, *args)

    def HasPresentation(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if there is a presentation of the presentable object theprsobject in this framework, theprsobject having the display mode themode.

        Parameters
        ----------
        thePrsObject: PrsMgr_PresentableObject
        theMode: int,optional
        	default value is 0

        Returns
        -------
        bool

        """
        return _PrsMgr.PrsMgr_PresentationManager_HasPresentation(self, *args)

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

        Parameters
        ----------
        thePrsObject: PrsMgr_PresentableObject
        theMode: int,optional
        	default value is 0

        Returns
        -------
        bool

        """
        return _PrsMgr.PrsMgr_PresentationManager_IsDisplayed(self, *args)

    def IsHighlighted(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the presentation of the presentable object theprsobject in this framework with the display mode themode is highlighted.

        Parameters
        ----------
        thePrsObject: PrsMgr_PresentableObject
        theMode: int,optional
        	default value is 0

        Returns
        -------
        bool

        """
        return _PrsMgr.PrsMgr_PresentationManager_IsHighlighted(self, *args)

    def IsImmediateModeOn(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if presentation manager is accumulating transient list of presentations to be displayed in immediate mode.

        Returns
        -------
        bool

        """
        return _PrsMgr.PrsMgr_PresentationManager_IsImmediateModeOn(self, *args)

    def Presentation(self, *args) -> "opencascade::handle< PrsMgr_Presentation >":
        r"""
        Returns the presentation presentation of the presentable object theprsobject in this framework. when thetocreate is true - automatically creates presentation for specified mode when not exist. optional argument theselobj specifies parent decomposed object to inherit its view affinity.

        Parameters
        ----------
        thePrsObject: PrsMgr_PresentableObject
        theMode: int,optional
        	default value is 0
        theToCreate: bool,optional
        	default value is Standard_False
        theSelObj: PrsMgr_PresentableObject,optional
        	default value is NULL

        Returns
        -------
        opencascade::handle<PrsMgr_Presentation>

        """
        return _PrsMgr.PrsMgr_PresentationManager_Presentation(self, *args)

    def RedrawImmediate(self, *args) -> "void":
        r"""
        Clears and redisplays immediate structures of the viewer taking into account its affinity.

        Parameters
        ----------
        theViewer: V3d_Viewer

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentationManager_RedrawImmediate(self, *args)

    def SetDisplayPriority(self, *args) -> "void":
        r"""
        Sets the display priority thenewprior of the presentable object theprsobject in this framework with the display mode themode.

        Parameters
        ----------
        thePrsObject: PrsMgr_PresentableObject
        theMode: int
        theNewPrior: int

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentationManager_SetDisplayPriority(self, *args)

    def SetVisibility(self, *args) -> "void":
        r"""
        Sets the visibility of presentable object.

        Parameters
        ----------
        thePrsObject: PrsMgr_PresentableObject
        theMode: int
        theValue: bool

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentationManager_SetVisibility(self, *args)

    def SetZLayer(self, *args) -> "void":
        r"""
        Set z layer id for all presentations of the object.

        Parameters
        ----------
        thePrsObject: PrsMgr_PresentableObject
        theLayerId: int

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentationManager_SetZLayer(self, *args)

    def StructureManager(self, *args) -> "opencascade::handle< Graphic3d_StructureManager > const &":
        r"""
        Returns the structure manager.

        Returns
        -------
        opencascade::handle<Graphic3d_StructureManager>

        """
        return _PrsMgr.PrsMgr_PresentationManager_StructureManager(self, *args)

    def Transform(self, *args) -> "void":
        r"""
        Sets the transformation thetransformation for the presentable object theprsobject. theprsobject has the display mode themode; this has the default value of 0, that is, the wireframe display mode.

        Parameters
        ----------
        thePrsObject: PrsMgr_PresentableObject
        theTransformation: TopLoc_Datum3D
        theMode: int,optional
        	default value is 0

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentationManager_Transform(self, *args)

    def Unhighlight(self, *args) -> "void":
        r"""
        Removes highlighting from the presentation of the presentable object.

        Parameters
        ----------
        thePrsObject: PrsMgr_PresentableObject

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

        Parameters
        ----------
        thePrsObject: PrsMgr_PresentableObject
        theMode: int

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentationManager_Unhighlight(self, *args)

    def Update(self, *args) -> "void":
        r"""
        Updates the presentation of the presentable object theprsobject in this framework with the display mode themode.

        Parameters
        ----------
        thePrsObject: PrsMgr_PresentableObject
        theMode: int,optional
        	default value is 0

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentationManager_Update(self, *args)

    def UpdateHighlightTrsf(self, *args) -> "void":
        r"""
        Allows to apply location transformation to shadow highlight presentation immediately. @param theobj defines the base object, it local transformation will be applied to corresponding highlight structure @param themode defines display mode of the base object @param theselobj defines the object produced after decomposition of the base object for local selection.

        Parameters
        ----------
        theViewer: V3d_Viewer
        theObj: PrsMgr_PresentableObject
        theMode: int,optional
        	default value is 0
        theSelObj: PrsMgr_PresentableObject,optional
        	default value is NULL

        Returns
        -------
        None

        """
        return _PrsMgr.PrsMgr_PresentationManager_UpdateHighlightTrsf(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsMgr.delete_PrsMgr_PresentationManager

# Register PrsMgr_PresentationManager in _PrsMgr:
_PrsMgr.PrsMgr_PresentationManager_swigregister(PrsMgr_PresentationManager)


Prs3d_Presentation=OCC.Core.Graphic3d.Graphic3d_Structure
PrsMgr_Presentation3d=PrsMgr_Presentation
PrsMgr_PresentationManager3d=PrsMgr_PresentationManager



