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

"""
ShapeFix module, see official documentation at
https://www.opencascade.com/doc/occt-7.4.0/refman/html/package_shapefix.html
"""

from sys import version_info as _swig_python_version_info
if _swig_python_version_info < (2, 7, 0):
    raise RuntimeError("Python 2.7 or later required")

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _ShapeFix
else:
    import _ShapeFix

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

_swig_new_instance_method = _ShapeFix.SWIG_PyInstanceMethod_New
_swig_new_static_method = _ShapeFix.SWIG_PyStaticMethod_New

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


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

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _ShapeFix.delete_SwigPyIterator
    value = _swig_new_instance_method(_ShapeFix.SwigPyIterator_value)
    incr = _swig_new_instance_method(_ShapeFix.SwigPyIterator_incr)
    decr = _swig_new_instance_method(_ShapeFix.SwigPyIterator_decr)
    distance = _swig_new_instance_method(_ShapeFix.SwigPyIterator_distance)
    equal = _swig_new_instance_method(_ShapeFix.SwigPyIterator_equal)
    copy = _swig_new_instance_method(_ShapeFix.SwigPyIterator_copy)
    next = _swig_new_instance_method(_ShapeFix.SwigPyIterator_next)
    __next__ = _swig_new_instance_method(_ShapeFix.SwigPyIterator___next__)
    previous = _swig_new_instance_method(_ShapeFix.SwigPyIterator_previous)
    advance = _swig_new_instance_method(_ShapeFix.SwigPyIterator_advance)
    __eq__ = _swig_new_instance_method(_ShapeFix.SwigPyIterator___eq__)
    __ne__ = _swig_new_instance_method(_ShapeFix.SwigPyIterator___ne__)
    __iadd__ = _swig_new_instance_method(_ShapeFix.SwigPyIterator___iadd__)
    __isub__ = _swig_new_instance_method(_ShapeFix.SwigPyIterator___isub__)
    __add__ = _swig_new_instance_method(_ShapeFix.SwigPyIterator___add__)
    __sub__ = _swig_new_instance_method(_ShapeFix.SwigPyIterator___sub__)
    def __iter__(self):
        return self

# Register SwigPyIterator in _ShapeFix:
_ShapeFix.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


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.TopoDS
import OCC.Core.Message
import OCC.Core.TopAbs
import OCC.Core.TopLoc
import OCC.Core.gp
import OCC.Core.ShapeBuild
import OCC.Core.Geom
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.Geom2d
import OCC.Core.BRepTools
import OCC.Core.Bnd
import OCC.Core.BVH
import OCC.Core.TopTools
import OCC.Core.BRep
import OCC.Core.Poly
import OCC.Core.TShort
import OCC.Core.ShapeExtend
import OCC.Core.TColGeom
import OCC.Core.ShapeAnalysis
import OCC.Core.Adaptor3d
import OCC.Core.Adaptor2d
import OCC.Core.math
import OCC.Core.GeomAdaptor
import OCC.Core.IntRes2d
import OCC.Core.ShapeConstruct
import OCC.Core.BRepBuilderAPI
Handle_ShapeFix_Edge_Create = _ShapeFix.Handle_ShapeFix_Edge_Create
Handle_ShapeFix_Edge_DownCast = _ShapeFix.Handle_ShapeFix_Edge_DownCast
Handle_ShapeFix_Edge_IsNull = _ShapeFix.Handle_ShapeFix_Edge_IsNull
Handle_ShapeFix_EdgeProjAux_Create = _ShapeFix.Handle_ShapeFix_EdgeProjAux_Create
Handle_ShapeFix_EdgeProjAux_DownCast = _ShapeFix.Handle_ShapeFix_EdgeProjAux_DownCast
Handle_ShapeFix_EdgeProjAux_IsNull = _ShapeFix.Handle_ShapeFix_EdgeProjAux_IsNull
Handle_ShapeFix_Root_Create = _ShapeFix.Handle_ShapeFix_Root_Create
Handle_ShapeFix_Root_DownCast = _ShapeFix.Handle_ShapeFix_Root_DownCast
Handle_ShapeFix_Root_IsNull = _ShapeFix.Handle_ShapeFix_Root_IsNull
Handle_ShapeFix_ComposeShell_Create = _ShapeFix.Handle_ShapeFix_ComposeShell_Create
Handle_ShapeFix_ComposeShell_DownCast = _ShapeFix.Handle_ShapeFix_ComposeShell_DownCast
Handle_ShapeFix_ComposeShell_IsNull = _ShapeFix.Handle_ShapeFix_ComposeShell_IsNull
Handle_ShapeFix_Face_Create = _ShapeFix.Handle_ShapeFix_Face_Create
Handle_ShapeFix_Face_DownCast = _ShapeFix.Handle_ShapeFix_Face_DownCast
Handle_ShapeFix_Face_IsNull = _ShapeFix.Handle_ShapeFix_Face_IsNull
Handle_ShapeFix_FixSmallFace_Create = _ShapeFix.Handle_ShapeFix_FixSmallFace_Create
Handle_ShapeFix_FixSmallFace_DownCast = _ShapeFix.Handle_ShapeFix_FixSmallFace_DownCast
Handle_ShapeFix_FixSmallFace_IsNull = _ShapeFix.Handle_ShapeFix_FixSmallFace_IsNull
Handle_ShapeFix_FixSmallSolid_Create = _ShapeFix.Handle_ShapeFix_FixSmallSolid_Create
Handle_ShapeFix_FixSmallSolid_DownCast = _ShapeFix.Handle_ShapeFix_FixSmallSolid_DownCast
Handle_ShapeFix_FixSmallSolid_IsNull = _ShapeFix.Handle_ShapeFix_FixSmallSolid_IsNull
Handle_ShapeFix_Shape_Create = _ShapeFix.Handle_ShapeFix_Shape_Create
Handle_ShapeFix_Shape_DownCast = _ShapeFix.Handle_ShapeFix_Shape_DownCast
Handle_ShapeFix_Shape_IsNull = _ShapeFix.Handle_ShapeFix_Shape_IsNull
Handle_ShapeFix_Shell_Create = _ShapeFix.Handle_ShapeFix_Shell_Create
Handle_ShapeFix_Shell_DownCast = _ShapeFix.Handle_ShapeFix_Shell_DownCast
Handle_ShapeFix_Shell_IsNull = _ShapeFix.Handle_ShapeFix_Shell_IsNull
Handle_ShapeFix_Solid_Create = _ShapeFix.Handle_ShapeFix_Solid_Create
Handle_ShapeFix_Solid_DownCast = _ShapeFix.Handle_ShapeFix_Solid_DownCast
Handle_ShapeFix_Solid_IsNull = _ShapeFix.Handle_ShapeFix_Solid_IsNull
Handle_ShapeFix_SplitCommonVertex_Create = _ShapeFix.Handle_ShapeFix_SplitCommonVertex_Create
Handle_ShapeFix_SplitCommonVertex_DownCast = _ShapeFix.Handle_ShapeFix_SplitCommonVertex_DownCast
Handle_ShapeFix_SplitCommonVertex_IsNull = _ShapeFix.Handle_ShapeFix_SplitCommonVertex_IsNull
Handle_ShapeFix_Wire_Create = _ShapeFix.Handle_ShapeFix_Wire_Create
Handle_ShapeFix_Wire_DownCast = _ShapeFix.Handle_ShapeFix_Wire_DownCast
Handle_ShapeFix_Wire_IsNull = _ShapeFix.Handle_ShapeFix_Wire_IsNull
Handle_ShapeFix_Wireframe_Create = _ShapeFix.Handle_ShapeFix_Wireframe_Create
Handle_ShapeFix_Wireframe_DownCast = _ShapeFix.Handle_ShapeFix_Wireframe_DownCast
Handle_ShapeFix_Wireframe_IsNull = _ShapeFix.Handle_ShapeFix_Wireframe_IsNull
class ShapeFix_DataMapOfShapeBox2d(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    begin = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d_begin)
    end = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d_end)
    cbegin = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d_cbegin)
    cend = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d_cend)

    def __init__(self, *args):
        _ShapeFix.ShapeFix_DataMapOfShapeBox2d_swiginit(self, _ShapeFix.new_ShapeFix_DataMapOfShapeBox2d(*args))
    Exchange = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d_Exchange)
    Assign = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d_Assign)
    Set = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d_Set)
    ReSize = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d_ReSize)
    Bind = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d_Bind)
    Bound = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d_Bound)
    IsBound = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d_IsBound)
    UnBind = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d_UnBind)
    Seek = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d_Seek)
    Find = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d_Find)
    ChangeSeek = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d_ChangeSeek)
    ChangeFind = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d_ChangeFind)
    __call__ = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d___call__)
    Clear = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d_Clear)
    __swig_destroy__ = _ShapeFix.delete_ShapeFix_DataMapOfShapeBox2d
    Size = _swig_new_instance_method(_ShapeFix.ShapeFix_DataMapOfShapeBox2d_Size)

# Register ShapeFix_DataMapOfShapeBox2d in _ShapeFix:
_ShapeFix.ShapeFix_DataMapOfShapeBox2d_swigregister(ShapeFix_DataMapOfShapeBox2d)

class ShapeFix_SequenceOfWireSegment(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    begin = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_begin)
    end = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_end)
    cbegin = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_cbegin)
    cend = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_cend)

    def __init__(self, *args):
        _ShapeFix.ShapeFix_SequenceOfWireSegment_swiginit(self, _ShapeFix.new_ShapeFix_SequenceOfWireSegment(*args))
    Size = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_Size)
    Length = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_Length)
    Lower = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_Lower)
    Upper = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_Upper)
    IsEmpty = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_IsEmpty)
    Reverse = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_Reverse)
    Exchange = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_Exchange)
    delNode = _swig_new_static_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_delNode)
    Clear = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_Clear)
    Assign = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_Assign)
    Set = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_Set)
    Remove = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_Remove)
    Append = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_Append)
    Prepend = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_Prepend)
    InsertBefore = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_InsertBefore)
    InsertAfter = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_InsertAfter)
    Split = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_Split)
    First = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_First)
    ChangeFirst = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_ChangeFirst)
    Last = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_Last)
    ChangeLast = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_ChangeLast)
    Value = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_Value)
    ChangeValue = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_ChangeValue)
    __call__ = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment___call__)
    SetValue = _swig_new_instance_method(_ShapeFix.ShapeFix_SequenceOfWireSegment_SetValue)
    __swig_destroy__ = _ShapeFix.delete_ShapeFix_SequenceOfWireSegment

# Register ShapeFix_SequenceOfWireSegment in _ShapeFix:
_ShapeFix.ShapeFix_SequenceOfWireSegment_swigregister(ShapeFix_SequenceOfWireSegment)
ShapeFix_SequenceOfWireSegment_delNode = _ShapeFix.ShapeFix_SequenceOfWireSegment_delNode

class shapefix(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    EncodeRegularity = _swig_new_static_method(_ShapeFix.shapefix_EncodeRegularity)
    FixVertexPosition = _swig_new_static_method(_ShapeFix.shapefix_FixVertexPosition)
    LeastEdgeSize = _swig_new_static_method(_ShapeFix.shapefix_LeastEdgeSize)
    RemoveSmallEdges = _swig_new_static_method(_ShapeFix.shapefix_RemoveSmallEdges)
    SameParameter = _swig_new_static_method(_ShapeFix.shapefix_SameParameter)

    __repr__ = _dumps_object


    def __init__(self):
        _ShapeFix.shapefix_swiginit(self, _ShapeFix.new_shapefix())
    __swig_destroy__ = _ShapeFix.delete_shapefix

# Register shapefix in _ShapeFix:
_ShapeFix.shapefix_swigregister(shapefix)
shapefix_EncodeRegularity = _ShapeFix.shapefix_EncodeRegularity
shapefix_FixVertexPosition = _ShapeFix.shapefix_FixVertexPosition
shapefix_LeastEdgeSize = _ShapeFix.shapefix_LeastEdgeSize
shapefix_RemoveSmallEdges = _ShapeFix.shapefix_RemoveSmallEdges
shapefix_SameParameter = _ShapeFix.shapefix_SameParameter

class ShapeFix_Edge(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    FixAddCurve3d = _swig_new_instance_method(_ShapeFix.ShapeFix_Edge_FixAddCurve3d)
    FixAddPCurve = _swig_new_instance_method(_ShapeFix.ShapeFix_Edge_FixAddPCurve)
    FixRemoveCurve3d = _swig_new_instance_method(_ShapeFix.ShapeFix_Edge_FixRemoveCurve3d)
    FixRemovePCurve = _swig_new_instance_method(_ShapeFix.ShapeFix_Edge_FixRemovePCurve)
    FixReversed2d = _swig_new_instance_method(_ShapeFix.ShapeFix_Edge_FixReversed2d)
    FixSameParameter = _swig_new_instance_method(_ShapeFix.ShapeFix_Edge_FixSameParameter)
    FixVertexTolerance = _swig_new_instance_method(_ShapeFix.ShapeFix_Edge_FixVertexTolerance)
    Projector = _swig_new_instance_method(_ShapeFix.ShapeFix_Edge_Projector)
    SetContext = _swig_new_instance_method(_ShapeFix.ShapeFix_Edge_SetContext)

    def __init__(self, *args):
        r"""
        * Empty constructor
        	:rtype: None
        """
        _ShapeFix.ShapeFix_Edge_swiginit(self, _ShapeFix.new_ShapeFix_Edge(*args))
    Status = _swig_new_instance_method(_ShapeFix.ShapeFix_Edge_Status)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_Edge

# Register ShapeFix_Edge in _ShapeFix:
_ShapeFix.ShapeFix_Edge_swigregister(ShapeFix_Edge)

class ShapeFix_EdgeConnect(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Add = _swig_new_instance_method(_ShapeFix.ShapeFix_EdgeConnect_Add)
    Build = _swig_new_instance_method(_ShapeFix.ShapeFix_EdgeConnect_Build)
    Clear = _swig_new_instance_method(_ShapeFix.ShapeFix_EdgeConnect_Clear)

    def __init__(self, *args):
        r""":rtype: None"""
        _ShapeFix.ShapeFix_EdgeConnect_swiginit(self, _ShapeFix.new_ShapeFix_EdgeConnect(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_EdgeConnect

# Register ShapeFix_EdgeConnect in _ShapeFix:
_ShapeFix.ShapeFix_EdgeConnect_swigregister(ShapeFix_EdgeConnect)

class ShapeFix_EdgeProjAux(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Compute = _swig_new_instance_method(_ShapeFix.ShapeFix_EdgeProjAux_Compute)
    FirstParam = _swig_new_instance_method(_ShapeFix.ShapeFix_EdgeProjAux_FirstParam)
    Init = _swig_new_instance_method(_ShapeFix.ShapeFix_EdgeProjAux_Init)
    IsFirstDone = _swig_new_instance_method(_ShapeFix.ShapeFix_EdgeProjAux_IsFirstDone)
    IsIso = _swig_new_instance_method(_ShapeFix.ShapeFix_EdgeProjAux_IsIso)
    IsLastDone = _swig_new_instance_method(_ShapeFix.ShapeFix_EdgeProjAux_IsLastDone)
    LastParam = _swig_new_instance_method(_ShapeFix.ShapeFix_EdgeProjAux_LastParam)

    def __init__(self, *args):
        r"""
        :rtype: None:param F:
        	:type F: TopoDS_Face
        	:param E:
        	:type E: TopoDS_Edge
        	:rtype: None
        """
        _ShapeFix.ShapeFix_EdgeProjAux_swiginit(self, _ShapeFix.new_ShapeFix_EdgeProjAux(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_EdgeProjAux

# Register ShapeFix_EdgeProjAux in _ShapeFix:
_ShapeFix.ShapeFix_EdgeProjAux_swigregister(ShapeFix_EdgeProjAux)

class ShapeFix_FaceConnect(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Add = _swig_new_instance_method(_ShapeFix.ShapeFix_FaceConnect_Add)
    Build = _swig_new_instance_method(_ShapeFix.ShapeFix_FaceConnect_Build)
    Clear = _swig_new_instance_method(_ShapeFix.ShapeFix_FaceConnect_Clear)

    def __init__(self, *args):
        r""":rtype: None"""
        _ShapeFix.ShapeFix_FaceConnect_swiginit(self, _ShapeFix.new_ShapeFix_FaceConnect(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_FaceConnect

# Register ShapeFix_FaceConnect in _ShapeFix:
_ShapeFix.ShapeFix_FaceConnect_swigregister(ShapeFix_FaceConnect)

class ShapeFix_FreeBounds(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    GetClosedWires = _swig_new_instance_method(_ShapeFix.ShapeFix_FreeBounds_GetClosedWires)
    GetOpenWires = _swig_new_instance_method(_ShapeFix.ShapeFix_FreeBounds_GetOpenWires)
    GetShape = _swig_new_instance_method(_ShapeFix.ShapeFix_FreeBounds_GetShape)

    def __init__(self, *args):
        r"""
        * Empty constructor
        	:rtype: None* Builds forecasting free bounds of the <shape> and connects open wires with tolerance <closetoler>. <shape> should be a compound of faces. Tolerance <closetoler> should be greater than tolerance <sewtoler> used for initializing sewing analyzer, otherwise connection of open wires is not performed.
        	:param shape:
        	:type shape: TopoDS_Shape
        	:param sewtoler:
        	:type sewtoler: float
        	:param closetoler:
        	:type closetoler: float
        	:param splitclosed:
        	:type splitclosed: bool
        	:param splitopen:
        	:type splitopen: bool
        	:rtype: None* Builds actual free bounds of the <shape> and connects open wires with tolerance <closetoler>. <shape> should be a compound of shells.
        	:param shape:
        	:type shape: TopoDS_Shape
        	:param closetoler:
        	:type closetoler: float
        	:param splitclosed:
        	:type splitclosed: bool
        	:param splitopen:
        	:type splitopen: bool
        	:rtype: None
        """
        _ShapeFix.ShapeFix_FreeBounds_swiginit(self, _ShapeFix.new_ShapeFix_FreeBounds(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_FreeBounds

# Register ShapeFix_FreeBounds in _ShapeFix:
_ShapeFix.ShapeFix_FreeBounds_swigregister(ShapeFix_FreeBounds)

class ShapeFix_IntersectionTool(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Context = _swig_new_instance_method(_ShapeFix.ShapeFix_IntersectionTool_Context)
    CutEdge = _swig_new_instance_method(_ShapeFix.ShapeFix_IntersectionTool_CutEdge)
    FixIntersectingWires = _swig_new_instance_method(_ShapeFix.ShapeFix_IntersectionTool_FixIntersectingWires)
    FixSelfIntersectWire = _swig_new_instance_method(_ShapeFix.ShapeFix_IntersectionTool_FixSelfIntersectWire)

    def __init__(self, *args):
        r"""
        * Constructor
        	:param context:
        	:type context: ShapeBuild_ReShape
        	:param preci:
        	:type preci: float
        	:param maxtol: default value is 1.0
        	:type maxtol: float
        	:rtype: None
        """
        _ShapeFix.ShapeFix_IntersectionTool_swiginit(self, _ShapeFix.new_ShapeFix_IntersectionTool(*args))
    SplitEdge = _swig_new_instance_method(_ShapeFix.ShapeFix_IntersectionTool_SplitEdge)

    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_IntersectionTool

# Register ShapeFix_IntersectionTool in _ShapeFix:
_ShapeFix.ShapeFix_IntersectionTool_swigregister(ShapeFix_IntersectionTool)

class ShapeFix_Root(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Context = _swig_new_instance_method(_ShapeFix.ShapeFix_Root_Context)
    LimitTolerance = _swig_new_instance_method(_ShapeFix.ShapeFix_Root_LimitTolerance)
    MaxTolerance = _swig_new_instance_method(_ShapeFix.ShapeFix_Root_MaxTolerance)
    MinTolerance = _swig_new_instance_method(_ShapeFix.ShapeFix_Root_MinTolerance)
    MsgRegistrator = _swig_new_instance_method(_ShapeFix.ShapeFix_Root_MsgRegistrator)
    Precision = _swig_new_instance_method(_ShapeFix.ShapeFix_Root_Precision)
    SendFail = _swig_new_instance_method(_ShapeFix.ShapeFix_Root_SendFail)
    SendMsg = _swig_new_instance_method(_ShapeFix.ShapeFix_Root_SendMsg)
    SendWarning = _swig_new_instance_method(_ShapeFix.ShapeFix_Root_SendWarning)
    Set = _swig_new_instance_method(_ShapeFix.ShapeFix_Root_Set)
    SetContext = _swig_new_instance_method(_ShapeFix.ShapeFix_Root_SetContext)
    SetMaxTolerance = _swig_new_instance_method(_ShapeFix.ShapeFix_Root_SetMaxTolerance)
    SetMinTolerance = _swig_new_instance_method(_ShapeFix.ShapeFix_Root_SetMinTolerance)
    SetMsgRegistrator = _swig_new_instance_method(_ShapeFix.ShapeFix_Root_SetMsgRegistrator)
    SetPrecision = _swig_new_instance_method(_ShapeFix.ShapeFix_Root_SetPrecision)

    def __init__(self, *args):
        r"""
        * Empty Constructor (no context is created)
        	:rtype: None
        """
        _ShapeFix.ShapeFix_Root_swiginit(self, _ShapeFix.new_ShapeFix_Root(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_Root

# Register ShapeFix_Root in _ShapeFix:
_ShapeFix.ShapeFix_Root_swigregister(ShapeFix_Root)

class ShapeFix_ShapeTolerance(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    LimitTolerance = _swig_new_instance_method(_ShapeFix.ShapeFix_ShapeTolerance_LimitTolerance)
    SetTolerance = _swig_new_instance_method(_ShapeFix.ShapeFix_ShapeTolerance_SetTolerance)

    def __init__(self, *args):
        r""":rtype: None"""
        _ShapeFix.ShapeFix_ShapeTolerance_swiginit(self, _ShapeFix.new_ShapeFix_ShapeTolerance(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_ShapeTolerance

# Register ShapeFix_ShapeTolerance in _ShapeFix:
_ShapeFix.ShapeFix_ShapeTolerance_swigregister(ShapeFix_ShapeTolerance)

class ShapeFix_SplitTool(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    CutEdge = _swig_new_instance_method(_ShapeFix.ShapeFix_SplitTool_CutEdge)

    def __init__(self, *args):
        r"""
        * Empty constructor
        	:rtype: None
        """
        _ShapeFix.ShapeFix_SplitTool_swiginit(self, _ShapeFix.new_ShapeFix_SplitTool(*args))
    SplitEdge = _swig_new_instance_method(_ShapeFix.ShapeFix_SplitTool_SplitEdge)

    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_SplitTool

# Register ShapeFix_SplitTool in _ShapeFix:
_ShapeFix.ShapeFix_SplitTool_swigregister(ShapeFix_SplitTool)

class ShapeFix_WireVertex(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Analyzer = _swig_new_instance_method(_ShapeFix.ShapeFix_WireVertex_Analyzer)
    Fix = _swig_new_instance_method(_ShapeFix.ShapeFix_WireVertex_Fix)
    FixSame = _swig_new_instance_method(_ShapeFix.ShapeFix_WireVertex_FixSame)
    Init = _swig_new_instance_method(_ShapeFix.ShapeFix_WireVertex_Init)

    def __init__(self, *args):
        r""":rtype: None"""
        _ShapeFix.ShapeFix_WireVertex_swiginit(self, _ShapeFix.new_ShapeFix_WireVertex(*args))
    Wire = _swig_new_instance_method(_ShapeFix.ShapeFix_WireVertex_Wire)
    WireData = _swig_new_instance_method(_ShapeFix.ShapeFix_WireVertex_WireData)

    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_WireVertex

# Register ShapeFix_WireVertex in _ShapeFix:
_ShapeFix.ShapeFix_WireVertex_swigregister(ShapeFix_WireVertex)

class ShapeFix_ComposeShell(ShapeFix_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    GetClosedMode = _swig_new_instance_method(_ShapeFix.ShapeFix_ComposeShell_GetClosedMode)
    SetClosedMode = _swig_new_instance_method(_ShapeFix.ShapeFix_ComposeShell_SetClosedMode)
    DispatchWires = _swig_new_instance_method(_ShapeFix.ShapeFix_ComposeShell_DispatchWires)
    GetTransferParamTool = _swig_new_instance_method(_ShapeFix.ShapeFix_ComposeShell_GetTransferParamTool)
    Init = _swig_new_instance_method(_ShapeFix.ShapeFix_ComposeShell_Init)
    Perform = _swig_new_instance_method(_ShapeFix.ShapeFix_ComposeShell_Perform)
    Result = _swig_new_instance_method(_ShapeFix.ShapeFix_ComposeShell_Result)
    SetTransferParamTool = _swig_new_instance_method(_ShapeFix.ShapeFix_ComposeShell_SetTransferParamTool)

    def __init__(self, *args):
        r"""
        * Creates empty tool.
        	:rtype: None
        """
        _ShapeFix.ShapeFix_ComposeShell_swiginit(self, _ShapeFix.new_ShapeFix_ComposeShell(*args))
    SplitEdges = _swig_new_instance_method(_ShapeFix.ShapeFix_ComposeShell_SplitEdges)
    Status = _swig_new_instance_method(_ShapeFix.ShapeFix_ComposeShell_Status)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_ComposeShell

# Register ShapeFix_ComposeShell in _ShapeFix:
_ShapeFix.ShapeFix_ComposeShell_swigregister(ShapeFix_ComposeShell)

class ShapeFix_Face(ShapeFix_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Add = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_Add)
    GetAutoCorrectPrecisionMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_GetAutoCorrectPrecisionMode)
    SetAutoCorrectPrecisionMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_SetAutoCorrectPrecisionMode)
    ClearModes = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_ClearModes)
    Face = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_Face)
    FixAddNaturalBound = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_FixAddNaturalBound)
    GetFixAddNaturalBoundMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_GetFixAddNaturalBoundMode)
    SetFixAddNaturalBoundMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_SetFixAddNaturalBoundMode)
    FixIntersectingWires = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_FixIntersectingWires)
    GetFixIntersectingWiresMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_GetFixIntersectingWiresMode)
    SetFixIntersectingWiresMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_SetFixIntersectingWiresMode)
    FixLoopWire = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_FixLoopWire)
    GetFixLoopWiresMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_GetFixLoopWiresMode)
    SetFixLoopWiresMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_SetFixLoopWiresMode)
    FixMissingSeam = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_FixMissingSeam)
    GetFixMissingSeamMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_GetFixMissingSeamMode)
    SetFixMissingSeamMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_SetFixMissingSeamMode)
    FixOrientation = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_FixOrientation)
    GetFixOrientationMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_GetFixOrientationMode)
    SetFixOrientationMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_SetFixOrientationMode)
    FixPeriodicDegenerated = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_FixPeriodicDegenerated)
    GetFixPeriodicDegeneratedMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_GetFixPeriodicDegeneratedMode)
    SetFixPeriodicDegeneratedMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_SetFixPeriodicDegeneratedMode)
    FixSmallAreaWire = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_FixSmallAreaWire)
    GetFixSmallAreaWireMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_GetFixSmallAreaWireMode)
    SetFixSmallAreaWireMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_SetFixSmallAreaWireMode)
    FixSplitFace = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_FixSplitFace)
    GetFixSplitFaceMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_GetFixSplitFaceMode)
    SetFixSplitFaceMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_SetFixSplitFaceMode)
    GetFixWireMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_GetFixWireMode)
    SetFixWireMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_SetFixWireMode)
    FixWireTool = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_FixWireTool)
    FixWiresTwoCoincEdges = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_FixWiresTwoCoincEdges)
    Init = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_Init)
    Perform = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_Perform)
    GetRemoveSmallAreaFaceMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_GetRemoveSmallAreaFaceMode)
    SetRemoveSmallAreaFaceMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_SetRemoveSmallAreaFaceMode)
    Result = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_Result)

    def __init__(self, *args):
        r"""
        * Creates an empty tool
        	:rtype: None* Creates a tool and loads a face
        	:param face:
        	:type face: TopoDS_Face
        	:rtype: None
        """
        _ShapeFix.ShapeFix_Face_swiginit(self, _ShapeFix.new_ShapeFix_Face(*args))
    Status = _swig_new_instance_method(_ShapeFix.ShapeFix_Face_Status)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_Face

# Register ShapeFix_Face in _ShapeFix:
_ShapeFix.ShapeFix_Face_swigregister(ShapeFix_Face)

class ShapeFix_FixSmallFace(ShapeFix_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    ComputeSharedEdgeForStripFace = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallFace_ComputeSharedEdgeForStripFace)
    FixFace = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallFace_FixFace)
    FixPinFace = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallFace_FixPinFace)
    FixShape = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallFace_FixShape)
    FixSplitFace = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallFace_FixSplitFace)
    FixSpotFace = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallFace_FixSpotFace)
    FixStripFace = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallFace_FixStripFace)
    Init = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallFace_Init)
    Perform = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallFace_Perform)
    RemoveFacesInCaseOfSpot = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallFace_RemoveFacesInCaseOfSpot)
    RemoveFacesInCaseOfStrip = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallFace_RemoveFacesInCaseOfStrip)
    ReplaceInCaseOfStrip = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallFace_ReplaceInCaseOfStrip)
    ReplaceVerticesInCaseOfSpot = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallFace_ReplaceVerticesInCaseOfSpot)
    Shape = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallFace_Shape)

    def __init__(self, *args):
        r""":rtype: None"""
        _ShapeFix.ShapeFix_FixSmallFace_swiginit(self, _ShapeFix.new_ShapeFix_FixSmallFace(*args))
    SplitOneFace = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallFace_SplitOneFace)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_FixSmallFace

# Register ShapeFix_FixSmallFace in _ShapeFix:
_ShapeFix.ShapeFix_FixSmallFace_swigregister(ShapeFix_FixSmallFace)

class ShapeFix_FixSmallSolid(ShapeFix_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Merge = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallSolid_Merge)
    Remove = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallSolid_Remove)
    SetFixMode = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallSolid_SetFixMode)
    SetVolumeThreshold = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallSolid_SetVolumeThreshold)
    SetWidthFactorThreshold = _swig_new_instance_method(_ShapeFix.ShapeFix_FixSmallSolid_SetWidthFactorThreshold)

    def __init__(self, *args):
        r"""
        * Construct
        	:rtype: None
        """
        _ShapeFix.ShapeFix_FixSmallSolid_swiginit(self, _ShapeFix.new_ShapeFix_FixSmallSolid(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_FixSmallSolid

# Register ShapeFix_FixSmallSolid in _ShapeFix:
_ShapeFix.ShapeFix_FixSmallSolid_swigregister(ShapeFix_FixSmallSolid)

class ShapeFix_Shape(ShapeFix_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    FixEdgeTool = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_FixEdgeTool)
    FixFaceTool = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_FixFaceTool)
    GetFixFreeFaceMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_GetFixFreeFaceMode)
    SetFixFreeFaceMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_SetFixFreeFaceMode)
    GetFixFreeShellMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_GetFixFreeShellMode)
    SetFixFreeShellMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_SetFixFreeShellMode)
    GetFixFreeWireMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_GetFixFreeWireMode)
    SetFixFreeWireMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_SetFixFreeWireMode)
    GetFixSameParameterMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_GetFixSameParameterMode)
    SetFixSameParameterMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_SetFixSameParameterMode)
    FixShellTool = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_FixShellTool)
    GetFixSolidMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_GetFixSolidMode)
    SetFixSolidMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_SetFixSolidMode)
    FixSolidTool = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_FixSolidTool)
    GetFixVertexPositionMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_GetFixVertexPositionMode)
    SetFixVertexPositionMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_SetFixVertexPositionMode)
    GetFixVertexTolMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_GetFixVertexTolMode)
    SetFixVertexTolMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_SetFixVertexTolMode)
    FixWireTool = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_FixWireTool)
    Init = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_Init)
    Perform = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_Perform)
    Shape = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_Shape)

    def __init__(self, *args):
        r"""
        * Empty Constructor
        	:rtype: None* Initislises by shape.
        	:param shape:
        	:type shape: TopoDS_Shape
        	:rtype: None
        """
        _ShapeFix.ShapeFix_Shape_swiginit(self, _ShapeFix.new_ShapeFix_Shape(*args))
    Status = _swig_new_instance_method(_ShapeFix.ShapeFix_Shape_Status)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_Shape

# Register ShapeFix_Shape in _ShapeFix:
_ShapeFix.ShapeFix_Shape_swigregister(ShapeFix_Shape)

class ShapeFix_Shell(ShapeFix_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    ErrorFaces = _swig_new_instance_method(_ShapeFix.ShapeFix_Shell_ErrorFaces)
    GetFixFaceMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Shell_GetFixFaceMode)
    SetFixFaceMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Shell_SetFixFaceMode)
    FixFaceOrientation = _swig_new_instance_method(_ShapeFix.ShapeFix_Shell_FixFaceOrientation)
    FixFaceTool = _swig_new_instance_method(_ShapeFix.ShapeFix_Shell_FixFaceTool)
    GetFixOrientationMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Shell_GetFixOrientationMode)
    SetFixOrientationMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Shell_SetFixOrientationMode)
    Init = _swig_new_instance_method(_ShapeFix.ShapeFix_Shell_Init)
    NbShells = _swig_new_instance_method(_ShapeFix.ShapeFix_Shell_NbShells)
    Perform = _swig_new_instance_method(_ShapeFix.ShapeFix_Shell_Perform)
    SetNonManifoldFlag = _swig_new_instance_method(_ShapeFix.ShapeFix_Shell_SetNonManifoldFlag)
    Shape = _swig_new_instance_method(_ShapeFix.ShapeFix_Shell_Shape)

    def __init__(self, *args):
        r"""
        * Empty constructor
        	:rtype: None* Initializes by shell.
        	:param shape:
        	:type shape: TopoDS_Shell
        	:rtype: None
        """
        _ShapeFix.ShapeFix_Shell_swiginit(self, _ShapeFix.new_ShapeFix_Shell(*args))
    Shell = _swig_new_instance_method(_ShapeFix.ShapeFix_Shell_Shell)
    Status = _swig_new_instance_method(_ShapeFix.ShapeFix_Shell_Status)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_Shell

# Register ShapeFix_Shell in _ShapeFix:
_ShapeFix.ShapeFix_Shell_swigregister(ShapeFix_Shell)

class ShapeFix_Solid(ShapeFix_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    GetCreateOpenSolidMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Solid_GetCreateOpenSolidMode)
    SetCreateOpenSolidMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Solid_SetCreateOpenSolidMode)
    GetFixShellMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Solid_GetFixShellMode)
    SetFixShellMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Solid_SetFixShellMode)
    GetFixShellOrientationMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Solid_GetFixShellOrientationMode)
    SetFixShellOrientationMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Solid_SetFixShellOrientationMode)
    FixShellTool = _swig_new_instance_method(_ShapeFix.ShapeFix_Solid_FixShellTool)
    Init = _swig_new_instance_method(_ShapeFix.ShapeFix_Solid_Init)
    Perform = _swig_new_instance_method(_ShapeFix.ShapeFix_Solid_Perform)
    Shape = _swig_new_instance_method(_ShapeFix.ShapeFix_Solid_Shape)

    def __init__(self, *args):
        r"""
        * Empty constructor;
        	:rtype: None* Initializes by solid.
        	:param solid:
        	:type solid: TopoDS_Solid
        	:rtype: None
        """
        _ShapeFix.ShapeFix_Solid_swiginit(self, _ShapeFix.new_ShapeFix_Solid(*args))
    Solid = _swig_new_instance_method(_ShapeFix.ShapeFix_Solid_Solid)
    SolidFromShell = _swig_new_instance_method(_ShapeFix.ShapeFix_Solid_SolidFromShell)
    Status = _swig_new_instance_method(_ShapeFix.ShapeFix_Solid_Status)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_Solid

# Register ShapeFix_Solid in _ShapeFix:
_ShapeFix.ShapeFix_Solid_swigregister(ShapeFix_Solid)

class ShapeFix_SplitCommonVertex(ShapeFix_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Init = _swig_new_instance_method(_ShapeFix.ShapeFix_SplitCommonVertex_Init)
    Perform = _swig_new_instance_method(_ShapeFix.ShapeFix_SplitCommonVertex_Perform)
    Shape = _swig_new_instance_method(_ShapeFix.ShapeFix_SplitCommonVertex_Shape)

    def __init__(self, *args):
        r""":rtype: None"""
        _ShapeFix.ShapeFix_SplitCommonVertex_swiginit(self, _ShapeFix.new_ShapeFix_SplitCommonVertex(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_SplitCommonVertex

# Register ShapeFix_SplitCommonVertex in _ShapeFix:
_ShapeFix.ShapeFix_SplitCommonVertex_swigregister(ShapeFix_SplitCommonVertex)

class ShapeFix_Wire(ShapeFix_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Analyzer = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_Analyzer)
    ClearModes = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_ClearModes)
    ClearStatuses = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_ClearStatuses)
    GetClosedWireMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetClosedWireMode)
    SetClosedWireMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetClosedWireMode)
    Face = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_Face)
    GetFixAddCurve3dMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixAddCurve3dMode)
    SetFixAddCurve3dMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixAddCurve3dMode)
    GetFixAddPCurveMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixAddPCurveMode)
    SetFixAddPCurveMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixAddPCurveMode)
    FixClosed = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_FixClosed)
    FixConnected = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_FixConnected)
    GetFixConnectedMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixConnectedMode)
    SetFixConnectedMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixConnectedMode)
    FixDegenerated = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_FixDegenerated)
    GetFixDegeneratedMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixDegeneratedMode)
    SetFixDegeneratedMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixDegeneratedMode)
    FixEdgeCurves = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_FixEdgeCurves)
    GetFixEdgeCurvesMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixEdgeCurvesMode)
    SetFixEdgeCurvesMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixEdgeCurvesMode)
    FixEdgeTool = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_FixEdgeTool)
    FixGap2d = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_FixGap2d)
    FixGap3d = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_FixGap3d)
    FixGaps2d = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_FixGaps2d)
    GetFixGaps2dMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixGaps2dMode)
    SetFixGaps2dMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixGaps2dMode)
    FixGaps3d = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_FixGaps3d)
    GetFixGaps3dMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixGaps3dMode)
    SetFixGaps3dMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixGaps3dMode)
    GetFixGapsByRangesMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixGapsByRangesMode)
    SetFixGapsByRangesMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixGapsByRangesMode)
    GetFixIntersectingEdgesMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixIntersectingEdgesMode)
    SetFixIntersectingEdgesMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixIntersectingEdgesMode)
    FixLacking = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_FixLacking)
    GetFixLackingMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixLackingMode)
    SetFixLackingMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixLackingMode)
    GetFixNonAdjacentIntersectingEdgesMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixNonAdjacentIntersectingEdgesMode)
    SetFixNonAdjacentIntersectingEdgesMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixNonAdjacentIntersectingEdgesMode)
    FixNotchedEdges = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_FixNotchedEdges)
    GetFixNotchedEdgesMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixNotchedEdgesMode)
    SetFixNotchedEdgesMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixNotchedEdgesMode)
    GetFixRemoveCurve3dMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixRemoveCurve3dMode)
    SetFixRemoveCurve3dMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixRemoveCurve3dMode)
    GetFixRemovePCurveMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixRemovePCurveMode)
    SetFixRemovePCurveMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixRemovePCurveMode)
    FixReorder = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_FixReorder)
    GetFixReorderMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixReorderMode)
    SetFixReorderMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixReorderMode)
    GetFixReversed2dMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixReversed2dMode)
    SetFixReversed2dMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixReversed2dMode)
    GetFixSameParameterMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixSameParameterMode)
    SetFixSameParameterMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixSameParameterMode)
    FixSeam = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_FixSeam)
    GetFixSeamMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixSeamMode)
    SetFixSeamMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixSeamMode)
    GetFixSelfIntersectingEdgeMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixSelfIntersectingEdgeMode)
    SetFixSelfIntersectingEdgeMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixSelfIntersectingEdgeMode)
    FixSelfIntersection = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_FixSelfIntersection)
    GetFixSelfIntersectionMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixSelfIntersectionMode)
    SetFixSelfIntersectionMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixSelfIntersectionMode)
    FixShifted = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_FixShifted)
    GetFixShiftedMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixShiftedMode)
    SetFixShiftedMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixShiftedMode)
    FixSmall = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_FixSmall)
    GetFixSmallMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixSmallMode)
    SetFixSmallMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixSmallMode)
    GetFixTailMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixTailMode)
    SetFixTailMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixTailMode)
    FixTails = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_FixTails)
    GetFixVertexToleranceMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetFixVertexToleranceMode)
    SetFixVertexToleranceMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFixVertexToleranceMode)
    Init = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_Init)
    IsLoaded = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_IsLoaded)
    IsReady = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_IsReady)
    LastFixStatus = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_LastFixStatus)
    Load = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_Load)
    GetModifyGeometryMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetModifyGeometryMode)
    SetModifyGeometryMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetModifyGeometryMode)
    GetModifyRemoveLoopMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetModifyRemoveLoopMode)
    SetModifyRemoveLoopMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetModifyRemoveLoopMode)
    GetModifyTopologyMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetModifyTopologyMode)
    SetModifyTopologyMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetModifyTopologyMode)
    NbEdges = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_NbEdges)
    Perform = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_Perform)
    GetPreferencePCurveMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_GetPreferencePCurveMode)
    SetPreferencePCurveMode = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetPreferencePCurveMode)
    SetFace = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetFace)
    SetMaxTailAngle = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetMaxTailAngle)
    SetMaxTailWidth = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetMaxTailWidth)
    SetSurface = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_SetSurface)

    def __init__(self, *args):
        r"""
        * Empty Constructor, creates clear object with default flags
        	:rtype: None* Create new object with default flags and prepare it for use (Loads analyzer with all the data for the wire and face)
        	:param wire:
        	:type wire: TopoDS_Wire
        	:param face:
        	:type face: TopoDS_Face
        	:param prec:
        	:type prec: float
        	:rtype: None
        """
        _ShapeFix.ShapeFix_Wire_swiginit(self, _ShapeFix.new_ShapeFix_Wire(*args))
    StatusClosed = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_StatusClosed)
    StatusConnected = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_StatusConnected)
    StatusDegenerated = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_StatusDegenerated)
    StatusEdgeCurves = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_StatusEdgeCurves)
    StatusFixTails = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_StatusFixTails)
    StatusGaps2d = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_StatusGaps2d)
    StatusGaps3d = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_StatusGaps3d)
    StatusLacking = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_StatusLacking)
    StatusNotches = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_StatusNotches)
    StatusRemovedSegment = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_StatusRemovedSegment)
    StatusReorder = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_StatusReorder)
    StatusSelfIntersection = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_StatusSelfIntersection)
    StatusSmall = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_StatusSmall)
    Wire = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_Wire)
    WireAPIMake = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_WireAPIMake)
    WireData = _swig_new_instance_method(_ShapeFix.ShapeFix_Wire_WireData)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_Wire

# Register ShapeFix_Wire in _ShapeFix:
_ShapeFix.ShapeFix_Wire_swigregister(ShapeFix_Wire)

class ShapeFix_Wireframe(ShapeFix_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    CheckSmallEdges = _swig_new_instance_method(_ShapeFix.ShapeFix_Wireframe_CheckSmallEdges)
    ClearStatuses = _swig_new_instance_method(_ShapeFix.ShapeFix_Wireframe_ClearStatuses)
    FixSmallEdges = _swig_new_instance_method(_ShapeFix.ShapeFix_Wireframe_FixSmallEdges)
    FixWireGaps = _swig_new_instance_method(_ShapeFix.ShapeFix_Wireframe_FixWireGaps)
    LimitAngle = _swig_new_instance_method(_ShapeFix.ShapeFix_Wireframe_LimitAngle)
    Load = _swig_new_instance_method(_ShapeFix.ShapeFix_Wireframe_Load)
    MergeSmallEdges = _swig_new_instance_method(_ShapeFix.ShapeFix_Wireframe_MergeSmallEdges)
    GetModeDropSmallEdges = _swig_new_instance_method(_ShapeFix.ShapeFix_Wireframe_GetModeDropSmallEdges)
    SetModeDropSmallEdges = _swig_new_instance_method(_ShapeFix.ShapeFix_Wireframe_SetModeDropSmallEdges)
    SetLimitAngle = _swig_new_instance_method(_ShapeFix.ShapeFix_Wireframe_SetLimitAngle)
    Shape = _swig_new_instance_method(_ShapeFix.ShapeFix_Wireframe_Shape)

    def __init__(self, *args):
        r"""
        :rtype: None:param shape:
        	:type shape: TopoDS_Shape
        	:rtype: None
        """
        _ShapeFix.ShapeFix_Wireframe_swiginit(self, _ShapeFix.new_ShapeFix_Wireframe(*args))
    StatusSmallEdges = _swig_new_instance_method(_ShapeFix.ShapeFix_Wireframe_StatusSmallEdges)
    StatusWireGaps = _swig_new_instance_method(_ShapeFix.ShapeFix_Wireframe_StatusWireGaps)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _ShapeFix.delete_ShapeFix_Wireframe

# Register ShapeFix_Wireframe in _ShapeFix:
_ShapeFix.ShapeFix_Wireframe_swigregister(ShapeFix_Wireframe)



