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

"""
XCAFPrs module, see official documentation at
https://www.opencascade.com/doc/occt-7.7.0/refman/html/package_xcafprs.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 _XCAFPrs
else:
    import _XCAFPrs

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__ = _XCAFPrs.delete_SwigPyIterator

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    def __sub__(self, *args):
        return _XCAFPrs.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

# Register SwigPyIterator in _XCAFPrs:
_XCAFPrs.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 _XCAFPrs.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.TDF
import OCC.Core.TCollection
import OCC.Core.TColStd
import OCC.Core.TopLoc
import OCC.Core.gp
import OCC.Core.Quantity
import OCC.Core.AIS
import OCC.Core.SelectMgr
import OCC.Core.Graphic3d
import OCC.Core.BVH
import OCC.Core.Aspect
import OCC.Core.Image
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
import OCC.Core.TopoDS
import OCC.Core.Message
import OCC.Core.StdSelect
import OCC.Core.TopTools
import OCC.Core.TDocStd
import OCC.Core.CDF
import OCC.Core.CDM
import OCC.Core.Resource
import OCC.Core.PCDM
import OCC.Core.Storage
import OCC.Core.XCAFDoc
import OCC.Core.TDataStd
import OCC.Core.XCAFDimTolObjects
import OCC.Core.UnitsMethods
import OCC.Core.XCAFNoteObjects
import OCC.Core.XCAFView
import OCC.Core.TPrsStd
import OCC.Core.TDataXtd
import OCC.Core.TNaming

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

XCAFPrs_DocumentExplorerFlags_None = _XCAFPrs.XCAFPrs_DocumentExplorerFlags_None
XCAFPrs_DocumentExplorerFlags_OnlyLeafNodes = _XCAFPrs.XCAFPrs_DocumentExplorerFlags_OnlyLeafNodes
XCAFPrs_DocumentExplorerFlags_NoStyle = _XCAFPrs.XCAFPrs_DocumentExplorerFlags_NoStyle



def Handle_XCAFPrs_AISObject_Create():
    return _XCAFPrs.Handle_XCAFPrs_AISObject_Create()

def Handle_XCAFPrs_AISObject_DownCast(t):
    return _XCAFPrs.Handle_XCAFPrs_AISObject_DownCast(t)

def Handle_XCAFPrs_AISObject_IsNull(t):
    return _XCAFPrs.Handle_XCAFPrs_AISObject_IsNull(t)

def Handle_XCAFPrs_Driver_Create():
    return _XCAFPrs.Handle_XCAFPrs_Driver_Create()

def Handle_XCAFPrs_Driver_DownCast(t):
    return _XCAFPrs.Handle_XCAFPrs_Driver_DownCast(t)

def Handle_XCAFPrs_Driver_IsNull(t):
    return _XCAFPrs.Handle_XCAFPrs_Driver_IsNull(t)

def Handle_XCAFPrs_Texture_Create():
    return _XCAFPrs.Handle_XCAFPrs_Texture_Create()

def Handle_XCAFPrs_Texture_DownCast(t):
    return _XCAFPrs.Handle_XCAFPrs_Texture_DownCast(t)

def Handle_XCAFPrs_Texture_IsNull(t):
    return _XCAFPrs.Handle_XCAFPrs_Texture_IsNull(t)
class XCAFPrs_DataMapOfStyleShape(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 _XCAFPrs.XCAFPrs_DataMapOfStyleShape_begin(self)

    def end(self):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleShape_end(self)

    def cbegin(self):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleShape_cbegin(self)

    def cend(self):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleShape_cend(self)

    def __init__(self, *args):
        _XCAFPrs.XCAFPrs_DataMapOfStyleShape_swiginit(self, _XCAFPrs.new_XCAFPrs_DataMapOfStyleShape(*args))

    def Exchange(self, theOther):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleShape_Exchange(self, theOther)

    def Assign(self, theOther):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleShape_Assign(self, theOther)

    def Set(self, theOther):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleShape_Set(self, theOther)

    def ReSize(self, N):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleShape_ReSize(self, N)

    def Bind(self, theKey, theItem):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleShape_Bind(self, theKey, theItem)

    def Bound(self, theKey, theItem):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleShape_Bound(self, theKey, theItem)

    def IsBound(self, theKey):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleShape_IsBound(self, theKey)

    def UnBind(self, theKey):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleShape_UnBind(self, theKey)

    def Seek(self, theKey):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleShape_Seek(self, theKey)

    def Find(self, *args):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleShape_Find(self, *args)

    def ChangeSeek(self, theKey):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleShape_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleShape_ChangeFind(self, theKey)

    def __call__(self, *args):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleShape___call__(self, *args)

    def Clear(self, *args):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleShape_Clear(self, *args)
    __swig_destroy__ = _XCAFPrs.delete_XCAFPrs_DataMapOfStyleShape

    def Size(self):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleShape_Size(self)

# Register XCAFPrs_DataMapOfStyleShape in _XCAFPrs:
_XCAFPrs.XCAFPrs_DataMapOfStyleShape_swigregister(XCAFPrs_DataMapOfStyleShape)
class XCAFPrs_DataMapOfStyleTransient(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 _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_begin(self)

    def end(self):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_end(self)

    def cbegin(self):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_cbegin(self)

    def cend(self):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_cend(self)

    def __init__(self, *args):
        _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_swiginit(self, _XCAFPrs.new_XCAFPrs_DataMapOfStyleTransient(*args))

    def Exchange(self, theOther):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_Exchange(self, theOther)

    def Assign(self, theOther):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_Assign(self, theOther)

    def Set(self, theOther):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_Set(self, theOther)

    def ReSize(self, N):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_ReSize(self, N)

    def Bind(self, theKey, theItem):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_Bind(self, theKey, theItem)

    def Bound(self, theKey, theItem):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_Bound(self, theKey, theItem)

    def IsBound(self, theKey):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_IsBound(self, theKey)

    def UnBind(self, theKey):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_UnBind(self, theKey)

    def Seek(self, theKey):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_Seek(self, theKey)

    def Find(self, *args):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_Find(self, *args)

    def ChangeSeek(self, theKey):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_ChangeFind(self, theKey)

    def __call__(self, *args):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleTransient___call__(self, *args)

    def Clear(self, *args):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_Clear(self, *args)
    __swig_destroy__ = _XCAFPrs.delete_XCAFPrs_DataMapOfStyleTransient

    def Size(self):
        return _XCAFPrs.XCAFPrs_DataMapOfStyleTransient_Size(self)

# Register XCAFPrs_DataMapOfStyleTransient in _XCAFPrs:
_XCAFPrs.XCAFPrs_DataMapOfStyleTransient_swigregister(XCAFPrs_DataMapOfStyleTransient)
class XCAFPrs_IndexedDataMapOfShapeStyle(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 _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_begin(self)

    def end(self):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_end(self)

    def cbegin(self):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_cbegin(self)

    def cend(self):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_cend(self)

    def __init__(self, *args):
        _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_swiginit(self, _XCAFPrs.new_XCAFPrs_IndexedDataMapOfShapeStyle(*args))

    def Exchange(self, theOther):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_Exchange(self, theOther)

    def Assign(self, theOther):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_Assign(self, theOther)

    def Set(self, theOther):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_Set(self, theOther)

    def ReSize(self, N):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_ReSize(self, N)

    def Add(self, theKey1, theItem):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_Add(self, theKey1, theItem)

    def Contains(self, theKey1):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_Contains(self, theKey1)

    def Substitute(self, theIndex, theKey1, theItem):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_Substitute(self, theIndex, theKey1, theItem)

    def Swap(self, theIndex1, theIndex2):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_Swap(self, theIndex1, theIndex2)

    def RemoveLast(self):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_RemoveLast(self)

    def RemoveFromIndex(self, theIndex):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_RemoveFromIndex(self, theIndex)

    def RemoveKey(self, theKey1):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_RemoveKey(self, theKey1)

    def FindKey(self, theIndex):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_FindKey(self, theIndex)

    def FindFromIndex(self, theIndex):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_FindFromIndex(self, theIndex)

    def ChangeFromIndex(self, theIndex):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_ChangeFromIndex(self, theIndex)

    def __call__(self, *args):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle___call__(self, *args)

    def FindIndex(self, theKey1):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_FindIndex(self, theKey1)

    def ChangeFromKey(self, theKey1):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_ChangeFromKey(self, theKey1)

    def Seek(self, theKey1):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_Seek(self, theKey1)

    def ChangeSeek(self, theKey1):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_ChangeSeek(self, theKey1)

    def FindFromKey(self, *args):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_FindFromKey(self, *args)

    def Clear(self, *args):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_Clear(self, *args)
    __swig_destroy__ = _XCAFPrs.delete_XCAFPrs_IndexedDataMapOfShapeStyle

    def Size(self):
        return _XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_Size(self)

# Register XCAFPrs_IndexedDataMapOfShapeStyle in _XCAFPrs:
_XCAFPrs.XCAFPrs_IndexedDataMapOfShapeStyle_swigregister(XCAFPrs_IndexedDataMapOfShapeStyle)
class xcafprs(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def CollectStyleSettings(*args):
        r"""

        Parameters
        ----------
        L: TDF_Label
        loc: TopLoc_Location
        settings: XCAFPrs_IndexedDataMapOfShapeStyle
        theLayerColor: Quantity_ColorRGBA (optional, default to Quantity_ColorRGBA(Quantity_NOC_WHITE))

        Return
        -------
        None

        Description
        -----------
        Collect styles defined for shape on label l and its components and subshapes and fills a map of shape - style correspondence the location <loc> is for internal use, it should be null location for external call.

        """
        return _XCAFPrs.xcafprs_CollectStyleSettings(*args)

    @staticmethod
    def GetViewNameMode(*args):
        r"""
        Return
        -------
        bool

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

        """
        return _XCAFPrs.xcafprs_GetViewNameMode(*args)

    @staticmethod
    def SetViewNameMode(*args):
        r"""

        Parameters
        ----------
        viewNameMode: bool

        Return
        -------
        None

        Description
        -----------
        Set viewnamemode for indicate display names or not.

        """
        return _XCAFPrs.xcafprs_SetViewNameMode(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _XCAFPrs.xcafprs_swiginit(self, _XCAFPrs.new_xcafprs())
    __swig_destroy__ = _XCAFPrs.delete_xcafprs

# Register xcafprs in _XCAFPrs:
_XCAFPrs.xcafprs_swigregister(xcafprs)
class XCAFPrs_AISObject(OCC.Core.AIS.AIS_ColoredShape):
    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
        ----------
        theLabel: TDF_Label

        Return
        -------
        None

        Description
        -----------
        Creates an object to visualise the shape label.

        """
        _XCAFPrs.XCAFPrs_AISObject_swiginit(self, _XCAFPrs.new_XCAFPrs_AISObject(*args))

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

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

        Return
        -------
        None

        Description
        -----------
        Fetch the shape from associated label and fill the map of sub-shapes styles. by default, this method is called implicitly within first ::compute(). application might call this method explicitly to manipulate styles afterwards. @param thetosyncstyles flag indicating if method ::compute() should call this method again on first compute or re-compute.

        """
        return _XCAFPrs.XCAFPrs_AISObject_DispatchStyles(self, *args)

    def GetLabel(self, *args):
        r"""
        Return
        -------
        TDF_Label

        Description
        -----------
        Returns the label which was visualised by this presentation.

        """
        return _XCAFPrs.XCAFPrs_AISObject_GetLabel(self, *args)

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

        Parameters
        ----------
        theLabel: TDF_Label

        Return
        -------
        None

        Description
        -----------
        Assign the label to this presentation (but does not mark it outdated with settoupdate()).

        """
        return _XCAFPrs.XCAFPrs_AISObject_SetLabel(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _XCAFPrs.delete_XCAFPrs_AISObject

# Register XCAFPrs_AISObject in _XCAFPrs:
_XCAFPrs.XCAFPrs_AISObject_swigregister(XCAFPrs_AISObject)
class XCAFPrs_DocumentExplorer(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
        -----------
        Empty constructor.

        Parameters
        ----------
        theDocument: TDocStd_Document
        theFlags: int
        theDefStyle: XCAFPrs_Style (optional, default to XCAFPrs_Style())

        Return
        -------
        None

        Description
        -----------
        Constructor for exploring the whole document. @param thedocument document to explore @param theflags iteration flags @param thedefstyle default style for nodes with undefined style.

        Parameters
        ----------
        theDocument: TDocStd_Document
        theRoots: TDF_LabelSequence
        theFlags: int
        theDefStyle: XCAFPrs_Style (optional, default to XCAFPrs_Style())

        Return
        -------
        None

        Description
        -----------
        Constructor for exploring specified list of root shapes in the document. @param thedocument document to explore @param theroots root labels to explore within specified document @param theflags iteration flags @param thedefstyle default style for nodes with undefined style.

        """
        _XCAFPrs.XCAFPrs_DocumentExplorer_swiginit(self, _XCAFPrs.new_XCAFPrs_DocumentExplorer(*args))

    def ChangeCurrent(self, *args):
        r"""
        Return
        -------
        XCAFPrs_DocumentNode

        Description
        -----------
        Return current position.

        """
        return _XCAFPrs.XCAFPrs_DocumentExplorer_ChangeCurrent(self, *args)

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

        Description
        -----------
        Return color tool.

        """
        return _XCAFPrs.XCAFPrs_DocumentExplorer_ColorTool(self, *args)

    def Current(self, *args):
        r"""
        Return
        -------
        XCAFPrs_DocumentNode

        Description
        -----------
        Return current position.

        Parameters
        ----------
        theDepth: int

        Return
        -------
        XCAFPrs_DocumentNode

        Description
        -----------
        Return current position within specified assembly depth.

        """
        return _XCAFPrs.XCAFPrs_DocumentExplorer_Current(self, *args)

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

        Description
        -----------
        Return depth of the current node in hierarchy, starting from 0. zero means root label.

        """
        return _XCAFPrs.XCAFPrs_DocumentExplorer_CurrentDepth(self, *args)

    @staticmethod
    def DefineChildId(*args):
        r"""

        Parameters
        ----------
        theLabel: TDF_Label
        theParentId: str

        Return
        -------
        TCollection_AsciiString

        Description
        -----------
        Construct a unique string identifier for the given label. the identifier is a concatenation of label entries (tdf_tool::entry() with tailing '.') of hierarchy from parent to child joined via '/' and looking like this: @code 0:1:1:1./0:1:1:1:9./0:1:1:5:7. @endcode this generation scheme also allows finding originating labels using tdf_tool::label(). the tailing dot simplifies parent equality check. @param thelabel child label to define id @param theparentid parent string identifier defined by this method.

        """
        return _XCAFPrs.XCAFPrs_DocumentExplorer_DefineChildId(*args)

    @staticmethod
    def FindLabelFromPathId(*args):
        r"""

        Parameters
        ----------
        theDocument: TDocStd_Document
        theId: str
        theParentLocation: TopLoc_Location
        theLocation: TopLoc_Location

        Return
        -------
        TDF_Label

        Description
        -----------
        Find a shape entity based on a text identifier constructed from ocaf labels defining full path. @sa definechildid().

        Parameters
        ----------
        theDocument: TDocStd_Document
        theId: str
        theLocation: TopLoc_Location

        Return
        -------
        TDF_Label

        Description
        -----------
        Find a shape entity based on a text identifier constructed from ocaf labels defining full path. @sa definechildid().

        """
        return _XCAFPrs.XCAFPrs_DocumentExplorer_FindLabelFromPathId(*args)

    @staticmethod
    def FindShapeFromPathId(*args):
        r"""

        Parameters
        ----------
        theDocument: TDocStd_Document
        theId: str

        Return
        -------
        TopoDS_Shape

        Description
        -----------
        Find a shape entity based on a text identifier constructed from ocaf labels defining full path. @sa definechildid().

        """
        return _XCAFPrs.XCAFPrs_DocumentExplorer_FindShapeFromPathId(*args)

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

        Parameters
        ----------
        theDocument: TDocStd_Document
        theRoot: TDF_Label
        theFlags: int
        theDefStyle: XCAFPrs_Style (optional, default to XCAFPrs_Style())

        Return
        -------
        None

        Description
        -----------
        Initialize the iterator from a single root shape in the document. @param thedocument document to explore @param theroot single root label to explore within specified document @param theflags iteration flags @param thedefstyle default style for nodes with undefined style.

        Parameters
        ----------
        theDocument: TDocStd_Document
        theRoots: TDF_LabelSequence
        theFlags: int
        theDefStyle: XCAFPrs_Style (optional, default to XCAFPrs_Style())

        Return
        -------
        None

        Description
        -----------
        Initialize the iterator from the list of root shapes in the document. @param thedocument document to explore @param theroots root labels to explore within specified document @param theflags iteration flags @param thedefstyle default style for nodes with undefined style.

        """
        return _XCAFPrs.XCAFPrs_DocumentExplorer_Init(self, *args)

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

        Description
        -----------
        Return true if iterator points to the valid node.

        """
        return _XCAFPrs.XCAFPrs_DocumentExplorer_More(self, *args)

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

        Description
        -----------
        Go to the next node.

        """
        return _XCAFPrs.XCAFPrs_DocumentExplorer_Next(self, *args)

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

        Description
        -----------
        Return material tool.

        """
        return _XCAFPrs.XCAFPrs_DocumentExplorer_VisMaterialTool(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _XCAFPrs.delete_XCAFPrs_DocumentExplorer

# Register XCAFPrs_DocumentExplorer in _XCAFPrs:
_XCAFPrs.XCAFPrs_DocumentExplorer_swigregister(XCAFPrs_DocumentExplorer)
class XCAFPrs_DocumentIdIterator(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        thePath: str

        Return
        -------
        None

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

        """
        _XCAFPrs.XCAFPrs_DocumentIdIterator_swiginit(self, _XCAFPrs.new_XCAFPrs_DocumentIdIterator(*args))

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

        Description
        -----------
        Return true if iterator points to a value.

        """
        return _XCAFPrs.XCAFPrs_DocumentIdIterator_More(self, *args)

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

        Description
        -----------
        Find the next value.

        """
        return _XCAFPrs.XCAFPrs_DocumentIdIterator_Next(self, *args)

    def Value(self, *args):
        r"""
        Return
        -------
        TCollection_AsciiString

        Description
        -----------
        Return current value.

        """
        return _XCAFPrs.XCAFPrs_DocumentIdIterator_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _XCAFPrs.delete_XCAFPrs_DocumentIdIterator

# Register XCAFPrs_DocumentIdIterator in _XCAFPrs:
_XCAFPrs.XCAFPrs_DocumentIdIterator_swigregister(XCAFPrs_DocumentIdIterator)
class XCAFPrs_DocumentNode(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Id = property(_XCAFPrs.XCAFPrs_DocumentNode_Id_get, _XCAFPrs.XCAFPrs_DocumentNode_Id_set)
    Label = property(_XCAFPrs.XCAFPrs_DocumentNode_Label_get, _XCAFPrs.XCAFPrs_DocumentNode_Label_set)
    RefLabel = property(_XCAFPrs.XCAFPrs_DocumentNode_RefLabel_get, _XCAFPrs.XCAFPrs_DocumentNode_RefLabel_set)
    Style = property(_XCAFPrs.XCAFPrs_DocumentNode_Style_get, _XCAFPrs.XCAFPrs_DocumentNode_Style_set)
    Location = property(_XCAFPrs.XCAFPrs_DocumentNode_Location_get, _XCAFPrs.XCAFPrs_DocumentNode_Location_set)
    LocalTrsf = property(_XCAFPrs.XCAFPrs_DocumentNode_LocalTrsf_get, _XCAFPrs.XCAFPrs_DocumentNode_LocalTrsf_set)
    ChildIter = property(_XCAFPrs.XCAFPrs_DocumentNode_ChildIter_get, _XCAFPrs.XCAFPrs_DocumentNode_ChildIter_set)
    IsAssembly = property(_XCAFPrs.XCAFPrs_DocumentNode_IsAssembly_get, _XCAFPrs.XCAFPrs_DocumentNode_IsAssembly_set)

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

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

        """
        _XCAFPrs.XCAFPrs_DocumentNode_swiginit(self, _XCAFPrs.new_XCAFPrs_DocumentNode(*args))

    @staticmethod
    def HashCode(*args):
        r"""

        Parameters
        ----------
        theNode: XCAFPrs_DocumentNode
        theN: int

        Return
        -------
        int

        Description
        -----------
        Return hash code based on node string identifier.

        """
        return _XCAFPrs.XCAFPrs_DocumentNode_HashCode(*args)

    @staticmethod
    def IsEqual(*args):
        r"""

        Parameters
        ----------
        theNode1: XCAFPrs_DocumentNode
        theNode2: XCAFPrs_DocumentNode

        Return
        -------
        bool

        Description
        -----------
        Return true if two document nodes has the same string identifier.

        """
        return _XCAFPrs.XCAFPrs_DocumentNode_IsEqual(*args)

    __repr__ = _dumps_object

    __swig_destroy__ = _XCAFPrs.delete_XCAFPrs_DocumentNode

# Register XCAFPrs_DocumentNode in _XCAFPrs:
_XCAFPrs.XCAFPrs_DocumentNode_swigregister(XCAFPrs_DocumentNode)
class XCAFPrs_Driver(OCC.Core.TPrsStd.TPrsStd_Driver):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def GetID(*args):
        r"""
        Return
        -------
        Standard_GUID

        Description
        -----------
        Returns guid of the driver.

        """
        return _XCAFPrs.XCAFPrs_Driver_GetID(*args)


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


    __repr__ = _dumps_object


    def __init__(self):
        _XCAFPrs.XCAFPrs_Driver_swiginit(self, _XCAFPrs.new_XCAFPrs_Driver())
    __swig_destroy__ = _XCAFPrs.delete_XCAFPrs_Driver

# Register XCAFPrs_Driver in _XCAFPrs:
_XCAFPrs.XCAFPrs_Driver_swigregister(XCAFPrs_Driver)
class XCAFPrs_Style(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
        -----------
        Empty constructor - colors are unset, visibility is true.

        """
        _XCAFPrs.XCAFPrs_Style_swiginit(self, _XCAFPrs.new_XCAFPrs_Style(*args))

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

        Description
        -----------
        Return base color texture.

        """
        return _XCAFPrs.XCAFPrs_Style_BaseColorTexture(self, *args)

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

    def GetColorCurv(self, *args):
        r"""
        Return
        -------
        Quantity_Color

        Description
        -----------
        Return curve color.

        """
        return _XCAFPrs.XCAFPrs_Style_GetColorCurv(self, *args)

    def GetColorSurf(self, *args):
        r"""
        Return
        -------
        Quantity_Color

        Description
        -----------
        Return surface color.

        """
        return _XCAFPrs.XCAFPrs_Style_GetColorSurf(self, *args)

    def GetColorSurfRGBA(self, *args):
        r"""
        Return
        -------
        Quantity_ColorRGBA

        Description
        -----------
        Return surface color.

        """
        return _XCAFPrs.XCAFPrs_Style_GetColorSurfRGBA(self, *args)

    @staticmethod
    def HashCode(*args):
        r"""

        Parameters
        ----------
        theStyle: XCAFPrs_Style
        theUpperBound: int

        Return
        -------
        int

        Description
        -----------
        Computes a hash code for the given set of styling settings, in the range [1, theupperbound] @param thestyle the set of styling settings which hash code is to be computed @param theupperbound the upper bound of the range a computing hash code must be within return a computed hash code, in the range [1, theupperbound].

        """
        return _XCAFPrs.XCAFPrs_Style_HashCode(*args)

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

        Description
        -----------
        Return true if style is empty - does not override any properties.

        """
        return _XCAFPrs.XCAFPrs_Style_IsEmpty(self, *args)

    @staticmethod
    def IsEqual(*args):
        r"""

        Parameters
        ----------
        theOther: XCAFPrs_Style

        Return
        -------
        bool

        Description
        -----------
        Returns true if styles are the same methods for using style as key in maps.

        Parameters
        ----------
        theS1: XCAFPrs_Style
        theS2: XCAFPrs_Style

        Return
        -------
        bool

        Description
        -----------
        Returns true when the two keys are the same.

        """
        return _XCAFPrs.XCAFPrs_Style_IsEqual(*args)

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

        Description
        -----------
        Return true if curve color has been defined.

        """
        return _XCAFPrs.XCAFPrs_Style_IsSetColorCurv(self, *args)

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

        Description
        -----------
        Return true if surface color has been defined.

        """
        return _XCAFPrs.XCAFPrs_Style_IsSetColorSurf(self, *args)

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

        Description
        -----------
        Manage visibility.

        """
        return _XCAFPrs.XCAFPrs_Style_IsVisible(self, *args)

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

        Description
        -----------
        Return material.

        """
        return _XCAFPrs.XCAFPrs_Style_Material(self, *args)

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

        Parameters
        ----------
        col: Quantity_Color

        Return
        -------
        None

        Description
        -----------
        Set curve color.

        """
        return _XCAFPrs.XCAFPrs_Style_SetColorCurv(self, *args)

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

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

        Return
        -------
        None

        Description
        -----------
        Set surface color.

        Parameters
        ----------
        theColor: Quantity_ColorRGBA

        Return
        -------
        None

        Description
        -----------
        Set surface color.

        """
        return _XCAFPrs.XCAFPrs_Style_SetColorSurf(self, *args)

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

        Parameters
        ----------
        theMaterial: XCAFDoc_VisMaterial

        Return
        -------
        None

        Description
        -----------
        Set material.

        """
        return _XCAFPrs.XCAFPrs_Style_SetMaterial(self, *args)

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

        Parameters
        ----------
        theVisibility: bool

        Return
        -------
        None

        Description
        -----------
        Assign visibility.

        """
        return _XCAFPrs.XCAFPrs_Style_SetVisibility(self, *args)

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

        Description
        -----------
        Manage curve color setting.

        """
        return _XCAFPrs.XCAFPrs_Style_UnSetColorCurv(self, *args)

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

        Description
        -----------
        Manage surface color setting.

        """
        return _XCAFPrs.XCAFPrs_Style_UnSetColorSurf(self, *args)

    def __eq_wrapper__(self, other):
        r"""Json string serializer."""
        return _XCAFPrs.XCAFPrs_Style___eq_wrapper__(self, other)

    def __eq__(self, right):
        try:
            return self.__eq_wrapper__(right)
        except:
            return False


    __repr__ = _dumps_object

    __swig_destroy__ = _XCAFPrs.delete_XCAFPrs_Style

# Register XCAFPrs_Style in _XCAFPrs:
_XCAFPrs.XCAFPrs_Style_swigregister(XCAFPrs_Style)
class XCAFPrs_Texture(OCC.Core.Graphic3d.Graphic3d_Texture2D):
    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
        ----------
        theImageSource: Image_Texture
        theUnit: Graphic3d_TextureUnit

        Return
        -------
        None

        Description
        -----------
        Constructor.

        """
        _XCAFPrs.XCAFPrs_Texture_swiginit(self, _XCAFPrs.new_XCAFPrs_Texture(*args))

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

        Description
        -----------
        Return image source.

        """
        return _XCAFPrs.XCAFPrs_Texture_GetImageSource(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _XCAFPrs.delete_XCAFPrs_Texture

# Register XCAFPrs_Texture in _XCAFPrs:
_XCAFPrs.XCAFPrs_Texture_swigregister(XCAFPrs_Texture)



@deprecated
def xcafprs_CollectStyleSettings(*args):
	return xcafprs.CollectStyleSettings(*args)

@deprecated
def xcafprs_GetViewNameMode(*args):
	return xcafprs.GetViewNameMode(*args)

@deprecated
def xcafprs_SetViewNameMode(*args):
	return xcafprs.SetViewNameMode(*args)

@deprecated
def XCAFPrs_DocumentExplorer_DefineChildId(*args):
	return XCAFPrs_DocumentExplorer.DefineChildId(*args)

@deprecated
def XCAFPrs_DocumentExplorer_FindLabelFromPathId(*args):
	return XCAFPrs_DocumentExplorer.FindLabelFromPathId(*args)

@deprecated
def XCAFPrs_DocumentExplorer_FindLabelFromPathId(*args):
	return XCAFPrs_DocumentExplorer.FindLabelFromPathId(*args)

@deprecated
def XCAFPrs_DocumentExplorer_FindShapeFromPathId(*args):
	return XCAFPrs_DocumentExplorer.FindShapeFromPathId(*args)

@deprecated
def XCAFPrs_DocumentNode_HashCode(*args):
	return XCAFPrs_DocumentNode.HashCode(*args)

@deprecated
def XCAFPrs_DocumentNode_IsEqual(*args):
	return XCAFPrs_DocumentNode.IsEqual(*args)

@deprecated
def XCAFPrs_Driver_GetID(*args):
	return XCAFPrs_Driver.GetID(*args)

@deprecated
def XCAFPrs_Style_HashCode(*args):
	return XCAFPrs_Style.HashCode(*args)

@deprecated
def XCAFPrs_Style_IsEqual(*args):
	return XCAFPrs_Style.IsEqual(*args)



