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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _STEPControl:
_STEPControl.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 _STEPControl.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.Transfer
import OCC.Core.Message
import OCC.Core.TCollection
import OCC.Core.OSD
import OCC.Core.TColStd
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.StepRepr
import OCC.Core.StepData
import OCC.Core.Resource
import OCC.Core.StepBasic
import OCC.Core.StepGeom
import OCC.Core.StepShape
import OCC.Core.TopTools
import OCC.Core.XSControl
import OCC.Core.IFSelect
import OCC.Core.Geom
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.Geom2d

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

STEPControl_AsIs = _STEPControl.STEPControl_AsIs
STEPControl_ManifoldSolidBrep = _STEPControl.STEPControl_ManifoldSolidBrep
STEPControl_BrepWithVoids = _STEPControl.STEPControl_BrepWithVoids
STEPControl_FacetedBrep = _STEPControl.STEPControl_FacetedBrep
STEPControl_FacetedBrepAndBrepWithVoids = _STEPControl.STEPControl_FacetedBrepAndBrepWithVoids
STEPControl_ShellBasedSurfaceModel = _STEPControl.STEPControl_ShellBasedSurfaceModel
STEPControl_GeometricCurveSet = _STEPControl.STEPControl_GeometricCurveSet
STEPControl_Hybrid = _STEPControl.STEPControl_Hybrid


class STEPControl_StepModelType(IntEnum):
	STEPControl_AsIs = 0
	STEPControl_ManifoldSolidBrep = 1
	STEPControl_BrepWithVoids = 2
	STEPControl_FacetedBrep = 3
	STEPControl_FacetedBrepAndBrepWithVoids = 4
	STEPControl_ShellBasedSurfaceModel = 5
	STEPControl_GeometricCurveSet = 6
	STEPControl_Hybrid = 7
STEPControl_AsIs = STEPControl_StepModelType.STEPControl_AsIs
STEPControl_ManifoldSolidBrep = STEPControl_StepModelType.STEPControl_ManifoldSolidBrep
STEPControl_BrepWithVoids = STEPControl_StepModelType.STEPControl_BrepWithVoids
STEPControl_FacetedBrep = STEPControl_StepModelType.STEPControl_FacetedBrep
STEPControl_FacetedBrepAndBrepWithVoids = STEPControl_StepModelType.STEPControl_FacetedBrepAndBrepWithVoids
STEPControl_ShellBasedSurfaceModel = STEPControl_StepModelType.STEPControl_ShellBasedSurfaceModel
STEPControl_GeometricCurveSet = STEPControl_StepModelType.STEPControl_GeometricCurveSet
STEPControl_Hybrid = STEPControl_StepModelType.STEPControl_Hybrid


def Handle_STEPControl_ActorRead_Create():
    return _STEPControl.Handle_STEPControl_ActorRead_Create()

def Handle_STEPControl_ActorRead_DownCast(t):
    return _STEPControl.Handle_STEPControl_ActorRead_DownCast(t)

def Handle_STEPControl_ActorRead_IsNull(t):
    return _STEPControl.Handle_STEPControl_ActorRead_IsNull(t)

def Handle_STEPControl_ActorWrite_Create():
    return _STEPControl.Handle_STEPControl_ActorWrite_Create()

def Handle_STEPControl_ActorWrite_DownCast(t):
    return _STEPControl.Handle_STEPControl_ActorWrite_DownCast(t)

def Handle_STEPControl_ActorWrite_IsNull(t):
    return _STEPControl.Handle_STEPControl_ActorWrite_IsNull(t)

def Handle_STEPControl_Controller_Create():
    return _STEPControl.Handle_STEPControl_Controller_Create()

def Handle_STEPControl_Controller_DownCast(t):
    return _STEPControl.Handle_STEPControl_Controller_DownCast(t)

def Handle_STEPControl_Controller_IsNull(t):
    return _STEPControl.Handle_STEPControl_Controller_IsNull(t)
class STEPControl_ActorRead(OCC.Core.Transfer.Transfer_ActorOfTransientProcess):
    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
        -----------
        No available documentation.

        """
        _STEPControl.STEPControl_ActorRead_swiginit(self, _STEPControl.new_STEPControl_ActorRead(*args))

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

        Parameters
        ----------
        SRR: StepRepr_RepresentationRelationship
        TP: Transfer_TransientProcess
        Trsf: gp_Trsf

        Return
        -------
        bool

        Description
        -----------
        Computes transformation defined by given representation_relationship_with_transformation.

        """
        return _STEPControl.STEPControl_ActorRead_ComputeSRRWT(self, *args)

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

        Parameters
        ----------
        Origin: StepGeom_Axis2Placement3d
        Target: StepGeom_Axis2Placement3d
        OrigContext: StepRepr_Representation
        TargContext: StepRepr_Representation
        TP: Transfer_TransientProcess
        Trsf: gp_Trsf

        Return
        -------
        bool

        Description
        -----------
        Computes transformation defined by two axis placements (in mapped_item or item_defined_transformation) taking into account their representation contexts (i.e. units, which may be different) returns true if transformation is computed and is not an identity.

        """
        return _STEPControl.STEPControl_ActorRead_ComputeTransformation(self, *args)

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

        Parameters
        ----------
        rep: StepRepr_Representation
        TP: Transfer_TransientProcess

        Return
        -------
        None

        Description
        -----------
        Set units and tolerances context by given shaperepresentation.

        """
        return _STEPControl.STEPControl_ActorRead_PrepareUnits(self, *args)

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

        Description
        -----------
        Reset units and tolerances context to default (mm, radians, read.precision.val, etc.).

        """
        return _STEPControl.STEPControl_ActorRead_ResetUnits(self, *args)

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

        Parameters
        ----------
        start: Standard_Transient
        TP: Transfer_TransientProcess
        isManifold: bool (optional, default to Standard_True)
        theUseTrsf: bool (optional, default to Standard_False)
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        opencascade::handle<Transfer_Binder>

        Description
        -----------
        Theusetrsf - special flag for using axis2placement from shaperepresentation for transform root shape.

        """
        return _STEPControl.STEPControl_ActorRead_TransferShape(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _STEPControl.delete_STEPControl_ActorRead

# Register STEPControl_ActorRead in _STEPControl:
_STEPControl.STEPControl_ActorRead_swigregister(STEPControl_ActorRead)
class STEPControl_ActorWrite(OCC.Core.Transfer.Transfer_ActorOfFinderProcess):
    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
        -----------
        No available documentation.

        """
        _STEPControl.STEPControl_ActorWrite_swiginit(self, _STEPControl.new_STEPControl_ActorWrite(*args))

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

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

        """
        return _STEPControl.STEPControl_ActorWrite_GroupMode(self, *args)

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

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

        Return
        -------
        bool

        Description
        -----------
        Customizable method to check whether shape s should be written as assembly or not default implementation uses flag groupmode and analyses the shape itself note: this method can modify shape.

        """
        return _STEPControl.STEPControl_ActorWrite_IsAssembly(self, *args)

    def Mode(self, *args):
        r"""
        Return
        -------
        STEPControl_StepModelType

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

        """
        return _STEPControl.STEPControl_ActorWrite_Mode(self, *args)

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

        Parameters
        ----------
        mode: int

        Return
        -------
        None

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

        """
        return _STEPControl.STEPControl_ActorWrite_SetGroupMode(self, *args)

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

        Parameters
        ----------
        M: STEPControl_StepModelType

        Return
        -------
        None

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

        """
        return _STEPControl.STEPControl_ActorWrite_SetMode(self, *args)

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

        Parameters
        ----------
        Tol: float

        Return
        -------
        None

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

        """
        return _STEPControl.STEPControl_ActorWrite_SetTolerance(self, *args)

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

        Parameters
        ----------
        start: Transfer_Finder
        SDR: StepShape_ShapeDefinitionRepresentation
        FP: Transfer_FinderProcess
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        opencascade::handle<Transfer_Binder>

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

        """
        return _STEPControl.STEPControl_ActorWrite_TransferCompound(self, *args)

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

        Parameters
        ----------
        start: Transfer_Finder
        SDR: StepShape_ShapeDefinitionRepresentation
        FP: Transfer_FinderProcess
        shapeGroup: TopTools_HSequenceOfShape (optional, default to NULL)
        isManifold: bool (optional, default to Standard_True)
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        opencascade::handle<Transfer_Binder>

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

        """
        return _STEPControl.STEPControl_ActorWrite_TransferShape(self, *args)

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

        Parameters
        ----------
        start: Transfer_Finder
        SDR: StepShape_ShapeDefinitionRepresentation
        AX1: StepGeom_Axis2Placement3d
        FP: Transfer_FinderProcess
        shapeGroup: TopTools_HSequenceOfShape (optional, default to NULL)
        isManifold: bool (optional, default to Standard_True)
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        opencascade::handle<Transfer_Binder>

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

        """
        return _STEPControl.STEPControl_ActorWrite_TransferSubShape(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _STEPControl.delete_STEPControl_ActorWrite

# Register STEPControl_ActorWrite in _STEPControl:
_STEPControl.STEPControl_ActorWrite_swigregister(STEPControl_ActorWrite)
class STEPControl_Controller(OCC.Core.XSControl.XSControl_Controller):
    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 the use of step norm (the first time) and returns a controller.

        """
        _STEPControl.STEPControl_Controller_swiginit(self, _STEPControl.new_STEPControl_Controller(*args))

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

        Description
        -----------
        Standard initialisation. it creates a controller for step and records it to various names, available to select it later returns true when done, false if could not be done.

        """
        return _STEPControl.STEPControl_Controller_Init(*args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _STEPControl.delete_STEPControl_Controller

# Register STEPControl_Controller in _STEPControl:
_STEPControl.STEPControl_Controller_swigregister(STEPControl_Controller)
class STEPControl_Reader(OCC.Core.XSControl.XSControl_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 object with an empty step model.

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

        Return
        -------
        None

        Description
        -----------
        Creates a reader for step from an already existing session clears the session if it was not yet set for step.

        """
        _STEPControl.STEPControl_Reader_swiginit(self, _STEPControl.new_STEPControl_Reader(*args))

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

        Parameters
        ----------
        theUnitLengthNames: TColStd_SequenceOfAsciiString
        theUnitAngleNames: TColStd_SequenceOfAsciiString
        theUnitSolidAngleNames: TColStd_SequenceOfAsciiString

        Return
        -------
        None

        Description
        -----------
        Returns sequence of all unit names for shape representations found in file.

        """
        return _STEPControl.STEPControl_Reader_FileUnits(self, *args)

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

        Parameters
        ----------
        theLengthUnit: float

        Return
        -------
        None

        Description
        -----------
        Sets system length unit used by transfer process.

        """
        return _STEPControl.STEPControl_Reader_SetSystemLengthUnit(self, *args)

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

        Description
        -----------
        Returns the model as a stepmodel. it can then be consulted (header, product).

        """
        return _STEPControl.STEPControl_Reader_StepModel(self, *args)

    def SystemLengthUnit(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns system length unit used by transfer process.

        """
        return _STEPControl.STEPControl_Reader_SystemLengthUnit(self, *args)

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

        Parameters
        ----------
        num: int (optional, default to 1)
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        bool

        Description
        -----------
        Transfers a root given its rank in the list of candidate roots default is the first one returns true if a shape has resulted, false else same as inherited transferoneroot, kept for compatibility.

        """
        return _STEPControl.STEPControl_Reader_TransferRoot(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _STEPControl.delete_STEPControl_Reader

# Register STEPControl_Reader in _STEPControl:
_STEPControl.STEPControl_Reader_swigregister(STEPControl_Reader)
class STEPControl_Writer(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
        -----------
        Creates a writer from scratch.

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

        Return
        -------
        None

        Description
        -----------
        Creates a writer from an already existing session if <scratch> is true (d), clears already recorded data.

        """
        _STEPControl.STEPControl_Writer_swiginit(self, _STEPControl.new_STEPControl_Writer(*args))

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

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

        Return
        -------
        opencascade::handle<StepData_StepModel>

        Description
        -----------
        Returns the produced model. produces a new one if not yet done or if <newone> is true this method allows for instance to edit product or header data before writing.

        """
        return _STEPControl.STEPControl_Writer_Model(self, *args)

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

        Parameters
        ----------
        what: int
        mode: int (optional, default to 0)

        Return
        -------
        None

        Description
        -----------
        Displays the statistics for the last translation. what defines the kind of statistics that are displayed: - 0 gives general statistics (number of translated roots, number of warnings, number of fail messages), - 1 gives root results, - 2 gives statistics for all checked entities, - 3 gives the list of translated entities, - 4 gives warning and fail messages, - 5 gives fail messages only. mode is used according to the use of what. if what is 0, mode is ignored. if what is 1, 2 or 3, mode defines the following: - 0 lists the numbers of step entities in a step model, - 1 gives the number, identifier, type and result type for each step entity and/or its status (fail, warning, etc.), - 2 gives maximum information for each step entity (i.e. checks), - 3 gives the number of entities by the type of a step entity, - 4 gives the number of of step entities per result type and/or status, - 5 gives the number of pairs (step or result type and status), - 6 gives the number of pairs (step or result type and status) and the list of entity numbers in the step model.

        """
        return _STEPControl.STEPControl_Writer_PrintStatsTransfer(self, *args)

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

        Parameters
        ----------
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Sets a length-measure value that will be written to uncertainty-measure-with-unit when the next shape is translated.

        """
        return _STEPControl.STEPControl_Writer_SetTolerance(self, *args)

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

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

        Return
        -------
        None

        Description
        -----------
        Sets a specific session to <self>.

        """
        return _STEPControl.STEPControl_Writer_SetWS(self, *args)

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

        Parameters
        ----------
        sh: TopoDS_Shape
        mode: STEPControl_StepModelType
        compgraph: bool (optional, default to Standard_True)
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        IFSelect_ReturnStatus

        Description
        -----------
        Translates shape sh to a step entity. mode defines the step entity type to be output: - stepcontrolstd_asis translates a shape to its highest possible step representation. - stepcontrolstd_manifoldsolidbrep translates a shape to a step manifold_solid_brep or brep_with_voids entity. - stepcontrolstd_facetedbrep translates a shape into a step faceted_brep entity. - stepcontrolstd_shellbasedsurfacemodel translates a shape into a step shell_based_surface_model entity. - stepcontrolstd_geometriccurveset translates a shape into a step geometric_curve_set entity.

        """
        return _STEPControl.STEPControl_Writer_Transfer(self, *args)

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

        Description
        -----------
        Unsets the tolerance formerly forced by settolerance.

        """
        return _STEPControl.STEPControl_Writer_UnsetTolerance(self, *args)

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

        Description
        -----------
        Returns the session used in <self>.

        """
        return _STEPControl.STEPControl_Writer_WS(self, *args)

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

        Parameters
        ----------
        theFileName: str

        Return
        -------
        IFSelect_ReturnStatus

        Description
        -----------
        Writes a step model in the file identified by filename.

        """
        return _STEPControl.STEPControl_Writer_Write(self, *args)

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

        Parameters
        ----------
        theOStream: std::ostream

        Return
        -------
        IFSelect_ReturnStatus

        Description
        -----------
        Writes a step model in the std::ostream.

        """
        return _STEPControl.STEPControl_Writer_WriteStream(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _STEPControl.delete_STEPControl_Writer

# Register STEPControl_Writer in _STEPControl:
_STEPControl.STEPControl_Writer_swigregister(STEPControl_Writer)



@deprecated
def STEPControl_Controller_Init(*args):
	return STEPControl_Controller.Init(*args)



