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



from sys import version_info
if version_info >= (3,0,0):
    new_instancemethod = lambda func, inst, cls: _Draft.SWIG_PyInstanceMethod_New(func)
else:
    from new import instancemethod as new_instancemethod
if version_info >= (2,6,0):
    def swig_import_helper():
        from os.path import dirname
        import imp
        fp = None
        try:
            fp, pathname, description = imp.find_module('_Draft', [dirname(__file__)])
        except ImportError:
            import _Draft
            return _Draft
        if fp is not None:
            try:
                _mod = imp.load_module('_Draft', fp, pathname, description)
            finally:
                fp.close()
            return _mod
    _Draft = swig_import_helper()
    del swig_import_helper
else:
    import _Draft
del version_info
try:
    _swig_property = property
except NameError:
    pass # Python < 2.2 doesn't have 'property'.
def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
    if (name == "thisown"): return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name,None)
    if method: return method(self,value)
    if (not static):
        self.__dict__[name] = value
    else:
        raise AttributeError("You cannot add attributes to %s" % self)

def _swig_setattr(self,class_type,name,value):
    return _swig_setattr_nondynamic(self,class_type,name,value,0)

def _swig_getattr(self,class_type,name):
    if (name == "thisown"): return self.this.own()
    method = class_type.__swig_getmethods__.get(name,None)
    if method: return method(self)
    raise AttributeError(name)

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

try:
    _object = object
    _newclass = 1
except AttributeError:
    class _object : pass
    _newclass = 0


def _swig_setattr_nondynamic_method(set):
    def set_attr(self,name,value):
        if (name == "thisown"): return self.this.own(value)
        if hasattr(self,name) or (name == "this"):
            set(self,name,value)
        else:
            raise AttributeError("You cannot add attributes to %s" % self)
    return set_attr


class SwigPyIterator(object):
    thisown = _swig_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__ = _Draft.delete_SwigPyIterator
    def __iter__(self): return self
SwigPyIterator.value = new_instancemethod(_Draft.SwigPyIterator_value,None,SwigPyIterator)
SwigPyIterator.incr = new_instancemethod(_Draft.SwigPyIterator_incr,None,SwigPyIterator)
SwigPyIterator.decr = new_instancemethod(_Draft.SwigPyIterator_decr,None,SwigPyIterator)
SwigPyIterator.distance = new_instancemethod(_Draft.SwigPyIterator_distance,None,SwigPyIterator)
SwigPyIterator.equal = new_instancemethod(_Draft.SwigPyIterator_equal,None,SwigPyIterator)
SwigPyIterator.copy = new_instancemethod(_Draft.SwigPyIterator_copy,None,SwigPyIterator)
SwigPyIterator.next = new_instancemethod(_Draft.SwigPyIterator_next,None,SwigPyIterator)
SwigPyIterator.__next__ = new_instancemethod(_Draft.SwigPyIterator___next__,None,SwigPyIterator)
SwigPyIterator.previous = new_instancemethod(_Draft.SwigPyIterator_previous,None,SwigPyIterator)
SwigPyIterator.advance = new_instancemethod(_Draft.SwigPyIterator_advance,None,SwigPyIterator)
SwigPyIterator.__eq__ = new_instancemethod(_Draft.SwigPyIterator___eq__,None,SwigPyIterator)
SwigPyIterator.__ne__ = new_instancemethod(_Draft.SwigPyIterator___ne__,None,SwigPyIterator)
SwigPyIterator.__iadd__ = new_instancemethod(_Draft.SwigPyIterator___iadd__,None,SwigPyIterator)
SwigPyIterator.__isub__ = new_instancemethod(_Draft.SwigPyIterator___isub__,None,SwigPyIterator)
SwigPyIterator.__add__ = new_instancemethod(_Draft.SwigPyIterator___add__,None,SwigPyIterator)
SwigPyIterator.__sub__ = new_instancemethod(_Draft.SwigPyIterator___sub__,None,SwigPyIterator)
SwigPyIterator_swigregister = _Draft.SwigPyIterator_swigregister
SwigPyIterator_swigregister(SwigPyIterator)

import OCC.TopoDS
import OCC.MMgt
import OCC.Standard
import OCC.TCollection
import OCC.TopLoc
import OCC.gp
import OCC.TopAbs
import OCC.Geom
import OCC.GeomAbs
import OCC.TColgp
import OCC.TColStd
import OCC.Geom2d
import OCC.BRepTools
import OCC.Bnd
import OCC.TopTools
import OCC.Message
import OCC.BRep
import OCC.Poly
import OCC.NCollection
import OCC.TShort
def register_handle(handle, base_object):
    """
    Inserts the handle into the base object to
    prevent memory corruption in certain cases
    """
    try:
        if base_object.IsKind("Standard_Transient"):
            base_object.thisHandle = handle
            base_object.thisown = False
    except:
        pass

Draft_NoError = _Draft.Draft_NoError
Draft_FaceRecomputation = _Draft.Draft_FaceRecomputation
Draft_EdgeRecomputation = _Draft.Draft_EdgeRecomputation
Draft_VertexRecomputation = _Draft.Draft_VertexRecomputation
class draft(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def Angle(*args):
        """
        * Returns the draft angle of the face <F> using the direction <Direction>. The method is valid for : - Plane faces, - Cylindrical or conical faces, when the direction of the axis of the surface is colinear with the direction. Otherwise, the exception DomainError is raised.

        :param F:
        :type F: TopoDS_Face &
        :param Direction:
        :type Direction: gp_Dir
        :rtype: float

        """
        return _Draft.draft_Angle(*args)

    Angle = staticmethod(Angle)
    def __init__(self): 
        _Draft.draft_swiginit(self,_Draft.new_draft())
    __swig_destroy__ = _Draft.delete_draft
draft_swigregister = _Draft.draft_swigregister
draft_swigregister(draft)

def draft_Angle(*args):
  """
    * Returns the draft angle of the face <F> using the direction <Direction>. The method is valid for : - Plane faces, - Cylindrical or conical faces, when the direction of the axis of the surface is colinear with the direction. Otherwise, the exception DomainError is raised.

    :param F:
    :type F: TopoDS_Face &
    :param Direction:
    :type Direction: gp_Dir
    :rtype: float

    """
  return _Draft.draft_Angle(*args)

class Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo(OCC.TCollection.TCollection_BasicMapIterator):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :rtype: None

        :param aMap:
        :type aMap: Draft_DataMapOfEdgeEdgeInfo &
        :rtype: None

        """
        _Draft.Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_swiginit(self,_Draft.new_Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo(*args))
    def Initialize(self, *args):
        """
        :param aMap:
        :type aMap: Draft_DataMapOfEdgeEdgeInfo &
        :rtype: None

        """
        return _Draft.Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_Initialize(self, *args)

    def Key(self, *args):
        """
        :rtype: TopoDS_Edge

        """
        return _Draft.Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_Key(self, *args)

    def Value(self, *args):
        """
        :rtype: Draft_EdgeInfo

        """
        return _Draft.Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_Value(self, *args)

    __swig_destroy__ = _Draft.delete_Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo
Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo.Initialize = new_instancemethod(_Draft.Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_Initialize,None,Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo)
Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo.Key = new_instancemethod(_Draft.Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_Key,None,Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo)
Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo.Value = new_instancemethod(_Draft.Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_Value,None,Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo)
Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_swigregister = _Draft.Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_swigregister
Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_swigregister(Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo)

class Draft_DataMapIteratorOfDataMapOfFaceFaceInfo(OCC.TCollection.TCollection_BasicMapIterator):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :rtype: None

        :param aMap:
        :type aMap: Draft_DataMapOfFaceFaceInfo &
        :rtype: None

        """
        _Draft.Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_swiginit(self,_Draft.new_Draft_DataMapIteratorOfDataMapOfFaceFaceInfo(*args))
    def Initialize(self, *args):
        """
        :param aMap:
        :type aMap: Draft_DataMapOfFaceFaceInfo &
        :rtype: None

        """
        return _Draft.Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_Initialize(self, *args)

    def Key(self, *args):
        """
        :rtype: TopoDS_Face

        """
        return _Draft.Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_Key(self, *args)

    def Value(self, *args):
        """
        :rtype: Draft_FaceInfo

        """
        return _Draft.Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_Value(self, *args)

    __swig_destroy__ = _Draft.delete_Draft_DataMapIteratorOfDataMapOfFaceFaceInfo
Draft_DataMapIteratorOfDataMapOfFaceFaceInfo.Initialize = new_instancemethod(_Draft.Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_Initialize,None,Draft_DataMapIteratorOfDataMapOfFaceFaceInfo)
Draft_DataMapIteratorOfDataMapOfFaceFaceInfo.Key = new_instancemethod(_Draft.Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_Key,None,Draft_DataMapIteratorOfDataMapOfFaceFaceInfo)
Draft_DataMapIteratorOfDataMapOfFaceFaceInfo.Value = new_instancemethod(_Draft.Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_Value,None,Draft_DataMapIteratorOfDataMapOfFaceFaceInfo)
Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_swigregister = _Draft.Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_swigregister
Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_swigregister(Draft_DataMapIteratorOfDataMapOfFaceFaceInfo)

class Draft_DataMapIteratorOfDataMapOfVertexVertexInfo(OCC.TCollection.TCollection_BasicMapIterator):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :rtype: None

        :param aMap:
        :type aMap: Draft_DataMapOfVertexVertexInfo &
        :rtype: None

        """
        _Draft.Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_swiginit(self,_Draft.new_Draft_DataMapIteratorOfDataMapOfVertexVertexInfo(*args))
    def Initialize(self, *args):
        """
        :param aMap:
        :type aMap: Draft_DataMapOfVertexVertexInfo &
        :rtype: None

        """
        return _Draft.Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_Initialize(self, *args)

    def Key(self, *args):
        """
        :rtype: TopoDS_Vertex

        """
        return _Draft.Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_Key(self, *args)

    def Value(self, *args):
        """
        :rtype: Draft_VertexInfo

        """
        return _Draft.Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_Value(self, *args)

    __swig_destroy__ = _Draft.delete_Draft_DataMapIteratorOfDataMapOfVertexVertexInfo
Draft_DataMapIteratorOfDataMapOfVertexVertexInfo.Initialize = new_instancemethod(_Draft.Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_Initialize,None,Draft_DataMapIteratorOfDataMapOfVertexVertexInfo)
Draft_DataMapIteratorOfDataMapOfVertexVertexInfo.Key = new_instancemethod(_Draft.Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_Key,None,Draft_DataMapIteratorOfDataMapOfVertexVertexInfo)
Draft_DataMapIteratorOfDataMapOfVertexVertexInfo.Value = new_instancemethod(_Draft.Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_Value,None,Draft_DataMapIteratorOfDataMapOfVertexVertexInfo)
Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_swigregister = _Draft.Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_swigregister
Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_swigregister(Draft_DataMapIteratorOfDataMapOfVertexVertexInfo)

class Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo(OCC.TCollection.TCollection_MapNode):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :param K:
        :type K: TopoDS_Edge &
        :param I:
        :type I: Draft_EdgeInfo &
        :param n:
        :type n: TCollection_MapNodePtr &
        :rtype: None

        """
        _Draft.Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_swiginit(self,_Draft.new_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo(*args))
    def Key(self, *args):
        """
        :rtype: TopoDS_Edge

        """
        return _Draft.Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_Key(self, *args)

    def Value(self, *args):
        """
        :rtype: Draft_EdgeInfo

        """
        return _Draft.Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_Value(self, *args)

    def GetHandle(self):
        try:
            return self.thisHandle
        except:
            self.thisHandle = Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo(self)
            self.thisown = False
            return self.thisHandle

    __swig_destroy__ = _Draft.delete_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo
Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo.Key = new_instancemethod(_Draft.Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_Key,None,Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo)
Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo.Value = new_instancemethod(_Draft.Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_Value,None,Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo)
Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_swigregister = _Draft.Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_swigregister
Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_swigregister(Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo)

class Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo(OCC.TCollection.Handle_TCollection_MapNode):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        _Draft.Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_swiginit(self,_Draft.new_Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo(*args))
        # register the handle in the base object
        if len(args) > 0:
            register_handle(self, args[0])



    DownCast = staticmethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_DownCast)
    __swig_destroy__ = _Draft.delete_Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo
Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo.Nullify = new_instancemethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_Nullify,None,Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo)
Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo.IsNull = new_instancemethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_IsNull,None,Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo)
Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo.GetObject = new_instancemethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_GetObject,None,Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo)
Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_swigregister = _Draft.Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_swigregister
Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_swigregister(Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo)

def Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_DownCast(*args):
  return _Draft.Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_DownCast(*args)
Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_DownCast = _Draft.Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_DownCast

class Draft_DataMapNodeOfDataMapOfFaceFaceInfo(OCC.TCollection.TCollection_MapNode):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :param K:
        :type K: TopoDS_Face &
        :param I:
        :type I: Draft_FaceInfo &
        :param n:
        :type n: TCollection_MapNodePtr &
        :rtype: None

        """
        _Draft.Draft_DataMapNodeOfDataMapOfFaceFaceInfo_swiginit(self,_Draft.new_Draft_DataMapNodeOfDataMapOfFaceFaceInfo(*args))
    def Key(self, *args):
        """
        :rtype: TopoDS_Face

        """
        return _Draft.Draft_DataMapNodeOfDataMapOfFaceFaceInfo_Key(self, *args)

    def Value(self, *args):
        """
        :rtype: Draft_FaceInfo

        """
        return _Draft.Draft_DataMapNodeOfDataMapOfFaceFaceInfo_Value(self, *args)

    def GetHandle(self):
        try:
            return self.thisHandle
        except:
            self.thisHandle = Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo(self)
            self.thisown = False
            return self.thisHandle

    __swig_destroy__ = _Draft.delete_Draft_DataMapNodeOfDataMapOfFaceFaceInfo
Draft_DataMapNodeOfDataMapOfFaceFaceInfo.Key = new_instancemethod(_Draft.Draft_DataMapNodeOfDataMapOfFaceFaceInfo_Key,None,Draft_DataMapNodeOfDataMapOfFaceFaceInfo)
Draft_DataMapNodeOfDataMapOfFaceFaceInfo.Value = new_instancemethod(_Draft.Draft_DataMapNodeOfDataMapOfFaceFaceInfo_Value,None,Draft_DataMapNodeOfDataMapOfFaceFaceInfo)
Draft_DataMapNodeOfDataMapOfFaceFaceInfo_swigregister = _Draft.Draft_DataMapNodeOfDataMapOfFaceFaceInfo_swigregister
Draft_DataMapNodeOfDataMapOfFaceFaceInfo_swigregister(Draft_DataMapNodeOfDataMapOfFaceFaceInfo)

class Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo(OCC.TCollection.Handle_TCollection_MapNode):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        _Draft.Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_swiginit(self,_Draft.new_Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo(*args))
        # register the handle in the base object
        if len(args) > 0:
            register_handle(self, args[0])



    DownCast = staticmethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_DownCast)
    __swig_destroy__ = _Draft.delete_Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo
Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo.Nullify = new_instancemethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_Nullify,None,Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo)
Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo.IsNull = new_instancemethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_IsNull,None,Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo)
Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo.GetObject = new_instancemethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_GetObject,None,Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo)
Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_swigregister = _Draft.Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_swigregister
Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_swigregister(Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo)

def Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_DownCast(*args):
  return _Draft.Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_DownCast(*args)
Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_DownCast = _Draft.Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_DownCast

class Draft_DataMapNodeOfDataMapOfVertexVertexInfo(OCC.TCollection.TCollection_MapNode):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :param K:
        :type K: TopoDS_Vertex &
        :param I:
        :type I: Draft_VertexInfo &
        :param n:
        :type n: TCollection_MapNodePtr &
        :rtype: None

        """
        _Draft.Draft_DataMapNodeOfDataMapOfVertexVertexInfo_swiginit(self,_Draft.new_Draft_DataMapNodeOfDataMapOfVertexVertexInfo(*args))
    def Key(self, *args):
        """
        :rtype: TopoDS_Vertex

        """
        return _Draft.Draft_DataMapNodeOfDataMapOfVertexVertexInfo_Key(self, *args)

    def Value(self, *args):
        """
        :rtype: Draft_VertexInfo

        """
        return _Draft.Draft_DataMapNodeOfDataMapOfVertexVertexInfo_Value(self, *args)

    def GetHandle(self):
        try:
            return self.thisHandle
        except:
            self.thisHandle = Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo(self)
            self.thisown = False
            return self.thisHandle

    __swig_destroy__ = _Draft.delete_Draft_DataMapNodeOfDataMapOfVertexVertexInfo
Draft_DataMapNodeOfDataMapOfVertexVertexInfo.Key = new_instancemethod(_Draft.Draft_DataMapNodeOfDataMapOfVertexVertexInfo_Key,None,Draft_DataMapNodeOfDataMapOfVertexVertexInfo)
Draft_DataMapNodeOfDataMapOfVertexVertexInfo.Value = new_instancemethod(_Draft.Draft_DataMapNodeOfDataMapOfVertexVertexInfo_Value,None,Draft_DataMapNodeOfDataMapOfVertexVertexInfo)
Draft_DataMapNodeOfDataMapOfVertexVertexInfo_swigregister = _Draft.Draft_DataMapNodeOfDataMapOfVertexVertexInfo_swigregister
Draft_DataMapNodeOfDataMapOfVertexVertexInfo_swigregister(Draft_DataMapNodeOfDataMapOfVertexVertexInfo)

class Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo(OCC.TCollection.Handle_TCollection_MapNode):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        _Draft.Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_swiginit(self,_Draft.new_Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo(*args))
        # register the handle in the base object
        if len(args) > 0:
            register_handle(self, args[0])



    DownCast = staticmethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_DownCast)
    __swig_destroy__ = _Draft.delete_Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo
Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo.Nullify = new_instancemethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_Nullify,None,Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo)
Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo.IsNull = new_instancemethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_IsNull,None,Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo)
Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo.GetObject = new_instancemethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_GetObject,None,Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo)
Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_swigregister = _Draft.Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_swigregister
Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_swigregister(Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo)

def Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_DownCast(*args):
  return _Draft.Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_DownCast(*args)
Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_DownCast = _Draft.Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_DownCast

class Draft_DataMapOfEdgeEdgeInfo(OCC.TCollection.TCollection_BasicMap):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :param NbBuckets: default value is 1
        :type NbBuckets: int
        :rtype: None

        """
        _Draft.Draft_DataMapOfEdgeEdgeInfo_swiginit(self,_Draft.new_Draft_DataMapOfEdgeEdgeInfo(*args))
    def Assign(self, *args):
        """
        :param Other:
        :type Other: Draft_DataMapOfEdgeEdgeInfo &
        :rtype: Draft_DataMapOfEdgeEdgeInfo

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_Assign(self, *args)

    def Set(self, *args):
        """
        :param Other:
        :type Other: Draft_DataMapOfEdgeEdgeInfo &
        :rtype: Draft_DataMapOfEdgeEdgeInfo

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_Set(self, *args)

    def ReSize(self, *args):
        """
        :param NbBuckets:
        :type NbBuckets: int
        :rtype: None

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_ReSize(self, *args)

    def Clear(self, *args):
        """
        :rtype: None

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_Clear(self, *args)

    def Bind(self, *args):
        """
        :param K:
        :type K: TopoDS_Edge &
        :param I:
        :type I: Draft_EdgeInfo &
        :rtype: bool

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_Bind(self, *args)

    def IsBound(self, *args):
        """
        :param K:
        :type K: TopoDS_Edge &
        :rtype: bool

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_IsBound(self, *args)

    def UnBind(self, *args):
        """
        :param K:
        :type K: TopoDS_Edge &
        :rtype: bool

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_UnBind(self, *args)

    def Find(self, *args):
        """
        :param K:
        :type K: TopoDS_Edge &
        :rtype: Draft_EdgeInfo

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_Find(self, *args)

    def ChangeFind(self, *args):
        """
        :param K:
        :type K: TopoDS_Edge &
        :rtype: Draft_EdgeInfo

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_ChangeFind(self, *args)

    def Find1(self, *args):
        """
        :param K:
        :type K: TopoDS_Edge &
        :rtype: Standard_Address

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_Find1(self, *args)

    def ChangeFind1(self, *args):
        """
        :param K:
        :type K: TopoDS_Edge &
        :rtype: Standard_Address

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_ChangeFind1(self, *args)

    __swig_destroy__ = _Draft.delete_Draft_DataMapOfEdgeEdgeInfo
Draft_DataMapOfEdgeEdgeInfo.Assign = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_Assign,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.Set = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_Set,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.ReSize = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_ReSize,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.Clear = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_Clear,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.Bind = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_Bind,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.IsBound = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_IsBound,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.UnBind = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_UnBind,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.Find = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_Find,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.ChangeFind = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_ChangeFind,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.Find1 = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_Find1,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.ChangeFind1 = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_ChangeFind1,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo_swigregister = _Draft.Draft_DataMapOfEdgeEdgeInfo_swigregister
Draft_DataMapOfEdgeEdgeInfo_swigregister(Draft_DataMapOfEdgeEdgeInfo)

class Draft_DataMapOfFaceFaceInfo(OCC.TCollection.TCollection_BasicMap):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :param NbBuckets: default value is 1
        :type NbBuckets: int
        :rtype: None

        """
        _Draft.Draft_DataMapOfFaceFaceInfo_swiginit(self,_Draft.new_Draft_DataMapOfFaceFaceInfo(*args))
    def Assign(self, *args):
        """
        :param Other:
        :type Other: Draft_DataMapOfFaceFaceInfo &
        :rtype: Draft_DataMapOfFaceFaceInfo

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_Assign(self, *args)

    def Set(self, *args):
        """
        :param Other:
        :type Other: Draft_DataMapOfFaceFaceInfo &
        :rtype: Draft_DataMapOfFaceFaceInfo

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_Set(self, *args)

    def ReSize(self, *args):
        """
        :param NbBuckets:
        :type NbBuckets: int
        :rtype: None

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_ReSize(self, *args)

    def Clear(self, *args):
        """
        :rtype: None

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_Clear(self, *args)

    def Bind(self, *args):
        """
        :param K:
        :type K: TopoDS_Face &
        :param I:
        :type I: Draft_FaceInfo &
        :rtype: bool

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_Bind(self, *args)

    def IsBound(self, *args):
        """
        :param K:
        :type K: TopoDS_Face &
        :rtype: bool

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_IsBound(self, *args)

    def UnBind(self, *args):
        """
        :param K:
        :type K: TopoDS_Face &
        :rtype: bool

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_UnBind(self, *args)

    def Find(self, *args):
        """
        :param K:
        :type K: TopoDS_Face &
        :rtype: Draft_FaceInfo

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_Find(self, *args)

    def ChangeFind(self, *args):
        """
        :param K:
        :type K: TopoDS_Face &
        :rtype: Draft_FaceInfo

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_ChangeFind(self, *args)

    def Find1(self, *args):
        """
        :param K:
        :type K: TopoDS_Face &
        :rtype: Standard_Address

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_Find1(self, *args)

    def ChangeFind1(self, *args):
        """
        :param K:
        :type K: TopoDS_Face &
        :rtype: Standard_Address

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_ChangeFind1(self, *args)

    __swig_destroy__ = _Draft.delete_Draft_DataMapOfFaceFaceInfo
Draft_DataMapOfFaceFaceInfo.Assign = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_Assign,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.Set = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_Set,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.ReSize = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_ReSize,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.Clear = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_Clear,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.Bind = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_Bind,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.IsBound = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_IsBound,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.UnBind = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_UnBind,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.Find = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_Find,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.ChangeFind = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_ChangeFind,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.Find1 = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_Find1,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.ChangeFind1 = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_ChangeFind1,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo_swigregister = _Draft.Draft_DataMapOfFaceFaceInfo_swigregister
Draft_DataMapOfFaceFaceInfo_swigregister(Draft_DataMapOfFaceFaceInfo)

class Draft_DataMapOfVertexVertexInfo(OCC.TCollection.TCollection_BasicMap):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :param NbBuckets: default value is 1
        :type NbBuckets: int
        :rtype: None

        """
        _Draft.Draft_DataMapOfVertexVertexInfo_swiginit(self,_Draft.new_Draft_DataMapOfVertexVertexInfo(*args))
    def Assign(self, *args):
        """
        :param Other:
        :type Other: Draft_DataMapOfVertexVertexInfo &
        :rtype: Draft_DataMapOfVertexVertexInfo

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_Assign(self, *args)

    def Set(self, *args):
        """
        :param Other:
        :type Other: Draft_DataMapOfVertexVertexInfo &
        :rtype: Draft_DataMapOfVertexVertexInfo

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_Set(self, *args)

    def ReSize(self, *args):
        """
        :param NbBuckets:
        :type NbBuckets: int
        :rtype: None

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_ReSize(self, *args)

    def Clear(self, *args):
        """
        :rtype: None

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_Clear(self, *args)

    def Bind(self, *args):
        """
        :param K:
        :type K: TopoDS_Vertex &
        :param I:
        :type I: Draft_VertexInfo &
        :rtype: bool

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_Bind(self, *args)

    def IsBound(self, *args):
        """
        :param K:
        :type K: TopoDS_Vertex &
        :rtype: bool

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_IsBound(self, *args)

    def UnBind(self, *args):
        """
        :param K:
        :type K: TopoDS_Vertex &
        :rtype: bool

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_UnBind(self, *args)

    def Find(self, *args):
        """
        :param K:
        :type K: TopoDS_Vertex &
        :rtype: Draft_VertexInfo

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_Find(self, *args)

    def ChangeFind(self, *args):
        """
        :param K:
        :type K: TopoDS_Vertex &
        :rtype: Draft_VertexInfo

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_ChangeFind(self, *args)

    def Find1(self, *args):
        """
        :param K:
        :type K: TopoDS_Vertex &
        :rtype: Standard_Address

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_Find1(self, *args)

    def ChangeFind1(self, *args):
        """
        :param K:
        :type K: TopoDS_Vertex &
        :rtype: Standard_Address

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_ChangeFind1(self, *args)

    __swig_destroy__ = _Draft.delete_Draft_DataMapOfVertexVertexInfo
Draft_DataMapOfVertexVertexInfo.Assign = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_Assign,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.Set = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_Set,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.ReSize = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_ReSize,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.Clear = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_Clear,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.Bind = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_Bind,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.IsBound = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_IsBound,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.UnBind = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_UnBind,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.Find = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_Find,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.ChangeFind = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_ChangeFind,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.Find1 = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_Find1,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.ChangeFind1 = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_ChangeFind1,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo_swigregister = _Draft.Draft_DataMapOfVertexVertexInfo_swigregister
Draft_DataMapOfVertexVertexInfo_swigregister(Draft_DataMapOfVertexVertexInfo)

class Draft_EdgeInfo(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :rtype: None

        :param HasNewGeometry:
        :type HasNewGeometry: bool
        :rtype: None

        """
        _Draft.Draft_EdgeInfo_swiginit(self,_Draft.new_Draft_EdgeInfo(*args))
    def Add(self, *args):
        """
        :param F:
        :type F: TopoDS_Face &
        :rtype: None

        """
        return _Draft.Draft_EdgeInfo_Add(self, *args)

    def Tangent(self, *args):
        """
        :param P:
        :type P: gp_Pnt
        :rtype: None

        """
        return _Draft.Draft_EdgeInfo_Tangent(self, *args)

    def IsTangent(self, *args):
        """
        :param P:
        :type P: gp_Pnt
        :rtype: bool

        """
        return _Draft.Draft_EdgeInfo_IsTangent(self, *args)

    def NewGeometry(self, *args):
        """
        :rtype: bool

        """
        return _Draft.Draft_EdgeInfo_NewGeometry(self, *args)

    def SetNewGeometry(self, *args):
        """
        :param NewGeom:
        :type NewGeom: bool
        :rtype: None

        """
        return _Draft.Draft_EdgeInfo_SetNewGeometry(self, *args)

    def Geometry(self, *args):
        """
        :rtype: Handle_Geom_Curve

        """
        return _Draft.Draft_EdgeInfo_Geometry(self, *args)

    def FirstFace(self, *args):
        """
        :rtype: TopoDS_Face

        """
        return _Draft.Draft_EdgeInfo_FirstFace(self, *args)

    def SecondFace(self, *args):
        """
        :rtype: TopoDS_Face

        """
        return _Draft.Draft_EdgeInfo_SecondFace(self, *args)

    def FirstPC(self, *args):
        """
        :rtype: Handle_Geom2d_Curve

        """
        return _Draft.Draft_EdgeInfo_FirstPC(self, *args)

    def SecondPC(self, *args):
        """
        :rtype: Handle_Geom2d_Curve

        """
        return _Draft.Draft_EdgeInfo_SecondPC(self, *args)

    def ChangeGeometry(self, *args):
        """
        :rtype: Handle_Geom_Curve

        """
        return _Draft.Draft_EdgeInfo_ChangeGeometry(self, *args)

    def ChangeFirstPC(self, *args):
        """
        :rtype: Handle_Geom2d_Curve

        """
        return _Draft.Draft_EdgeInfo_ChangeFirstPC(self, *args)

    def ChangeSecondPC(self, *args):
        """
        :rtype: Handle_Geom2d_Curve

        """
        return _Draft.Draft_EdgeInfo_ChangeSecondPC(self, *args)

    def RootFace(self, *args):
        """
        :param F:
        :type F: TopoDS_Face &
        :rtype: None

        :rtype: TopoDS_Face

        """
        return _Draft.Draft_EdgeInfo_RootFace(self, *args)

    def Tolerance(self, *args):
        """
        :param tol:
        :type tol: float
        :rtype: None

        :rtype: float

        """
        return _Draft.Draft_EdgeInfo_Tolerance(self, *args)

    __swig_destroy__ = _Draft.delete_Draft_EdgeInfo
Draft_EdgeInfo.Add = new_instancemethod(_Draft.Draft_EdgeInfo_Add,None,Draft_EdgeInfo)
Draft_EdgeInfo.Tangent = new_instancemethod(_Draft.Draft_EdgeInfo_Tangent,None,Draft_EdgeInfo)
Draft_EdgeInfo.IsTangent = new_instancemethod(_Draft.Draft_EdgeInfo_IsTangent,None,Draft_EdgeInfo)
Draft_EdgeInfo.NewGeometry = new_instancemethod(_Draft.Draft_EdgeInfo_NewGeometry,None,Draft_EdgeInfo)
Draft_EdgeInfo.SetNewGeometry = new_instancemethod(_Draft.Draft_EdgeInfo_SetNewGeometry,None,Draft_EdgeInfo)
Draft_EdgeInfo.Geometry = new_instancemethod(_Draft.Draft_EdgeInfo_Geometry,None,Draft_EdgeInfo)
Draft_EdgeInfo.FirstFace = new_instancemethod(_Draft.Draft_EdgeInfo_FirstFace,None,Draft_EdgeInfo)
Draft_EdgeInfo.SecondFace = new_instancemethod(_Draft.Draft_EdgeInfo_SecondFace,None,Draft_EdgeInfo)
Draft_EdgeInfo.FirstPC = new_instancemethod(_Draft.Draft_EdgeInfo_FirstPC,None,Draft_EdgeInfo)
Draft_EdgeInfo.SecondPC = new_instancemethod(_Draft.Draft_EdgeInfo_SecondPC,None,Draft_EdgeInfo)
Draft_EdgeInfo.ChangeGeometry = new_instancemethod(_Draft.Draft_EdgeInfo_ChangeGeometry,None,Draft_EdgeInfo)
Draft_EdgeInfo.ChangeFirstPC = new_instancemethod(_Draft.Draft_EdgeInfo_ChangeFirstPC,None,Draft_EdgeInfo)
Draft_EdgeInfo.ChangeSecondPC = new_instancemethod(_Draft.Draft_EdgeInfo_ChangeSecondPC,None,Draft_EdgeInfo)
Draft_EdgeInfo.RootFace = new_instancemethod(_Draft.Draft_EdgeInfo_RootFace,None,Draft_EdgeInfo)
Draft_EdgeInfo.Tolerance = new_instancemethod(_Draft.Draft_EdgeInfo_Tolerance,None,Draft_EdgeInfo)
Draft_EdgeInfo_swigregister = _Draft.Draft_EdgeInfo_swigregister
Draft_EdgeInfo_swigregister(Draft_EdgeInfo)

class Draft_FaceInfo(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :rtype: None

        :param S:
        :type S: Handle_Geom_Surface &
        :param HasNewGeometry:
        :type HasNewGeometry: bool
        :rtype: None

        """
        _Draft.Draft_FaceInfo_swiginit(self,_Draft.new_Draft_FaceInfo(*args))
    def NewGeometry(self, *args):
        """
        :rtype: bool

        """
        return _Draft.Draft_FaceInfo_NewGeometry(self, *args)

    def Add(self, *args):
        """
        :param F:
        :type F: TopoDS_Face &
        :rtype: None

        """
        return _Draft.Draft_FaceInfo_Add(self, *args)

    def FirstFace(self, *args):
        """
        :rtype: TopoDS_Face

        """
        return _Draft.Draft_FaceInfo_FirstFace(self, *args)

    def SecondFace(self, *args):
        """
        :rtype: TopoDS_Face

        """
        return _Draft.Draft_FaceInfo_SecondFace(self, *args)

    def Geometry(self, *args):
        """
        :rtype: Handle_Geom_Surface

        """
        return _Draft.Draft_FaceInfo_Geometry(self, *args)

    def ChangeGeometry(self, *args):
        """
        :rtype: Handle_Geom_Surface

        """
        return _Draft.Draft_FaceInfo_ChangeGeometry(self, *args)

    def RootFace(self, *args):
        """
        :param F:
        :type F: TopoDS_Face &
        :rtype: None

        :rtype: TopoDS_Face

        """
        return _Draft.Draft_FaceInfo_RootFace(self, *args)

    def ChangeCurve(self, *args):
        """
        :rtype: Handle_Geom_Curve

        """
        return _Draft.Draft_FaceInfo_ChangeCurve(self, *args)

    def Curve(self, *args):
        """
        :rtype: Handle_Geom_Curve

        """
        return _Draft.Draft_FaceInfo_Curve(self, *args)

    __swig_destroy__ = _Draft.delete_Draft_FaceInfo
Draft_FaceInfo.NewGeometry = new_instancemethod(_Draft.Draft_FaceInfo_NewGeometry,None,Draft_FaceInfo)
Draft_FaceInfo.Add = new_instancemethod(_Draft.Draft_FaceInfo_Add,None,Draft_FaceInfo)
Draft_FaceInfo.FirstFace = new_instancemethod(_Draft.Draft_FaceInfo_FirstFace,None,Draft_FaceInfo)
Draft_FaceInfo.SecondFace = new_instancemethod(_Draft.Draft_FaceInfo_SecondFace,None,Draft_FaceInfo)
Draft_FaceInfo.Geometry = new_instancemethod(_Draft.Draft_FaceInfo_Geometry,None,Draft_FaceInfo)
Draft_FaceInfo.ChangeGeometry = new_instancemethod(_Draft.Draft_FaceInfo_ChangeGeometry,None,Draft_FaceInfo)
Draft_FaceInfo.RootFace = new_instancemethod(_Draft.Draft_FaceInfo_RootFace,None,Draft_FaceInfo)
Draft_FaceInfo.ChangeCurve = new_instancemethod(_Draft.Draft_FaceInfo_ChangeCurve,None,Draft_FaceInfo)
Draft_FaceInfo.Curve = new_instancemethod(_Draft.Draft_FaceInfo_Curve,None,Draft_FaceInfo)
Draft_FaceInfo_swigregister = _Draft.Draft_FaceInfo_swigregister
Draft_FaceInfo_swigregister(Draft_FaceInfo)

class Draft_Modification(OCC.BRepTools.BRepTools_Modification):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :param S:
        :type S: TopoDS_Shape &
        :rtype: None

        """
        _Draft.Draft_Modification_swiginit(self,_Draft.new_Draft_Modification(*args))
    def Clear(self, *args):
        """
        * Resets on the same shape.

        :rtype: None

        """
        return _Draft.Draft_Modification_Clear(self, *args)

    def Init(self, *args):
        """
        * Changes the basis shape and resets.

        :param S:
        :type S: TopoDS_Shape &
        :rtype: None

        """
        return _Draft.Draft_Modification_Init(self, *args)

    def Add(self, *args):
        """
        * Adds the face F and propagates the draft modification to its neighbour faces if they are tangent. If an error occurs, will return False and ProblematicShape will return the 'bad' face.

        :param F:
        :type F: TopoDS_Face &
        :param Direction:
        :type Direction: gp_Dir
        :param Angle:
        :type Angle: float
        :param NeutralPlane:
        :type NeutralPlane: gp_Pln
        :param Flag: default value is Standard_True
        :type Flag: bool
        :rtype: bool

        """
        return _Draft.Draft_Modification_Add(self, *args)

    def Remove(self, *args):
        """
        * Removes the face F and the neighbour faces if they are tangent. It will be necessary to call this method if the method Add returns Standard_False, to unset ProblematicFace.

        :param F:
        :type F: TopoDS_Face &
        :rtype: None

        """
        return _Draft.Draft_Modification_Remove(self, *args)

    def Perform(self, *args):
        """
        * Performs the draft angle modification and sets the value returned by the method IsDone. If an error occurs, IsDone will return Standard_False, and an error status will be given by the method Error, and the shape on which the problem appeared will be given by ProblematicShape

        :rtype: None

        """
        return _Draft.Draft_Modification_Perform(self, *args)

    def IsDone(self, *args):
        """
        * Returns True if Perform has been succesfully called. Otherwise more information can be obtained using the methods Error() and ProblematicShape().

        :rtype: bool

        """
        return _Draft.Draft_Modification_IsDone(self, *args)

    def Error(self, *args):
        """
        :rtype: Draft_ErrorStatus

        """
        return _Draft.Draft_Modification_Error(self, *args)

    def ProblematicShape(self, *args):
        """
        * Returns the shape (Face, Edge or Vertex) on which an error occured.

        :rtype: TopoDS_Shape

        """
        return _Draft.Draft_Modification_ProblematicShape(self, *args)

    def ConnectedFaces(self, *args):
        """
        * Returns all the faces which have been added together with the face <F>.

        :param F:
        :type F: TopoDS_Face &
        :rtype: TopTools_ListOfShape

        """
        return _Draft.Draft_Modification_ConnectedFaces(self, *args)

    def ModifiedFaces(self, *args):
        """
        * Returns all the faces on which a modification has been given.

        :rtype: TopTools_ListOfShape

        """
        return _Draft.Draft_Modification_ModifiedFaces(self, *args)

    def GetHandle(self):
        try:
            return self.thisHandle
        except:
            self.thisHandle = Handle_Draft_Modification(self)
            self.thisown = False
            return self.thisHandle

    __swig_destroy__ = _Draft.delete_Draft_Modification
Draft_Modification.Clear = new_instancemethod(_Draft.Draft_Modification_Clear,None,Draft_Modification)
Draft_Modification.Init = new_instancemethod(_Draft.Draft_Modification_Init,None,Draft_Modification)
Draft_Modification.Add = new_instancemethod(_Draft.Draft_Modification_Add,None,Draft_Modification)
Draft_Modification.Remove = new_instancemethod(_Draft.Draft_Modification_Remove,None,Draft_Modification)
Draft_Modification.Perform = new_instancemethod(_Draft.Draft_Modification_Perform,None,Draft_Modification)
Draft_Modification.IsDone = new_instancemethod(_Draft.Draft_Modification_IsDone,None,Draft_Modification)
Draft_Modification.Error = new_instancemethod(_Draft.Draft_Modification_Error,None,Draft_Modification)
Draft_Modification.ProblematicShape = new_instancemethod(_Draft.Draft_Modification_ProblematicShape,None,Draft_Modification)
Draft_Modification.ConnectedFaces = new_instancemethod(_Draft.Draft_Modification_ConnectedFaces,None,Draft_Modification)
Draft_Modification.ModifiedFaces = new_instancemethod(_Draft.Draft_Modification_ModifiedFaces,None,Draft_Modification)
Draft_Modification_swigregister = _Draft.Draft_Modification_swigregister
Draft_Modification_swigregister(Draft_Modification)

class Handle_Draft_Modification(OCC.BRepTools.Handle_BRepTools_Modification):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        _Draft.Handle_Draft_Modification_swiginit(self,_Draft.new_Handle_Draft_Modification(*args))
        # register the handle in the base object
        if len(args) > 0:
            register_handle(self, args[0])



    DownCast = staticmethod(_Draft.Handle_Draft_Modification_DownCast)
    __swig_destroy__ = _Draft.delete_Handle_Draft_Modification
Handle_Draft_Modification.Nullify = new_instancemethod(_Draft.Handle_Draft_Modification_Nullify,None,Handle_Draft_Modification)
Handle_Draft_Modification.IsNull = new_instancemethod(_Draft.Handle_Draft_Modification_IsNull,None,Handle_Draft_Modification)
Handle_Draft_Modification.GetObject = new_instancemethod(_Draft.Handle_Draft_Modification_GetObject,None,Handle_Draft_Modification)
Handle_Draft_Modification_swigregister = _Draft.Handle_Draft_Modification_swigregister
Handle_Draft_Modification_swigregister(Handle_Draft_Modification)

def Handle_Draft_Modification_DownCast(*args):
  return _Draft.Handle_Draft_Modification_DownCast(*args)
Handle_Draft_Modification_DownCast = _Draft.Handle_Draft_Modification_DownCast

class Draft_VertexInfo(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :rtype: None

        """
        _Draft.Draft_VertexInfo_swiginit(self,_Draft.new_Draft_VertexInfo(*args))
    def Add(self, *args):
        """
        :param E:
        :type E: TopoDS_Edge &
        :rtype: None

        """
        return _Draft.Draft_VertexInfo_Add(self, *args)

    def Geometry(self, *args):
        """
        :rtype: gp_Pnt

        """
        return _Draft.Draft_VertexInfo_Geometry(self, *args)

    def Parameter(self, *args):
        """
        :param E:
        :type E: TopoDS_Edge &
        :rtype: float

        """
        return _Draft.Draft_VertexInfo_Parameter(self, *args)

    def InitEdgeIterator(self, *args):
        """
        :rtype: None

        """
        return _Draft.Draft_VertexInfo_InitEdgeIterator(self, *args)

    def Edge(self, *args):
        """
        :rtype: TopoDS_Edge

        """
        return _Draft.Draft_VertexInfo_Edge(self, *args)

    def NextEdge(self, *args):
        """
        :rtype: None

        """
        return _Draft.Draft_VertexInfo_NextEdge(self, *args)

    def MoreEdge(self, *args):
        """
        :rtype: bool

        """
        return _Draft.Draft_VertexInfo_MoreEdge(self, *args)

    def ChangeGeometry(self, *args):
        """
        :rtype: gp_Pnt

        """
        return _Draft.Draft_VertexInfo_ChangeGeometry(self, *args)

    def ChangeParameter(self, *args):
        """
        :param E:
        :type E: TopoDS_Edge &
        :rtype: float

        """
        return _Draft.Draft_VertexInfo_ChangeParameter(self, *args)

    __swig_destroy__ = _Draft.delete_Draft_VertexInfo
Draft_VertexInfo.Add = new_instancemethod(_Draft.Draft_VertexInfo_Add,None,Draft_VertexInfo)
Draft_VertexInfo.Geometry = new_instancemethod(_Draft.Draft_VertexInfo_Geometry,None,Draft_VertexInfo)
Draft_VertexInfo.Parameter = new_instancemethod(_Draft.Draft_VertexInfo_Parameter,None,Draft_VertexInfo)
Draft_VertexInfo.InitEdgeIterator = new_instancemethod(_Draft.Draft_VertexInfo_InitEdgeIterator,None,Draft_VertexInfo)
Draft_VertexInfo.Edge = new_instancemethod(_Draft.Draft_VertexInfo_Edge,None,Draft_VertexInfo)
Draft_VertexInfo.NextEdge = new_instancemethod(_Draft.Draft_VertexInfo_NextEdge,None,Draft_VertexInfo)
Draft_VertexInfo.MoreEdge = new_instancemethod(_Draft.Draft_VertexInfo_MoreEdge,None,Draft_VertexInfo)
Draft_VertexInfo.ChangeGeometry = new_instancemethod(_Draft.Draft_VertexInfo_ChangeGeometry,None,Draft_VertexInfo)
Draft_VertexInfo.ChangeParameter = new_instancemethod(_Draft.Draft_VertexInfo_ChangeParameter,None,Draft_VertexInfo)
Draft_VertexInfo_swigregister = _Draft.Draft_VertexInfo_swigregister
Draft_VertexInfo_swigregister(Draft_VertexInfo)




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



from sys import version_info
if version_info >= (3,0,0):
    new_instancemethod = lambda func, inst, cls: _Draft.SWIG_PyInstanceMethod_New(func)
else:
    from new import instancemethod as new_instancemethod
if version_info >= (2,6,0):
    def swig_import_helper():
        from os.path import dirname
        import imp
        fp = None
        try:
            fp, pathname, description = imp.find_module('_Draft', [dirname(__file__)])
        except ImportError:
            import _Draft
            return _Draft
        if fp is not None:
            try:
                _mod = imp.load_module('_Draft', fp, pathname, description)
            finally:
                fp.close()
            return _mod
    _Draft = swig_import_helper()
    del swig_import_helper
else:
    import _Draft
del version_info
try:
    _swig_property = property
except NameError:
    pass # Python < 2.2 doesn't have 'property'.
def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
    if (name == "thisown"): return self.this.own(value)
    if (name == "this"):
        if type(value).__name__ == 'SwigPyObject':
            self.__dict__[name] = value
            return
    method = class_type.__swig_setmethods__.get(name,None)
    if method: return method(self,value)
    if (not static):
        self.__dict__[name] = value
    else:
        raise AttributeError("You cannot add attributes to %s" % self)

def _swig_setattr(self,class_type,name,value):
    return _swig_setattr_nondynamic(self,class_type,name,value,0)

def _swig_getattr(self,class_type,name):
    if (name == "thisown"): return self.this.own()
    method = class_type.__swig_getmethods__.get(name,None)
    if method: return method(self)
    raise AttributeError(name)

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

try:
    _object = object
    _newclass = 1
except AttributeError:
    class _object : pass
    _newclass = 0


def _swig_setattr_nondynamic_method(set):
    def set_attr(self,name,value):
        if (name == "thisown"): return self.this.own(value)
        if hasattr(self,name) or (name == "this"):
            set(self,name,value)
        else:
            raise AttributeError("You cannot add attributes to %s" % self)
    return set_attr


class SwigPyIterator(object):
    thisown = _swig_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__ = _Draft.delete_SwigPyIterator
    def __iter__(self): return self
SwigPyIterator.value = new_instancemethod(_Draft.SwigPyIterator_value,None,SwigPyIterator)
SwigPyIterator.incr = new_instancemethod(_Draft.SwigPyIterator_incr,None,SwigPyIterator)
SwigPyIterator.decr = new_instancemethod(_Draft.SwigPyIterator_decr,None,SwigPyIterator)
SwigPyIterator.distance = new_instancemethod(_Draft.SwigPyIterator_distance,None,SwigPyIterator)
SwigPyIterator.equal = new_instancemethod(_Draft.SwigPyIterator_equal,None,SwigPyIterator)
SwigPyIterator.copy = new_instancemethod(_Draft.SwigPyIterator_copy,None,SwigPyIterator)
SwigPyIterator.next = new_instancemethod(_Draft.SwigPyIterator_next,None,SwigPyIterator)
SwigPyIterator.__next__ = new_instancemethod(_Draft.SwigPyIterator___next__,None,SwigPyIterator)
SwigPyIterator.previous = new_instancemethod(_Draft.SwigPyIterator_previous,None,SwigPyIterator)
SwigPyIterator.advance = new_instancemethod(_Draft.SwigPyIterator_advance,None,SwigPyIterator)
SwigPyIterator.__eq__ = new_instancemethod(_Draft.SwigPyIterator___eq__,None,SwigPyIterator)
SwigPyIterator.__ne__ = new_instancemethod(_Draft.SwigPyIterator___ne__,None,SwigPyIterator)
SwigPyIterator.__iadd__ = new_instancemethod(_Draft.SwigPyIterator___iadd__,None,SwigPyIterator)
SwigPyIterator.__isub__ = new_instancemethod(_Draft.SwigPyIterator___isub__,None,SwigPyIterator)
SwigPyIterator.__add__ = new_instancemethod(_Draft.SwigPyIterator___add__,None,SwigPyIterator)
SwigPyIterator.__sub__ = new_instancemethod(_Draft.SwigPyIterator___sub__,None,SwigPyIterator)
SwigPyIterator_swigregister = _Draft.SwigPyIterator_swigregister
SwigPyIterator_swigregister(SwigPyIterator)

import OCC.TopoDS
import OCC.MMgt
import OCC.Standard
import OCC.TCollection
import OCC.TopLoc
import OCC.gp
import OCC.TopAbs
import OCC.Geom
import OCC.GeomAbs
import OCC.TColgp
import OCC.TColStd
import OCC.Geom2d
import OCC.BRepTools
import OCC.Bnd
import OCC.TopTools
import OCC.Message
import OCC.BRep
import OCC.Poly
import OCC.NCollection
import OCC.TShort
def register_handle(handle, base_object):
    """
    Inserts the handle into the base object to
    prevent memory corruption in certain cases
    """
    try:
        if base_object.IsKind("Standard_Transient"):
            base_object.thisHandle = handle
            base_object.thisown = False
    except:
        pass

Draft_NoError = _Draft.Draft_NoError
Draft_FaceRecomputation = _Draft.Draft_FaceRecomputation
Draft_EdgeRecomputation = _Draft.Draft_EdgeRecomputation
Draft_VertexRecomputation = _Draft.Draft_VertexRecomputation
class draft(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def Angle(*args):
        """
        * Returns the draft angle of the face <F> using the direction <Direction>. The method is valid for : - Plane faces, - Cylindrical or conical faces, when the direction of the axis of the surface is colinear with the direction. Otherwise, the exception DomainError is raised.

        :param F:
        :type F: TopoDS_Face &
        :param Direction:
        :type Direction: gp_Dir
        :rtype: float

        """
        return _Draft.draft_Angle(*args)

    Angle = staticmethod(Angle)
    def __init__(self): 
        _Draft.draft_swiginit(self,_Draft.new_draft())
    __swig_destroy__ = _Draft.delete_draft
draft_swigregister = _Draft.draft_swigregister
draft_swigregister(draft)

def draft_Angle(*args):
  """
    * Returns the draft angle of the face <F> using the direction <Direction>. The method is valid for : - Plane faces, - Cylindrical or conical faces, when the direction of the axis of the surface is colinear with the direction. Otherwise, the exception DomainError is raised.

    :param F:
    :type F: TopoDS_Face &
    :param Direction:
    :type Direction: gp_Dir
    :rtype: float

    """
  return _Draft.draft_Angle(*args)

class Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo(OCC.TCollection.TCollection_BasicMapIterator):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :rtype: None

        :param aMap:
        :type aMap: Draft_DataMapOfEdgeEdgeInfo &
        :rtype: None

        """
        _Draft.Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_swiginit(self,_Draft.new_Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo(*args))
    def Initialize(self, *args):
        """
        :param aMap:
        :type aMap: Draft_DataMapOfEdgeEdgeInfo &
        :rtype: None

        """
        return _Draft.Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_Initialize(self, *args)

    def Key(self, *args):
        """
        :rtype: TopoDS_Edge

        """
        return _Draft.Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_Key(self, *args)

    def Value(self, *args):
        """
        :rtype: Draft_EdgeInfo

        """
        return _Draft.Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_Value(self, *args)

    __swig_destroy__ = _Draft.delete_Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo
Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo.Initialize = new_instancemethod(_Draft.Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_Initialize,None,Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo)
Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo.Key = new_instancemethod(_Draft.Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_Key,None,Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo)
Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo.Value = new_instancemethod(_Draft.Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_Value,None,Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo)
Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_swigregister = _Draft.Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_swigregister
Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo_swigregister(Draft_DataMapIteratorOfDataMapOfEdgeEdgeInfo)

class Draft_DataMapIteratorOfDataMapOfFaceFaceInfo(OCC.TCollection.TCollection_BasicMapIterator):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :rtype: None

        :param aMap:
        :type aMap: Draft_DataMapOfFaceFaceInfo &
        :rtype: None

        """
        _Draft.Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_swiginit(self,_Draft.new_Draft_DataMapIteratorOfDataMapOfFaceFaceInfo(*args))
    def Initialize(self, *args):
        """
        :param aMap:
        :type aMap: Draft_DataMapOfFaceFaceInfo &
        :rtype: None

        """
        return _Draft.Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_Initialize(self, *args)

    def Key(self, *args):
        """
        :rtype: TopoDS_Face

        """
        return _Draft.Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_Key(self, *args)

    def Value(self, *args):
        """
        :rtype: Draft_FaceInfo

        """
        return _Draft.Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_Value(self, *args)

    __swig_destroy__ = _Draft.delete_Draft_DataMapIteratorOfDataMapOfFaceFaceInfo
Draft_DataMapIteratorOfDataMapOfFaceFaceInfo.Initialize = new_instancemethod(_Draft.Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_Initialize,None,Draft_DataMapIteratorOfDataMapOfFaceFaceInfo)
Draft_DataMapIteratorOfDataMapOfFaceFaceInfo.Key = new_instancemethod(_Draft.Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_Key,None,Draft_DataMapIteratorOfDataMapOfFaceFaceInfo)
Draft_DataMapIteratorOfDataMapOfFaceFaceInfo.Value = new_instancemethod(_Draft.Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_Value,None,Draft_DataMapIteratorOfDataMapOfFaceFaceInfo)
Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_swigregister = _Draft.Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_swigregister
Draft_DataMapIteratorOfDataMapOfFaceFaceInfo_swigregister(Draft_DataMapIteratorOfDataMapOfFaceFaceInfo)

class Draft_DataMapIteratorOfDataMapOfVertexVertexInfo(OCC.TCollection.TCollection_BasicMapIterator):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :rtype: None

        :param aMap:
        :type aMap: Draft_DataMapOfVertexVertexInfo &
        :rtype: None

        """
        _Draft.Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_swiginit(self,_Draft.new_Draft_DataMapIteratorOfDataMapOfVertexVertexInfo(*args))
    def Initialize(self, *args):
        """
        :param aMap:
        :type aMap: Draft_DataMapOfVertexVertexInfo &
        :rtype: None

        """
        return _Draft.Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_Initialize(self, *args)

    def Key(self, *args):
        """
        :rtype: TopoDS_Vertex

        """
        return _Draft.Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_Key(self, *args)

    def Value(self, *args):
        """
        :rtype: Draft_VertexInfo

        """
        return _Draft.Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_Value(self, *args)

    __swig_destroy__ = _Draft.delete_Draft_DataMapIteratorOfDataMapOfVertexVertexInfo
Draft_DataMapIteratorOfDataMapOfVertexVertexInfo.Initialize = new_instancemethod(_Draft.Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_Initialize,None,Draft_DataMapIteratorOfDataMapOfVertexVertexInfo)
Draft_DataMapIteratorOfDataMapOfVertexVertexInfo.Key = new_instancemethod(_Draft.Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_Key,None,Draft_DataMapIteratorOfDataMapOfVertexVertexInfo)
Draft_DataMapIteratorOfDataMapOfVertexVertexInfo.Value = new_instancemethod(_Draft.Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_Value,None,Draft_DataMapIteratorOfDataMapOfVertexVertexInfo)
Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_swigregister = _Draft.Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_swigregister
Draft_DataMapIteratorOfDataMapOfVertexVertexInfo_swigregister(Draft_DataMapIteratorOfDataMapOfVertexVertexInfo)

class Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo(OCC.TCollection.TCollection_MapNode):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :param K:
        :type K: TopoDS_Edge &
        :param I:
        :type I: Draft_EdgeInfo &
        :param n:
        :type n: TCollection_MapNodePtr &
        :rtype: None

        """
        _Draft.Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_swiginit(self,_Draft.new_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo(*args))
    def Key(self, *args):
        """
        :rtype: TopoDS_Edge

        """
        return _Draft.Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_Key(self, *args)

    def Value(self, *args):
        """
        :rtype: Draft_EdgeInfo

        """
        return _Draft.Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_Value(self, *args)

    def GetHandle(self):
        try:
            return self.thisHandle
        except:
            self.thisHandle = Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo(self)
            self.thisown = False
            return self.thisHandle

    __swig_destroy__ = _Draft.delete_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo
Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo.Key = new_instancemethod(_Draft.Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_Key,None,Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo)
Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo.Value = new_instancemethod(_Draft.Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_Value,None,Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo)
Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_swigregister = _Draft.Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_swigregister
Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_swigregister(Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo)

class Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo(OCC.TCollection.Handle_TCollection_MapNode):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        _Draft.Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_swiginit(self,_Draft.new_Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo(*args))
        # register the handle in the base object
        if len(args) > 0:
            register_handle(self, args[0])



    DownCast = staticmethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_DownCast)
    __swig_destroy__ = _Draft.delete_Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo
Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo.Nullify = new_instancemethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_Nullify,None,Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo)
Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo.IsNull = new_instancemethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_IsNull,None,Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo)
Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo.GetObject = new_instancemethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_GetObject,None,Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo)
Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_swigregister = _Draft.Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_swigregister
Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_swigregister(Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo)

def Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_DownCast(*args):
  return _Draft.Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_DownCast(*args)
Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_DownCast = _Draft.Handle_Draft_DataMapNodeOfDataMapOfEdgeEdgeInfo_DownCast

class Draft_DataMapNodeOfDataMapOfFaceFaceInfo(OCC.TCollection.TCollection_MapNode):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :param K:
        :type K: TopoDS_Face &
        :param I:
        :type I: Draft_FaceInfo &
        :param n:
        :type n: TCollection_MapNodePtr &
        :rtype: None

        """
        _Draft.Draft_DataMapNodeOfDataMapOfFaceFaceInfo_swiginit(self,_Draft.new_Draft_DataMapNodeOfDataMapOfFaceFaceInfo(*args))
    def Key(self, *args):
        """
        :rtype: TopoDS_Face

        """
        return _Draft.Draft_DataMapNodeOfDataMapOfFaceFaceInfo_Key(self, *args)

    def Value(self, *args):
        """
        :rtype: Draft_FaceInfo

        """
        return _Draft.Draft_DataMapNodeOfDataMapOfFaceFaceInfo_Value(self, *args)

    def GetHandle(self):
        try:
            return self.thisHandle
        except:
            self.thisHandle = Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo(self)
            self.thisown = False
            return self.thisHandle

    __swig_destroy__ = _Draft.delete_Draft_DataMapNodeOfDataMapOfFaceFaceInfo
Draft_DataMapNodeOfDataMapOfFaceFaceInfo.Key = new_instancemethod(_Draft.Draft_DataMapNodeOfDataMapOfFaceFaceInfo_Key,None,Draft_DataMapNodeOfDataMapOfFaceFaceInfo)
Draft_DataMapNodeOfDataMapOfFaceFaceInfo.Value = new_instancemethod(_Draft.Draft_DataMapNodeOfDataMapOfFaceFaceInfo_Value,None,Draft_DataMapNodeOfDataMapOfFaceFaceInfo)
Draft_DataMapNodeOfDataMapOfFaceFaceInfo_swigregister = _Draft.Draft_DataMapNodeOfDataMapOfFaceFaceInfo_swigregister
Draft_DataMapNodeOfDataMapOfFaceFaceInfo_swigregister(Draft_DataMapNodeOfDataMapOfFaceFaceInfo)

class Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo(OCC.TCollection.Handle_TCollection_MapNode):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        _Draft.Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_swiginit(self,_Draft.new_Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo(*args))
        # register the handle in the base object
        if len(args) > 0:
            register_handle(self, args[0])



    DownCast = staticmethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_DownCast)
    __swig_destroy__ = _Draft.delete_Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo
Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo.Nullify = new_instancemethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_Nullify,None,Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo)
Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo.IsNull = new_instancemethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_IsNull,None,Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo)
Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo.GetObject = new_instancemethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_GetObject,None,Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo)
Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_swigregister = _Draft.Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_swigregister
Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_swigregister(Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo)

def Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_DownCast(*args):
  return _Draft.Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_DownCast(*args)
Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_DownCast = _Draft.Handle_Draft_DataMapNodeOfDataMapOfFaceFaceInfo_DownCast

class Draft_DataMapNodeOfDataMapOfVertexVertexInfo(OCC.TCollection.TCollection_MapNode):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :param K:
        :type K: TopoDS_Vertex &
        :param I:
        :type I: Draft_VertexInfo &
        :param n:
        :type n: TCollection_MapNodePtr &
        :rtype: None

        """
        _Draft.Draft_DataMapNodeOfDataMapOfVertexVertexInfo_swiginit(self,_Draft.new_Draft_DataMapNodeOfDataMapOfVertexVertexInfo(*args))
    def Key(self, *args):
        """
        :rtype: TopoDS_Vertex

        """
        return _Draft.Draft_DataMapNodeOfDataMapOfVertexVertexInfo_Key(self, *args)

    def Value(self, *args):
        """
        :rtype: Draft_VertexInfo

        """
        return _Draft.Draft_DataMapNodeOfDataMapOfVertexVertexInfo_Value(self, *args)

    def GetHandle(self):
        try:
            return self.thisHandle
        except:
            self.thisHandle = Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo(self)
            self.thisown = False
            return self.thisHandle

    __swig_destroy__ = _Draft.delete_Draft_DataMapNodeOfDataMapOfVertexVertexInfo
Draft_DataMapNodeOfDataMapOfVertexVertexInfo.Key = new_instancemethod(_Draft.Draft_DataMapNodeOfDataMapOfVertexVertexInfo_Key,None,Draft_DataMapNodeOfDataMapOfVertexVertexInfo)
Draft_DataMapNodeOfDataMapOfVertexVertexInfo.Value = new_instancemethod(_Draft.Draft_DataMapNodeOfDataMapOfVertexVertexInfo_Value,None,Draft_DataMapNodeOfDataMapOfVertexVertexInfo)
Draft_DataMapNodeOfDataMapOfVertexVertexInfo_swigregister = _Draft.Draft_DataMapNodeOfDataMapOfVertexVertexInfo_swigregister
Draft_DataMapNodeOfDataMapOfVertexVertexInfo_swigregister(Draft_DataMapNodeOfDataMapOfVertexVertexInfo)

class Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo(OCC.TCollection.Handle_TCollection_MapNode):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        _Draft.Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_swiginit(self,_Draft.new_Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo(*args))
        # register the handle in the base object
        if len(args) > 0:
            register_handle(self, args[0])



    DownCast = staticmethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_DownCast)
    __swig_destroy__ = _Draft.delete_Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo
Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo.Nullify = new_instancemethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_Nullify,None,Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo)
Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo.IsNull = new_instancemethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_IsNull,None,Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo)
Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo.GetObject = new_instancemethod(_Draft.Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_GetObject,None,Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo)
Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_swigregister = _Draft.Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_swigregister
Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_swigregister(Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo)

def Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_DownCast(*args):
  return _Draft.Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_DownCast(*args)
Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_DownCast = _Draft.Handle_Draft_DataMapNodeOfDataMapOfVertexVertexInfo_DownCast

class Draft_DataMapOfEdgeEdgeInfo(OCC.TCollection.TCollection_BasicMap):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :param NbBuckets: default value is 1
        :type NbBuckets: int
        :rtype: None

        """
        _Draft.Draft_DataMapOfEdgeEdgeInfo_swiginit(self,_Draft.new_Draft_DataMapOfEdgeEdgeInfo(*args))
    def Assign(self, *args):
        """
        :param Other:
        :type Other: Draft_DataMapOfEdgeEdgeInfo &
        :rtype: Draft_DataMapOfEdgeEdgeInfo

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_Assign(self, *args)

    def Set(self, *args):
        """
        :param Other:
        :type Other: Draft_DataMapOfEdgeEdgeInfo &
        :rtype: Draft_DataMapOfEdgeEdgeInfo

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_Set(self, *args)

    def ReSize(self, *args):
        """
        :param NbBuckets:
        :type NbBuckets: int
        :rtype: None

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_ReSize(self, *args)

    def Clear(self, *args):
        """
        :rtype: None

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_Clear(self, *args)

    def Bind(self, *args):
        """
        :param K:
        :type K: TopoDS_Edge &
        :param I:
        :type I: Draft_EdgeInfo &
        :rtype: bool

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_Bind(self, *args)

    def IsBound(self, *args):
        """
        :param K:
        :type K: TopoDS_Edge &
        :rtype: bool

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_IsBound(self, *args)

    def UnBind(self, *args):
        """
        :param K:
        :type K: TopoDS_Edge &
        :rtype: bool

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_UnBind(self, *args)

    def Find(self, *args):
        """
        :param K:
        :type K: TopoDS_Edge &
        :rtype: Draft_EdgeInfo

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_Find(self, *args)

    def ChangeFind(self, *args):
        """
        :param K:
        :type K: TopoDS_Edge &
        :rtype: Draft_EdgeInfo

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_ChangeFind(self, *args)

    def Find1(self, *args):
        """
        :param K:
        :type K: TopoDS_Edge &
        :rtype: Standard_Address

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_Find1(self, *args)

    def ChangeFind1(self, *args):
        """
        :param K:
        :type K: TopoDS_Edge &
        :rtype: Standard_Address

        """
        return _Draft.Draft_DataMapOfEdgeEdgeInfo_ChangeFind1(self, *args)

    __swig_destroy__ = _Draft.delete_Draft_DataMapOfEdgeEdgeInfo
Draft_DataMapOfEdgeEdgeInfo.Assign = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_Assign,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.Set = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_Set,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.ReSize = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_ReSize,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.Clear = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_Clear,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.Bind = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_Bind,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.IsBound = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_IsBound,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.UnBind = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_UnBind,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.Find = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_Find,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.ChangeFind = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_ChangeFind,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.Find1 = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_Find1,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo.ChangeFind1 = new_instancemethod(_Draft.Draft_DataMapOfEdgeEdgeInfo_ChangeFind1,None,Draft_DataMapOfEdgeEdgeInfo)
Draft_DataMapOfEdgeEdgeInfo_swigregister = _Draft.Draft_DataMapOfEdgeEdgeInfo_swigregister
Draft_DataMapOfEdgeEdgeInfo_swigregister(Draft_DataMapOfEdgeEdgeInfo)

class Draft_DataMapOfFaceFaceInfo(OCC.TCollection.TCollection_BasicMap):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :param NbBuckets: default value is 1
        :type NbBuckets: int
        :rtype: None

        """
        _Draft.Draft_DataMapOfFaceFaceInfo_swiginit(self,_Draft.new_Draft_DataMapOfFaceFaceInfo(*args))
    def Assign(self, *args):
        """
        :param Other:
        :type Other: Draft_DataMapOfFaceFaceInfo &
        :rtype: Draft_DataMapOfFaceFaceInfo

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_Assign(self, *args)

    def Set(self, *args):
        """
        :param Other:
        :type Other: Draft_DataMapOfFaceFaceInfo &
        :rtype: Draft_DataMapOfFaceFaceInfo

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_Set(self, *args)

    def ReSize(self, *args):
        """
        :param NbBuckets:
        :type NbBuckets: int
        :rtype: None

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_ReSize(self, *args)

    def Clear(self, *args):
        """
        :rtype: None

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_Clear(self, *args)

    def Bind(self, *args):
        """
        :param K:
        :type K: TopoDS_Face &
        :param I:
        :type I: Draft_FaceInfo &
        :rtype: bool

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_Bind(self, *args)

    def IsBound(self, *args):
        """
        :param K:
        :type K: TopoDS_Face &
        :rtype: bool

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_IsBound(self, *args)

    def UnBind(self, *args):
        """
        :param K:
        :type K: TopoDS_Face &
        :rtype: bool

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_UnBind(self, *args)

    def Find(self, *args):
        """
        :param K:
        :type K: TopoDS_Face &
        :rtype: Draft_FaceInfo

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_Find(self, *args)

    def ChangeFind(self, *args):
        """
        :param K:
        :type K: TopoDS_Face &
        :rtype: Draft_FaceInfo

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_ChangeFind(self, *args)

    def Find1(self, *args):
        """
        :param K:
        :type K: TopoDS_Face &
        :rtype: Standard_Address

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_Find1(self, *args)

    def ChangeFind1(self, *args):
        """
        :param K:
        :type K: TopoDS_Face &
        :rtype: Standard_Address

        """
        return _Draft.Draft_DataMapOfFaceFaceInfo_ChangeFind1(self, *args)

    __swig_destroy__ = _Draft.delete_Draft_DataMapOfFaceFaceInfo
Draft_DataMapOfFaceFaceInfo.Assign = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_Assign,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.Set = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_Set,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.ReSize = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_ReSize,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.Clear = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_Clear,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.Bind = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_Bind,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.IsBound = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_IsBound,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.UnBind = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_UnBind,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.Find = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_Find,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.ChangeFind = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_ChangeFind,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.Find1 = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_Find1,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo.ChangeFind1 = new_instancemethod(_Draft.Draft_DataMapOfFaceFaceInfo_ChangeFind1,None,Draft_DataMapOfFaceFaceInfo)
Draft_DataMapOfFaceFaceInfo_swigregister = _Draft.Draft_DataMapOfFaceFaceInfo_swigregister
Draft_DataMapOfFaceFaceInfo_swigregister(Draft_DataMapOfFaceFaceInfo)

class Draft_DataMapOfVertexVertexInfo(OCC.TCollection.TCollection_BasicMap):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :param NbBuckets: default value is 1
        :type NbBuckets: int
        :rtype: None

        """
        _Draft.Draft_DataMapOfVertexVertexInfo_swiginit(self,_Draft.new_Draft_DataMapOfVertexVertexInfo(*args))
    def Assign(self, *args):
        """
        :param Other:
        :type Other: Draft_DataMapOfVertexVertexInfo &
        :rtype: Draft_DataMapOfVertexVertexInfo

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_Assign(self, *args)

    def Set(self, *args):
        """
        :param Other:
        :type Other: Draft_DataMapOfVertexVertexInfo &
        :rtype: Draft_DataMapOfVertexVertexInfo

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_Set(self, *args)

    def ReSize(self, *args):
        """
        :param NbBuckets:
        :type NbBuckets: int
        :rtype: None

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_ReSize(self, *args)

    def Clear(self, *args):
        """
        :rtype: None

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_Clear(self, *args)

    def Bind(self, *args):
        """
        :param K:
        :type K: TopoDS_Vertex &
        :param I:
        :type I: Draft_VertexInfo &
        :rtype: bool

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_Bind(self, *args)

    def IsBound(self, *args):
        """
        :param K:
        :type K: TopoDS_Vertex &
        :rtype: bool

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_IsBound(self, *args)

    def UnBind(self, *args):
        """
        :param K:
        :type K: TopoDS_Vertex &
        :rtype: bool

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_UnBind(self, *args)

    def Find(self, *args):
        """
        :param K:
        :type K: TopoDS_Vertex &
        :rtype: Draft_VertexInfo

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_Find(self, *args)

    def ChangeFind(self, *args):
        """
        :param K:
        :type K: TopoDS_Vertex &
        :rtype: Draft_VertexInfo

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_ChangeFind(self, *args)

    def Find1(self, *args):
        """
        :param K:
        :type K: TopoDS_Vertex &
        :rtype: Standard_Address

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_Find1(self, *args)

    def ChangeFind1(self, *args):
        """
        :param K:
        :type K: TopoDS_Vertex &
        :rtype: Standard_Address

        """
        return _Draft.Draft_DataMapOfVertexVertexInfo_ChangeFind1(self, *args)

    __swig_destroy__ = _Draft.delete_Draft_DataMapOfVertexVertexInfo
Draft_DataMapOfVertexVertexInfo.Assign = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_Assign,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.Set = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_Set,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.ReSize = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_ReSize,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.Clear = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_Clear,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.Bind = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_Bind,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.IsBound = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_IsBound,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.UnBind = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_UnBind,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.Find = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_Find,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.ChangeFind = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_ChangeFind,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.Find1 = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_Find1,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo.ChangeFind1 = new_instancemethod(_Draft.Draft_DataMapOfVertexVertexInfo_ChangeFind1,None,Draft_DataMapOfVertexVertexInfo)
Draft_DataMapOfVertexVertexInfo_swigregister = _Draft.Draft_DataMapOfVertexVertexInfo_swigregister
Draft_DataMapOfVertexVertexInfo_swigregister(Draft_DataMapOfVertexVertexInfo)

class Draft_EdgeInfo(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :rtype: None

        :param HasNewGeometry:
        :type HasNewGeometry: bool
        :rtype: None

        """
        _Draft.Draft_EdgeInfo_swiginit(self,_Draft.new_Draft_EdgeInfo(*args))
    def Add(self, *args):
        """
        :param F:
        :type F: TopoDS_Face &
        :rtype: None

        """
        return _Draft.Draft_EdgeInfo_Add(self, *args)

    def Tangent(self, *args):
        """
        :param P:
        :type P: gp_Pnt
        :rtype: None

        """
        return _Draft.Draft_EdgeInfo_Tangent(self, *args)

    def IsTangent(self, *args):
        """
        :param P:
        :type P: gp_Pnt
        :rtype: bool

        """
        return _Draft.Draft_EdgeInfo_IsTangent(self, *args)

    def NewGeometry(self, *args):
        """
        :rtype: bool

        """
        return _Draft.Draft_EdgeInfo_NewGeometry(self, *args)

    def SetNewGeometry(self, *args):
        """
        :param NewGeom:
        :type NewGeom: bool
        :rtype: None

        """
        return _Draft.Draft_EdgeInfo_SetNewGeometry(self, *args)

    def Geometry(self, *args):
        """
        :rtype: Handle_Geom_Curve

        """
        return _Draft.Draft_EdgeInfo_Geometry(self, *args)

    def FirstFace(self, *args):
        """
        :rtype: TopoDS_Face

        """
        return _Draft.Draft_EdgeInfo_FirstFace(self, *args)

    def SecondFace(self, *args):
        """
        :rtype: TopoDS_Face

        """
        return _Draft.Draft_EdgeInfo_SecondFace(self, *args)

    def FirstPC(self, *args):
        """
        :rtype: Handle_Geom2d_Curve

        """
        return _Draft.Draft_EdgeInfo_FirstPC(self, *args)

    def SecondPC(self, *args):
        """
        :rtype: Handle_Geom2d_Curve

        """
        return _Draft.Draft_EdgeInfo_SecondPC(self, *args)

    def ChangeGeometry(self, *args):
        """
        :rtype: Handle_Geom_Curve

        """
        return _Draft.Draft_EdgeInfo_ChangeGeometry(self, *args)

    def ChangeFirstPC(self, *args):
        """
        :rtype: Handle_Geom2d_Curve

        """
        return _Draft.Draft_EdgeInfo_ChangeFirstPC(self, *args)

    def ChangeSecondPC(self, *args):
        """
        :rtype: Handle_Geom2d_Curve

        """
        return _Draft.Draft_EdgeInfo_ChangeSecondPC(self, *args)

    def RootFace(self, *args):
        """
        :param F:
        :type F: TopoDS_Face &
        :rtype: None

        :rtype: TopoDS_Face

        """
        return _Draft.Draft_EdgeInfo_RootFace(self, *args)

    def Tolerance(self, *args):
        """
        :param tol:
        :type tol: float
        :rtype: None

        :rtype: float

        """
        return _Draft.Draft_EdgeInfo_Tolerance(self, *args)

    __swig_destroy__ = _Draft.delete_Draft_EdgeInfo
Draft_EdgeInfo.Add = new_instancemethod(_Draft.Draft_EdgeInfo_Add,None,Draft_EdgeInfo)
Draft_EdgeInfo.Tangent = new_instancemethod(_Draft.Draft_EdgeInfo_Tangent,None,Draft_EdgeInfo)
Draft_EdgeInfo.IsTangent = new_instancemethod(_Draft.Draft_EdgeInfo_IsTangent,None,Draft_EdgeInfo)
Draft_EdgeInfo.NewGeometry = new_instancemethod(_Draft.Draft_EdgeInfo_NewGeometry,None,Draft_EdgeInfo)
Draft_EdgeInfo.SetNewGeometry = new_instancemethod(_Draft.Draft_EdgeInfo_SetNewGeometry,None,Draft_EdgeInfo)
Draft_EdgeInfo.Geometry = new_instancemethod(_Draft.Draft_EdgeInfo_Geometry,None,Draft_EdgeInfo)
Draft_EdgeInfo.FirstFace = new_instancemethod(_Draft.Draft_EdgeInfo_FirstFace,None,Draft_EdgeInfo)
Draft_EdgeInfo.SecondFace = new_instancemethod(_Draft.Draft_EdgeInfo_SecondFace,None,Draft_EdgeInfo)
Draft_EdgeInfo.FirstPC = new_instancemethod(_Draft.Draft_EdgeInfo_FirstPC,None,Draft_EdgeInfo)
Draft_EdgeInfo.SecondPC = new_instancemethod(_Draft.Draft_EdgeInfo_SecondPC,None,Draft_EdgeInfo)
Draft_EdgeInfo.ChangeGeometry = new_instancemethod(_Draft.Draft_EdgeInfo_ChangeGeometry,None,Draft_EdgeInfo)
Draft_EdgeInfo.ChangeFirstPC = new_instancemethod(_Draft.Draft_EdgeInfo_ChangeFirstPC,None,Draft_EdgeInfo)
Draft_EdgeInfo.ChangeSecondPC = new_instancemethod(_Draft.Draft_EdgeInfo_ChangeSecondPC,None,Draft_EdgeInfo)
Draft_EdgeInfo.RootFace = new_instancemethod(_Draft.Draft_EdgeInfo_RootFace,None,Draft_EdgeInfo)
Draft_EdgeInfo.Tolerance = new_instancemethod(_Draft.Draft_EdgeInfo_Tolerance,None,Draft_EdgeInfo)
Draft_EdgeInfo_swigregister = _Draft.Draft_EdgeInfo_swigregister
Draft_EdgeInfo_swigregister(Draft_EdgeInfo)

class Draft_FaceInfo(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :rtype: None

        :param S:
        :type S: Handle_Geom_Surface &
        :param HasNewGeometry:
        :type HasNewGeometry: bool
        :rtype: None

        """
        _Draft.Draft_FaceInfo_swiginit(self,_Draft.new_Draft_FaceInfo(*args))
    def NewGeometry(self, *args):
        """
        :rtype: bool

        """
        return _Draft.Draft_FaceInfo_NewGeometry(self, *args)

    def Add(self, *args):
        """
        :param F:
        :type F: TopoDS_Face &
        :rtype: None

        """
        return _Draft.Draft_FaceInfo_Add(self, *args)

    def FirstFace(self, *args):
        """
        :rtype: TopoDS_Face

        """
        return _Draft.Draft_FaceInfo_FirstFace(self, *args)

    def SecondFace(self, *args):
        """
        :rtype: TopoDS_Face

        """
        return _Draft.Draft_FaceInfo_SecondFace(self, *args)

    def Geometry(self, *args):
        """
        :rtype: Handle_Geom_Surface

        """
        return _Draft.Draft_FaceInfo_Geometry(self, *args)

    def ChangeGeometry(self, *args):
        """
        :rtype: Handle_Geom_Surface

        """
        return _Draft.Draft_FaceInfo_ChangeGeometry(self, *args)

    def RootFace(self, *args):
        """
        :param F:
        :type F: TopoDS_Face &
        :rtype: None

        :rtype: TopoDS_Face

        """
        return _Draft.Draft_FaceInfo_RootFace(self, *args)

    def ChangeCurve(self, *args):
        """
        :rtype: Handle_Geom_Curve

        """
        return _Draft.Draft_FaceInfo_ChangeCurve(self, *args)

    def Curve(self, *args):
        """
        :rtype: Handle_Geom_Curve

        """
        return _Draft.Draft_FaceInfo_Curve(self, *args)

    __swig_destroy__ = _Draft.delete_Draft_FaceInfo
Draft_FaceInfo.NewGeometry = new_instancemethod(_Draft.Draft_FaceInfo_NewGeometry,None,Draft_FaceInfo)
Draft_FaceInfo.Add = new_instancemethod(_Draft.Draft_FaceInfo_Add,None,Draft_FaceInfo)
Draft_FaceInfo.FirstFace = new_instancemethod(_Draft.Draft_FaceInfo_FirstFace,None,Draft_FaceInfo)
Draft_FaceInfo.SecondFace = new_instancemethod(_Draft.Draft_FaceInfo_SecondFace,None,Draft_FaceInfo)
Draft_FaceInfo.Geometry = new_instancemethod(_Draft.Draft_FaceInfo_Geometry,None,Draft_FaceInfo)
Draft_FaceInfo.ChangeGeometry = new_instancemethod(_Draft.Draft_FaceInfo_ChangeGeometry,None,Draft_FaceInfo)
Draft_FaceInfo.RootFace = new_instancemethod(_Draft.Draft_FaceInfo_RootFace,None,Draft_FaceInfo)
Draft_FaceInfo.ChangeCurve = new_instancemethod(_Draft.Draft_FaceInfo_ChangeCurve,None,Draft_FaceInfo)
Draft_FaceInfo.Curve = new_instancemethod(_Draft.Draft_FaceInfo_Curve,None,Draft_FaceInfo)
Draft_FaceInfo_swigregister = _Draft.Draft_FaceInfo_swigregister
Draft_FaceInfo_swigregister(Draft_FaceInfo)

class Draft_Modification(OCC.BRepTools.BRepTools_Modification):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :param S:
        :type S: TopoDS_Shape &
        :rtype: None

        """
        _Draft.Draft_Modification_swiginit(self,_Draft.new_Draft_Modification(*args))
    def Clear(self, *args):
        """
        * Resets on the same shape.

        :rtype: None

        """
        return _Draft.Draft_Modification_Clear(self, *args)

    def Init(self, *args):
        """
        * Changes the basis shape and resets.

        :param S:
        :type S: TopoDS_Shape &
        :rtype: None

        """
        return _Draft.Draft_Modification_Init(self, *args)

    def Add(self, *args):
        """
        * Adds the face F and propagates the draft modification to its neighbour faces if they are tangent. If an error occurs, will return False and ProblematicShape will return the 'bad' face.

        :param F:
        :type F: TopoDS_Face &
        :param Direction:
        :type Direction: gp_Dir
        :param Angle:
        :type Angle: float
        :param NeutralPlane:
        :type NeutralPlane: gp_Pln
        :param Flag: default value is Standard_True
        :type Flag: bool
        :rtype: bool

        """
        return _Draft.Draft_Modification_Add(self, *args)

    def Remove(self, *args):
        """
        * Removes the face F and the neighbour faces if they are tangent. It will be necessary to call this method if the method Add returns Standard_False, to unset ProblematicFace.

        :param F:
        :type F: TopoDS_Face &
        :rtype: None

        """
        return _Draft.Draft_Modification_Remove(self, *args)

    def Perform(self, *args):
        """
        * Performs the draft angle modification and sets the value returned by the method IsDone. If an error occurs, IsDone will return Standard_False, and an error status will be given by the method Error, and the shape on which the problem appeared will be given by ProblematicShape

        :rtype: None

        """
        return _Draft.Draft_Modification_Perform(self, *args)

    def IsDone(self, *args):
        """
        * Returns True if Perform has been succesfully called. Otherwise more information can be obtained using the methods Error() and ProblematicShape().

        :rtype: bool

        """
        return _Draft.Draft_Modification_IsDone(self, *args)

    def Error(self, *args):
        """
        :rtype: Draft_ErrorStatus

        """
        return _Draft.Draft_Modification_Error(self, *args)

    def ProblematicShape(self, *args):
        """
        * Returns the shape (Face, Edge or Vertex) on which an error occured.

        :rtype: TopoDS_Shape

        """
        return _Draft.Draft_Modification_ProblematicShape(self, *args)

    def ConnectedFaces(self, *args):
        """
        * Returns all the faces which have been added together with the face <F>.

        :param F:
        :type F: TopoDS_Face &
        :rtype: TopTools_ListOfShape

        """
        return _Draft.Draft_Modification_ConnectedFaces(self, *args)

    def ModifiedFaces(self, *args):
        """
        * Returns all the faces on which a modification has been given.

        :rtype: TopTools_ListOfShape

        """
        return _Draft.Draft_Modification_ModifiedFaces(self, *args)

    def GetHandle(self):
        try:
            return self.thisHandle
        except:
            self.thisHandle = Handle_Draft_Modification(self)
            self.thisown = False
            return self.thisHandle

    __swig_destroy__ = _Draft.delete_Draft_Modification
Draft_Modification.Clear = new_instancemethod(_Draft.Draft_Modification_Clear,None,Draft_Modification)
Draft_Modification.Init = new_instancemethod(_Draft.Draft_Modification_Init,None,Draft_Modification)
Draft_Modification.Add = new_instancemethod(_Draft.Draft_Modification_Add,None,Draft_Modification)
Draft_Modification.Remove = new_instancemethod(_Draft.Draft_Modification_Remove,None,Draft_Modification)
Draft_Modification.Perform = new_instancemethod(_Draft.Draft_Modification_Perform,None,Draft_Modification)
Draft_Modification.IsDone = new_instancemethod(_Draft.Draft_Modification_IsDone,None,Draft_Modification)
Draft_Modification.Error = new_instancemethod(_Draft.Draft_Modification_Error,None,Draft_Modification)
Draft_Modification.ProblematicShape = new_instancemethod(_Draft.Draft_Modification_ProblematicShape,None,Draft_Modification)
Draft_Modification.ConnectedFaces = new_instancemethod(_Draft.Draft_Modification_ConnectedFaces,None,Draft_Modification)
Draft_Modification.ModifiedFaces = new_instancemethod(_Draft.Draft_Modification_ModifiedFaces,None,Draft_Modification)
Draft_Modification_swigregister = _Draft.Draft_Modification_swigregister
Draft_Modification_swigregister(Draft_Modification)

class Handle_Draft_Modification(OCC.BRepTools.Handle_BRepTools_Modification):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        _Draft.Handle_Draft_Modification_swiginit(self,_Draft.new_Handle_Draft_Modification(*args))
        # register the handle in the base object
        if len(args) > 0:
            register_handle(self, args[0])



    DownCast = staticmethod(_Draft.Handle_Draft_Modification_DownCast)
    __swig_destroy__ = _Draft.delete_Handle_Draft_Modification
Handle_Draft_Modification.Nullify = new_instancemethod(_Draft.Handle_Draft_Modification_Nullify,None,Handle_Draft_Modification)
Handle_Draft_Modification.IsNull = new_instancemethod(_Draft.Handle_Draft_Modification_IsNull,None,Handle_Draft_Modification)
Handle_Draft_Modification.GetObject = new_instancemethod(_Draft.Handle_Draft_Modification_GetObject,None,Handle_Draft_Modification)
Handle_Draft_Modification_swigregister = _Draft.Handle_Draft_Modification_swigregister
Handle_Draft_Modification_swigregister(Handle_Draft_Modification)

def Handle_Draft_Modification_DownCast(*args):
  return _Draft.Handle_Draft_Modification_DownCast(*args)
Handle_Draft_Modification_DownCast = _Draft.Handle_Draft_Modification_DownCast

class Draft_VertexInfo(object):
    thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
    __repr__ = _swig_repr
    def __init__(self, *args): 
        """
        :rtype: None

        """
        _Draft.Draft_VertexInfo_swiginit(self,_Draft.new_Draft_VertexInfo(*args))
    def Add(self, *args):
        """
        :param E:
        :type E: TopoDS_Edge &
        :rtype: None

        """
        return _Draft.Draft_VertexInfo_Add(self, *args)

    def Geometry(self, *args):
        """
        :rtype: gp_Pnt

        """
        return _Draft.Draft_VertexInfo_Geometry(self, *args)

    def Parameter(self, *args):
        """
        :param E:
        :type E: TopoDS_Edge &
        :rtype: float

        """
        return _Draft.Draft_VertexInfo_Parameter(self, *args)

    def InitEdgeIterator(self, *args):
        """
        :rtype: None

        """
        return _Draft.Draft_VertexInfo_InitEdgeIterator(self, *args)

    def Edge(self, *args):
        """
        :rtype: TopoDS_Edge

        """
        return _Draft.Draft_VertexInfo_Edge(self, *args)

    def NextEdge(self, *args):
        """
        :rtype: None

        """
        return _Draft.Draft_VertexInfo_NextEdge(self, *args)

    def MoreEdge(self, *args):
        """
        :rtype: bool

        """
        return _Draft.Draft_VertexInfo_MoreEdge(self, *args)

    def ChangeGeometry(self, *args):
        """
        :rtype: gp_Pnt

        """
        return _Draft.Draft_VertexInfo_ChangeGeometry(self, *args)

    def ChangeParameter(self, *args):
        """
        :param E:
        :type E: TopoDS_Edge &
        :rtype: float

        """
        return _Draft.Draft_VertexInfo_ChangeParameter(self, *args)

    __swig_destroy__ = _Draft.delete_Draft_VertexInfo
Draft_VertexInfo.Add = new_instancemethod(_Draft.Draft_VertexInfo_Add,None,Draft_VertexInfo)
Draft_VertexInfo.Geometry = new_instancemethod(_Draft.Draft_VertexInfo_Geometry,None,Draft_VertexInfo)
Draft_VertexInfo.Parameter = new_instancemethod(_Draft.Draft_VertexInfo_Parameter,None,Draft_VertexInfo)
Draft_VertexInfo.InitEdgeIterator = new_instancemethod(_Draft.Draft_VertexInfo_InitEdgeIterator,None,Draft_VertexInfo)
Draft_VertexInfo.Edge = new_instancemethod(_Draft.Draft_VertexInfo_Edge,None,Draft_VertexInfo)
Draft_VertexInfo.NextEdge = new_instancemethod(_Draft.Draft_VertexInfo_NextEdge,None,Draft_VertexInfo)
Draft_VertexInfo.MoreEdge = new_instancemethod(_Draft.Draft_VertexInfo_MoreEdge,None,Draft_VertexInfo)
Draft_VertexInfo.ChangeGeometry = new_instancemethod(_Draft.Draft_VertexInfo_ChangeGeometry,None,Draft_VertexInfo)
Draft_VertexInfo.ChangeParameter = new_instancemethod(_Draft.Draft_VertexInfo_ChangeParameter,None,Draft_VertexInfo)
Draft_VertexInfo_swigregister = _Draft.Draft_VertexInfo_swigregister
Draft_VertexInfo_swigregister(Draft_VertexInfo)




# This file was automatically generated by SWIG (http://www.swig.org). # Version 2.0.10 # # Do not make changes to this file unless you know what you are doing--modify # the SWIG interface file instead. # Python < 2.2 doesn't have 'property'. Inserts the handle into the base object to     prevent memory corruption in certain cases * Returns the draft angle of the face <F> using the direction <Direction>. The method is valid for : - Plane faces, - Cylindrical or conical faces, when the direction of the axis of the surface is colinear with the direction. Otherwise, the exception DomainError is raised.          :param F:         :type F: TopoDS_Face &         :param Direction:         :type Direction: gp_Dir         :rtype: float * Returns the draft angle of the face <F> using the direction <Direction>. The method is valid for : - Plane faces, - Cylindrical or conical faces, when the direction of the axis of the surface is colinear with the direction. Otherwise, the exception DomainError is raised.      :param F:     :type F: TopoDS_Face &     :param Direction:     :type Direction: gp_Dir     :rtype: float :rtype: None          :param aMap:         :type aMap: Draft_DataMapOfEdgeEdgeInfo &         :rtype: None :param aMap:         :type aMap: Draft_DataMapOfEdgeEdgeInfo &         :rtype: None :rtype: TopoDS_Edge :rtype: Draft_EdgeInfo :rtype: None          :param aMap:         :type aMap: Draft_DataMapOfFaceFaceInfo &         :rtype: None :param aMap:         :type aMap: Draft_DataMapOfFaceFaceInfo &         :rtype: None :rtype: TopoDS_Face :rtype: Draft_FaceInfo :rtype: None          :param aMap:         :type aMap: Draft_DataMapOfVertexVertexInfo &         :rtype: None :param aMap:         :type aMap: Draft_DataMapOfVertexVertexInfo &         :rtype: None :rtype: TopoDS_Vertex :rtype: Draft_VertexInfo :param K:         :type K: TopoDS_Edge &         :param I:         :type I: Draft_EdgeInfo &         :param n:         :type n: TCollection_MapNodePtr &         :rtype: None :rtype: TopoDS_Edge :rtype: Draft_EdgeInfo # register the handle in the base object :param K:         :type K: TopoDS_Face &         :param I:         :type I: Draft_FaceInfo &         :param n:         :type n: TCollection_MapNodePtr &         :rtype: None :rtype: TopoDS_Face :rtype: Draft_FaceInfo # register the handle in the base object :param K:         :type K: TopoDS_Vertex &         :param I:         :type I: Draft_VertexInfo &         :param n:         :type n: TCollection_MapNodePtr &         :rtype: None :rtype: TopoDS_Vertex :rtype: Draft_VertexInfo # register the handle in the base object :param NbBuckets: default value is 1         :type NbBuckets: int         :rtype: None :param Other:         :type Other: Draft_DataMapOfEdgeEdgeInfo &         :rtype: Draft_DataMapOfEdgeEdgeInfo :param Other:         :type Other: Draft_DataMapOfEdgeEdgeInfo &         :rtype: Draft_DataMapOfEdgeEdgeInfo :param NbBuckets:         :type NbBuckets: int         :rtype: None :rtype: None :param K:         :type K: TopoDS_Edge &         :param I:         :type I: Draft_EdgeInfo &         :rtype: bool :param K:         :type K: TopoDS_Edge &         :rtype: bool :param K:         :type K: TopoDS_Edge &         :rtype: bool :param K:         :type K: TopoDS_Edge &         :rtype: Draft_EdgeInfo :param K:         :type K: TopoDS_Edge &         :rtype: Draft_EdgeInfo :param K:         :type K: TopoDS_Edge &         :rtype: Standard_Address :param K:         :type K: TopoDS_Edge &         :rtype: Standard_Address :param NbBuckets: default value is 1         :type NbBuckets: int         :rtype: None :param Other:         :type Other: Draft_DataMapOfFaceFaceInfo &         :rtype: Draft_DataMapOfFaceFaceInfo :param Other:         :type Other: Draft_DataMapOfFaceFaceInfo &         :rtype: Draft_DataMapOfFaceFaceInfo :param NbBuckets:         :type NbBuckets: int         :rtype: None :rtype: None :param K:         :type K: TopoDS_Face &         :param I:         :type I: Draft_FaceInfo &         :rtype: bool :param K:         :type K: TopoDS_Face &         :rtype: bool :param K:         :type K: TopoDS_Face &         :rtype: bool :param K:         :type K: TopoDS_Face &         :rtype: Draft_FaceInfo :param K:         :type K: TopoDS_Face &         :rtype: Draft_FaceInfo :param K:         :type K: TopoDS_Face &         :rtype: Standard_Address :param K:         :type K: TopoDS_Face &         :rtype: Standard_Address :param NbBuckets: default value is 1         :type NbBuckets: int         :rtype: None :param Other:         :type Other: Draft_DataMapOfVertexVertexInfo &         :rtype: Draft_DataMapOfVertexVertexInfo :param Other:         :type Other: Draft_DataMapOfVertexVertexInfo &         :rtype: Draft_DataMapOfVertexVertexInfo :param NbBuckets:         :type NbBuckets: int         :rtype: None :rtype: None :param K:         :type K: TopoDS_Vertex &         :param I:         :type I: Draft_VertexInfo &         :rtype: bool :param K:         :type K: TopoDS_Vertex &         :rtype: bool :param K:         :type K: TopoDS_Vertex &         :rtype: bool :param K:         :type K: TopoDS_Vertex &         :rtype: Draft_VertexInfo :param K:         :type K: TopoDS_Vertex &         :rtype: Draft_VertexInfo :param K:         :type K: TopoDS_Vertex &         :rtype: Standard_Address :param K:         :type K: TopoDS_Vertex &         :rtype: Standard_Address :rtype: None          :param HasNewGeometry:         :type HasNewGeometry: bool         :rtype: None :param F:         :type F: TopoDS_Face &         :rtype: None :param P:         :type P: gp_Pnt         :rtype: None :param P:         :type P: gp_Pnt         :rtype: bool :rtype: bool :param NewGeom:         :type NewGeom: bool         :rtype: None :rtype: Handle_Geom_Curve :rtype: TopoDS_Face :rtype: TopoDS_Face :rtype: Handle_Geom2d_Curve :rtype: Handle_Geom2d_Curve :rtype: Handle_Geom_Curve :rtype: Handle_Geom2d_Curve :rtype: Handle_Geom2d_Curve :param F:         :type F: TopoDS_Face &         :rtype: None          :rtype: TopoDS_Face :param tol:         :type tol: float         :rtype: None          :rtype: float :rtype: None          :param S:         :type S: Handle_Geom_Surface &         :param HasNewGeometry:         :type HasNewGeometry: bool         :rtype: None :rtype: bool :param F:         :type F: TopoDS_Face &         :rtype: None :rtype: TopoDS_Face :rtype: TopoDS_Face :rtype: Handle_Geom_Surface :rtype: Handle_Geom_Surface :param F:         :type F: TopoDS_Face &         :rtype: None          :rtype: TopoDS_Face :rtype: Handle_Geom_Curve :rtype: Handle_Geom_Curve :param S:         :type S: TopoDS_Shape &         :rtype: None * Resets on the same shape.          :rtype: None * Changes the basis shape and resets.          :param S:         :type S: TopoDS_Shape &         :rtype: None * Adds the face F and propagates the draft modification to its neighbour faces if they are tangent. If an error occurs, will return False and ProblematicShape will return the 'bad' face.          :param F:         :type F: TopoDS_Face &         :param Direction:         :type Direction: gp_Dir         :param Angle:         :type Angle: float         :param NeutralPlane:         :type NeutralPlane: gp_Pln         :param Flag: default value is Standard_True         :type Flag: bool         :rtype: bool * Removes the face F and the neighbour faces if they are tangent. It will be necessary to call this method if the method Add returns Standard_False, to unset ProblematicFace.          :param F:         :type F: TopoDS_Face &         :rtype: None * Performs the draft angle modification and sets the value returned by the method IsDone. If an error occurs, IsDone will return Standard_False, and an error status will be given by the method Error, and the shape on which the problem appeared will be given by ProblematicShape          :rtype: None * Returns True if Perform has been succesfully called. Otherwise more information can be obtained using the methods Error() and ProblematicShape().          :rtype: bool :rtype: Draft_ErrorStatus * Returns the shape (Face, Edge or Vertex) on which an error occured.          :rtype: TopoDS_Shape * Returns all the faces which have been added together with the face <F>.          :param F:         :type F: TopoDS_Face &         :rtype: TopTools_ListOfShape * Returns all the faces on which a modification has been given.          :rtype: TopTools_ListOfShape # register the handle in the base object :rtype: None :param E:         :type E: TopoDS_Edge &         :rtype: None :rtype: gp_Pnt :param E:         :type E: TopoDS_Edge &         :rtype: float :rtype: None :rtype: TopoDS_Edge :rtype: None :rtype: bool :rtype: gp_Pnt :param E:         :type E: TopoDS_Edge &         :rtype: float