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

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

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _IGESCAFControl
else:
    import _IGESCAFControl

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _IGESCAFControl:
_IGESCAFControl.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 _IGESCAFControl.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.Quantity
import OCC.Core.TCollection
import OCC.Core.DE
import OCC.Core.TColStd
import OCC.Core.TDocStd
import OCC.Core.TDF
import OCC.Core.CDF
import OCC.Core.CDM
import OCC.Core.Message
import OCC.Core.OSD
import OCC.Core.Resource
import OCC.Core.PCDM
import OCC.Core.Storage
import OCC.Core.XSControl
import OCC.Core.IFSelect
import OCC.Core.Interface
import OCC.Core.MoniTool
import OCC.Core.TopoDS
import OCC.Core.TopAbs
import OCC.Core.TopLoc
import OCC.Core.gp
import OCC.Core.Transfer
import OCC.Core.TopTools
import OCC.Core.Geom
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.Geom2d
import OCC.Core.IGESControl
import OCC.Core.IGESToBRep
import OCC.Core.IGESData
import OCC.Core.ShapeBuild
import OCC.Core.BRepTools
import OCC.Core.Bnd
import OCC.Core.BVH
import OCC.Core.BRep
import OCC.Core.Poly
import OCC.Core.TShort
import OCC.Core.ShapeExtend
import OCC.Core.TColGeom

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




def Handle_IGESCAFControl_ConfigurationNode_Create():
    return _IGESCAFControl.Handle_IGESCAFControl_ConfigurationNode_Create()

def Handle_IGESCAFControl_ConfigurationNode_DownCast(t):
    return _IGESCAFControl.Handle_IGESCAFControl_ConfigurationNode_DownCast(t)

def Handle_IGESCAFControl_ConfigurationNode_IsNull(t):
    return _IGESCAFControl.Handle_IGESCAFControl_ConfigurationNode_IsNull(t)

def Handle_IGESCAFControl_Provider_Create():
    return _IGESCAFControl.Handle_IGESCAFControl_Provider_Create()

def Handle_IGESCAFControl_Provider_DownCast(t):
    return _IGESCAFControl.Handle_IGESCAFControl_Provider_DownCast(t)

def Handle_IGESCAFControl_Provider_IsNull(t):
    return _IGESCAFControl.Handle_IGESCAFControl_Provider_IsNull(t)
class igescafcontrol(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        col: int

        Return
        -------
        Quantity_Color

        Description
        -----------
        Provides a tool for writing iges file converts iges color index to cascade color.

        """
        return _IGESCAFControl.igescafcontrol_DecodeColor(*args)

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

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

        Return
        -------
        int

        Description
        -----------
        Tries to convert cascade color to iges color index if no corresponding color defined in iges, returns 0.

        """
        return _IGESCAFControl.igescafcontrol_EncodeColor(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _IGESCAFControl.igescafcontrol_swiginit(self, _IGESCAFControl.new_igescafcontrol())
    __swig_destroy__ = _IGESCAFControl.delete_igescafcontrol

# Register igescafcontrol in _IGESCAFControl:
_IGESCAFControl.igescafcontrol_swigregister(igescafcontrol)
class IGESCAFControl_ConfigurationNode(OCC.Core.DE.DE_ConfigurationNode):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    ReadMode_BSplineContinuity_C0 = _IGESCAFControl.IGESCAFControl_ConfigurationNode_ReadMode_BSplineContinuity_C0
    ReadMode_BSplineContinuity_C1 = _IGESCAFControl.IGESCAFControl_ConfigurationNode_ReadMode_BSplineContinuity_C1
    ReadMode_BSplineContinuity_C2 = _IGESCAFControl.IGESCAFControl_ConfigurationNode_ReadMode_BSplineContinuity_C2
    ReadMode_MaxPrecision_Preferred = _IGESCAFControl.IGESCAFControl_ConfigurationNode_ReadMode_MaxPrecision_Preferred
    ReadMode_MaxPrecision_Forced = _IGESCAFControl.IGESCAFControl_ConfigurationNode_ReadMode_MaxPrecision_Forced
    ReadMode_Precision_File = _IGESCAFControl.IGESCAFControl_ConfigurationNode_ReadMode_Precision_File
    ReadMode_Precision_User = _IGESCAFControl.IGESCAFControl_ConfigurationNode_ReadMode_Precision_User
    ReadMode_SurfaceCurve_Default = _IGESCAFControl.IGESCAFControl_ConfigurationNode_ReadMode_SurfaceCurve_Default
    ReadMode_SurfaceCurve_2DUse_Preferred = _IGESCAFControl.IGESCAFControl_ConfigurationNode_ReadMode_SurfaceCurve_2DUse_Preferred
    ReadMode_SurfaceCurve_2DUse_Forced = _IGESCAFControl.IGESCAFControl_ConfigurationNode_ReadMode_SurfaceCurve_2DUse_Forced
    ReadMode_SurfaceCurve_3DUse_Preferred = _IGESCAFControl.IGESCAFControl_ConfigurationNode_ReadMode_SurfaceCurve_3DUse_Preferred
    ReadMode_SurfaceCurve_3DUse_Forced = _IGESCAFControl.IGESCAFControl_ConfigurationNode_ReadMode_SurfaceCurve_3DUse_Forced
    WriteMode_BRep_Faces = _IGESCAFControl.IGESCAFControl_ConfigurationNode_WriteMode_BRep_Faces
    WriteMode_BRep_BRep = _IGESCAFControl.IGESCAFControl_ConfigurationNode_WriteMode_BRep_BRep
    WriteMode_ConvertSurface_Off = _IGESCAFControl.IGESCAFControl_ConfigurationNode_WriteMode_ConvertSurface_Off
    WriteMode_ConvertSurface_On = _IGESCAFControl.IGESCAFControl_ConfigurationNode_WriteMode_ConvertSurface_On
    WriteMode_PlaneMode_Plane = _IGESCAFControl.IGESCAFControl_ConfigurationNode_WriteMode_PlaneMode_Plane
    WriteMode_PlaneMode_BSpline = _IGESCAFControl.IGESCAFControl_ConfigurationNode_WriteMode_PlaneMode_BSpline
    WriteMode_PrecisionMode_Least = _IGESCAFControl.IGESCAFControl_ConfigurationNode_WriteMode_PrecisionMode_Least
    WriteMode_PrecisionMode_Average = _IGESCAFControl.IGESCAFControl_ConfigurationNode_WriteMode_PrecisionMode_Average
    WriteMode_PrecisionMode_Greatest = _IGESCAFControl.IGESCAFControl_ConfigurationNode_WriteMode_PrecisionMode_Greatest
    WriteMode_PrecisionMode_Session = _IGESCAFControl.IGESCAFControl_ConfigurationNode_WriteMode_PrecisionMode_Session


    class ReadMode_BSplineContinuity(IntEnum):
    	ReadMode_BSplineContinuity_C0 = 0
    	ReadMode_BSplineContinuity_C1 = 1
    	ReadMode_BSplineContinuity_C2 = 2
    ReadMode_BSplineContinuity_C0 = ReadMode_BSplineContinuity.ReadMode_BSplineContinuity_C0
    ReadMode_BSplineContinuity_C1 = ReadMode_BSplineContinuity.ReadMode_BSplineContinuity_C1
    ReadMode_BSplineContinuity_C2 = ReadMode_BSplineContinuity.ReadMode_BSplineContinuity_C2

    class ReadMode_MaxPrecision(IntEnum):
    	ReadMode_MaxPrecision_Preferred = 0
    	ReadMode_MaxPrecision_Forced = 1
    ReadMode_MaxPrecision_Preferred = ReadMode_MaxPrecision.ReadMode_MaxPrecision_Preferred
    ReadMode_MaxPrecision_Forced = ReadMode_MaxPrecision.ReadMode_MaxPrecision_Forced

    class ReadMode_Precision(IntEnum):
    	ReadMode_Precision_File = 0
    	ReadMode_Precision_User = 1
    ReadMode_Precision_File = ReadMode_Precision.ReadMode_Precision_File
    ReadMode_Precision_User = ReadMode_Precision.ReadMode_Precision_User

    class ReadMode_SurfaceCurve(IntEnum):
    	ReadMode_SurfaceCurve_Default = 0
    	ReadMode_SurfaceCurve_2DUse_Preferred = 2
    	ReadMode_SurfaceCurve_2DUse_Forced = - 2
    	ReadMode_SurfaceCurve_3DUse_Preferred = 3
    	ReadMode_SurfaceCurve_3DUse_Forced = - 3
    ReadMode_SurfaceCurve_Default = ReadMode_SurfaceCurve.ReadMode_SurfaceCurve_Default
    ReadMode_SurfaceCurve_2DUse_Preferred = ReadMode_SurfaceCurve.ReadMode_SurfaceCurve_2DUse_Preferred
    ReadMode_SurfaceCurve_2DUse_Forced = ReadMode_SurfaceCurve.ReadMode_SurfaceCurve_2DUse_Forced
    ReadMode_SurfaceCurve_3DUse_Preferred = ReadMode_SurfaceCurve.ReadMode_SurfaceCurve_3DUse_Preferred
    ReadMode_SurfaceCurve_3DUse_Forced = ReadMode_SurfaceCurve.ReadMode_SurfaceCurve_3DUse_Forced

    class WriteMode_BRep(IntEnum):
    	WriteMode_BRep_Faces = 0
    	WriteMode_BRep_BRep = 1
    WriteMode_BRep_Faces = WriteMode_BRep.WriteMode_BRep_Faces
    WriteMode_BRep_BRep = WriteMode_BRep.WriteMode_BRep_BRep

    class WriteMode_ConvertSurface(IntEnum):
    	WriteMode_ConvertSurface_Off = 0
    	WriteMode_ConvertSurface_On = 1
    WriteMode_ConvertSurface_Off = WriteMode_ConvertSurface.WriteMode_ConvertSurface_Off
    WriteMode_ConvertSurface_On = WriteMode_ConvertSurface.WriteMode_ConvertSurface_On

    class WriteMode_PlaneMode(IntEnum):
    	WriteMode_PlaneMode_Plane = 0
    	WriteMode_PlaneMode_BSpline = 1
    WriteMode_PlaneMode_Plane = WriteMode_PlaneMode.WriteMode_PlaneMode_Plane
    WriteMode_PlaneMode_BSpline = WriteMode_PlaneMode.WriteMode_PlaneMode_BSpline

    class WriteMode_PrecisionMode(IntEnum):
    	WriteMode_PrecisionMode_Least = - 1
    	WriteMode_PrecisionMode_Average = 0
    	WriteMode_PrecisionMode_Greatest = 1
    	WriteMode_PrecisionMode_Session = 2
    WriteMode_PrecisionMode_Least = WriteMode_PrecisionMode.WriteMode_PrecisionMode_Least
    WriteMode_PrecisionMode_Average = WriteMode_PrecisionMode.WriteMode_PrecisionMode_Average
    WriteMode_PrecisionMode_Greatest = WriteMode_PrecisionMode.WriteMode_PrecisionMode_Greatest
    WriteMode_PrecisionMode_Session = WriteMode_PrecisionMode.WriteMode_PrecisionMode_Session

    InternalParameters = property(_IGESCAFControl.IGESCAFControl_ConfigurationNode_InternalParameters_get, _IGESCAFControl.IGESCAFControl_ConfigurationNode_InternalParameters_set)

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

        Description
        -----------
        Initializes all fields by default.

        Parameters
        ----------
        theNode: IGESCAFControl_ConfigurationNode

        Return
        -------
        None

        Description
        -----------
        Copies values of all fields @param[in] thenode object to copy.

        """
        _IGESCAFControl.IGESCAFControl_ConfigurationNode_swiginit(self, _IGESCAFControl.new_IGESCAFControl_ConfigurationNode(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _IGESCAFControl.delete_IGESCAFControl_ConfigurationNode

# Register IGESCAFControl_ConfigurationNode in _IGESCAFControl:
_IGESCAFControl.IGESCAFControl_ConfigurationNode_swigregister(IGESCAFControl_ConfigurationNode)
class IGESCAFControl_Provider(OCC.Core.DE.DE_Provider):
    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
        -----------
        Default constructor configure translation process with global configuration.

        Parameters
        ----------
        theNode: DE_ConfigurationNode

        Return
        -------
        None

        Description
        -----------
        Configure translation process @param[in] thenode object to copy.

        """
        _IGESCAFControl.IGESCAFControl_Provider_swiginit(self, _IGESCAFControl.new_IGESCAFControl_Provider(*args))

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

        Parameters
        ----------
        thePath: str
        theDocument: TDocStd_Document
        theWS: XSControl_WorkSession
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

        Description
        -----------
        Reads a cad file, according internal configuration @param[in] thepath path to the import cad file @param[out] thedocument document to save result @param[in] thews current work session @param theprogress[in] progress indicator return true if read operation has ended correctly.

        Parameters
        ----------
        thePath: str
        theDocument: TDocStd_Document
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

        Description
        -----------
        Reads a cad file, according internal configuration @param[in] thepath path to the import cad file @param[out] thedocument document to save result @param theprogress[in] progress indicator return true if read operation has ended correctly.

        Parameters
        ----------
        thePath: str
        theShape: TopoDS_Shape
        theWS: XSControl_WorkSession
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

        Description
        -----------
        Reads a cad file, according internal configuration @param[in] thepath path to the import cad file @param[out] theshape shape to save result @param[in] thews current work session @param theprogress[in] progress indicator return true if read operation has ended correctly.

        Parameters
        ----------
        thePath: str
        theShape: TopoDS_Shape
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

        Description
        -----------
        Reads a cad file, according internal configuration @param[in] thepath path to the import cad file @param[out] theshape shape to save result @param theprogress[in] progress indicator return true if read operation has ended correctly.

        """
        return _IGESCAFControl.IGESCAFControl_Provider_Read(self, *args)

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

        Parameters
        ----------
        thePath: str
        theDocument: TDocStd_Document
        theWS: XSControl_WorkSession
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

        Description
        -----------
        Writes a cad file, according internal configuration @param[in] thepath path to the export cad file @param[out] thedocument document to export @param[in] thews current work session @param theprogress[in] progress indicator return true if write operation has ended correctly.

        Parameters
        ----------
        thePath: str
        theDocument: TDocStd_Document
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

        Description
        -----------
        Writes a cad file, according internal configuration @param[in] thepath path to the export cad file @param[out] thedocument document to export @param theprogress[in] progress indicator return true if write operation has ended correctly.

        Parameters
        ----------
        thePath: str
        theShape: TopoDS_Shape
        theWS: XSControl_WorkSession
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

        Description
        -----------
        Writes a cad file, according internal configuration @param[in] thepath path to the export cad file @param[out] theshape shape to export @param[in] thews current work session @param theprogress[in] progress indicator return true if write operation has ended correctly.

        Parameters
        ----------
        thePath: str
        theShape: TopoDS_Shape
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

        Description
        -----------
        Writes a cad file, according internal configuration @param[in] thepath path to the export cad file @param[out] theshape shape to export @param theprogress[in] progress indicator return true if write operation has ended correctly.

        """
        return _IGESCAFControl.IGESCAFControl_Provider_Write(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _IGESCAFControl.delete_IGESCAFControl_Provider

# Register IGESCAFControl_Provider in _IGESCAFControl:
_IGESCAFControl.IGESCAFControl_Provider_swigregister(IGESCAFControl_Provider)
class IGESCAFControl_Reader(OCC.Core.IGESControl.IGESControl_Reader):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Creates a reader with an empty iges model and sets colormode, layermode and namemode to standard_true.

        Parameters
        ----------
        theWS: XSControl_WorkSession
        FromScratch: bool (optional, default to Standard_True)

        Return
        -------
        None

        Description
        -----------
        Creates a reader tool and attaches it to an already existing session clears the session if it was not yet set for iges.

        """
        _IGESCAFControl.IGESCAFControl_Reader_swiginit(self, _IGESCAFControl.new_IGESCAFControl_Reader(*args))

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

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

        """
        return _IGESCAFControl.IGESCAFControl_Reader_GetColorMode(self, *args)

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

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

        """
        return _IGESCAFControl.IGESCAFControl_Reader_GetLayerMode(self, *args)

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

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

        """
        return _IGESCAFControl.IGESCAFControl_Reader_GetNameMode(self, *args)

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

        Parameters
        ----------
        theFileName: str
        theDoc: TDocStd_Document
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

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

        Parameters
        ----------
        theFileName: str
        theDoc: TDocStd_Document
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

        Description
        -----------
        Translate iges file given by filename into the document return true if succeeded, and false in case of fail.

        """
        return _IGESCAFControl.IGESCAFControl_Reader_Perform(self, *args)

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

        Parameters
        ----------
        theMode: bool

        Return
        -------
        None

        Description
        -----------
        Set colormode for indicate read colors or not.

        """
        return _IGESCAFControl.IGESCAFControl_Reader_SetColorMode(self, *args)

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

        Parameters
        ----------
        theMode: bool

        Return
        -------
        None

        Description
        -----------
        Set layermode for indicate read layers or not.

        """
        return _IGESCAFControl.IGESCAFControl_Reader_SetLayerMode(self, *args)

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

        Parameters
        ----------
        theMode: bool

        Return
        -------
        None

        Description
        -----------
        Set namemode for indicate read name or not.

        """
        return _IGESCAFControl.IGESCAFControl_Reader_SetNameMode(self, *args)

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

        Parameters
        ----------
        theDoc: TDocStd_Document
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

        Description
        -----------
        Translates currently loaded iges file into the document returns true if succeeded, and false in case of fail.

        """
        return _IGESCAFControl.IGESCAFControl_Reader_Transfer(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _IGESCAFControl.delete_IGESCAFControl_Reader

# Register IGESCAFControl_Reader in _IGESCAFControl:
_IGESCAFControl.IGESCAFControl_Reader_swigregister(IGESCAFControl_Reader)
class IGESCAFControl_Writer(OCC.Core.IGESControl.IGESControl_Writer):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Creates a writer with an empty iges model and sets colormode, layermode and namemode to standard_true.

        Parameters
        ----------
        WS: XSControl_WorkSession
        scratch: bool (optional, default to Standard_True)

        Return
        -------
        None

        Description
        -----------
        Creates a reader tool and attaches it to an already existing session clears the session if it was not yet set for iges.

        """
        _IGESCAFControl.IGESCAFControl_Writer_swiginit(self, _IGESCAFControl.new_IGESCAFControl_Writer(*args))

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

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

        """
        return _IGESCAFControl.IGESCAFControl_Writer_GetColorMode(self, *args)

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

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

        """
        return _IGESCAFControl.IGESCAFControl_Writer_GetLayerMode(self, *args)

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

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

        """
        return _IGESCAFControl.IGESCAFControl_Writer_GetNameMode(self, *args)

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

        Parameters
        ----------
        doc: TDocStd_Document
        filename: str
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

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

        Parameters
        ----------
        doc: TDocStd_Document
        filename: str
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

        Description
        -----------
        Transfers a document and writes it to a iges file returns true if translation is ok.

        """
        return _IGESCAFControl.IGESCAFControl_Writer_Perform(self, *args)

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

        Parameters
        ----------
        colormode: bool

        Return
        -------
        None

        Description
        -----------
        Set colormode for indicate write colors or not.

        """
        return _IGESCAFControl.IGESCAFControl_Writer_SetColorMode(self, *args)

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

        Parameters
        ----------
        layermode: bool

        Return
        -------
        None

        Description
        -----------
        Set layermode for indicate write layers or not.

        """
        return _IGESCAFControl.IGESCAFControl_Writer_SetLayerMode(self, *args)

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

        Parameters
        ----------
        namemode: bool

        Return
        -------
        None

        Description
        -----------
        Set namemode for indicate write name or not.

        """
        return _IGESCAFControl.IGESCAFControl_Writer_SetNameMode(self, *args)

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

        Parameters
        ----------
        doc: TDocStd_Document
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

        Description
        -----------
        Transfers a document to a iges model returns true if translation is ok.

        Parameters
        ----------
        labels: TDF_LabelSequence
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

        Description
        -----------
        Transfers labels to a iges model returns true if translation is ok.

        Parameters
        ----------
        label: TDF_Label
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

        Description
        -----------
        Transfers label to a iges model returns true if translation is ok.

        """
        return _IGESCAFControl.IGESCAFControl_Writer_Transfer(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _IGESCAFControl.delete_IGESCAFControl_Writer

# Register IGESCAFControl_Writer in _IGESCAFControl:
_IGESCAFControl.IGESCAFControl_Writer_swigregister(IGESCAFControl_Writer)



@deprecated
def igescafcontrol_DecodeColor(*args):
	return igescafcontrol.DecodeColor(*args)

@deprecated
def igescafcontrol_EncodeColor(*args):
	return igescafcontrol.EncodeColor(*args)



