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

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

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

_swig_new_instance_method = _BRepCheck.SWIG_PyInstanceMethod_New
_swig_new_static_method = _BRepCheck.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__ = _BRepCheck.delete_SwigPyIterator
    value = _swig_new_instance_method(_BRepCheck.SwigPyIterator_value)
    incr = _swig_new_instance_method(_BRepCheck.SwigPyIterator_incr)
    decr = _swig_new_instance_method(_BRepCheck.SwigPyIterator_decr)
    distance = _swig_new_instance_method(_BRepCheck.SwigPyIterator_distance)
    equal = _swig_new_instance_method(_BRepCheck.SwigPyIterator_equal)
    copy = _swig_new_instance_method(_BRepCheck.SwigPyIterator_copy)
    next = _swig_new_instance_method(_BRepCheck.SwigPyIterator_next)
    __next__ = _swig_new_instance_method(_BRepCheck.SwigPyIterator___next__)
    previous = _swig_new_instance_method(_BRepCheck.SwigPyIterator_previous)
    advance = _swig_new_instance_method(_BRepCheck.SwigPyIterator_advance)
    __eq__ = _swig_new_instance_method(_BRepCheck.SwigPyIterator___eq__)
    __ne__ = _swig_new_instance_method(_BRepCheck.SwigPyIterator___ne__)
    __iadd__ = _swig_new_instance_method(_BRepCheck.SwigPyIterator___iadd__)
    __isub__ = _swig_new_instance_method(_BRepCheck.SwigPyIterator___isub__)
    __add__ = _swig_new_instance_method(_BRepCheck.SwigPyIterator___add__)
    __sub__ = _swig_new_instance_method(_BRepCheck.SwigPyIterator___sub__)
    def __iter__(self):
        return self

# Register SwigPyIterator in _BRepCheck:
_BRepCheck.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.Adaptor3d
import OCC.Core.Geom
import OCC.Core.gp
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.TopAbs
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d
import OCC.Core.math
import OCC.Core.Message
import OCC.Core.TopoDS
import OCC.Core.TopLoc
import OCC.Core.TopTools
BRepCheck_NoError = _BRepCheck.BRepCheck_NoError
BRepCheck_InvalidPointOnCurve = _BRepCheck.BRepCheck_InvalidPointOnCurve
BRepCheck_InvalidPointOnCurveOnSurface = _BRepCheck.BRepCheck_InvalidPointOnCurveOnSurface
BRepCheck_InvalidPointOnSurface = _BRepCheck.BRepCheck_InvalidPointOnSurface
BRepCheck_No3DCurve = _BRepCheck.BRepCheck_No3DCurve
BRepCheck_Multiple3DCurve = _BRepCheck.BRepCheck_Multiple3DCurve
BRepCheck_Invalid3DCurve = _BRepCheck.BRepCheck_Invalid3DCurve
BRepCheck_NoCurveOnSurface = _BRepCheck.BRepCheck_NoCurveOnSurface
BRepCheck_InvalidCurveOnSurface = _BRepCheck.BRepCheck_InvalidCurveOnSurface
BRepCheck_InvalidCurveOnClosedSurface = _BRepCheck.BRepCheck_InvalidCurveOnClosedSurface
BRepCheck_InvalidSameRangeFlag = _BRepCheck.BRepCheck_InvalidSameRangeFlag
BRepCheck_InvalidSameParameterFlag = _BRepCheck.BRepCheck_InvalidSameParameterFlag
BRepCheck_InvalidDegeneratedFlag = _BRepCheck.BRepCheck_InvalidDegeneratedFlag
BRepCheck_FreeEdge = _BRepCheck.BRepCheck_FreeEdge
BRepCheck_InvalidMultiConnexity = _BRepCheck.BRepCheck_InvalidMultiConnexity
BRepCheck_InvalidRange = _BRepCheck.BRepCheck_InvalidRange
BRepCheck_EmptyWire = _BRepCheck.BRepCheck_EmptyWire
BRepCheck_RedundantEdge = _BRepCheck.BRepCheck_RedundantEdge
BRepCheck_SelfIntersectingWire = _BRepCheck.BRepCheck_SelfIntersectingWire
BRepCheck_NoSurface = _BRepCheck.BRepCheck_NoSurface
BRepCheck_InvalidWire = _BRepCheck.BRepCheck_InvalidWire
BRepCheck_RedundantWire = _BRepCheck.BRepCheck_RedundantWire
BRepCheck_IntersectingWires = _BRepCheck.BRepCheck_IntersectingWires
BRepCheck_InvalidImbricationOfWires = _BRepCheck.BRepCheck_InvalidImbricationOfWires
BRepCheck_EmptyShell = _BRepCheck.BRepCheck_EmptyShell
BRepCheck_RedundantFace = _BRepCheck.BRepCheck_RedundantFace
BRepCheck_InvalidImbricationOfShells = _BRepCheck.BRepCheck_InvalidImbricationOfShells
BRepCheck_UnorientableShape = _BRepCheck.BRepCheck_UnorientableShape
BRepCheck_NotClosed = _BRepCheck.BRepCheck_NotClosed
BRepCheck_NotConnected = _BRepCheck.BRepCheck_NotConnected
BRepCheck_SubshapeNotInShape = _BRepCheck.BRepCheck_SubshapeNotInShape
BRepCheck_BadOrientation = _BRepCheck.BRepCheck_BadOrientation
BRepCheck_BadOrientationOfSubshape = _BRepCheck.BRepCheck_BadOrientationOfSubshape
BRepCheck_InvalidPolygonOnTriangulation = _BRepCheck.BRepCheck_InvalidPolygonOnTriangulation
BRepCheck_InvalidToleranceValue = _BRepCheck.BRepCheck_InvalidToleranceValue
BRepCheck_EnclosedRegion = _BRepCheck.BRepCheck_EnclosedRegion
BRepCheck_CheckFail = _BRepCheck.BRepCheck_CheckFail
Handle_BRepCheck_Result_Create = _BRepCheck.Handle_BRepCheck_Result_Create
Handle_BRepCheck_Result_DownCast = _BRepCheck.Handle_BRepCheck_Result_DownCast
Handle_BRepCheck_Result_IsNull = _BRepCheck.Handle_BRepCheck_Result_IsNull
Handle_BRepCheck_Edge_Create = _BRepCheck.Handle_BRepCheck_Edge_Create
Handle_BRepCheck_Edge_DownCast = _BRepCheck.Handle_BRepCheck_Edge_DownCast
Handle_BRepCheck_Edge_IsNull = _BRepCheck.Handle_BRepCheck_Edge_IsNull
Handle_BRepCheck_Face_Create = _BRepCheck.Handle_BRepCheck_Face_Create
Handle_BRepCheck_Face_DownCast = _BRepCheck.Handle_BRepCheck_Face_DownCast
Handle_BRepCheck_Face_IsNull = _BRepCheck.Handle_BRepCheck_Face_IsNull
Handle_BRepCheck_Shell_Create = _BRepCheck.Handle_BRepCheck_Shell_Create
Handle_BRepCheck_Shell_DownCast = _BRepCheck.Handle_BRepCheck_Shell_DownCast
Handle_BRepCheck_Shell_IsNull = _BRepCheck.Handle_BRepCheck_Shell_IsNull
Handle_BRepCheck_Solid_Create = _BRepCheck.Handle_BRepCheck_Solid_Create
Handle_BRepCheck_Solid_DownCast = _BRepCheck.Handle_BRepCheck_Solid_DownCast
Handle_BRepCheck_Solid_IsNull = _BRepCheck.Handle_BRepCheck_Solid_IsNull
Handle_BRepCheck_Vertex_Create = _BRepCheck.Handle_BRepCheck_Vertex_Create
Handle_BRepCheck_Vertex_DownCast = _BRepCheck.Handle_BRepCheck_Vertex_DownCast
Handle_BRepCheck_Vertex_IsNull = _BRepCheck.Handle_BRepCheck_Vertex_IsNull
Handle_BRepCheck_Wire_Create = _BRepCheck.Handle_BRepCheck_Wire_Create
Handle_BRepCheck_Wire_DownCast = _BRepCheck.Handle_BRepCheck_Wire_DownCast
Handle_BRepCheck_Wire_IsNull = _BRepCheck.Handle_BRepCheck_Wire_IsNull
class BRepCheck_ListOfStatus(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(_BRepCheck.BRepCheck_ListOfStatus_begin)
    end = _swig_new_instance_method(_BRepCheck.BRepCheck_ListOfStatus_end)
    cbegin = _swig_new_instance_method(_BRepCheck.BRepCheck_ListOfStatus_cbegin)
    cend = _swig_new_instance_method(_BRepCheck.BRepCheck_ListOfStatus_cend)

    def __init__(self, *args):
        _BRepCheck.BRepCheck_ListOfStatus_swiginit(self, _BRepCheck.new_BRepCheck_ListOfStatus(*args))
    Size = _swig_new_instance_method(_BRepCheck.BRepCheck_ListOfStatus_Size)
    Assign = _swig_new_instance_method(_BRepCheck.BRepCheck_ListOfStatus_Assign)
    Set = _swig_new_instance_method(_BRepCheck.BRepCheck_ListOfStatus_Set)
    Clear = _swig_new_instance_method(_BRepCheck.BRepCheck_ListOfStatus_Clear)
    First = _swig_new_instance_method(_BRepCheck.BRepCheck_ListOfStatus_First)
    Last = _swig_new_instance_method(_BRepCheck.BRepCheck_ListOfStatus_Last)
    Append = _swig_new_instance_method(_BRepCheck.BRepCheck_ListOfStatus_Append)
    Prepend = _swig_new_instance_method(_BRepCheck.BRepCheck_ListOfStatus_Prepend)
    RemoveFirst = _swig_new_instance_method(_BRepCheck.BRepCheck_ListOfStatus_RemoveFirst)
    Remove = _swig_new_instance_method(_BRepCheck.BRepCheck_ListOfStatus_Remove)
    InsertBefore = _swig_new_instance_method(_BRepCheck.BRepCheck_ListOfStatus_InsertBefore)
    InsertAfter = _swig_new_instance_method(_BRepCheck.BRepCheck_ListOfStatus_InsertAfter)
    Reverse = _swig_new_instance_method(_BRepCheck.BRepCheck_ListOfStatus_Reverse)
    __swig_destroy__ = _BRepCheck.delete_BRepCheck_ListOfStatus

# Register BRepCheck_ListOfStatus in _BRepCheck:
_BRepCheck.BRepCheck_ListOfStatus_swigregister(BRepCheck_ListOfStatus)

class BRepCheck_ListIteratorOfListOfStatus(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):
        _BRepCheck.BRepCheck_ListIteratorOfListOfStatus_swiginit(self, _BRepCheck.new_BRepCheck_ListIteratorOfListOfStatus(*args))
    More = _swig_new_instance_method(_BRepCheck.BRepCheck_ListIteratorOfListOfStatus_More)
    Next = _swig_new_instance_method(_BRepCheck.BRepCheck_ListIteratorOfListOfStatus_Next)
    Value = _swig_new_instance_method(_BRepCheck.BRepCheck_ListIteratorOfListOfStatus_Value)
    ChangeValue = _swig_new_instance_method(_BRepCheck.BRepCheck_ListIteratorOfListOfStatus_ChangeValue)
    __swig_destroy__ = _BRepCheck.delete_BRepCheck_ListIteratorOfListOfStatus

# Register BRepCheck_ListIteratorOfListOfStatus in _BRepCheck:
_BRepCheck.BRepCheck_ListIteratorOfListOfStatus_swigregister(BRepCheck_ListIteratorOfListOfStatus)

class BRepCheck_DataMapOfShapeListOfStatus(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(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_begin)
    end = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_end)
    cbegin = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_cbegin)
    cend = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_cend)

    def __init__(self, *args):
        _BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_swiginit(self, _BRepCheck.new_BRepCheck_DataMapOfShapeListOfStatus(*args))
    Exchange = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_Exchange)
    Assign = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_Assign)
    Set = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_Set)
    ReSize = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_ReSize)
    Bind = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_Bind)
    Bound = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_Bound)
    IsBound = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_IsBound)
    UnBind = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_UnBind)
    Seek = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_Seek)
    Find = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_Find)
    ChangeSeek = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_ChangeSeek)
    ChangeFind = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_ChangeFind)
    __call__ = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus___call__)
    Clear = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_Clear)
    __swig_destroy__ = _BRepCheck.delete_BRepCheck_DataMapOfShapeListOfStatus
    Size = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_Size)

# Register BRepCheck_DataMapOfShapeListOfStatus in _BRepCheck:
_BRepCheck.BRepCheck_DataMapOfShapeListOfStatus_swigregister(BRepCheck_DataMapOfShapeListOfStatus)

class BRepCheck_DataMapOfShapeResult(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(_BRepCheck.BRepCheck_DataMapOfShapeResult_begin)
    end = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeResult_end)
    cbegin = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeResult_cbegin)
    cend = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeResult_cend)

    def __init__(self, *args):
        _BRepCheck.BRepCheck_DataMapOfShapeResult_swiginit(self, _BRepCheck.new_BRepCheck_DataMapOfShapeResult(*args))
    Exchange = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeResult_Exchange)
    Assign = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeResult_Assign)
    Set = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeResult_Set)
    ReSize = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeResult_ReSize)
    Bind = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeResult_Bind)
    Bound = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeResult_Bound)
    IsBound = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeResult_IsBound)
    UnBind = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeResult_UnBind)
    Seek = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeResult_Seek)
    Find = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeResult_Find)
    ChangeSeek = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeResult_ChangeSeek)
    ChangeFind = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeResult_ChangeFind)
    __call__ = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeResult___call__)
    Clear = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeResult_Clear)
    __swig_destroy__ = _BRepCheck.delete_BRepCheck_DataMapOfShapeResult
    Size = _swig_new_instance_method(_BRepCheck.BRepCheck_DataMapOfShapeResult_Size)

# Register BRepCheck_DataMapOfShapeResult in _BRepCheck:
_BRepCheck.BRepCheck_DataMapOfShapeResult_swigregister(BRepCheck_DataMapOfShapeResult)

class brepcheck(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_static_method(_BRepCheck.brepcheck_Add)
    PrecCurve = _swig_new_static_method(_BRepCheck.brepcheck_PrecCurve)
    PrecSurface = _swig_new_static_method(_BRepCheck.brepcheck_PrecSurface)
    Print = _swig_new_static_method(_BRepCheck.brepcheck_Print)
    SelfIntersection = _swig_new_static_method(_BRepCheck.brepcheck_SelfIntersection)

    __repr__ = _dumps_object


    def __init__(self):
        _BRepCheck.brepcheck_swiginit(self, _BRepCheck.new_brepcheck())
    __swig_destroy__ = _BRepCheck.delete_brepcheck

# Register brepcheck in _BRepCheck:
_BRepCheck.brepcheck_swigregister(brepcheck)
brepcheck_Add = _BRepCheck.brepcheck_Add
brepcheck_PrecCurve = _BRepCheck.brepcheck_PrecCurve
brepcheck_PrecSurface = _BRepCheck.brepcheck_PrecSurface
brepcheck_Print = _BRepCheck.brepcheck_Print
brepcheck_SelfIntersection = _BRepCheck.brepcheck_SelfIntersection

class BRepCheck_Analyzer(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"""
        * Constructs a shape validation object defined by the shape S. <S> is the shape to control. <GeomControls> If False only topological informaions are checked. The geometricals controls are For a Vertex : BRepCheck_InvalidToleranceValue NYI For an Edge : BRepCheck_InvalidCurveOnClosedSurface, BRepCheck_InvalidCurveOnSurface, BRepCheck_InvalidSameParameterFlag, BRepCheck_InvalidToleranceValue NYI For a face : BRepCheck_UnorientableShape, BRepCheck_IntersectingWires, BRepCheck_InvalidToleranceValue NYI For a wire : BRepCheck_SelfIntersectingWire
        	:param S:
        	:type S: TopoDS_Shape
        	:param GeomControls: default value is Standard_True
        	:type GeomControls: bool
        	:rtype: None
        """
        _BRepCheck.BRepCheck_Analyzer_swiginit(self, _BRepCheck.new_BRepCheck_Analyzer(*args))
    Init = _swig_new_instance_method(_BRepCheck.BRepCheck_Analyzer_Init)
    IsValid = _swig_new_instance_method(_BRepCheck.BRepCheck_Analyzer_IsValid)
    Result = _swig_new_instance_method(_BRepCheck.BRepCheck_Analyzer_Result)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepCheck.delete_BRepCheck_Analyzer

# Register BRepCheck_Analyzer in _BRepCheck:
_BRepCheck.BRepCheck_Analyzer_swigregister(BRepCheck_Analyzer)

class BRepCheck_Result(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    Blind = _swig_new_instance_method(_BRepCheck.BRepCheck_Result_Blind)
    ContextualShape = _swig_new_instance_method(_BRepCheck.BRepCheck_Result_ContextualShape)
    InContext = _swig_new_instance_method(_BRepCheck.BRepCheck_Result_InContext)
    Init = _swig_new_instance_method(_BRepCheck.BRepCheck_Result_Init)
    InitContextIterator = _swig_new_instance_method(_BRepCheck.BRepCheck_Result_InitContextIterator)
    IsBlind = _swig_new_instance_method(_BRepCheck.BRepCheck_Result_IsBlind)
    IsMinimum = _swig_new_instance_method(_BRepCheck.BRepCheck_Result_IsMinimum)
    Minimum = _swig_new_instance_method(_BRepCheck.BRepCheck_Result_Minimum)
    MoreShapeInContext = _swig_new_instance_method(_BRepCheck.BRepCheck_Result_MoreShapeInContext)
    NextShapeInContext = _swig_new_instance_method(_BRepCheck.BRepCheck_Result_NextShapeInContext)
    SetFailStatus = _swig_new_instance_method(_BRepCheck.BRepCheck_Result_SetFailStatus)
    Status = _swig_new_instance_method(_BRepCheck.BRepCheck_Result_Status)
    StatusOnShape = _swig_new_instance_method(_BRepCheck.BRepCheck_Result_StatusOnShape)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepCheck.delete_BRepCheck_Result

# Register BRepCheck_Result in _BRepCheck:
_BRepCheck.BRepCheck_Result_swigregister(BRepCheck_Result)

class BRepCheck_Edge(BRepCheck_Result):
    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"""
        :param E:
        	:type E: TopoDS_Edge
        	:rtype: None
        """
        _BRepCheck.BRepCheck_Edge_swiginit(self, _BRepCheck.new_BRepCheck_Edge(*args))
    CheckPolygonOnTriangulation = _swig_new_instance_method(_BRepCheck.BRepCheck_Edge_CheckPolygonOnTriangulation)
    GeometricControls = _swig_new_instance_method(_BRepCheck.BRepCheck_Edge_GeometricControls)
    SetStatus = _swig_new_instance_method(_BRepCheck.BRepCheck_Edge_SetStatus)
    Tolerance = _swig_new_instance_method(_BRepCheck.BRepCheck_Edge_Tolerance)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepCheck.delete_BRepCheck_Edge

# Register BRepCheck_Edge in _BRepCheck:
_BRepCheck.BRepCheck_Edge_swigregister(BRepCheck_Edge)

class BRepCheck_Face(BRepCheck_Result):
    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"""
        :param F:
        	:type F: TopoDS_Face
        	:rtype: None
        """
        _BRepCheck.BRepCheck_Face_swiginit(self, _BRepCheck.new_BRepCheck_Face(*args))
    ClassifyWires = _swig_new_instance_method(_BRepCheck.BRepCheck_Face_ClassifyWires)
    GeometricControls = _swig_new_instance_method(_BRepCheck.BRepCheck_Face_GeometricControls)
    IntersectWires = _swig_new_instance_method(_BRepCheck.BRepCheck_Face_IntersectWires)
    IsUnorientable = _swig_new_instance_method(_BRepCheck.BRepCheck_Face_IsUnorientable)
    OrientationOfWires = _swig_new_instance_method(_BRepCheck.BRepCheck_Face_OrientationOfWires)
    SetStatus = _swig_new_instance_method(_BRepCheck.BRepCheck_Face_SetStatus)
    SetUnorientable = _swig_new_instance_method(_BRepCheck.BRepCheck_Face_SetUnorientable)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepCheck.delete_BRepCheck_Face

# Register BRepCheck_Face in _BRepCheck:
_BRepCheck.BRepCheck_Face_swigregister(BRepCheck_Face)

class BRepCheck_Shell(BRepCheck_Result):
    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"""
        :param S:
        	:type S: TopoDS_Shell
        	:rtype: None
        """
        _BRepCheck.BRepCheck_Shell_swiginit(self, _BRepCheck.new_BRepCheck_Shell(*args))
    Closed = _swig_new_instance_method(_BRepCheck.BRepCheck_Shell_Closed)
    IsUnorientable = _swig_new_instance_method(_BRepCheck.BRepCheck_Shell_IsUnorientable)
    NbConnectedSet = _swig_new_instance_method(_BRepCheck.BRepCheck_Shell_NbConnectedSet)
    Orientation = _swig_new_instance_method(_BRepCheck.BRepCheck_Shell_Orientation)
    SetUnorientable = _swig_new_instance_method(_BRepCheck.BRepCheck_Shell_SetUnorientable)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepCheck.delete_BRepCheck_Shell

# Register BRepCheck_Shell in _BRepCheck:
_BRepCheck.BRepCheck_Shell_swigregister(BRepCheck_Shell)

class BRepCheck_Solid(BRepCheck_Result):
    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"""
        * Constructor <theS> is the solid to check
        	:param theS:
        	:type theS: TopoDS_Solid
        	:rtype: None
        """
        _BRepCheck.BRepCheck_Solid_swiginit(self, _BRepCheck.new_BRepCheck_Solid(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepCheck.delete_BRepCheck_Solid

# Register BRepCheck_Solid in _BRepCheck:
_BRepCheck.BRepCheck_Solid_swigregister(BRepCheck_Solid)

class BRepCheck_Vertex(BRepCheck_Result):
    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"""
        :param V:
        	:type V: TopoDS_Vertex
        	:rtype: None
        """
        _BRepCheck.BRepCheck_Vertex_swiginit(self, _BRepCheck.new_BRepCheck_Vertex(*args))
    Tolerance = _swig_new_instance_method(_BRepCheck.BRepCheck_Vertex_Tolerance)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepCheck.delete_BRepCheck_Vertex

# Register BRepCheck_Vertex in _BRepCheck:
_BRepCheck.BRepCheck_Vertex_swigregister(BRepCheck_Vertex)

class BRepCheck_Wire(BRepCheck_Result):
    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"""
        :param W:
        	:type W: TopoDS_Wire
        	:rtype: None
        """
        _BRepCheck.BRepCheck_Wire_swiginit(self, _BRepCheck.new_BRepCheck_Wire(*args))
    Closed = _swig_new_instance_method(_BRepCheck.BRepCheck_Wire_Closed)
    Closed2d = _swig_new_instance_method(_BRepCheck.BRepCheck_Wire_Closed2d)
    GeometricControls = _swig_new_instance_method(_BRepCheck.BRepCheck_Wire_GeometricControls)
    Orientation = _swig_new_instance_method(_BRepCheck.BRepCheck_Wire_Orientation)
    SelfIntersect = _swig_new_instance_method(_BRepCheck.BRepCheck_Wire_SelfIntersect)
    SetStatus = _swig_new_instance_method(_BRepCheck.BRepCheck_Wire_SetStatus)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRepCheck.delete_BRepCheck_Wire

# Register BRepCheck_Wire in _BRepCheck:
_BRepCheck.BRepCheck_Wire_swigregister(BRepCheck_Wire)



