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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _BinMXCAFDoc:
_BinMXCAFDoc.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 _BinMXCAFDoc.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.BinMDF
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.Message
import OCC.Core.OSD
import OCC.Core.TDF
import OCC.Core.BinObjMgt
import OCC.Core.Storage
import OCC.Core.BinTools
import OCC.Core.TopoDS
import OCC.Core.TopAbs
import OCC.Core.TopLoc
import OCC.Core.gp
import OCC.Core.Geom2d
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.Geom

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




def Handle_BinMXCAFDoc_AssemblyItemRefDriver_Create() -> "opencascade::handle< BinMXCAFDoc_AssemblyItemRefDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_AssemblyItemRefDriver_Create()

def Handle_BinMXCAFDoc_AssemblyItemRefDriver_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BinMXCAFDoc_AssemblyItemRefDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_AssemblyItemRefDriver_DownCast(t)

def Handle_BinMXCAFDoc_AssemblyItemRefDriver_IsNull(t: "opencascade::handle< BinMXCAFDoc_AssemblyItemRefDriver > const &") -> "bool":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_AssemblyItemRefDriver_IsNull(t)

def Handle_BinMXCAFDoc_CentroidDriver_Create() -> "opencascade::handle< BinMXCAFDoc_CentroidDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_CentroidDriver_Create()

def Handle_BinMXCAFDoc_CentroidDriver_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BinMXCAFDoc_CentroidDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_CentroidDriver_DownCast(t)

def Handle_BinMXCAFDoc_CentroidDriver_IsNull(t: "opencascade::handle< BinMXCAFDoc_CentroidDriver > const &") -> "bool":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_CentroidDriver_IsNull(t)

def Handle_BinMXCAFDoc_ColorDriver_Create() -> "opencascade::handle< BinMXCAFDoc_ColorDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_ColorDriver_Create()

def Handle_BinMXCAFDoc_ColorDriver_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BinMXCAFDoc_ColorDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_ColorDriver_DownCast(t)

def Handle_BinMXCAFDoc_ColorDriver_IsNull(t: "opencascade::handle< BinMXCAFDoc_ColorDriver > const &") -> "bool":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_ColorDriver_IsNull(t)

def Handle_BinMXCAFDoc_DatumDriver_Create() -> "opencascade::handle< BinMXCAFDoc_DatumDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_DatumDriver_Create()

def Handle_BinMXCAFDoc_DatumDriver_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BinMXCAFDoc_DatumDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_DatumDriver_DownCast(t)

def Handle_BinMXCAFDoc_DatumDriver_IsNull(t: "opencascade::handle< BinMXCAFDoc_DatumDriver > const &") -> "bool":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_DatumDriver_IsNull(t)

def Handle_BinMXCAFDoc_DimTolDriver_Create() -> "opencascade::handle< BinMXCAFDoc_DimTolDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_DimTolDriver_Create()

def Handle_BinMXCAFDoc_DimTolDriver_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BinMXCAFDoc_DimTolDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_DimTolDriver_DownCast(t)

def Handle_BinMXCAFDoc_DimTolDriver_IsNull(t: "opencascade::handle< BinMXCAFDoc_DimTolDriver > const &") -> "bool":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_DimTolDriver_IsNull(t)

def Handle_BinMXCAFDoc_GraphNodeDriver_Create() -> "opencascade::handle< BinMXCAFDoc_GraphNodeDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_GraphNodeDriver_Create()

def Handle_BinMXCAFDoc_GraphNodeDriver_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BinMXCAFDoc_GraphNodeDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_GraphNodeDriver_DownCast(t)

def Handle_BinMXCAFDoc_GraphNodeDriver_IsNull(t: "opencascade::handle< BinMXCAFDoc_GraphNodeDriver > const &") -> "bool":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_GraphNodeDriver_IsNull(t)

def Handle_BinMXCAFDoc_LocationDriver_Create() -> "opencascade::handle< BinMXCAFDoc_LocationDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_LocationDriver_Create()

def Handle_BinMXCAFDoc_LocationDriver_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BinMXCAFDoc_LocationDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_LocationDriver_DownCast(t)

def Handle_BinMXCAFDoc_LocationDriver_IsNull(t: "opencascade::handle< BinMXCAFDoc_LocationDriver > const &") -> "bool":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_LocationDriver_IsNull(t)

def Handle_BinMXCAFDoc_MaterialDriver_Create() -> "opencascade::handle< BinMXCAFDoc_MaterialDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_MaterialDriver_Create()

def Handle_BinMXCAFDoc_MaterialDriver_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BinMXCAFDoc_MaterialDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_MaterialDriver_DownCast(t)

def Handle_BinMXCAFDoc_MaterialDriver_IsNull(t: "opencascade::handle< BinMXCAFDoc_MaterialDriver > const &") -> "bool":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_MaterialDriver_IsNull(t)

def Handle_BinMXCAFDoc_NoteDriver_Create() -> "opencascade::handle< BinMXCAFDoc_NoteDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_NoteDriver_Create()

def Handle_BinMXCAFDoc_NoteDriver_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BinMXCAFDoc_NoteDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_NoteDriver_DownCast(t)

def Handle_BinMXCAFDoc_NoteDriver_IsNull(t: "opencascade::handle< BinMXCAFDoc_NoteDriver > const &") -> "bool":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_NoteDriver_IsNull(t)

def Handle_BinMXCAFDoc_VisMaterialDriver_Create() -> "opencascade::handle< BinMXCAFDoc_VisMaterialDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_VisMaterialDriver_Create()

def Handle_BinMXCAFDoc_VisMaterialDriver_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BinMXCAFDoc_VisMaterialDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_VisMaterialDriver_DownCast(t)

def Handle_BinMXCAFDoc_VisMaterialDriver_IsNull(t: "opencascade::handle< BinMXCAFDoc_VisMaterialDriver > const &") -> "bool":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_VisMaterialDriver_IsNull(t)

def Handle_BinMXCAFDoc_VisMaterialToolDriver_Create() -> "opencascade::handle< BinMXCAFDoc_VisMaterialToolDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_VisMaterialToolDriver_Create()

def Handle_BinMXCAFDoc_VisMaterialToolDriver_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BinMXCAFDoc_VisMaterialToolDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_VisMaterialToolDriver_DownCast(t)

def Handle_BinMXCAFDoc_VisMaterialToolDriver_IsNull(t: "opencascade::handle< BinMXCAFDoc_VisMaterialToolDriver > const &") -> "bool":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_VisMaterialToolDriver_IsNull(t)

def Handle_BinMXCAFDoc_NoteBinDataDriver_Create() -> "opencascade::handle< BinMXCAFDoc_NoteBinDataDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_NoteBinDataDriver_Create()

def Handle_BinMXCAFDoc_NoteBinDataDriver_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BinMXCAFDoc_NoteBinDataDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_NoteBinDataDriver_DownCast(t)

def Handle_BinMXCAFDoc_NoteBinDataDriver_IsNull(t: "opencascade::handle< BinMXCAFDoc_NoteBinDataDriver > const &") -> "bool":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_NoteBinDataDriver_IsNull(t)

def Handle_BinMXCAFDoc_NoteCommentDriver_Create() -> "opencascade::handle< BinMXCAFDoc_NoteCommentDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_NoteCommentDriver_Create()

def Handle_BinMXCAFDoc_NoteCommentDriver_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BinMXCAFDoc_NoteCommentDriver >":
    return _BinMXCAFDoc.Handle_BinMXCAFDoc_NoteCommentDriver_DownCast(t)

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

    @staticmethod
    def AddDrivers(*args) -> "void":
        r"""
        Adds the attribute drivers to <thedrivertable>.

        Parameters
        ----------
        theDriverTable: BinMDF_ADriverTable
        theMsgDrv: Message_Messenger

        Returns
        -------
        None

        """
        return _BinMXCAFDoc.binmxcafdoc_AddDrivers(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _BinMXCAFDoc.binmxcafdoc_swiginit(self, _BinMXCAFDoc.new_binmxcafdoc())
    __swig_destroy__ = _BinMXCAFDoc.delete_binmxcafdoc

# Register binmxcafdoc in _BinMXCAFDoc:
_BinMXCAFDoc.binmxcafdoc_swigregister(binmxcafdoc)

def binmxcafdoc_AddDrivers(*args) -> "void":
    r"""
    Adds the attribute drivers to <thedrivertable>.

    Parameters
    ----------
    theDriverTable: BinMDF_ADriverTable
    theMsgDrv: Message_Messenger

    Returns
    -------
    None

    """
    return _BinMXCAFDoc.binmxcafdoc_AddDrivers(*args)

class BinMXCAFDoc_AssemblyItemRefDriver(OCC.Core.BinMDF.BinMDF_ADriver):
    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"""
        No available documentation.

        Parameters
        ----------
        theMsgDriver: Message_Messenger

        Returns
        -------
        None

        """
        _BinMXCAFDoc.BinMXCAFDoc_AssemblyItemRefDriver_swiginit(self, _BinMXCAFDoc.new_BinMXCAFDoc_AssemblyItemRefDriver(*args))

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

        Parameters
        ----------
        theSource: BinObjMgt_Persistent
        theTarget: TDF_Attribute
        theRelocTable: BinObjMgt_RRelocationTable

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        theSource: TDF_Attribute
        theTarget: BinObjMgt_Persistent
        theRelocTable: BinObjMgt_SRelocationTable

        Returns
        -------
        None

        """
        return _BinMXCAFDoc.BinMXCAFDoc_AssemblyItemRefDriver_Paste(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BinMXCAFDoc.delete_BinMXCAFDoc_AssemblyItemRefDriver

# Register BinMXCAFDoc_AssemblyItemRefDriver in _BinMXCAFDoc:
_BinMXCAFDoc.BinMXCAFDoc_AssemblyItemRefDriver_swigregister(BinMXCAFDoc_AssemblyItemRefDriver)

class BinMXCAFDoc_CentroidDriver(OCC.Core.BinMDF.BinMDF_ADriver):
    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"""
        No available documentation.

        Parameters
        ----------
        theMsgDriver: Message_Messenger

        Returns
        -------
        None

        """
        _BinMXCAFDoc.BinMXCAFDoc_CentroidDriver_swiginit(self, _BinMXCAFDoc.new_BinMXCAFDoc_CentroidDriver(*args))

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

        Parameters
        ----------
        theSource: BinObjMgt_Persistent
        theTarget: TDF_Attribute
        theRelocTable: BinObjMgt_RRelocationTable

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        theSource: TDF_Attribute
        theTarget: BinObjMgt_Persistent
        theRelocTable: BinObjMgt_SRelocationTable

        Returns
        -------
        None

        """
        return _BinMXCAFDoc.BinMXCAFDoc_CentroidDriver_Paste(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BinMXCAFDoc.delete_BinMXCAFDoc_CentroidDriver

# Register BinMXCAFDoc_CentroidDriver in _BinMXCAFDoc:
_BinMXCAFDoc.BinMXCAFDoc_CentroidDriver_swigregister(BinMXCAFDoc_CentroidDriver)

class BinMXCAFDoc_ColorDriver(OCC.Core.BinMDF.BinMDF_ADriver):
    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"""
        No available documentation.

        Parameters
        ----------
        theMsgDriver: Message_Messenger

        Returns
        -------
        None

        """
        _BinMXCAFDoc.BinMXCAFDoc_ColorDriver_swiginit(self, _BinMXCAFDoc.new_BinMXCAFDoc_ColorDriver(*args))

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

        Parameters
        ----------
        theSource: BinObjMgt_Persistent
        theTarget: TDF_Attribute
        theRelocTable: BinObjMgt_RRelocationTable

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        theSource: TDF_Attribute
        theTarget: BinObjMgt_Persistent
        theRelocTable: BinObjMgt_SRelocationTable

        Returns
        -------
        None

        """
        return _BinMXCAFDoc.BinMXCAFDoc_ColorDriver_Paste(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BinMXCAFDoc.delete_BinMXCAFDoc_ColorDriver

# Register BinMXCAFDoc_ColorDriver in _BinMXCAFDoc:
_BinMXCAFDoc.BinMXCAFDoc_ColorDriver_swigregister(BinMXCAFDoc_ColorDriver)

class BinMXCAFDoc_DatumDriver(OCC.Core.BinMDF.BinMDF_ADriver):
    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"""
        No available documentation.

        Parameters
        ----------
        theMsgDriver: Message_Messenger

        Returns
        -------
        None

        """
        _BinMXCAFDoc.BinMXCAFDoc_DatumDriver_swiginit(self, _BinMXCAFDoc.new_BinMXCAFDoc_DatumDriver(*args))

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

        Parameters
        ----------
        theSource: BinObjMgt_Persistent
        theTarget: TDF_Attribute
        theRelocTable: BinObjMgt_RRelocationTable

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        theSource: TDF_Attribute
        theTarget: BinObjMgt_Persistent
        theRelocTable: BinObjMgt_SRelocationTable

        Returns
        -------
        None

        """
        return _BinMXCAFDoc.BinMXCAFDoc_DatumDriver_Paste(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BinMXCAFDoc.delete_BinMXCAFDoc_DatumDriver

# Register BinMXCAFDoc_DatumDriver in _BinMXCAFDoc:
_BinMXCAFDoc.BinMXCAFDoc_DatumDriver_swigregister(BinMXCAFDoc_DatumDriver)

class BinMXCAFDoc_DimTolDriver(OCC.Core.BinMDF.BinMDF_ADriver):
    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"""
        No available documentation.

        Parameters
        ----------
        theMsgDriver: Message_Messenger

        Returns
        -------
        None

        """
        _BinMXCAFDoc.BinMXCAFDoc_DimTolDriver_swiginit(self, _BinMXCAFDoc.new_BinMXCAFDoc_DimTolDriver(*args))

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

        Parameters
        ----------
        theSource: BinObjMgt_Persistent
        theTarget: TDF_Attribute
        theRelocTable: BinObjMgt_RRelocationTable

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        theSource: TDF_Attribute
        theTarget: BinObjMgt_Persistent
        theRelocTable: BinObjMgt_SRelocationTable

        Returns
        -------
        None

        """
        return _BinMXCAFDoc.BinMXCAFDoc_DimTolDriver_Paste(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BinMXCAFDoc.delete_BinMXCAFDoc_DimTolDriver

# Register BinMXCAFDoc_DimTolDriver in _BinMXCAFDoc:
_BinMXCAFDoc.BinMXCAFDoc_DimTolDriver_swigregister(BinMXCAFDoc_DimTolDriver)

class BinMXCAFDoc_GraphNodeDriver(OCC.Core.BinMDF.BinMDF_ADriver):
    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"""
        No available documentation.

        Parameters
        ----------
        theMsgDriver: Message_Messenger

        Returns
        -------
        None

        """
        _BinMXCAFDoc.BinMXCAFDoc_GraphNodeDriver_swiginit(self, _BinMXCAFDoc.new_BinMXCAFDoc_GraphNodeDriver(*args))

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

        Parameters
        ----------
        theSource: BinObjMgt_Persistent
        theTarget: TDF_Attribute
        theRelocTable: BinObjMgt_RRelocationTable

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        theSource: TDF_Attribute
        theTarget: BinObjMgt_Persistent
        theRelocTable: BinObjMgt_SRelocationTable

        Returns
        -------
        None

        """
        return _BinMXCAFDoc.BinMXCAFDoc_GraphNodeDriver_Paste(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BinMXCAFDoc.delete_BinMXCAFDoc_GraphNodeDriver

# Register BinMXCAFDoc_GraphNodeDriver in _BinMXCAFDoc:
_BinMXCAFDoc.BinMXCAFDoc_GraphNodeDriver_swigregister(BinMXCAFDoc_GraphNodeDriver)

class BinMXCAFDoc_LocationDriver(OCC.Core.BinMDF.BinMDF_ADriver):
    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"""
        No available documentation.

        Parameters
        ----------
        theMsgDriver: Message_Messenger

        Returns
        -------
        None

        """
        _BinMXCAFDoc.BinMXCAFDoc_LocationDriver_swiginit(self, _BinMXCAFDoc.new_BinMXCAFDoc_LocationDriver(*args))

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

        Parameters
        ----------
        theSource: BinObjMgt_Persistent
        theTarget: TDF_Attribute
        theRelocTable: BinObjMgt_RRelocationTable

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        theSource: TDF_Attribute
        theTarget: BinObjMgt_Persistent
        theRelocTable: BinObjMgt_SRelocationTable

        Returns
        -------
        None

        """
        return _BinMXCAFDoc.BinMXCAFDoc_LocationDriver_Paste(self, *args)

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

        Parameters
        ----------
        theLocations: BinTools_LocationSetPtr

        Returns
        -------
        None

        """
        return _BinMXCAFDoc.BinMXCAFDoc_LocationDriver_SetSharedLocations(self, *args)

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

        Parameters
        ----------
        theSource: BinObjMgt_Persistent
        theLoc: TopLoc_Location
        theMap: BinObjMgt_RRelocationTable

        Returns
        -------
        bool
        Translate transient location to storable.

        Parameters
        ----------
        theLoc: TopLoc_Location
        theTarget: BinObjMgt_Persistent
        theMap: BinObjMgt_SRelocationTable

        Returns
        -------
        None

        """
        return _BinMXCAFDoc.BinMXCAFDoc_LocationDriver_Translate(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BinMXCAFDoc.delete_BinMXCAFDoc_LocationDriver

# Register BinMXCAFDoc_LocationDriver in _BinMXCAFDoc:
_BinMXCAFDoc.BinMXCAFDoc_LocationDriver_swigregister(BinMXCAFDoc_LocationDriver)

class BinMXCAFDoc_MaterialDriver(OCC.Core.BinMDF.BinMDF_ADriver):
    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"""
        No available documentation.

        Parameters
        ----------
        theMsgDriver: Message_Messenger

        Returns
        -------
        None

        """
        _BinMXCAFDoc.BinMXCAFDoc_MaterialDriver_swiginit(self, _BinMXCAFDoc.new_BinMXCAFDoc_MaterialDriver(*args))

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

        Parameters
        ----------
        theSource: BinObjMgt_Persistent
        theTarget: TDF_Attribute
        theRelocTable: BinObjMgt_RRelocationTable

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        theSource: TDF_Attribute
        theTarget: BinObjMgt_Persistent
        theRelocTable: BinObjMgt_SRelocationTable

        Returns
        -------
        None

        """
        return _BinMXCAFDoc.BinMXCAFDoc_MaterialDriver_Paste(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BinMXCAFDoc.delete_BinMXCAFDoc_MaterialDriver

# Register BinMXCAFDoc_MaterialDriver in _BinMXCAFDoc:
_BinMXCAFDoc.BinMXCAFDoc_MaterialDriver_swigregister(BinMXCAFDoc_MaterialDriver)

class BinMXCAFDoc_NoteDriver(OCC.Core.BinMDF.BinMDF_ADriver):
    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 Paste(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------
        theSource: BinObjMgt_Persistent
        theTarget: TDF_Attribute
        theRelocTable: BinObjMgt_RRelocationTable

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        theSource: TDF_Attribute
        theTarget: BinObjMgt_Persistent
        theRelocTable: BinObjMgt_SRelocationTable

        Returns
        -------
        None

        """
        return _BinMXCAFDoc.BinMXCAFDoc_NoteDriver_Paste(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BinMXCAFDoc.delete_BinMXCAFDoc_NoteDriver

# Register BinMXCAFDoc_NoteDriver in _BinMXCAFDoc:
_BinMXCAFDoc.BinMXCAFDoc_NoteDriver_swigregister(BinMXCAFDoc_NoteDriver)

class BinMXCAFDoc_VisMaterialDriver(OCC.Core.BinMDF.BinMDF_ADriver):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Main constructor.

        Parameters
        ----------
        theMsgDriver: Message_Messenger

        Returns
        -------
        None

        """
        _BinMXCAFDoc.BinMXCAFDoc_VisMaterialDriver_swiginit(self, _BinMXCAFDoc.new_BinMXCAFDoc_VisMaterialDriver(*args))

    def Paste(self, *args) -> "void":
        r"""
        Paste attribute from persistence into document.

        Parameters
        ----------
        theSource: BinObjMgt_Persistent
        theTarget: TDF_Attribute
        theRelocTable: BinObjMgt_RRelocationTable

        Returns
        -------
        bool
        Paste attribute from document into persistence.

        Parameters
        ----------
        theSource: TDF_Attribute
        theTarget: BinObjMgt_Persistent
        theRelocTable: BinObjMgt_SRelocationTable

        Returns
        -------
        None

        """
        return _BinMXCAFDoc.BinMXCAFDoc_VisMaterialDriver_Paste(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BinMXCAFDoc.delete_BinMXCAFDoc_VisMaterialDriver

# Register BinMXCAFDoc_VisMaterialDriver in _BinMXCAFDoc:
_BinMXCAFDoc.BinMXCAFDoc_VisMaterialDriver_swigregister(BinMXCAFDoc_VisMaterialDriver)

class BinMXCAFDoc_VisMaterialToolDriver(OCC.Core.BinMDF.BinMDF_ADriver):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Main constructor.

        Parameters
        ----------
        theMsgDriver: Message_Messenger

        Returns
        -------
        None

        """
        _BinMXCAFDoc.BinMXCAFDoc_VisMaterialToolDriver_swiginit(self, _BinMXCAFDoc.new_BinMXCAFDoc_VisMaterialToolDriver(*args))

    def Paste(self, *args) -> "void":
        r"""
        Paste attribute from persistence into document.

        Parameters
        ----------
        theSource: BinObjMgt_Persistent
        theTarget: TDF_Attribute
        theRelocTable: BinObjMgt_RRelocationTable

        Returns
        -------
        bool
        Paste attribute from document into persistence.

        Parameters
        ----------
        theSource: TDF_Attribute
        theTarget: BinObjMgt_Persistent
        theRelocTable: BinObjMgt_SRelocationTable

        Returns
        -------
        None

        """
        return _BinMXCAFDoc.BinMXCAFDoc_VisMaterialToolDriver_Paste(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BinMXCAFDoc.delete_BinMXCAFDoc_VisMaterialToolDriver

# Register BinMXCAFDoc_VisMaterialToolDriver in _BinMXCAFDoc:
_BinMXCAFDoc.BinMXCAFDoc_VisMaterialToolDriver_swigregister(BinMXCAFDoc_VisMaterialToolDriver)

class BinMXCAFDoc_NoteBinDataDriver(BinMXCAFDoc_NoteDriver):
    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"""
        No available documentation.

        Parameters
        ----------
        theMsgDriver: Message_Messenger

        Returns
        -------
        None

        """
        _BinMXCAFDoc.BinMXCAFDoc_NoteBinDataDriver_swiginit(self, _BinMXCAFDoc.new_BinMXCAFDoc_NoteBinDataDriver(*args))

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

        Parameters
        ----------
        theSource: BinObjMgt_Persistent
        theTarget: TDF_Attribute
        theRelocTable: BinObjMgt_RRelocationTable

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        theSource: TDF_Attribute
        theTarget: BinObjMgt_Persistent
        theRelocTable: BinObjMgt_SRelocationTable

        Returns
        -------
        None

        """
        return _BinMXCAFDoc.BinMXCAFDoc_NoteBinDataDriver_Paste(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BinMXCAFDoc.delete_BinMXCAFDoc_NoteBinDataDriver

# Register BinMXCAFDoc_NoteBinDataDriver in _BinMXCAFDoc:
_BinMXCAFDoc.BinMXCAFDoc_NoteBinDataDriver_swigregister(BinMXCAFDoc_NoteBinDataDriver)

class BinMXCAFDoc_NoteCommentDriver(BinMXCAFDoc_NoteDriver):
    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"""
        No available documentation.

        Parameters
        ----------
        theMsgDriver: Message_Messenger

        Returns
        -------
        None

        """
        _BinMXCAFDoc.BinMXCAFDoc_NoteCommentDriver_swiginit(self, _BinMXCAFDoc.new_BinMXCAFDoc_NoteCommentDriver(*args))

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

        Parameters
        ----------
        theSource: BinObjMgt_Persistent
        theTarget: TDF_Attribute
        theRelocTable: BinObjMgt_RRelocationTable

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        theSource: TDF_Attribute
        theTarget: BinObjMgt_Persistent
        theRelocTable: BinObjMgt_SRelocationTable

        Returns
        -------
        None

        """
        return _BinMXCAFDoc.BinMXCAFDoc_NoteCommentDriver_Paste(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BinMXCAFDoc.delete_BinMXCAFDoc_NoteCommentDriver

# Register BinMXCAFDoc_NoteCommentDriver in _BinMXCAFDoc:
_BinMXCAFDoc.BinMXCAFDoc_NoteCommentDriver_swigregister(BinMXCAFDoc_NoteCommentDriver)





