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

"""
BinTools module, see official documentation at
https://dev.opencascade.org/doc/occt-7.9.0/refman/html/package_bintools.html
"""

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if getattr(globals().get("__spec__"), "parent", None) or __package__ or "." in __name__:
    from . import _BinTools
else:
    import _BinTools

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _BinTools:
_BinTools.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 _BinTools.process_exception(error, method_name, class_name)

import warnings
from OCC.Wrapper.wrapper_utils import Proxy, deprecated

class ios_base(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")
    __repr__ = _swig_repr
    erase_event = _BinTools.ios_base_erase_event
    imbue_event = _BinTools.ios_base_imbue_event
    copyfmt_event = _BinTools.ios_base_copyfmt_event

    def register_callback(self, __fn, __index):
        return _BinTools.ios_base_register_callback(self, __fn, __index)

    def flags(self, *args):
        return _BinTools.ios_base_flags(self, *args)

    def setf(self, *args):
        return _BinTools.ios_base_setf(self, *args)

    def unsetf(self, __mask):
        return _BinTools.ios_base_unsetf(self, __mask)

    def precision(self, *args):
        return _BinTools.ios_base_precision(self, *args)

    def width(self, *args):
        return _BinTools.ios_base_width(self, *args)

    @staticmethod
    def sync_with_stdio(__sync=True):
        return _BinTools.ios_base_sync_with_stdio(__sync)

    def imbue(self, __loc):
        return _BinTools.ios_base_imbue(self, __loc)

    def getloc(self):
        return _BinTools.ios_base_getloc(self)

    @staticmethod
    def xalloc():
        return _BinTools.ios_base_xalloc()

    def iword(self, __ix):
        return _BinTools.ios_base_iword(self, __ix)

    def pword(self, __ix):
        return _BinTools.ios_base_pword(self, __ix)
    __swig_destroy__ = _BinTools.delete_ios_base

# Register ios_base in _BinTools:
_BinTools.ios_base_swigregister(ios_base)
cvar = _BinTools.cvar
ios_base.boolalpha = _BinTools.cvar.ios_base_boolalpha
ios_base.dec = _BinTools.cvar.ios_base_dec
ios_base.fixed = _BinTools.cvar.ios_base_fixed
ios_base.hex = _BinTools.cvar.ios_base_hex
ios_base.internal = _BinTools.cvar.ios_base_internal
ios_base.left = _BinTools.cvar.ios_base_left
ios_base.oct = _BinTools.cvar.ios_base_oct
ios_base.right = _BinTools.cvar.ios_base_right
ios_base.scientific = _BinTools.cvar.ios_base_scientific
ios_base.showbase = _BinTools.cvar.ios_base_showbase
ios_base.showpoint = _BinTools.cvar.ios_base_showpoint
ios_base.showpos = _BinTools.cvar.ios_base_showpos
ios_base.skipws = _BinTools.cvar.ios_base_skipws
ios_base.unitbuf = _BinTools.cvar.ios_base_unitbuf
ios_base.uppercase = _BinTools.cvar.ios_base_uppercase
ios_base.adjustfield = _BinTools.cvar.ios_base_adjustfield
ios_base.basefield = _BinTools.cvar.ios_base_basefield
ios_base.floatfield = _BinTools.cvar.ios_base_floatfield
ios_base.badbit = _BinTools.cvar.ios_base_badbit
ios_base.eofbit = _BinTools.cvar.ios_base_eofbit
ios_base.failbit = _BinTools.cvar.ios_base_failbit
ios_base.goodbit = _BinTools.cvar.ios_base_goodbit
ios_base.app = _BinTools.cvar.ios_base_app
ios_base.ate = _BinTools.cvar.ios_base_ate
ios_base.binary = _BinTools.cvar.ios_base_binary
ios_base.ios_base_in = _BinTools.cvar.ios_base_ios_base_in
ios_base.out = _BinTools.cvar.ios_base_out
ios_base.trunc = _BinTools.cvar.ios_base_trunc
ios_base.beg = _BinTools.cvar.ios_base_beg
ios_base.cur = _BinTools.cvar.ios_base_cur
ios_base.end = _BinTools.cvar.ios_base_end

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

    def rdstate(self):
        return _BinTools.ios_rdstate(self)

    def clear(self, *args):
        return _BinTools.ios_clear(self, *args)

    def setstate(self, __state):
        return _BinTools.ios_setstate(self, __state)

    def good(self):
        return _BinTools.ios_good(self)

    def eof(self):
        return _BinTools.ios_eof(self)

    def fail(self):
        return _BinTools.ios_fail(self)

    def bad(self):
        return _BinTools.ios_bad(self)

    def exceptions(self, *args):
        return _BinTools.ios_exceptions(self, *args)

    def __init__(self, __sb):
        _BinTools.ios_swiginit(self, _BinTools.new_ios(__sb))
    __swig_destroy__ = _BinTools.delete_ios

    def tie(self, *args):
        return _BinTools.ios_tie(self, *args)

    def rdbuf(self, *args):
        return _BinTools.ios_rdbuf(self, *args)

    def copyfmt(self, __rhs):
        return _BinTools.ios_copyfmt(self, __rhs)

    def fill(self, *args):
        return _BinTools.ios_fill(self, *args)

    def imbue(self, __loc):
        return _BinTools.ios_imbue(self, __loc)

    def narrow(self, __c, __dfault):
        return _BinTools.ios_narrow(self, __c, __dfault)

    def widen(self, __c):
        return _BinTools.ios_widen(self, __c)

# Register ios in _BinTools:
_BinTools.ios_swigregister(ios)
class ostream(ios):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _BinTools.ostream_swiginit(self, _BinTools.new_ostream(__sb))
    __swig_destroy__ = _BinTools.delete_ostream

    def __lshift__(self, *args):
        return _BinTools.ostream___lshift__(self, *args)

    def put(self, __c):
        return _BinTools.ostream_put(self, __c)

    def write(self, __s, __n):
        return _BinTools.ostream_write(self, __s, __n)

    def flush(self):
        return _BinTools.ostream_flush(self)

    def tellp(self):
        return _BinTools.ostream_tellp(self)

    def seekp(self, *args):
        return _BinTools.ostream_seekp(self, *args)

# Register ostream in _BinTools:
_BinTools.ostream_swigregister(ostream)
class istream(ios):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _BinTools.istream_swiginit(self, _BinTools.new_istream(__sb))
    __swig_destroy__ = _BinTools.delete_istream

    def __rshift__(self, *args):
        return _BinTools.istream___rshift__(self, *args)

    def gcount(self):
        return _BinTools.istream_gcount(self)

    def get(self, *args):
        return _BinTools.istream_get(self, *args)

    def getline(self, *args):
        return _BinTools.istream_getline(self, *args)

    def ignore(self, *args):
        return _BinTools.istream_ignore(self, *args)

    def peek(self):
        return _BinTools.istream_peek(self)

    def read(self, __s, __n):
        return _BinTools.istream_read(self, __s, __n)

    def readsome(self, __s, __n):
        return _BinTools.istream_readsome(self, __s, __n)

    def putback(self, __c):
        return _BinTools.istream_putback(self, __c)

    def unget(self):
        return _BinTools.istream_unget(self)

    def sync(self):
        return _BinTools.istream_sync(self)

    def tellg(self):
        return _BinTools.istream_tellg(self)

    def seekg(self, *args):
        return _BinTools.istream_seekg(self, *args)

# Register istream in _BinTools:
_BinTools.istream_swigregister(istream)
class iostream(istream, ostream):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _BinTools.iostream_swiginit(self, _BinTools.new_iostream(__sb))
    __swig_destroy__ = _BinTools.delete_iostream

# Register iostream in _BinTools:
_BinTools.iostream_swigregister(iostream)
cin = cvar.cin
cout = cvar.cout
cerr = cvar.cerr
clog = cvar.clog

endl_cb_ptr = _BinTools.endl_cb_ptr
endl = _BinTools.endl
ends_cb_ptr = _BinTools.ends_cb_ptr
ends = _BinTools.ends
flush_cb_ptr = _BinTools.flush_cb_ptr
flush = _BinTools.flush
import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.TopoDS
import OCC.Core.Message
import OCC.Core.TCollection
import OCC.Core.OSD
import OCC.Core.TColStd
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 *

BinTools_FormatVersion_VERSION_1 = _BinTools.BinTools_FormatVersion_VERSION_1
BinTools_FormatVersion_VERSION_2 = _BinTools.BinTools_FormatVersion_VERSION_2
BinTools_FormatVersion_VERSION_3 = _BinTools.BinTools_FormatVersion_VERSION_3
BinTools_FormatVersion_VERSION_4 = _BinTools.BinTools_FormatVersion_VERSION_4
BinTools_FormatVersion_CURRENT = _BinTools.BinTools_FormatVersion_CURRENT
BinTools_FormatVersion_LOWER = _BinTools.BinTools_FormatVersion_LOWER
BinTools_FormatVersion_UPPER = _BinTools.BinTools_FormatVersion_UPPER
BinTools_ObjectType_Unknown = _BinTools.BinTools_ObjectType_Unknown
BinTools_ObjectType_Reference8 = _BinTools.BinTools_ObjectType_Reference8
BinTools_ObjectType_Reference16 = _BinTools.BinTools_ObjectType_Reference16
BinTools_ObjectType_Reference32 = _BinTools.BinTools_ObjectType_Reference32
BinTools_ObjectType_Reference64 = _BinTools.BinTools_ObjectType_Reference64
BinTools_ObjectType_Location = _BinTools.BinTools_ObjectType_Location
BinTools_ObjectType_SimpleLocation = _BinTools.BinTools_ObjectType_SimpleLocation
BinTools_ObjectType_EmptyLocation = _BinTools.BinTools_ObjectType_EmptyLocation
BinTools_ObjectType_LocationEnd = _BinTools.BinTools_ObjectType_LocationEnd
BinTools_ObjectType_Curve = _BinTools.BinTools_ObjectType_Curve
BinTools_ObjectType_EmptyCurve = _BinTools.BinTools_ObjectType_EmptyCurve
BinTools_ObjectType_Curve2d = _BinTools.BinTools_ObjectType_Curve2d
BinTools_ObjectType_EmptyCurve2d = _BinTools.BinTools_ObjectType_EmptyCurve2d
BinTools_ObjectType_Surface = _BinTools.BinTools_ObjectType_Surface
BinTools_ObjectType_EmptySurface = _BinTools.BinTools_ObjectType_EmptySurface
BinTools_ObjectType_Polygon3d = _BinTools.BinTools_ObjectType_Polygon3d
BinTools_ObjectType_EmptyPolygon3d = _BinTools.BinTools_ObjectType_EmptyPolygon3d
BinTools_ObjectType_PolygonOnTriangulation = _BinTools.BinTools_ObjectType_PolygonOnTriangulation
BinTools_ObjectType_EmptyPolygonOnTriangulation = _BinTools.BinTools_ObjectType_EmptyPolygonOnTriangulation
BinTools_ObjectType_Triangulation = _BinTools.BinTools_ObjectType_Triangulation
BinTools_ObjectType_EmptyTriangulation = _BinTools.BinTools_ObjectType_EmptyTriangulation
BinTools_ObjectType_EmptyShape = _BinTools.BinTools_ObjectType_EmptyShape
BinTools_ObjectType_EndShape = _BinTools.BinTools_ObjectType_EndShape


class BinTools_FormatVersion(IntEnum):
	BinTools_FormatVersion_VERSION_1 = 1
	BinTools_FormatVersion_VERSION_2 = 2
	BinTools_FormatVersion_VERSION_3 = 3
	BinTools_FormatVersion_VERSION_4 = 4
	BinTools_FormatVersion_CURRENT = BinTools_FormatVersion_VERSION_4
BinTools_FormatVersion_VERSION_1 = BinTools_FormatVersion.BinTools_FormatVersion_VERSION_1
BinTools_FormatVersion_VERSION_2 = BinTools_FormatVersion.BinTools_FormatVersion_VERSION_2
BinTools_FormatVersion_VERSION_3 = BinTools_FormatVersion.BinTools_FormatVersion_VERSION_3
BinTools_FormatVersion_VERSION_4 = BinTools_FormatVersion.BinTools_FormatVersion_VERSION_4
BinTools_FormatVersion_CURRENT = BinTools_FormatVersion.BinTools_FormatVersion_CURRENT

class BinTools_ObjectType(IntEnum):
	BinTools_ObjectType_Unknown = 0
	BinTools_ObjectType_Reference8 = 1
	BinTools_ObjectType_Reference16 = 2
	BinTools_ObjectType_Reference32 = 3
	BinTools_ObjectType_Reference64 = 4
	BinTools_ObjectType_Location = 5
	BinTools_ObjectType_SimpleLocation = 6
	BinTools_ObjectType_EmptyLocation = 7
	BinTools_ObjectType_LocationEnd = 8
	BinTools_ObjectType_Curve = 9
	BinTools_ObjectType_EmptyCurve = 10
	BinTools_ObjectType_Curve2d = 11
	BinTools_ObjectType_EmptyCurve2d = 12
	BinTools_ObjectType_Surface = 13
	BinTools_ObjectType_EmptySurface = 14
	BinTools_ObjectType_Polygon3d = 15
	BinTools_ObjectType_EmptyPolygon3d = 16
	BinTools_ObjectType_PolygonOnTriangulation = 17
	BinTools_ObjectType_EmptyPolygonOnTriangulation = 18
	BinTools_ObjectType_Triangulation = 19
	BinTools_ObjectType_EmptyTriangulation = 20
	BinTools_ObjectType_EmptyShape = 198
	BinTools_ObjectType_EndShape = 199
BinTools_ObjectType_Unknown = BinTools_ObjectType.BinTools_ObjectType_Unknown
BinTools_ObjectType_Reference8 = BinTools_ObjectType.BinTools_ObjectType_Reference8
BinTools_ObjectType_Reference16 = BinTools_ObjectType.BinTools_ObjectType_Reference16
BinTools_ObjectType_Reference32 = BinTools_ObjectType.BinTools_ObjectType_Reference32
BinTools_ObjectType_Reference64 = BinTools_ObjectType.BinTools_ObjectType_Reference64
BinTools_ObjectType_Location = BinTools_ObjectType.BinTools_ObjectType_Location
BinTools_ObjectType_SimpleLocation = BinTools_ObjectType.BinTools_ObjectType_SimpleLocation
BinTools_ObjectType_EmptyLocation = BinTools_ObjectType.BinTools_ObjectType_EmptyLocation
BinTools_ObjectType_LocationEnd = BinTools_ObjectType.BinTools_ObjectType_LocationEnd
BinTools_ObjectType_Curve = BinTools_ObjectType.BinTools_ObjectType_Curve
BinTools_ObjectType_EmptyCurve = BinTools_ObjectType.BinTools_ObjectType_EmptyCurve
BinTools_ObjectType_Curve2d = BinTools_ObjectType.BinTools_ObjectType_Curve2d
BinTools_ObjectType_EmptyCurve2d = BinTools_ObjectType.BinTools_ObjectType_EmptyCurve2d
BinTools_ObjectType_Surface = BinTools_ObjectType.BinTools_ObjectType_Surface
BinTools_ObjectType_EmptySurface = BinTools_ObjectType.BinTools_ObjectType_EmptySurface
BinTools_ObjectType_Polygon3d = BinTools_ObjectType.BinTools_ObjectType_Polygon3d
BinTools_ObjectType_EmptyPolygon3d = BinTools_ObjectType.BinTools_ObjectType_EmptyPolygon3d
BinTools_ObjectType_PolygonOnTriangulation = BinTools_ObjectType.BinTools_ObjectType_PolygonOnTriangulation
BinTools_ObjectType_EmptyPolygonOnTriangulation = BinTools_ObjectType.BinTools_ObjectType_EmptyPolygonOnTriangulation
BinTools_ObjectType_Triangulation = BinTools_ObjectType.BinTools_ObjectType_Triangulation
BinTools_ObjectType_EmptyTriangulation = BinTools_ObjectType.BinTools_ObjectType_EmptyTriangulation
BinTools_ObjectType_EmptyShape = BinTools_ObjectType.BinTools_ObjectType_EmptyShape
BinTools_ObjectType_EndShape = BinTools_ObjectType.BinTools_ObjectType_EndShape

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

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

        Parameters
        ----------
        IS: str

        Return
        -------
        theValue: bool

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

        """
        return _BinTools.bintools_GetBool(*args)

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

        Parameters
        ----------
        IS: str
        theValue: Standard_ExtCharacter

        Return
        -------
        Standard_IStream

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

        """
        return _BinTools.bintools_GetExtChar(*args)

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

        Parameters
        ----------
        IS: str

        Return
        -------
        theValue: int

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

        """
        return _BinTools.bintools_GetInteger(*args)

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

        Parameters
        ----------
        IS: str

        Return
        -------
        theValue: float

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

        """
        return _BinTools.bintools_GetReal(*args)

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

        Parameters
        ----------
        IS: str

        Return
        -------
        theValue: float

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

        """
        return _BinTools.bintools_GetShortReal(*args)

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

        Parameters
        ----------
        theValue: bool

        Return
        -------
        OS: Standard_OStream

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

        """
        return _BinTools.bintools_PutBool(*args)

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

        Parameters
        ----------
        theValue: Standard_ExtCharacter

        Return
        -------
        OS: Standard_OStream

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

        """
        return _BinTools.bintools_PutExtChar(*args)

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

        Parameters
        ----------
        theValue: int

        Return
        -------
        OS: Standard_OStream

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

        """
        return _BinTools.bintools_PutInteger(*args)

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

        Parameters
        ----------
        theValue: float

        Return
        -------
        OS: Standard_OStream

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

        """
        return _BinTools.bintools_PutReal(*args)

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

        Parameters
        ----------
        theValue: float

        Return
        -------
        OS: Standard_OStream

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

        """
        return _BinTools.bintools_PutShortReal(*args)

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

        Parameters
        ----------
        theShape: TopoDS_Shape
        theStream: str
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        None

        Description
        -----------
        Reads a shape from <theStream> and returns it in <theShape>.

        Parameters
        ----------
        theShape: TopoDS_Shape
        theFile: str
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

        Description
        -----------
        Reads a shape from <theFile> and returns it in <theShape>.

        """
        return _BinTools.bintools_Read(*args)

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

        Parameters
        ----------
        theShape: TopoDS_Shape
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        theStream: Standard_OStream

        Description
        -----------
        Writes the shape to the stream in binary format BinTools_FormatVersion_CURRENT. This alias writes shape with triangulation data. 
        Input parameter: theShape the shape to write 
        Input parameter:[out] theStream the stream to output shape into 
        Parameter theRange the range of progress indicator to fill in.

        Parameters
        ----------
        theShape: TopoDS_Shape
        theWithTriangles: bool
        theWithNormals: bool
        theVersion: BinTools_FormatVersion
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        theStream: Standard_OStream

        Description
        -----------
        Writes the shape to the stream in binary format of specified version. 
        Input parameter: theShape the shape to write 
        Input parameter:[out] theStream the stream to output shape into 
        Input parameter: theWithTriangles flag which specifies whether to save shape with (True) or without (False) triangles;  has no effect on triangulation-only geometry 
        Input parameter: theWithNormals flag which specifies whether to save triangulation with (True) or without (False) normals;  has no effect on triangulation-only geometry 
        Input parameter: theVersion the BinTools format version 
        Parameter theRange  the range of progress indicator to fill in.

        Parameters
        ----------
        theShape: TopoDS_Shape
        theFile: str
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

        Description
        -----------
        Writes the shape to the file in binary format BinTools_FormatVersion_CURRENT. 
        Input parameter: theShape the shape to write 
        Input parameter: theFile the path to file to output shape into 
        Parameter theRange the range of progress indicator to fill in.

        Parameters
        ----------
        theShape: TopoDS_Shape
        theFile: str
        theWithTriangles: bool
        theWithNormals: bool
        theVersion: BinTools_FormatVersion
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

        Description
        -----------
        Writes the shape to the file in binary format of specified version. 
        Input parameter: theShape the shape to write 
        Input parameter: theFile  the path to file to output shape into 
        Input parameter: theWithTriangles flag which specifies whether to save shape with (True) or without (False) triangles;  has no effect on triangulation-only geometry 
        Input parameter: theWithNormals flag which specifies whether to save triangulation with (True) or without (False) normals;  has no effect on triangulation-only geometry 
        Input parameter: theVersion the BinTools format version 
        Parameter theRange  the range of progress indicator to fill in.

        """
        return _BinTools.bintools_Write(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _BinTools.bintools_swiginit(self, _BinTools.new_bintools())
    __swig_destroy__ = _BinTools.delete_bintools

# Register bintools in _BinTools:
_BinTools.bintools_swigregister(bintools)
class BinTools_Curve2dSet(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
        -----------
        Returns an empty set of Curves.

        """
        _BinTools.BinTools_Curve2dSet_swiginit(self, _BinTools.new_BinTools_Curve2dSet(*args))

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

        Parameters
        ----------
        C: Geom2d_Curve

        Return
        -------
        int

        Description
        -----------
        Incorporate a new Curve in the set and returns its index.

        """
        return _BinTools.BinTools_Curve2dSet_Add(self, *args)

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

        Description
        -----------
        Clears the content of the set.

        """
        return _BinTools.BinTools_Curve2dSet_Clear(self, *args)

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

        Parameters
        ----------
        I: int

        Return
        -------
        opencascade::handle<Geom2d_Curve>

        Description
        -----------
        Returns the Curve of index <I>.

        """
        return _BinTools.BinTools_Curve2dSet_Curve2d(self, *args)

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

        Parameters
        ----------
        C: Geom2d_Curve

        Return
        -------
        int

        Description
        -----------
        Returns the index of <L>.

        """
        return _BinTools.BinTools_Curve2dSet_Index(self, *args)

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

        Parameters
        ----------
        IS: str
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        None

        Description
        -----------
        Reads the content of me from the stream <IS>. me is first cleared.

        """
        return _BinTools.BinTools_Curve2dSet_Read(self, *args)

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

        Parameters
        ----------
        IS: str
        C: Geom2d_Curve

        Return
        -------
        Standard_IStream

        Description
        -----------
        Reads the curve from the stream. The curve is assumed to have been written with the Write method.

        """
        return _BinTools.BinTools_Curve2dSet_ReadCurve2d(*args)

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

        Parameters
        ----------
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        OS: Standard_OStream

        Description
        -----------
        Writes the content of me on the stream <OS> in a format that can be read back by Read.

        """
        return _BinTools.BinTools_Curve2dSet_Write(self, *args)

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

        Parameters
        ----------
        C: Geom2d_Curve
        OS: BinTools_OStream

        Return
        -------
        None

        Description
        -----------
        Dumps the curve on the binary stream, that can be read back.

        """
        return _BinTools.BinTools_Curve2dSet_WriteCurve2d(*args)

    __repr__ = _dumps_object

    @methodnotwrapped
    def Dump(self):
    	pass

    __swig_destroy__ = _BinTools.delete_BinTools_Curve2dSet

# Register BinTools_Curve2dSet in _BinTools:
_BinTools.BinTools_Curve2dSet_swigregister(BinTools_Curve2dSet)
class BinTools_CurveSet(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
        -----------
        Returns an empty set of Curves.

        """
        _BinTools.BinTools_CurveSet_swiginit(self, _BinTools.new_BinTools_CurveSet(*args))

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

        Parameters
        ----------
        C: Geom_Curve

        Return
        -------
        int

        Description
        -----------
        Incorporate a new Curve in the set and returns its index.

        """
        return _BinTools.BinTools_CurveSet_Add(self, *args)

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

        Description
        -----------
        Clears the content of the set.

        """
        return _BinTools.BinTools_CurveSet_Clear(self, *args)

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

        Parameters
        ----------
        I: int

        Return
        -------
        opencascade::handle<Geom_Curve>

        Description
        -----------
        Returns the Curve of index <I>.

        """
        return _BinTools.BinTools_CurveSet_Curve(self, *args)

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

        Parameters
        ----------
        C: Geom_Curve

        Return
        -------
        int

        Description
        -----------
        Returns the index of <L>.

        """
        return _BinTools.BinTools_CurveSet_Index(self, *args)

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

        Parameters
        ----------
        IS: str
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        None

        Description
        -----------
        Reads the content of me from the stream <IS>. me is first cleared.

        """
        return _BinTools.BinTools_CurveSet_Read(self, *args)

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

        Parameters
        ----------
        IS: str
        C: Geom_Curve

        Return
        -------
        Standard_IStream

        Description
        -----------
        Reads the curve from the stream. The curve is assumed to have been written with the Write method.

        """
        return _BinTools.BinTools_CurveSet_ReadCurve(*args)

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

        Parameters
        ----------
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        OS: Standard_OStream

        Description
        -----------
        Writes the content of me on the stream <OS> in a format that can be read back by Read.

        """
        return _BinTools.BinTools_CurveSet_Write(self, *args)

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

        Parameters
        ----------
        C: Geom_Curve
        OS: BinTools_OStream

        Return
        -------
        None

        Description
        -----------
        Dumps the curve on the stream in binary format that can be read back.

        """
        return _BinTools.BinTools_CurveSet_WriteCurve(*args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BinTools.delete_BinTools_CurveSet

# Register BinTools_CurveSet in _BinTools:
_BinTools.BinTools_CurveSet_swigregister(BinTools_CurveSet)
class BinTools_LocationSet(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
        -----------
        Returns an empty set of locations.

        """
        _BinTools.BinTools_LocationSet_swiginit(self, _BinTools.new_BinTools_LocationSet(*args))

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

        Parameters
        ----------
        L: TopLoc_Location

        Return
        -------
        int

        Description
        -----------
        Incorporate a new Location in the set and returns its index.

        """
        return _BinTools.BinTools_LocationSet_Add(self, *args)

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

        Description
        -----------
        Clears the content of the set.

        """
        return _BinTools.BinTools_LocationSet_Clear(self, *args)

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

        Parameters
        ----------
        L: TopLoc_Location

        Return
        -------
        int

        Description
        -----------
        Returns the index of <L>.

        """
        return _BinTools.BinTools_LocationSet_Index(self, *args)

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

        Parameters
        ----------
        I: int

        Return
        -------
        TopLoc_Location

        Description
        -----------
        Returns the location of index <I>.

        """
        return _BinTools.BinTools_LocationSet_Location(self, *args)

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

        Description
        -----------
        Returns number of locations.

        """
        return _BinTools.BinTools_LocationSet_NbLocations(self, *args)

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

        Parameters
        ----------
        IS: str

        Return
        -------
        None

        Description
        -----------
        Reads the content of me from the stream <IS>. me is first cleared.

        """
        return _BinTools.BinTools_LocationSet_Read(self, *args)

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

        Parameters
        ----------

        Return
        -------
        OS: Standard_OStream

        Description
        -----------
        Writes the content of me on the stream <OS> in a format that can be read back by Read.

        """
        return _BinTools.BinTools_LocationSet_Write(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BinTools.delete_BinTools_LocationSet

# Register BinTools_LocationSet in _BinTools:
_BinTools.BinTools_LocationSet_swigregister(BinTools_LocationSet)
class BinTools_ShapeSetBase(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
        -----------
        A default constructor.

        """
        _BinTools.BinTools_ShapeSetBase_swiginit(self, _BinTools.new_BinTools_ShapeSetBase(*args))

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

        Description
        -----------
        Clears the content of the set.

        """
        return _BinTools.BinTools_ShapeSetBase_Clear(self, *args)

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

        Description
        -----------
        Returns the BinTools_FormatVersion.

        """
        return _BinTools.BinTools_ShapeSetBase_FormatNb(self, *args)

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

        Description
        -----------
        Return true if shape should be stored triangulation with normals.

        """
        return _BinTools.BinTools_ShapeSetBase_IsWithNormals(self, *args)

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

        Description
        -----------
        Return true if shape should be stored with triangles.

        """
        return _BinTools.BinTools_ShapeSetBase_IsWithTriangles(self, *args)

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

        Parameters
        ----------
        &: std::istream
        &: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        None

        Description
        -----------
        Reads the content of me from the binary stream <IS>. me is first cleared. //! Reads the locations. //! Reads the geometry calling ReadGeometry. //! Reads the shapes. For each shape Reads the type. calls ReadGeometry(T,S). Reads the flag, the subshapes.

        Parameters
        ----------
        &: std::istream
        &: TopoDS_Shape

        Return
        -------
        None

        Description
        -----------
        An empty virtual method for redefinition in shape-reader.

        """
        return _BinTools.BinTools_ShapeSetBase_Read(self, *args)

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

        Parameters
        ----------
        theFormatNb: int

        Return
        -------
        None

        Description
        -----------
        Sets the BinTools_FormatVersion.

        """
        return _BinTools.BinTools_ShapeSetBase_SetFormatNb(self, *args)

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

        Parameters
        ----------
        theWithNormals: bool

        Return
        -------
        None

        Description
        -----------
        Define if shape will be stored triangulation with normals. Ignored (always written) if face defines only triangulation (no surface).

        """
        return _BinTools.BinTools_ShapeSetBase_SetWithNormals(self, *args)

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

        Parameters
        ----------
        theWithTriangles: bool

        Return
        -------
        None

        Description
        -----------
        Define if shape will be stored with triangles. Ignored (always written) if face defines only triangulation (no surface).

        """
        return _BinTools.BinTools_ShapeSetBase_SetWithTriangles(self, *args)

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

        Parameters
        ----------
        &: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        &: Standard_OStream

        Description
        -----------
        Writes the content of me on the stream <OS> in binary format that can be read back by Read. //! Writes the locations. //! Writes the geometry calling WriteGeometry. //! Dumps the shapes from last to first. For each shape: Write the type. calls WriteGeometry(S). Write the flags, the subshapes.

        Parameters
        ----------
        &: TopoDS_Shape

        Return
        -------
        &: Standard_OStream

        Description
        -----------
        Writes on <OS> the shape <S>. Writes the orientation, the index of the TShape and the index of the Location.

        """
        return _BinTools.BinTools_ShapeSetBase_Write(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BinTools.delete_BinTools_ShapeSetBase

# Register BinTools_ShapeSetBase in _BinTools:
_BinTools.BinTools_ShapeSetBase_swigregister(BinTools_ShapeSetBase)
class BinTools_SurfaceSet(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
        -----------
        Returns an empty set of Surfaces.

        """
        _BinTools.BinTools_SurfaceSet_swiginit(self, _BinTools.new_BinTools_SurfaceSet(*args))

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

        Parameters
        ----------
        S: Geom_Surface

        Return
        -------
        int

        Description
        -----------
        Incorporate a new Surface in the set and returns its index.

        """
        return _BinTools.BinTools_SurfaceSet_Add(self, *args)

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

        Description
        -----------
        Clears the content of the set.

        """
        return _BinTools.BinTools_SurfaceSet_Clear(self, *args)

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

        Parameters
        ----------
        S: Geom_Surface

        Return
        -------
        int

        Description
        -----------
        Returns the index of <L>.

        """
        return _BinTools.BinTools_SurfaceSet_Index(self, *args)

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

        Parameters
        ----------
        IS: str
        therange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        None

        Description
        -----------
        Reads the content of me from the stream <IS>. me is first cleared.

        """
        return _BinTools.BinTools_SurfaceSet_Read(self, *args)

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

        Parameters
        ----------
        IS: str
        S: Geom_Surface

        Return
        -------
        Standard_IStream

        Description
        -----------
        Reads the surface from the stream. The surface is assumed to have been written with the Write method.

        """
        return _BinTools.BinTools_SurfaceSet_ReadSurface(*args)

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

        Parameters
        ----------
        I: int

        Return
        -------
        opencascade::handle<Geom_Surface>

        Description
        -----------
        Returns the Surface of index <I>.

        """
        return _BinTools.BinTools_SurfaceSet_Surface(self, *args)

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

        Parameters
        ----------
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        OS: Standard_OStream

        Description
        -----------
        Writes the content of me on the stream <OS> in binary format that can be read back by Read.

        """
        return _BinTools.BinTools_SurfaceSet_Write(self, *args)

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

        Parameters
        ----------
        S: Geom_Surface
        OS: BinTools_OStream

        Return
        -------
        None

        Description
        -----------
        Dumps the surface on the stream in binary format that can be read back.

        """
        return _BinTools.BinTools_SurfaceSet_WriteSurface(*args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BinTools.delete_BinTools_SurfaceSet

# Register BinTools_SurfaceSet in _BinTools:
_BinTools.BinTools_SurfaceSet_swigregister(BinTools_SurfaceSet)
class BinTools_ShapeReader(BinTools_ShapeSetBase):
    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
        -----------
        Initializes a shape reader.

        """
        _BinTools.BinTools_ShapeReader_swiginit(self, _BinTools.new_BinTools_ShapeReader(*args))

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

        Parameters
        ----------
        theStream: BinTools_IStream

        Return
        -------
        TopLoc_Location *

        Description
        -----------
        Reads location from the stream.

        """
        return _BinTools.BinTools_ShapeReader_ReadLocation(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BinTools.delete_BinTools_ShapeReader

# Register BinTools_ShapeReader in _BinTools:
_BinTools.BinTools_ShapeReader_swigregister(BinTools_ShapeReader)
class BinTools_ShapeSet(BinTools_ShapeSetBase):
    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
        -----------
        Builds an empty ShapeSet. 
        Input parameter: theWithTriangles flag to write triangulation data.

        """
        _BinTools.BinTools_ShapeSet_swiginit(self, _BinTools.new_BinTools_ShapeSet(*args))

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

        Parameters
        ----------
        S: TopoDS_Shape

        Return
        -------
        int

        Description
        -----------
        Stores <S> and its sub-shape. Returns the index of <S>. The method AddGeometry is called on each sub-shape.

        """
        return _BinTools.BinTools_ShapeSet_Add(self, *args)

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

        Parameters
        ----------
        S: TopoDS_Shape

        Return
        -------
        None

        Description
        -----------
        Stores the shape <S>.

        """
        return _BinTools.BinTools_ShapeSet_AddShape(self, *args)

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

        Parameters
        ----------
        S1: TopoDS_Shape
        S2: TopoDS_Shape

        Return
        -------
        None

        Description
        -----------
        Inserts the shape <S2> in the shape <S1>.

        """
        return _BinTools.BinTools_ShapeSet_AddShapes(self, *args)

    def ChangeLocations(self, *args):
        r"""
        Return
        -------
        BinTools_LocationSet

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

        """
        return _BinTools.BinTools_ShapeSet_ChangeLocations(self, *args)

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

        Parameters
        ----------
        S: TopoDS_Shape

        Return
        -------
        int

        Description
        -----------
        Returns the index of <S>.

        """
        return _BinTools.BinTools_ShapeSet_Index(self, *args)

    def Locations(self, *args):
        r"""
        Return
        -------
        BinTools_LocationSet

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

        """
        return _BinTools.BinTools_ShapeSet_Locations(self, *args)

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

        Description
        -----------
        Returns number of shapes read from file.

        """
        return _BinTools.BinTools_ShapeSet_NbShapes(self, *args)

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

        Parameters
        ----------
        IS: str
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        None

        Description
        -----------
        Reads the content of me from the binary stream <IS>. me is first cleared. //! Reads the locations. //! Reads the geometry calling ReadGeometry. //! Reads the shapes. For each shape Reads the type. calls ReadGeometry(T,S). Reads the flag, the subshapes.

        Parameters
        ----------
        &: std::istream
        &: TopoDS_Shape

        Return
        -------
        None

        Description
        -----------
        An empty virtual method for redefinition in shape-reader.

        """
        return _BinTools.BinTools_ShapeSet_Read(self, *args)

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

        Parameters
        ----------
        S: TopoDS_Shape
        T: TopAbs_ShapeEnum
        IS: str
        NbShapes: int

        Return
        -------
        None

        Description
        -----------
        Reads from <IS> a shape flags and sub-shapes and modifies S.

        """
        return _BinTools.BinTools_ShapeSet_ReadFlagsAndSubs(self, *args)

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

        Parameters
        ----------
        IS: str
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        None

        Description
        -----------
        Reads the geometry of me from the stream <IS>.

        """
        return _BinTools.BinTools_ShapeSet_ReadGeometry(self, *args)

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

        Parameters
        ----------
        IS: str
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        None

        Description
        -----------
        Reads the 3d polygons of me from the stream <IS>.

        """
        return _BinTools.BinTools_ShapeSet_ReadPolygon3D(self, *args)

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

        Parameters
        ----------
        IS: str
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        None

        Description
        -----------
        Reads the polygons on triangulation of me from the stream <IS>.

        """
        return _BinTools.BinTools_ShapeSet_ReadPolygonOnTriangulation(self, *args)

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

        Parameters
        ----------
        T: TopAbs_ShapeEnum
        IS: str
        S: TopoDS_Shape

        Return
        -------
        None

        Description
        -----------
        Reads a shape of type <T> from the stream <IS> and returns it in <S>.

        """
        return _BinTools.BinTools_ShapeSet_ReadShape(self, *args)

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

        Parameters
        ----------
        S: TopoDS_Shape
        IS: str
        NbShapes: int

        Return
        -------
        None

        Description
        -----------
        Reads from <IS> a shape and returns it in S. <NbShapes> is the number of tshapes in the set.

        """
        return _BinTools.BinTools_ShapeSet_ReadSubs(self, *args)

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

        Parameters
        ----------
        IS: str
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        None

        Description
        -----------
        Reads the triangulation of me from the stream <IS>.

        """
        return _BinTools.BinTools_ShapeSet_ReadTriangulation(self, *args)

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

        Parameters
        ----------
        I: int

        Return
        -------
        TopoDS_Shape

        Description
        -----------
        Returns the sub-shape of index <I>.

        """
        return _BinTools.BinTools_ShapeSet_Shape(self, *args)

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

        Parameters
        ----------
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        OS: Standard_OStream

        Description
        -----------
        Writes the content of me on the stream <OS> in binary format that can be read back by Read. //! Writes the locations. //! Writes the geometry calling WriteGeometry. //! Dumps the shapes from last to first. For each shape: Write the type. calls WriteGeometry(S). Write the flags, the subshapes.

        Parameters
        ----------
        S: TopoDS_Shape

        Return
        -------
        OS: Standard_OStream

        Description
        -----------
        Writes on <OS> the shape <S>. Writes the orientation, the index of the TShape and the index of the Location.

        """
        return _BinTools.BinTools_ShapeSet_Write(self, *args)

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

        Parameters
        ----------
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        OS: Standard_OStream

        Description
        -----------
        Writes the geometry of me on the stream <OS> in a binary format that can be read back by Read.

        """
        return _BinTools.BinTools_ShapeSet_WriteGeometry(self, *args)

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

        Parameters
        ----------
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        OS: Standard_OStream

        Description
        -----------
        Writes the 3d polygons on the stream <OS> in a format that can be read back by Read.

        """
        return _BinTools.BinTools_ShapeSet_WritePolygon3D(self, *args)

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

        Parameters
        ----------
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        OS: Standard_OStream

        Description
        -----------
        Writes the polygons on triangulation on the stream <OS> in a format that can be read back by Read.

        """
        return _BinTools.BinTools_ShapeSet_WritePolygonOnTriangulation(self, *args)

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

        Parameters
        ----------
        S: TopoDS_Shape

        Return
        -------
        OS: Standard_OStream

        Description
        -----------
        Writes the shape <S> on the stream <OS> in a binary format that can be read back by Read.

        """
        return _BinTools.BinTools_ShapeSet_WriteShape(self, *args)

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

        Parameters
        ----------
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        OS: Standard_OStream

        Description
        -----------
        Writes the triangulation on the stream <OS> in a format that can be read back by Read.

        """
        return _BinTools.BinTools_ShapeSet_WriteTriangulation(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BinTools.delete_BinTools_ShapeSet

# Register BinTools_ShapeSet in _BinTools:
_BinTools.BinTools_ShapeSet_swigregister(BinTools_ShapeSet)
class BinTools_ShapeWriter(BinTools_ShapeSetBase):
    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
        -----------
        Builds an empty ShapeSet. Parameter <theWithTriangles> is added for XML Persistence.

        """
        _BinTools.BinTools_ShapeWriter_swiginit(self, _BinTools.new_BinTools_ShapeWriter(*args))

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

        Parameters
        ----------
        theStream: BinTools_OStream
        theLocation: TopLoc_Location

        Return
        -------
        None

        Description
        -----------
        Writes location to the stream (all the needed sub-information or reference if it is already used).

        """
        return _BinTools.BinTools_ShapeWriter_WriteLocation(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BinTools.delete_BinTools_ShapeWriter

# Register BinTools_ShapeWriter in _BinTools:
_BinTools.BinTools_ShapeWriter_swigregister(BinTools_ShapeWriter)

@classnotwrapped
class BinTools_IStream:
	pass

@classnotwrapped
class BinTools_OStream:
	pass





@deprecated
def bintools_GetBool(*args):
	return bintools.GetBool(*args)

@deprecated
def bintools_GetExtChar(*args):
	return bintools.GetExtChar(*args)

@deprecated
def bintools_GetInteger(*args):
	return bintools.GetInteger(*args)

@deprecated
def bintools_GetReal(*args):
	return bintools.GetReal(*args)

@deprecated
def bintools_GetShortReal(*args):
	return bintools.GetShortReal(*args)

@deprecated
def bintools_PutBool(*args):
	return bintools.PutBool(*args)

@deprecated
def bintools_PutExtChar(*args):
	return bintools.PutExtChar(*args)

@deprecated
def bintools_PutInteger(*args):
	return bintools.PutInteger(*args)

@deprecated
def bintools_PutReal(*args):
	return bintools.PutReal(*args)

@deprecated
def bintools_PutShortReal(*args):
	return bintools.PutShortReal(*args)

@deprecated
def bintools_Read(*args):
	return bintools.Read(*args)

@deprecated
def bintools_Read(*args):
	return bintools.Read(*args)

@deprecated
def bintools_Write(*args):
	return bintools.Write(*args)

@deprecated
def bintools_Write(*args):
	return bintools.Write(*args)

@deprecated
def bintools_Write(*args):
	return bintools.Write(*args)

@deprecated
def bintools_Write(*args):
	return bintools.Write(*args)

@deprecated
def BinTools_Curve2dSet_ReadCurve2d(*args):
	return BinTools_Curve2dSet.ReadCurve2d(*args)

@deprecated
def BinTools_Curve2dSet_WriteCurve2d(*args):
	return BinTools_Curve2dSet.WriteCurve2d(*args)

@deprecated
def BinTools_CurveSet_ReadCurve(*args):
	return BinTools_CurveSet.ReadCurve(*args)

@deprecated
def BinTools_CurveSet_WriteCurve(*args):
	return BinTools_CurveSet.WriteCurve(*args)

@deprecated
def BinTools_SurfaceSet_ReadSurface(*args):
	return BinTools_SurfaceSet.ReadSurface(*args)

@deprecated
def BinTools_SurfaceSet_WriteSurface(*args):
	return BinTools_SurfaceSet.WriteSurface(*args)



