text: # This file was automatically generated by SWIG (http://www.swig.org).
  # Version 3.0.1
  #
  # 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: _Intf.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('_Intf', [dirname(__file__)])
          except ImportError:
              import _Intf
              return _Intf
          if fp is not None:
              try:
                  _mod = imp.load_module('_Intf', fp, pathname, description)
              finally:
                  fp.close()
              return _mod
      _Intf = swig_import_helper()
      del swig_import_helper
  else:
      import _Intf
  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__ = _Intf.delete_SwigPyIterator
      def __iter__(self): return self
  SwigPyIterator.value = new_instancemethod(_Intf.SwigPyIterator_value,None,SwigPyIterator)
  SwigPyIterator.incr = new_instancemethod(_Intf.SwigPyIterator_incr,None,SwigPyIterator)
  SwigPyIterator.decr = new_instancemethod(_Intf.SwigPyIterator_decr,None,SwigPyIterator)
  SwigPyIterator.distance = new_instancemethod(_Intf.SwigPyIterator_distance,None,SwigPyIterator)
  SwigPyIterator.equal = new_instancemethod(_Intf.SwigPyIterator_equal,None,SwigPyIterator)
  SwigPyIterator.copy = new_instancemethod(_Intf.SwigPyIterator_copy,None,SwigPyIterator)
  SwigPyIterator.next = new_instancemethod(_Intf.SwigPyIterator_next,None,SwigPyIterator)
  SwigPyIterator.__next__ = new_instancemethod(_Intf.SwigPyIterator___next__,None,SwigPyIterator)
  SwigPyIterator.previous = new_instancemethod(_Intf.SwigPyIterator_previous,None,SwigPyIterator)
  SwigPyIterator.advance = new_instancemethod(_Intf.SwigPyIterator_advance,None,SwigPyIterator)
  SwigPyIterator.__eq__ = new_instancemethod(_Intf.SwigPyIterator___eq__,None,SwigPyIterator)
  SwigPyIterator.__ne__ = new_instancemethod(_Intf.SwigPyIterator___ne__,None,SwigPyIterator)
  SwigPyIterator.__iadd__ = new_instancemethod(_Intf.SwigPyIterator___iadd__,None,SwigPyIterator)
  SwigPyIterator.__isub__ = new_instancemethod(_Intf.SwigPyIterator___isub__,None,SwigPyIterator)
  SwigPyIterator.__add__ = new_instancemethod(_Intf.SwigPyIterator___add__,None,SwigPyIterator)
  SwigPyIterator.__sub__ = new_instancemethod(_Intf.SwigPyIterator___sub__,None,SwigPyIterator)
  SwigPyIterator_swigregister = _Intf.SwigPyIterator_swigregister
  SwigPyIterator_swigregister(SwigPyIterator)
  
  import OCC.gp
  import OCC.Standard
  import OCC.Bnd
  import OCC.TColStd
  import OCC.TCollection
  import OCC.MMgt
  Intf_EXTERNAL = _Intf.Intf_EXTERNAL
  Intf_FACE = _Intf.Intf_FACE
  Intf_EDGE = _Intf.Intf_EDGE
  Intf_VERTEX = _Intf.Intf_VERTEX
  class intf(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
      def PlaneEquation(*args):
          """
          * Computes the interference between two polygons in 2d. Result : points of intersections and zones of tangence. Computes the interference between two polygon in 3d. Section points, common perpendicular and projections. Computes the interference between a polygon or a straight line and a polyhedron. Points of intersection and zones of tangence. Compute the interference between two polyhedron. Points of intersection , polylines of intersection and zones of tangence. Give the plane equation of the triangle <P1> <P2> <P3>.
  
          :param P1:
          :type P1: gp_Pnt
          :param P2:
          :type P2: gp_Pnt
          :param P3:
          :type P3: gp_Pnt
          :param NormalVector:
          :type NormalVector: gp_XYZ
          :param PolarDistance:
          :type PolarDistance: float &
          :rtype: void
  
          """
          return _Intf.intf_PlaneEquation(*args)
  
      PlaneEquation = staticmethod(PlaneEquation)
      def Contain(*args):
          """
          * Compute if the triangle <P1> <P2> <P3> contain <ThePnt>.
  
          :param P1:
          :type P1: gp_Pnt
          :param P2:
          :type P2: gp_Pnt
          :param P3:
          :type P3: gp_Pnt
          :param ThePnt:
          :type ThePnt: gp_Pnt
          :rtype: bool
  
          """
          return _Intf.intf_Contain(*args)
  
      Contain = staticmethod(Contain)
      def __init__(self): 
          _Intf.intf_swiginit(self,_Intf.new_intf())
      def __del__(self):
      	try:
      		self.thisown = False
      		GarbageCollector.garbage.collect_object(self)
      	except:
      		pass
  
  
  intf._kill_pointed = new_instancemethod(_Intf.intf__kill_pointed,None,intf)
  intf_swigregister = _Intf.intf_swigregister
  intf_swigregister(intf)
  
  def intf_PlaneEquation(*args):
    """
      * Computes the interference between two polygons in 2d. Result : points of intersections and zones of tangence. Computes the interference between two polygon in 3d. Section points, common perpendicular and projections. Computes the interference between a polygon or a straight line and a polyhedron. Points of intersection and zones of tangence. Compute the interference between two polyhedron. Points of intersection , polylines of intersection and zones of tangence. Give the plane equation of the triangle <P1> <P2> <P3>.
  
      :param P1:
      :type P1: gp_Pnt
      :param P2:
      :type P2: gp_Pnt
      :param P3:
      :type P3: gp_Pnt
      :param NormalVector:
      :type NormalVector: gp_XYZ
      :param PolarDistance:
      :type PolarDistance: float &
      :rtype: void
  
      """
    return _Intf.intf_PlaneEquation(*args)
  
  def intf_Contain(*args):
    """
      * Compute if the triangle <P1> <P2> <P3> contain <ThePnt>.
  
      :param P1:
      :type P1: gp_Pnt
      :param P2:
      :type P2: gp_Pnt
      :param P3:
      :type P3: gp_Pnt
      :param ThePnt:
      :type ThePnt: gp_Pnt
      :rtype: bool
  
      """
    return _Intf.intf_Contain(*args)
  
  class Intf_Array1OfLin(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): 
          """
          :param Low:
          :type Low: int
          :param Up:
          :type Up: int
          :rtype: None
  
          :param Item:
          :type Item: gp_Lin
          :param Low:
          :type Low: int
          :param Up:
          :type Up: int
          :rtype: None
  
          """
          _Intf.Intf_Array1OfLin_swiginit(self,_Intf.new_Intf_Array1OfLin(*args))
      def Init(self, *args):
          """
          :param V:
          :type V: gp_Lin
          :rtype: None
  
          """
          return _Intf.Intf_Array1OfLin_Init(self, *args)
  
      def Destroy(self, *args):
          """
          :rtype: None
  
          """
          return _Intf.Intf_Array1OfLin_Destroy(self, *args)
  
      def IsAllocated(self, *args):
          """
          :rtype: bool
  
          """
          return _Intf.Intf_Array1OfLin_IsAllocated(self, *args)
  
      def Assign(self, *args):
          """
          :param Other:
          :type Other: Intf_Array1OfLin &
          :rtype: Intf_Array1OfLin
  
          """
          return _Intf.Intf_Array1OfLin_Assign(self, *args)
  
      def Set(self, *args):
          """
          :param Other:
          :type Other: Intf_Array1OfLin &
          :rtype: Intf_Array1OfLin
  
          """
          return _Intf.Intf_Array1OfLin_Set(self, *args)
  
      def Length(self, *args):
          """
          :rtype: int
  
          """
          return _Intf.Intf_Array1OfLin_Length(self, *args)
  
      def Lower(self, *args):
          """
          :rtype: int
  
          """
          return _Intf.Intf_Array1OfLin_Lower(self, *args)
  
      def Upper(self, *args):
          """
          :rtype: int
  
          """
          return _Intf.Intf_Array1OfLin_Upper(self, *args)
  
      def SetValue(self, *args):
          """
          :param Index:
          :type Index: int
          :param Value:
          :type Value: gp_Lin
          :rtype: None
  
          """
          return _Intf.Intf_Array1OfLin_SetValue(self, *args)
  
      def Value(self, *args):
          """
          :param Index:
          :type Index: int
          :rtype: gp_Lin
  
          """
          return _Intf.Intf_Array1OfLin_Value(self, *args)
  
      def ChangeValue(self, *args):
          """
          :param Index:
          :type Index: int
          :rtype: gp_Lin
  
          """
          return _Intf.Intf_Array1OfLin_ChangeValue(self, *args)
  
      def __del__(self):
      	try:
      		self.thisown = False
      		GarbageCollector.garbage.collect_object(self)
      	except:
      		pass
  
  
  Intf_Array1OfLin.Init = new_instancemethod(_Intf.Intf_Array1OfLin_Init,None,Intf_Array1OfLin)
  Intf_Array1OfLin.Destroy = new_instancemethod(_Intf.Intf_Array1OfLin_Destroy,None,Intf_Array1OfLin)
  Intf_Array1OfLin.IsAllocated = new_instancemethod(_Intf.Intf_Array1OfLin_IsAllocated,None,Intf_Array1OfLin)
  Intf_Array1OfLin.Assign = new_instancemethod(_Intf.Intf_Array1OfLin_Assign,None,Intf_Array1OfLin)
  Intf_Array1OfLin.Set = new_instancemethod(_Intf.Intf_Array1OfLin_Set,None,Intf_Array1OfLin)
  Intf_Array1OfLin.Length = new_instancemethod(_Intf.Intf_Array1OfLin_Length,None,Intf_Array1OfLin)
  Intf_Array1OfLin.Lower = new_instancemethod(_Intf.Intf_Array1OfLin_Lower,None,Intf_Array1OfLin)
  Intf_Array1OfLin.Upper = new_instancemethod(_Intf.Intf_Array1OfLin_Upper,None,Intf_Array1OfLin)
  Intf_Array1OfLin.SetValue = new_instancemethod(_Intf.Intf_Array1OfLin_SetValue,None,Intf_Array1OfLin)
  Intf_Array1OfLin.Value = new_instancemethod(_Intf.Intf_Array1OfLin_Value,None,Intf_Array1OfLin)
  Intf_Array1OfLin.ChangeValue = new_instancemethod(_Intf.Intf_Array1OfLin_ChangeValue,None,Intf_Array1OfLin)
  Intf_Array1OfLin._kill_pointed = new_instancemethod(_Intf.Intf_Array1OfLin__kill_pointed,None,Intf_Array1OfLin)
  Intf_Array1OfLin_swigregister = _Intf.Intf_Array1OfLin_swigregister
  Intf_Array1OfLin_swigregister(Intf_Array1OfLin)
  
  class Intf_Interference(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")
      __repr__ = _swig_repr
      def NbSectionPoints(self, *args):
          """
          * Gives the number of points of intersection in the interference.
  
          :rtype: int
  
          """
          return _Intf.Intf_Interference_NbSectionPoints(self, *args)
  
      def PntValue(self, *args):
          """
          * Gives the point of intersection of address Index in the interference.
  
          :param Index:
          :type Index: int
          :rtype: Intf_SectionPoint
  
          """
          return _Intf.Intf_Interference_PntValue(self, *args)
  
      def NbSectionLines(self, *args):
          """
          * Gives the number of polylines of intersection in the interference.
  
          :rtype: int
  
          """
          return _Intf.Intf_Interference_NbSectionLines(self, *args)
  
      def LineValue(self, *args):
          """
          * Gives the polyline of intersection at address <Index> in the interference.
  
          :param Index:
          :type Index: int
          :rtype: Intf_SectionLine
  
          """
          return _Intf.Intf_Interference_LineValue(self, *args)
  
      def NbTangentZones(self, *args):
          """
          * Gives the number of zones of tangence in the interference.
  
          :rtype: int
  
          """
          return _Intf.Intf_Interference_NbTangentZones(self, *args)
  
      def ZoneValue(self, *args):
          """
          * Gives the zone of tangence at address Index in the interference.
  
          :param Index:
          :type Index: int
          :rtype: Intf_TangentZone
  
          """
          return _Intf.Intf_Interference_ZoneValue(self, *args)
  
      def GetTolerance(self, *args):
          """
          * Gives the tolerance used for the calculation.
  
          :rtype: float
  
          """
          return _Intf.Intf_Interference_GetTolerance(self, *args)
  
      def Contains(self, *args):
          """
          * Tests if the polylines of intersection or the zones of tangence contain the point of intersection <ThePnt>.
  
          :param ThePnt:
          :type ThePnt: Intf_SectionPoint &
          :rtype: bool
  
          """
          return _Intf.Intf_Interference_Contains(self, *args)
  
      def Insert(self, *args):
          """
          * Inserts a new zone of tangence in the current list of tangent zones of the interference and returns True when done.
  
          :param TheZone:
          :type TheZone: Intf_TangentZone &
          :rtype: bool
  
          * Insert a new segment of intersection in the current list of polylines of intersection of the interference.
  
          :param pdeb:
          :type pdeb: Intf_SectionPoint &
          :param pfin:
          :type pfin: Intf_SectionPoint &
          :rtype: None
  
          """
          return _Intf.Intf_Interference_Insert(self, *args)
  
      def Dump(self, *args):
          """
          :rtype: None
  
          """
          return _Intf.Intf_Interference_Dump(self, *args)
  
      def __del__(self):
      	try:
      		self.thisown = False
      		GarbageCollector.garbage.collect_object(self)
      	except:
      		pass
  
  
  Intf_Interference.NbSectionPoints = new_instancemethod(_Intf.Intf_Interference_NbSectionPoints,None,Intf_Interference)
  Intf_Interference.PntValue = new_instancemethod(_Intf.Intf_Interference_PntValue,None,Intf_Interference)
  Intf_Interference.NbSectionLines = new_instancemethod(_Intf.Intf_Interference_NbSectionLines,None,Intf_Interference)
  Intf_Interference.LineValue = new_instancemethod(_Intf.Intf_Interference_LineValue,None,Intf_Interference)
  Intf_Interference.NbTangentZones = new_instancemethod(_Intf.Intf_Interference_NbTangentZones,None,Intf_Interference)
  Intf_Interference.ZoneValue = new_instancemethod(_Intf.Intf_Interference_ZoneValue,None,Intf_Interference)
  Intf_Interference.GetTolerance = new_instancemethod(_Intf.Intf_Interference_GetTolerance,None,Intf_Interference)
  Intf_Interference.Contains = new_instancemethod(_Intf.Intf_Interference_Contains,None,Intf_Interference)
  Intf_Interference.Insert = new_instancemethod(_Intf.Intf_Interference_Insert,None,Intf_Interference)
  Intf_Interference.Dump = new_instancemethod(_Intf.Intf_Interference_Dump,None,Intf_Interference)
  Intf_Interference._kill_pointed = new_instancemethod(_Intf.Intf_Interference__kill_pointed,None,Intf_Interference)
  Intf_Interference_swigregister = _Intf.Intf_Interference_swigregister
  Intf_Interference_swigregister(Intf_Interference)
  
  class Intf_Polygon2d(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")
      __repr__ = _swig_repr
      def Bounding(self, *args):
          """
          * Returns the bounding box of the polygon.
  
          :rtype: Bnd_Box2d
  
          """
          return _Intf.Intf_Polygon2d_Bounding(self, *args)
  
      def Closed(self, *args):
          """
          * Returns True if the polyline is closed.
  
          :rtype: bool
  
          """
          return _Intf.Intf_Polygon2d_Closed(self, *args)
  
      def DeflectionOverEstimation(self, *args):
          """
          * Returns the tolerance of the polygon.
  
          :rtype: float
  
          """
          return _Intf.Intf_Polygon2d_DeflectionOverEstimation(self, *args)
  
      def NbSegments(self, *args):
          """
          * Returns the number of Segments in the polyline.
  
          :rtype: int
  
          """
          return _Intf.Intf_Polygon2d_NbSegments(self, *args)
  
      def Segment(self, *args):
          """
          * Returns the points of the segment <Index> in the Polygon.
  
          :param theIndex:
          :type theIndex: int
          :param theBegin:
          :type theBegin: gp_Pnt2d
          :param theEnd:
          :type theEnd: gp_Pnt2d
          :rtype: void
  
          """
          return _Intf.Intf_Polygon2d_Segment(self, *args)
  
      def __del__(self):
      	try:
      		self.thisown = False
      		GarbageCollector.garbage.collect_object(self)
      	except:
      		pass
  
  
  Intf_Polygon2d.Bounding = new_instancemethod(_Intf.Intf_Polygon2d_Bounding,None,Intf_Polygon2d)
  Intf_Polygon2d.Closed = new_instancemethod(_Intf.Intf_Polygon2d_Closed,None,Intf_Polygon2d)
  Intf_Polygon2d.DeflectionOverEstimation = new_instancemethod(_Intf.Intf_Polygon2d_DeflectionOverEstimation,None,Intf_Polygon2d)
  Intf_Polygon2d.NbSegments = new_instancemethod(_Intf.Intf_Polygon2d_NbSegments,None,Intf_Polygon2d)
  Intf_Polygon2d.Segment = new_instancemethod(_Intf.Intf_Polygon2d_Segment,None,Intf_Polygon2d)
  Intf_Polygon2d._kill_pointed = new_instancemethod(_Intf.Intf_Polygon2d__kill_pointed,None,Intf_Polygon2d)
  Intf_Polygon2d_swigregister = _Intf.Intf_Polygon2d_swigregister
  Intf_Polygon2d_swigregister(Intf_Polygon2d)
  
  class Intf_SectionLine(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
      def NumberOfPoints(self, *args):
          """
          * Returns number of points in this SectionLine.
  
          :rtype: int
  
          """
          return _Intf.Intf_SectionLine_NumberOfPoints(self, *args)
  
      def GetPoint(self, *args):
          """
          * Gives the point of intersection of address <Index> in the SectionLine.
  
          :param Index:
          :type Index: int
          :rtype: Intf_SectionPoint
  
          """
          return _Intf.Intf_SectionLine_GetPoint(self, *args)
  
      def IsClosed(self, *args):
          """
          * Returns True if the SectionLine is closed.
  
          :rtype: bool
  
          """
          return _Intf.Intf_SectionLine_IsClosed(self, *args)
  
      def Contains(self, *args):
          """
          * Returns True if ThePI is in the SectionLine <self>.
  
          :param ThePI:
          :type ThePI: Intf_SectionPoint &
          :rtype: bool
  
          """
          return _Intf.Intf_SectionLine_Contains(self, *args)
  
      def IsEnd(self, *args):
          """
          * Checks if <ThePI> is an end of the SectionLine. Returns 1 for the beginning, 2 for the end, otherwise 0.
  
          :param ThePI:
          :type ThePI: Intf_SectionPoint &
          :rtype: int
  
          """
          return _Intf.Intf_SectionLine_IsEnd(self, *args)
  
      def IsEqual(self, *args):
          """
          * Compares two SectionLines.
  
          :param Other:
          :type Other: Intf_SectionLine &
          :rtype: bool
  
          """
          return _Intf.Intf_SectionLine_IsEqual(self, *args)
  
      def __eq__(self,right):
          try:
              return self.__eq_wrapper__(right)
          except:
              return False
  
      def __init__(self, *args): 
          """
          * Constructs an empty SectionLine.
  
          :rtype: None
  
          * Copies a SectionLine.
  
          :param Other:
          :type Other: Intf_SectionLine &
          :rtype: None
  
          """
          _Intf.Intf_SectionLine_swiginit(self,_Intf.new_Intf_SectionLine(*args))
      def Append(self, *args):
          """
          * Adds a point at the end of the SectionLine.
  
          :param Pi:
          :type Pi: Intf_SectionPoint &
          :rtype: None
  
          * Concatenates the SectionLine <LS> at the end of the SectionLine <self>.
  
          :param LS:
          :type LS: Intf_SectionLine &
          :rtype: None
  
          """
          return _Intf.Intf_SectionLine_Append(self, *args)
  
      def Prepend(self, *args):
          """
          * Adds a point to the beginning of the SectionLine <self>.
  
          :param Pi:
          :type Pi: Intf_SectionPoint &
          :rtype: None
  
          * Concatenates a SectionLine <LS> at the beginning of the SectionLine <self>.
  
          :param LS:
          :type LS: Intf_SectionLine &
          :rtype: None
  
          """
          return _Intf.Intf_SectionLine_Prepend(self, *args)
  
      def Reverse(self, *args):
          """
          * Reverses the order of the elements of the SectionLine.
  
          :rtype: None
  
          """
          return _Intf.Intf_SectionLine_Reverse(self, *args)
  
      def Close(self, *args):
          """
          * Closes the SectionLine.
  
          :rtype: None
  
          """
          return _Intf.Intf_SectionLine_Close(self, *args)
  
      def Dump(self, *args):
          """
          :param Indent:
          :type Indent: int
          :rtype: None
  
          """
          return _Intf.Intf_SectionLine_Dump(self, *args)
  
      def __del__(self):
      	try:
      		self.thisown = False
      		GarbageCollector.garbage.collect_object(self)
      	except:
      		pass
  
  
  Intf_SectionLine.NumberOfPoints = new_instancemethod(_Intf.Intf_SectionLine_NumberOfPoints,None,Intf_SectionLine)
  Intf_SectionLine.GetPoint = new_instancemethod(_Intf.Intf_SectionLine_GetPoint,None,Intf_SectionLine)
  Intf_SectionLine.IsClosed = new_instancemethod(_Intf.Intf_SectionLine_IsClosed,None,Intf_SectionLine)
  Intf_SectionLine.Contains = new_instancemethod(_Intf.Intf_SectionLine_Contains,None,Intf_SectionLine)
  Intf_SectionLine.IsEnd = new_instancemethod(_Intf.Intf_SectionLine_IsEnd,None,Intf_SectionLine)
  Intf_SectionLine.IsEqual = new_instancemethod(_Intf.Intf_SectionLine_IsEqual,None,Intf_SectionLine)
  Intf_SectionLine.__eq_wrapper__ = new_instancemethod(_Intf.Intf_SectionLine___eq_wrapper__,None,Intf_SectionLine)
  Intf_SectionLine.Append = new_instancemethod(_Intf.Intf_SectionLine_Append,None,Intf_SectionLine)
  Intf_SectionLine.Prepend = new_instancemethod(_Intf.Intf_SectionLine_Prepend,None,Intf_SectionLine)
  Intf_SectionLine.Reverse = new_instancemethod(_Intf.Intf_SectionLine_Reverse,None,Intf_SectionLine)
  Intf_SectionLine.Close = new_instancemethod(_Intf.Intf_SectionLine_Close,None,Intf_SectionLine)
  Intf_SectionLine.Dump = new_instancemethod(_Intf.Intf_SectionLine_Dump,None,Intf_SectionLine)
  Intf_SectionLine._kill_pointed = new_instancemethod(_Intf.Intf_SectionLine__kill_pointed,None,Intf_SectionLine)
  Intf_SectionLine_swigregister = _Intf.Intf_SectionLine_swigregister
  Intf_SectionLine_swigregister(Intf_SectionLine)
  
  class Intf_SectionPoint(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
      def Pnt(self, *args):
          """
          * Returns the location of the SectionPoint.
  
          :rtype: gp_Pnt
  
          """
          return _Intf.Intf_SectionPoint_Pnt(self, *args)
  
      def ParamOnFirst(self, *args):
          """
          * Returns the cumulated Parameter of the SectionPoint on the first element.
  
          :rtype: float
  
          """
          return _Intf.Intf_SectionPoint_ParamOnFirst(self, *args)
  
      def ParamOnSecond(self, *args):
          """
          * Returns the cumulated Parameter of the section point on the second element.
  
          :rtype: float
  
          """
          return _Intf.Intf_SectionPoint_ParamOnSecond(self, *args)
  
      def TypeOnFirst(self, *args):
          """
          * Returns the type of the section point on the first element.
  
          :rtype: Intf_PIType
  
          """
          return _Intf.Intf_SectionPoint_TypeOnFirst(self, *args)
  
      def TypeOnSecond(self, *args):
          """
          * Returns the type of the section point on the second element.
  
          :rtype: Intf_PIType
  
          """
          return _Intf.Intf_SectionPoint_TypeOnSecond(self, *args)
  
      def InfoFirst(self, *args):
          """
          :param Dim:
          :type Dim: Intf_PIType &
          :param Add1:
          :type Add1: int &
          :param Add2:
          :type Add2: int &
          :param Param:
          :type Param: float &
          :rtype: None
  
          * Gives the datas about the first argument of the Interference.
  
          :param Dim:
          :type Dim: Intf_PIType &
          :param Addr:
          :type Addr: int &
          :param Param:
          :type Param: float &
          :rtype: None
  
          """
          return _Intf.Intf_SectionPoint_InfoFirst(self, *args)
  
      def InfoSecond(self, *args):
          """
          :param Dim:
          :type Dim: Intf_PIType &
          :param Add1:
          :type Add1: int &
          :param Add2:
          :type Add2: int &
          :param Param:
          :type Param: float &
          :rtype: None
  
          * Gives the datas about the second argument of the Interference.
  
          :param Dim:
          :type Dim: Intf_PIType &
          :param Addr:
          :type Addr: int &
          :param Param:
          :type Param: float &
          :rtype: None
  
          """
          return _Intf.Intf_SectionPoint_InfoSecond(self, *args)
  
      def Incidence(self, *args):
          """
          * Gives the incidence at this section point. The incidence between the two triangles is given by the cosine. The best incidence is 0. (PI/2). The worst is 1. (null angle).
  
          :rtype: float
  
          """
          return _Intf.Intf_SectionPoint_Incidence(self, *args)
  
      def IsEqual(self, *args):
          """
          * Returns True if the two SectionPoint have the same logical informations.
  
          :param Other:
          :type Other: Intf_SectionPoint &
          :rtype: bool
  
          """
          return _Intf.Intf_SectionPoint_IsEqual(self, *args)
  
      def __eq__(self,right):
          try:
              return self.__eq_wrapper__(right)
          except:
              return False
  
      def IsOnSameEdge(self, *args):
          """
          * Returns True if the two SectionPoints are on the same edge of the first or the second element.
  
          :param Other:
          :type Other: Intf_SectionPoint &
          :rtype: bool
  
          """
          return _Intf.Intf_SectionPoint_IsOnSameEdge(self, *args)
  
      def __init__(self, *args): 
          """
          :rtype: None
  
          * Builds a SectionPoint with the respective dimensions (vertex edge or face) of the concerned arguments and their addresses in the Topological structure.
  
          :param Where:
          :type Where: gp_Pnt
          :param DimeO:
          :type DimeO: Intf_PIType
          :param AddrO1:
          :type AddrO1: int
          :param AddrO2:
          :type AddrO2: int
          :param ParamO:
          :type ParamO: float
          :param DimeT:
          :type DimeT: Intf_PIType
          :param AddrT1:
          :type AddrT1: int
          :param AddrT2:
          :type AddrT2: int
          :param ParamT:
          :type ParamT: float
          :param Incid:
          :type Incid: float
          :rtype: None
  
          * Builds a SectionPoint 2d with the respective dimensions (vertex or edge) of the concerned arguments and their addresses in the Topological structure.
  
          :param Where:
          :type Where: gp_Pnt2d
          :param DimeO:
          :type DimeO: Intf_PIType
          :param AddrO1:
          :type AddrO1: int
          :param ParamO:
          :type ParamO: float
          :param DimeT:
          :type DimeT: Intf_PIType
          :param AddrT1:
          :type AddrT1: int
          :param ParamT:
          :type ParamT: float
          :param Incid:
          :type Incid: float
          :rtype: None
  
          """
          _Intf.Intf_SectionPoint_swiginit(self,_Intf.new_Intf_SectionPoint(*args))
      def Merge(self, *args):
          """
          * Merges two SectionPoints.
  
          :param Other:
          :type Other: Intf_SectionPoint &
          :rtype: None
  
          """
          return _Intf.Intf_SectionPoint_Merge(self, *args)
  
      def Dump(self, *args):
          """
          :param Indent:
          :type Indent: int
          :rtype: None
  
          """
          return _Intf.Intf_SectionPoint_Dump(self, *args)
  
      def __del__(self):
      	try:
      		self.thisown = False
      		GarbageCollector.garbage.collect_object(self)
      	except:
      		pass
  
  
  Intf_SectionPoint.Pnt = new_instancemethod(_Intf.Intf_SectionPoint_Pnt,None,Intf_SectionPoint)
  Intf_SectionPoint.ParamOnFirst = new_instancemethod(_Intf.Intf_SectionPoint_ParamOnFirst,None,Intf_SectionPoint)
  Intf_SectionPoint.ParamOnSecond = new_instancemethod(_Intf.Intf_SectionPoint_ParamOnSecond,None,Intf_SectionPoint)
  Intf_SectionPoint.TypeOnFirst = new_instancemethod(_Intf.Intf_SectionPoint_TypeOnFirst,None,Intf_SectionPoint)
  Intf_SectionPoint.TypeOnSecond = new_instancemethod(_Intf.Intf_SectionPoint_TypeOnSecond,None,Intf_SectionPoint)
  Intf_SectionPoint.InfoFirst = new_instancemethod(_Intf.Intf_SectionPoint_InfoFirst,None,Intf_SectionPoint)
  Intf_SectionPoint.InfoSecond = new_instancemethod(_Intf.Intf_SectionPoint_InfoSecond,None,Intf_SectionPoint)
  Intf_SectionPoint.Incidence = new_instancemethod(_Intf.Intf_SectionPoint_Incidence,None,Intf_SectionPoint)
  Intf_SectionPoint.IsEqual = new_instancemethod(_Intf.Intf_SectionPoint_IsEqual,None,Intf_SectionPoint)
  Intf_SectionPoint.__eq_wrapper__ = new_instancemethod(_Intf.Intf_SectionPoint___eq_wrapper__,None,Intf_SectionPoint)
  Intf_SectionPoint.IsOnSameEdge = new_instancemethod(_Intf.Intf_SectionPoint_IsOnSameEdge,None,Intf_SectionPoint)
  Intf_SectionPoint.Merge = new_instancemethod(_Intf.Intf_SectionPoint_Merge,None,Intf_SectionPoint)
  Intf_SectionPoint.Dump = new_instancemethod(_Intf.Intf_SectionPoint_Dump,None,Intf_SectionPoint)
  Intf_SectionPoint._kill_pointed = new_instancemethod(_Intf.Intf_SectionPoint__kill_pointed,None,Intf_SectionPoint)
  Intf_SectionPoint_swigregister = _Intf.Intf_SectionPoint_swigregister
  Intf_SectionPoint_swigregister(Intf_SectionPoint)
  
  class Intf_SeqOfSectionLine(OCC.TCollection.TCollection_BaseSequence):
      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
  
          """
          _Intf.Intf_SeqOfSectionLine_swiginit(self,_Intf.new_Intf_SeqOfSectionLine(*args))
      def Clear(self, *args):
          """
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfSectionLine_Clear(self, *args)
  
      def Assign(self, *args):
          """
          :param Other:
          :type Other: Intf_SeqOfSectionLine &
          :rtype: Intf_SeqOfSectionLine
  
          """
          return _Intf.Intf_SeqOfSectionLine_Assign(self, *args)
  
      def Set(self, *args):
          """
          :param Other:
          :type Other: Intf_SeqOfSectionLine &
          :rtype: Intf_SeqOfSectionLine
  
          """
          return _Intf.Intf_SeqOfSectionLine_Set(self, *args)
  
      def Append(self, *args):
          """
          :param T:
          :type T: Intf_SectionLine &
          :rtype: None
  
          :param S:
          :type S: Intf_SeqOfSectionLine &
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfSectionLine_Append(self, *args)
  
      def Prepend(self, *args):
          """
          :param T:
          :type T: Intf_SectionLine &
          :rtype: None
  
          :param S:
          :type S: Intf_SeqOfSectionLine &
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfSectionLine_Prepend(self, *args)
  
      def InsertBefore(self, *args):
          """
          :param Index:
          :type Index: int
          :param T:
          :type T: Intf_SectionLine &
          :rtype: None
  
          :param Index:
          :type Index: int
          :param S:
          :type S: Intf_SeqOfSectionLine &
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfSectionLine_InsertBefore(self, *args)
  
      def InsertAfter(self, *args):
          """
          :param Index:
          :type Index: int
          :param T:
          :type T: Intf_SectionLine &
          :rtype: None
  
          :param Index:
          :type Index: int
          :param S:
          :type S: Intf_SeqOfSectionLine &
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfSectionLine_InsertAfter(self, *args)
  
      def First(self, *args):
          """
          :rtype: Intf_SectionLine
  
          """
          return _Intf.Intf_SeqOfSectionLine_First(self, *args)
  
      def Last(self, *args):
          """
          :rtype: Intf_SectionLine
  
          """
          return _Intf.Intf_SeqOfSectionLine_Last(self, *args)
  
      def Split(self, *args):
          """
          :param Index:
          :type Index: int
          :param Sub:
          :type Sub: Intf_SeqOfSectionLine &
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfSectionLine_Split(self, *args)
  
      def Value(self, *args):
          """
          :param Index:
          :type Index: int
          :rtype: Intf_SectionLine
  
          """
          return _Intf.Intf_SeqOfSectionLine_Value(self, *args)
  
      def SetValue(self, *args):
          """
          :param Index:
          :type Index: int
          :param I:
          :type I: Intf_SectionLine &
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfSectionLine_SetValue(self, *args)
  
      def ChangeValue(self, *args):
          """
          :param Index:
          :type Index: int
          :rtype: Intf_SectionLine
  
          """
          return _Intf.Intf_SeqOfSectionLine_ChangeValue(self, *args)
  
      def Remove(self, *args):
          """
          :param Index:
          :type Index: int
          :rtype: None
  
          :param FromIndex:
          :type FromIndex: int
          :param ToIndex:
          :type ToIndex: int
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfSectionLine_Remove(self, *args)
  
      def __del__(self):
      	try:
      		self.thisown = False
      		GarbageCollector.garbage.collect_object(self)
      	except:
      		pass
  
  
  Intf_SeqOfSectionLine.Clear = new_instancemethod(_Intf.Intf_SeqOfSectionLine_Clear,None,Intf_SeqOfSectionLine)
  Intf_SeqOfSectionLine.Assign = new_instancemethod(_Intf.Intf_SeqOfSectionLine_Assign,None,Intf_SeqOfSectionLine)
  Intf_SeqOfSectionLine.Set = new_instancemethod(_Intf.Intf_SeqOfSectionLine_Set,None,Intf_SeqOfSectionLine)
  Intf_SeqOfSectionLine.Append = new_instancemethod(_Intf.Intf_SeqOfSectionLine_Append,None,Intf_SeqOfSectionLine)
  Intf_SeqOfSectionLine.Prepend = new_instancemethod(_Intf.Intf_SeqOfSectionLine_Prepend,None,Intf_SeqOfSectionLine)
  Intf_SeqOfSectionLine.InsertBefore = new_instancemethod(_Intf.Intf_SeqOfSectionLine_InsertBefore,None,Intf_SeqOfSectionLine)
  Intf_SeqOfSectionLine.InsertAfter = new_instancemethod(_Intf.Intf_SeqOfSectionLine_InsertAfter,None,Intf_SeqOfSectionLine)
  Intf_SeqOfSectionLine.First = new_instancemethod(_Intf.Intf_SeqOfSectionLine_First,None,Intf_SeqOfSectionLine)
  Intf_SeqOfSectionLine.Last = new_instancemethod(_Intf.Intf_SeqOfSectionLine_Last,None,Intf_SeqOfSectionLine)
  Intf_SeqOfSectionLine.Split = new_instancemethod(_Intf.Intf_SeqOfSectionLine_Split,None,Intf_SeqOfSectionLine)
  Intf_SeqOfSectionLine.Value = new_instancemethod(_Intf.Intf_SeqOfSectionLine_Value,None,Intf_SeqOfSectionLine)
  Intf_SeqOfSectionLine.SetValue = new_instancemethod(_Intf.Intf_SeqOfSectionLine_SetValue,None,Intf_SeqOfSectionLine)
  Intf_SeqOfSectionLine.ChangeValue = new_instancemethod(_Intf.Intf_SeqOfSectionLine_ChangeValue,None,Intf_SeqOfSectionLine)
  Intf_SeqOfSectionLine.Remove = new_instancemethod(_Intf.Intf_SeqOfSectionLine_Remove,None,Intf_SeqOfSectionLine)
  Intf_SeqOfSectionLine._kill_pointed = new_instancemethod(_Intf.Intf_SeqOfSectionLine__kill_pointed,None,Intf_SeqOfSectionLine)
  Intf_SeqOfSectionLine_swigregister = _Intf.Intf_SeqOfSectionLine_swigregister
  Intf_SeqOfSectionLine_swigregister(Intf_SeqOfSectionLine)
  
  class Intf_SeqOfSectionPoint(OCC.TCollection.TCollection_BaseSequence):
      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
  
          """
          _Intf.Intf_SeqOfSectionPoint_swiginit(self,_Intf.new_Intf_SeqOfSectionPoint(*args))
      def Clear(self, *args):
          """
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfSectionPoint_Clear(self, *args)
  
      def Assign(self, *args):
          """
          :param Other:
          :type Other: Intf_SeqOfSectionPoint &
          :rtype: Intf_SeqOfSectionPoint
  
          """
          return _Intf.Intf_SeqOfSectionPoint_Assign(self, *args)
  
      def Set(self, *args):
          """
          :param Other:
          :type Other: Intf_SeqOfSectionPoint &
          :rtype: Intf_SeqOfSectionPoint
  
          """
          return _Intf.Intf_SeqOfSectionPoint_Set(self, *args)
  
      def Append(self, *args):
          """
          :param T:
          :type T: Intf_SectionPoint &
          :rtype: None
  
          :param S:
          :type S: Intf_SeqOfSectionPoint &
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfSectionPoint_Append(self, *args)
  
      def Prepend(self, *args):
          """
          :param T:
          :type T: Intf_SectionPoint &
          :rtype: None
  
          :param S:
          :type S: Intf_SeqOfSectionPoint &
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfSectionPoint_Prepend(self, *args)
  
      def InsertBefore(self, *args):
          """
          :param Index:
          :type Index: int
          :param T:
          :type T: Intf_SectionPoint &
          :rtype: None
  
          :param Index:
          :type Index: int
          :param S:
          :type S: Intf_SeqOfSectionPoint &
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfSectionPoint_InsertBefore(self, *args)
  
      def InsertAfter(self, *args):
          """
          :param Index:
          :type Index: int
          :param T:
          :type T: Intf_SectionPoint &
          :rtype: None
  
          :param Index:
          :type Index: int
          :param S:
          :type S: Intf_SeqOfSectionPoint &
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfSectionPoint_InsertAfter(self, *args)
  
      def First(self, *args):
          """
          :rtype: Intf_SectionPoint
  
          """
          return _Intf.Intf_SeqOfSectionPoint_First(self, *args)
  
      def Last(self, *args):
          """
          :rtype: Intf_SectionPoint
  
          """
          return _Intf.Intf_SeqOfSectionPoint_Last(self, *args)
  
      def Split(self, *args):
          """
          :param Index:
          :type Index: int
          :param Sub:
          :type Sub: Intf_SeqOfSectionPoint &
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfSectionPoint_Split(self, *args)
  
      def Value(self, *args):
          """
          :param Index:
          :type Index: int
          :rtype: Intf_SectionPoint
  
          """
          return _Intf.Intf_SeqOfSectionPoint_Value(self, *args)
  
      def SetValue(self, *args):
          """
          :param Index:
          :type Index: int
          :param I:
          :type I: Intf_SectionPoint &
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfSectionPoint_SetValue(self, *args)
  
      def ChangeValue(self, *args):
          """
          :param Index:
          :type Index: int
          :rtype: Intf_SectionPoint
  
          """
          return _Intf.Intf_SeqOfSectionPoint_ChangeValue(self, *args)
  
      def Remove(self, *args):
          """
          :param Index:
          :type Index: int
          :rtype: None
  
          :param FromIndex:
          :type FromIndex: int
          :param ToIndex:
          :type ToIndex: int
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfSectionPoint_Remove(self, *args)
  
      def __del__(self):
      	try:
      		self.thisown = False
      		GarbageCollector.garbage.collect_object(self)
      	except:
      		pass
  
  
  Intf_SeqOfSectionPoint.Clear = new_instancemethod(_Intf.Intf_SeqOfSectionPoint_Clear,None,Intf_SeqOfSectionPoint)
  Intf_SeqOfSectionPoint.Assign = new_instancemethod(_Intf.Intf_SeqOfSectionPoint_Assign,None,Intf_SeqOfSectionPoint)
  Intf_SeqOfSectionPoint.Set = new_instancemethod(_Intf.Intf_SeqOfSectionPoint_Set,None,Intf_SeqOfSectionPoint)
  Intf_SeqOfSectionPoint.Append = new_instancemethod(_Intf.Intf_SeqOfSectionPoint_Append,None,Intf_SeqOfSectionPoint)
  Intf_SeqOfSectionPoint.Prepend = new_instancemethod(_Intf.Intf_SeqOfSectionPoint_Prepend,None,Intf_SeqOfSectionPoint)
  Intf_SeqOfSectionPoint.InsertBefore = new_instancemethod(_Intf.Intf_SeqOfSectionPoint_InsertBefore,None,Intf_SeqOfSectionPoint)
  Intf_SeqOfSectionPoint.InsertAfter = new_instancemethod(_Intf.Intf_SeqOfSectionPoint_InsertAfter,None,Intf_SeqOfSectionPoint)
  Intf_SeqOfSectionPoint.First = new_instancemethod(_Intf.Intf_SeqOfSectionPoint_First,None,Intf_SeqOfSectionPoint)
  Intf_SeqOfSectionPoint.Last = new_instancemethod(_Intf.Intf_SeqOfSectionPoint_Last,None,Intf_SeqOfSectionPoint)
  Intf_SeqOfSectionPoint.Split = new_instancemethod(_Intf.Intf_SeqOfSectionPoint_Split,None,Intf_SeqOfSectionPoint)
  Intf_SeqOfSectionPoint.Value = new_instancemethod(_Intf.Intf_SeqOfSectionPoint_Value,None,Intf_SeqOfSectionPoint)
  Intf_SeqOfSectionPoint.SetValue = new_instancemethod(_Intf.Intf_SeqOfSectionPoint_SetValue,None,Intf_SeqOfSectionPoint)
  Intf_SeqOfSectionPoint.ChangeValue = new_instancemethod(_Intf.Intf_SeqOfSectionPoint_ChangeValue,None,Intf_SeqOfSectionPoint)
  Intf_SeqOfSectionPoint.Remove = new_instancemethod(_Intf.Intf_SeqOfSectionPoint_Remove,None,Intf_SeqOfSectionPoint)
  Intf_SeqOfSectionPoint._kill_pointed = new_instancemethod(_Intf.Intf_SeqOfSectionPoint__kill_pointed,None,Intf_SeqOfSectionPoint)
  Intf_SeqOfSectionPoint_swigregister = _Intf.Intf_SeqOfSectionPoint_swigregister
  Intf_SeqOfSectionPoint_swigregister(Intf_SeqOfSectionPoint)
  
  class Intf_SeqOfTangentZone(OCC.TCollection.TCollection_BaseSequence):
      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
  
          """
          _Intf.Intf_SeqOfTangentZone_swiginit(self,_Intf.new_Intf_SeqOfTangentZone(*args))
      def Clear(self, *args):
          """
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfTangentZone_Clear(self, *args)
  
      def Assign(self, *args):
          """
          :param Other:
          :type Other: Intf_SeqOfTangentZone &
          :rtype: Intf_SeqOfTangentZone
  
          """
          return _Intf.Intf_SeqOfTangentZone_Assign(self, *args)
  
      def Set(self, *args):
          """
          :param Other:
          :type Other: Intf_SeqOfTangentZone &
          :rtype: Intf_SeqOfTangentZone
  
          """
          return _Intf.Intf_SeqOfTangentZone_Set(self, *args)
  
      def Append(self, *args):
          """
          :param T:
          :type T: Intf_TangentZone &
          :rtype: None
  
          :param S:
          :type S: Intf_SeqOfTangentZone &
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfTangentZone_Append(self, *args)
  
      def Prepend(self, *args):
          """
          :param T:
          :type T: Intf_TangentZone &
          :rtype: None
  
          :param S:
          :type S: Intf_SeqOfTangentZone &
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfTangentZone_Prepend(self, *args)
  
      def InsertBefore(self, *args):
          """
          :param Index:
          :type Index: int
          :param T:
          :type T: Intf_TangentZone &
          :rtype: None
  
          :param Index:
          :type Index: int
          :param S:
          :type S: Intf_SeqOfTangentZone &
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfTangentZone_InsertBefore(self, *args)
  
      def InsertAfter(self, *args):
          """
          :param Index:
          :type Index: int
          :param T:
          :type T: Intf_TangentZone &
          :rtype: None
  
          :param Index:
          :type Index: int
          :param S:
          :type S: Intf_SeqOfTangentZone &
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfTangentZone_InsertAfter(self, *args)
  
      def First(self, *args):
          """
          :rtype: Intf_TangentZone
  
          """
          return _Intf.Intf_SeqOfTangentZone_First(self, *args)
  
      def Last(self, *args):
          """
          :rtype: Intf_TangentZone
  
          """
          return _Intf.Intf_SeqOfTangentZone_Last(self, *args)
  
      def Split(self, *args):
          """
          :param Index:
          :type Index: int
          :param Sub:
          :type Sub: Intf_SeqOfTangentZone &
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfTangentZone_Split(self, *args)
  
      def Value(self, *args):
          """
          :param Index:
          :type Index: int
          :rtype: Intf_TangentZone
  
          """
          return _Intf.Intf_SeqOfTangentZone_Value(self, *args)
  
      def SetValue(self, *args):
          """
          :param Index:
          :type Index: int
          :param I:
          :type I: Intf_TangentZone &
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfTangentZone_SetValue(self, *args)
  
      def ChangeValue(self, *args):
          """
          :param Index:
          :type Index: int
          :rtype: Intf_TangentZone
  
          """
          return _Intf.Intf_SeqOfTangentZone_ChangeValue(self, *args)
  
      def Remove(self, *args):
          """
          :param Index:
          :type Index: int
          :rtype: None
  
          :param FromIndex:
          :type FromIndex: int
          :param ToIndex:
          :type ToIndex: int
          :rtype: None
  
          """
          return _Intf.Intf_SeqOfTangentZone_Remove(self, *args)
  
      def __del__(self):
      	try:
      		self.thisown = False
      		GarbageCollector.garbage.collect_object(self)
      	except:
      		pass
  
  
  Intf_SeqOfTangentZone.Clear = new_instancemethod(_Intf.Intf_SeqOfTangentZone_Clear,None,Intf_SeqOfTangentZone)
  Intf_SeqOfTangentZone.Assign = new_instancemethod(_Intf.Intf_SeqOfTangentZone_Assign,None,Intf_SeqOfTangentZone)
  Intf_SeqOfTangentZone.Set = new_instancemethod(_Intf.Intf_SeqOfTangentZone_Set,None,Intf_SeqOfTangentZone)
  Intf_SeqOfTangentZone.Append = new_instancemethod(_Intf.Intf_SeqOfTangentZone_Append,None,Intf_SeqOfTangentZone)
  Intf_SeqOfTangentZone.Prepend = new_instancemethod(_Intf.Intf_SeqOfTangentZone_Prepend,None,Intf_SeqOfTangentZone)
  Intf_SeqOfTangentZone.InsertBefore = new_instancemethod(_Intf.Intf_SeqOfTangentZone_InsertBefore,None,Intf_SeqOfTangentZone)
  Intf_SeqOfTangentZone.InsertAfter = new_instancemethod(_Intf.Intf_SeqOfTangentZone_InsertAfter,None,Intf_SeqOfTangentZone)
  Intf_SeqOfTangentZone.First = new_instancemethod(_Intf.Intf_SeqOfTangentZone_First,None,Intf_SeqOfTangentZone)
  Intf_SeqOfTangentZone.Last = new_instancemethod(_Intf.Intf_SeqOfTangentZone_Last,None,Intf_SeqOfTangentZone)
  Intf_SeqOfTangentZone.Split = new_instancemethod(_Intf.Intf_SeqOfTangentZone_Split,None,Intf_SeqOfTangentZone)
  Intf_SeqOfTangentZone.Value = new_instancemethod(_Intf.Intf_SeqOfTangentZone_Value,None,Intf_SeqOfTangentZone)
  Intf_SeqOfTangentZone.SetValue = new_instancemethod(_Intf.Intf_SeqOfTangentZone_SetValue,None,Intf_SeqOfTangentZone)
  Intf_SeqOfTangentZone.ChangeValue = new_instancemethod(_Intf.Intf_SeqOfTangentZone_ChangeValue,None,Intf_SeqOfTangentZone)
  Intf_SeqOfTangentZone.Remove = new_instancemethod(_Intf.Intf_SeqOfTangentZone_Remove,None,Intf_SeqOfTangentZone)
  Intf_SeqOfTangentZone._kill_pointed = new_instancemethod(_Intf.Intf_SeqOfTangentZone__kill_pointed,None,Intf_SeqOfTangentZone)
  Intf_SeqOfTangentZone_swigregister = _Intf.Intf_SeqOfTangentZone_swigregister
  Intf_SeqOfTangentZone_swigregister(Intf_SeqOfTangentZone)
  
  class Intf_SequenceNodeOfSeqOfSectionLine(OCC.TCollection.TCollection_SeqNode):
      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 I:
          :type I: Intf_SectionLine &
          :param n:
          :type n: TCollection_SeqNodePtr &
          :param p:
          :type p: TCollection_SeqNodePtr &
          :rtype: None
  
          """
          _Intf.Intf_SequenceNodeOfSeqOfSectionLine_swiginit(self,_Intf.new_Intf_SequenceNodeOfSeqOfSectionLine(*args))
      def Value(self, *args):
          """
          :rtype: Intf_SectionLine
  
          """
          return _Intf.Intf_SequenceNodeOfSeqOfSectionLine_Value(self, *args)
  
      def _kill_pointed(self):
          """_kill_pointed(Intf_SequenceNodeOfSeqOfSectionLine self)"""
          return _Intf.Intf_SequenceNodeOfSeqOfSectionLine__kill_pointed(self)
  
      def GetHandle(self):
          """GetHandle(Intf_SequenceNodeOfSeqOfSectionLine self) -> Handle_Intf_SequenceNodeOfSeqOfSectionLine"""
          return _Intf.Intf_SequenceNodeOfSeqOfSectionLine_GetHandle(self)
  
      def __del__(self):
      	try:
      		self.thisown = False
      		GarbageCollector.garbage.collect_object(self)
      	except:
      		pass
  
  
  Intf_SequenceNodeOfSeqOfSectionLine.Value = new_instancemethod(_Intf.Intf_SequenceNodeOfSeqOfSectionLine_Value,None,Intf_SequenceNodeOfSeqOfSectionLine)
  Intf_SequenceNodeOfSeqOfSectionLine._kill_pointed = new_instancemethod(_Intf.Intf_SequenceNodeOfSeqOfSectionLine__kill_pointed,None,Intf_SequenceNodeOfSeqOfSectionLine)
  Intf_SequenceNodeOfSeqOfSectionLine.GetHandle = new_instancemethod(_Intf.Intf_SequenceNodeOfSeqOfSectionLine_GetHandle,None,Intf_SequenceNodeOfSeqOfSectionLine)
  Intf_SequenceNodeOfSeqOfSectionLine_swigregister = _Intf.Intf_SequenceNodeOfSeqOfSectionLine_swigregister
  Intf_SequenceNodeOfSeqOfSectionLine_swigregister(Intf_SequenceNodeOfSeqOfSectionLine)
  
  class Handle_Intf_SequenceNodeOfSeqOfSectionLine(OCC.TCollection.Handle_TCollection_SeqNode):
      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): 
          _Intf.Handle_Intf_SequenceNodeOfSeqOfSectionLine_swiginit(self,_Intf.new_Handle_Intf_SequenceNodeOfSeqOfSectionLine(*args))
      DownCast = staticmethod(_Intf.Handle_Intf_SequenceNodeOfSeqOfSectionLine_DownCast)
      def __del__(self):
          try:
              self.thisown = False
              GarbageCollector.garbage.collect_object(self)
          except:
              pass
  
  
  Handle_Intf_SequenceNodeOfSeqOfSectionLine.Nullify = new_instancemethod(_Intf.Handle_Intf_SequenceNodeOfSeqOfSectionLine_Nullify,None,Handle_Intf_SequenceNodeOfSeqOfSectionLine)
  Handle_Intf_SequenceNodeOfSeqOfSectionLine.IsNull = new_instancemethod(_Intf.Handle_Intf_SequenceNodeOfSeqOfSectionLine_IsNull,None,Handle_Intf_SequenceNodeOfSeqOfSectionLine)
  Handle_Intf_SequenceNodeOfSeqOfSectionLine.GetObject = new_instancemethod(_Intf.Handle_Intf_SequenceNodeOfSeqOfSectionLine_GetObject,None,Handle_Intf_SequenceNodeOfSeqOfSectionLine)
  Handle_Intf_SequenceNodeOfSeqOfSectionLine._kill_pointed = new_instancemethod(_Intf.Handle_Intf_SequenceNodeOfSeqOfSectionLine__kill_pointed,None,Handle_Intf_SequenceNodeOfSeqOfSectionLine)
  Handle_Intf_SequenceNodeOfSeqOfSectionLine_swigregister = _Intf.Handle_Intf_SequenceNodeOfSeqOfSectionLine_swigregister
  Handle_Intf_SequenceNodeOfSeqOfSectionLine_swigregister(Handle_Intf_SequenceNodeOfSeqOfSectionLine)
  
  def Handle_Intf_SequenceNodeOfSeqOfSectionLine_DownCast(*args):
    return _Intf.Handle_Intf_SequenceNodeOfSeqOfSectionLine_DownCast(*args)
  Handle_Intf_SequenceNodeOfSeqOfSectionLine_DownCast = _Intf.Handle_Intf_SequenceNodeOfSeqOfSectionLine_DownCast
  
  class Intf_SequenceNodeOfSeqOfSectionPoint(OCC.TCollection.TCollection_SeqNode):
      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 I:
          :type I: Intf_SectionPoint &
          :param n:
          :type n: TCollection_SeqNodePtr &
          :param p:
          :type p: TCollection_SeqNodePtr &
          :rtype: None
  
          """
          _Intf.Intf_SequenceNodeOfSeqOfSectionPoint_swiginit(self,_Intf.new_Intf_SequenceNodeOfSeqOfSectionPoint(*args))
      def Value(self, *args):
          """
          :rtype: Intf_SectionPoint
  
          """
          return _Intf.Intf_SequenceNodeOfSeqOfSectionPoint_Value(self, *args)
  
      def _kill_pointed(self):
          """_kill_pointed(Intf_SequenceNodeOfSeqOfSectionPoint self)"""
          return _Intf.Intf_SequenceNodeOfSeqOfSectionPoint__kill_pointed(self)
  
      def GetHandle(self):
          """GetHandle(Intf_SequenceNodeOfSeqOfSectionPoint self) -> Handle_Intf_SequenceNodeOfSeqOfSectionPoint"""
          return _Intf.Intf_SequenceNodeOfSeqOfSectionPoint_GetHandle(self)
  
      def __del__(self):
      	try:
      		self.thisown = False
      		GarbageCollector.garbage.collect_object(self)
      	except:
      		pass
  
  
  Intf_SequenceNodeOfSeqOfSectionPoint.Value = new_instancemethod(_Intf.Intf_SequenceNodeOfSeqOfSectionPoint_Value,None,Intf_SequenceNodeOfSeqOfSectionPoint)
  Intf_SequenceNodeOfSeqOfSectionPoint._kill_pointed = new_instancemethod(_Intf.Intf_SequenceNodeOfSeqOfSectionPoint__kill_pointed,None,Intf_SequenceNodeOfSeqOfSectionPoint)
  Intf_SequenceNodeOfSeqOfSectionPoint.GetHandle = new_instancemethod(_Intf.Intf_SequenceNodeOfSeqOfSectionPoint_GetHandle,None,Intf_SequenceNodeOfSeqOfSectionPoint)
  Intf_SequenceNodeOfSeqOfSectionPoint_swigregister = _Intf.Intf_SequenceNodeOfSeqOfSectionPoint_swigregister
  Intf_SequenceNodeOfSeqOfSectionPoint_swigregister(Intf_SequenceNodeOfSeqOfSectionPoint)
  
  class Handle_Intf_SequenceNodeOfSeqOfSectionPoint(OCC.TCollection.Handle_TCollection_SeqNode):
      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): 
          _Intf.Handle_Intf_SequenceNodeOfSeqOfSectionPoint_swiginit(self,_Intf.new_Handle_Intf_SequenceNodeOfSeqOfSectionPoint(*args))
      DownCast = staticmethod(_Intf.Handle_Intf_SequenceNodeOfSeqOfSectionPoint_DownCast)
      def __del__(self):
          try:
              self.thisown = False
              GarbageCollector.garbage.collect_object(self)
          except:
              pass
  
  
  Handle_Intf_SequenceNodeOfSeqOfSectionPoint.Nullify = new_instancemethod(_Intf.Handle_Intf_SequenceNodeOfSeqOfSectionPoint_Nullify,None,Handle_Intf_SequenceNodeOfSeqOfSectionPoint)
  Handle_Intf_SequenceNodeOfSeqOfSectionPoint.IsNull = new_instancemethod(_Intf.Handle_Intf_SequenceNodeOfSeqOfSectionPoint_IsNull,None,Handle_Intf_SequenceNodeOfSeqOfSectionPoint)
  Handle_Intf_SequenceNodeOfSeqOfSectionPoint.GetObject = new_instancemethod(_Intf.Handle_Intf_SequenceNodeOfSeqOfSectionPoint_GetObject,None,Handle_Intf_SequenceNodeOfSeqOfSectionPoint)
  Handle_Intf_SequenceNodeOfSeqOfSectionPoint._kill_pointed = new_instancemethod(_Intf.Handle_Intf_SequenceNodeOfSeqOfSectionPoint__kill_pointed,None,Handle_Intf_SequenceNodeOfSeqOfSectionPoint)
  Handle_Intf_SequenceNodeOfSeqOfSectionPoint_swigregister = _Intf.Handle_Intf_SequenceNodeOfSeqOfSectionPoint_swigregister
  Handle_Intf_SequenceNodeOfSeqOfSectionPoint_swigregister(Handle_Intf_SequenceNodeOfSeqOfSectionPoint)
  
  def Handle_Intf_SequenceNodeOfSeqOfSectionPoint_DownCast(*args):
    return _Intf.Handle_Intf_SequenceNodeOfSeqOfSectionPoint_DownCast(*args)
  Handle_Intf_SequenceNodeOfSeqOfSectionPoint_DownCast = _Intf.Handle_Intf_SequenceNodeOfSeqOfSectionPoint_DownCast
  
  class Intf_SequenceNodeOfSeqOfTangentZone(OCC.TCollection.TCollection_SeqNode):
      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 I:
          :type I: Intf_TangentZone &
          :param n:
          :type n: TCollection_SeqNodePtr &
          :param p:
          :type p: TCollection_SeqNodePtr &
          :rtype: None
  
          """
          _Intf.Intf_SequenceNodeOfSeqOfTangentZone_swiginit(self,_Intf.new_Intf_SequenceNodeOfSeqOfTangentZone(*args))
      def Value(self, *args):
          """
          :rtype: Intf_TangentZone
  
          """
          return _Intf.Intf_SequenceNodeOfSeqOfTangentZone_Value(self, *args)
  
      def _kill_pointed(self):
          """_kill_pointed(Intf_SequenceNodeOfSeqOfTangentZone self)"""
          return _Intf.Intf_SequenceNodeOfSeqOfTangentZone__kill_pointed(self)
  
      def GetHandle(self):
          """GetHandle(Intf_SequenceNodeOfSeqOfTangentZone self) -> Handle_Intf_SequenceNodeOfSeqOfTangentZone"""
          return _Intf.Intf_SequenceNodeOfSeqOfTangentZone_GetHandle(self)
  
      def __del__(self):
      	try:
      		self.thisown = False
      		GarbageCollector.garbage.collect_object(self)
      	except:
      		pass
  
  
  Intf_SequenceNodeOfSeqOfTangentZone.Value = new_instancemethod(_Intf.Intf_SequenceNodeOfSeqOfTangentZone_Value,None,Intf_SequenceNodeOfSeqOfTangentZone)
  Intf_SequenceNodeOfSeqOfTangentZone._kill_pointed = new_instancemethod(_Intf.Intf_SequenceNodeOfSeqOfTangentZone__kill_pointed,None,Intf_SequenceNodeOfSeqOfTangentZone)
  Intf_SequenceNodeOfSeqOfTangentZone.GetHandle = new_instancemethod(_Intf.Intf_SequenceNodeOfSeqOfTangentZone_GetHandle,None,Intf_SequenceNodeOfSeqOfTangentZone)
  Intf_SequenceNodeOfSeqOfTangentZone_swigregister = _Intf.Intf_SequenceNodeOfSeqOfTangentZone_swigregister
  Intf_SequenceNodeOfSeqOfTangentZone_swigregister(Intf_SequenceNodeOfSeqOfTangentZone)
  
  class Handle_Intf_SequenceNodeOfSeqOfTangentZone(OCC.TCollection.Handle_TCollection_SeqNode):
      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): 
          _Intf.Handle_Intf_SequenceNodeOfSeqOfTangentZone_swiginit(self,_Intf.new_Handle_Intf_SequenceNodeOfSeqOfTangentZone(*args))
      DownCast = staticmethod(_Intf.Handle_Intf_SequenceNodeOfSeqOfTangentZone_DownCast)
      def __del__(self):
          try:
              self.thisown = False
              GarbageCollector.garbage.collect_object(self)
          except:
              pass
  
  
  Handle_Intf_SequenceNodeOfSeqOfTangentZone.Nullify = new_instancemethod(_Intf.Handle_Intf_SequenceNodeOfSeqOfTangentZone_Nullify,None,Handle_Intf_SequenceNodeOfSeqOfTangentZone)
  Handle_Intf_SequenceNodeOfSeqOfTangentZone.IsNull = new_instancemethod(_Intf.Handle_Intf_SequenceNodeOfSeqOfTangentZone_IsNull,None,Handle_Intf_SequenceNodeOfSeqOfTangentZone)
  Handle_Intf_SequenceNodeOfSeqOfTangentZone.GetObject = new_instancemethod(_Intf.Handle_Intf_SequenceNodeOfSeqOfTangentZone_GetObject,None,Handle_Intf_SequenceNodeOfSeqOfTangentZone)
  Handle_Intf_SequenceNodeOfSeqOfTangentZone._kill_pointed = new_instancemethod(_Intf.Handle_Intf_SequenceNodeOfSeqOfTangentZone__kill_pointed,None,Handle_Intf_SequenceNodeOfSeqOfTangentZone)
  Handle_Intf_SequenceNodeOfSeqOfTangentZone_swigregister = _Intf.Handle_Intf_SequenceNodeOfSeqOfTangentZone_swigregister
  Handle_Intf_SequenceNodeOfSeqOfTangentZone_swigregister(Handle_Intf_SequenceNodeOfSeqOfTangentZone)
  
  def Handle_Intf_SequenceNodeOfSeqOfTangentZone_DownCast(*args):
    return _Intf.Handle_Intf_SequenceNodeOfSeqOfTangentZone_DownCast(*args)
  Handle_Intf_SequenceNodeOfSeqOfTangentZone_DownCast = _Intf.Handle_Intf_SequenceNodeOfSeqOfTangentZone_DownCast
  
  class Intf_TangentZone(object):
      thisown = _swig_property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc='The membership flag')
      __repr__ = _swig_repr
      def NumberOfPoints(self, *args):
          """
          * Returns number of SectionPoint in this TangentZone.
  
          :rtype: int
  
          """
          return _Intf.Intf_TangentZone_NumberOfPoints(self, *args)
  
      def GetPoint(self, *args):
          """
          * Gives the SectionPoint of address <Index> in the TangentZone.
  
          :param Index:
          :type Index: int
          :rtype: Intf_SectionPoint
  
          """
          return _Intf.Intf_TangentZone_GetPoint(self, *args)
  
      def IsEqual(self, *args):
          """
          * Compares two TangentZones.
  
          :param Other:
          :type Other: Intf_TangentZone &
          :rtype: bool
  
          """
          return _Intf.Intf_TangentZone_IsEqual(self, *args)
  
      def __eq__(self,right):
          try:
              return self.__eq_wrapper__(right)
          except:
              return False
  
      def Contains(self, *args):
          """
          * Checks if <ThePI> is in TangentZone.
  
          :param ThePI:
          :type ThePI: Intf_SectionPoint &
          :rtype: bool
  
          """
          return _Intf.Intf_TangentZone_Contains(self, *args)
  
      def ParamOnFirst(self, *args):
          """
          * Gives the parameter range of the TangentZone on the first argument of the Interference. (Usable only for polygon)
  
          :param paraMin:
          :type paraMin: float &
          :param paraMax:
          :type paraMax: float &
          :rtype: None
  
          """
          return _Intf.Intf_TangentZone_ParamOnFirst(self, *args)
  
      def ParamOnSecond(self, *args):
          """
          * Gives the parameter range of the TangentZone on the second argument of the Interference. (Usable only for polygon)
  
          :param paraMin:
          :type paraMin: float &
          :param paraMax:
          :type paraMax: float &
          :rtype: None
  
          """
          return _Intf.Intf_TangentZone_ParamOnSecond(self, *args)
  
      def InfoFirst(self, *args):
          """
          * Gives information about the first argument of the Interference. (Usable only for polygon)
  
          :param segMin:
          :type segMin: int &
          :param paraMin:
          :type paraMin: float &
          :param segMax:
          :type segMax: int &
          :param paraMax:
          :type paraMax: float &
          :rtype: None
  
          """
          return _Intf.Intf_TangentZone_InfoFirst(self, *args)
  
      def InfoSecond(self, *args):
          """
          * Gives informations about the second argument of the Interference. (Usable only for polygon)
  
          :param segMin:
          :type segMin: int &
          :param paraMin:
          :type paraMin: float &
          :param segMax:
          :type segMax: int &
          :param paraMax:
          :type paraMax: float &
          :rtype: None
  
          """
          return _Intf.Intf_TangentZone_InfoSecond(self, *args)
  
      def RangeContains(self, *args):
          """
          * Returns True if <ThePI> is in the parameter range of the TangentZone.
  
          :param ThePI:
          :type ThePI: Intf_SectionPoint &
          :rtype: bool
  
          """
          return _Intf.Intf_TangentZone_RangeContains(self, *args)
  
      def HasCommonRange(self, *args):
          """
          * Returns True if the TangentZone <Other> has a common part with <self>.
  
          :param Other:
          :type Other: Intf_TangentZone &
          :rtype: bool
  
          """
          return _Intf.Intf_TangentZone_HasCommonRange(self, *args)
  
      def __init__(self, *args): 
          """
          * Builds an empty tangent zone.
  
          :rtype: None
  
          * Copies a Tangent zone.
  
          :param Other:
          :type Other: Intf_TangentZone &
          :rtype: None
  
          """
          _Intf.Intf_TangentZone_swiginit(self,_Intf.new_Intf_TangentZone(*args))
      def Append(self, *args):
          """
          * Adds a SectionPoint to the TangentZone.
  
          :param Pi:
          :type Pi: Intf_SectionPoint &
          :rtype: None
  
          * Adds the TangentZone <Tzi> to <self>.
  
          :param Tzi:
          :type Tzi: Intf_TangentZone &
          :rtype: None
  
          """
          return _Intf.Intf_TangentZone_Append(self, *args)
  
      def Insert(self, *args):
          """
          * Inserts a SectionPoint in the TangentZone.
  
          :param Pi:
          :type Pi: Intf_SectionPoint &
          :rtype: bool
  
          """
          return _Intf.Intf_TangentZone_Insert(self, *args)
  
      def PolygonInsert(self, *args):
          """
          * Inserts a point in the polygonal TangentZone.
  
          :param Pi:
          :type Pi: Intf_SectionPoint &
          :rtype: None
  
          """
          return _Intf.Intf_TangentZone_PolygonInsert(self, *args)
  
      def InsertBefore(self, *args):
          """
          * Inserts a SectionPoint before <Index> in the TangentZone.
  
          :param Index:
          :type Index: int
          :param Pi:
          :type Pi: Intf_SectionPoint &
          :rtype: None
  
          """
          return _Intf.Intf_TangentZone_InsertBefore(self, *args)
  
      def InsertAfter(self, *args):
          """
          * Inserts a SectionPoint after <Index> in the TangentZone.
  
          :param Index:
          :type Index: int
          :param Pi:
          :type Pi: Intf_SectionPoint &
          :rtype: None
  
          """
          return _Intf.Intf_TangentZone_InsertAfter(self, *args)
  
      def Dump(self, *args):
          """
          :param Indent:
          :type Indent: int
          :rtype: None
  
          """
          return _Intf.Intf_TangentZone_Dump(self, *args)
  
      def __del__(self):
      	try:
      		self.thisown = False
      		GarbageCollector.garbage.collect_object(self)
      	except:
      		pass
  
  
  Intf_TangentZone.NumberOfPoints = new_instancemethod(_Intf.Intf_TangentZone_NumberOfPoints,None,Intf_TangentZone)
  Intf_TangentZone.GetPoint = new_instancemethod(_Intf.Intf_TangentZone_GetPoint,None,Intf_TangentZone)
  Intf_TangentZone.IsEqual = new_instancemethod(_Intf.Intf_TangentZone_IsEqual,None,Intf_TangentZone)
  Intf_TangentZone.__eq_wrapper__ = new_instancemethod(_Intf.Intf_TangentZone___eq_wrapper__,None,Intf_TangentZone)
  Intf_TangentZone.Contains = new_instancemethod(_Intf.Intf_TangentZone_Contains,None,Intf_TangentZone)
  Intf_TangentZone.ParamOnFirst = new_instancemethod(_Intf.Intf_TangentZone_ParamOnFirst,None,Intf_TangentZone)
  Intf_TangentZone.ParamOnSecond = new_instancemethod(_Intf.Intf_TangentZone_ParamOnSecond,None,Intf_TangentZone)
  Intf_TangentZone.InfoFirst = new_instancemethod(_Intf.Intf_TangentZone_InfoFirst,None,Intf_TangentZone)
  Intf_TangentZone.InfoSecond = new_instancemethod(_Intf.Intf_TangentZone_InfoSecond,None,Intf_TangentZone)
  Intf_TangentZone.RangeContains = new_instancemethod(_Intf.Intf_TangentZone_RangeContains,None,Intf_TangentZone)
  Intf_TangentZone.HasCommonRange = new_instancemethod(_Intf.Intf_TangentZone_HasCommonRange,None,Intf_TangentZone)
  Intf_TangentZone.Append = new_instancemethod(_Intf.Intf_TangentZone_Append,None,Intf_TangentZone)
  Intf_TangentZone.Insert = new_instancemethod(_Intf.Intf_TangentZone_Insert,None,Intf_TangentZone)
  Intf_TangentZone.PolygonInsert = new_instancemethod(_Intf.Intf_TangentZone_PolygonInsert,None,Intf_TangentZone)
  Intf_TangentZone.InsertBefore = new_instancemethod(_Intf.Intf_TangentZone_InsertBefore,None,Intf_TangentZone)
  Intf_TangentZone.InsertAfter = new_instancemethod(_Intf.Intf_TangentZone_InsertAfter,None,Intf_TangentZone)
  Intf_TangentZone.Dump = new_instancemethod(_Intf.Intf_TangentZone_Dump,None,Intf_TangentZone)
  Intf_TangentZone._kill_pointed = new_instancemethod(_Intf.Intf_TangentZone__kill_pointed,None,Intf_TangentZone)
  Intf_TangentZone_swigregister = _Intf.Intf_TangentZone_swigregister
  Intf_TangentZone_swigregister(Intf_TangentZone)
  
  class Intf_Tool(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
  
          """
          _Intf.Intf_Tool_swiginit(self,_Intf.new_Intf_Tool(*args))
      def Lin2dBox(self, *args):
          """
          :param theLin2d:
          :type theLin2d: gp_Lin2d
          :param bounding:
          :type bounding: Bnd_Box2d &
          :param boxLin:
          :type boxLin: Bnd_Box2d &
          :rtype: None
  
          """
          return _Intf.Intf_Tool_Lin2dBox(self, *args)
  
      def Hypr2dBox(self, *args):
          """
          :param theHypr2d:
          :type theHypr2d: gp_Hypr2d
          :param bounding:
          :type bounding: Bnd_Box2d &
          :param boxHypr:
          :type boxHypr: Bnd_Box2d &
          :rtype: None
  
          """
          return _Intf.Intf_Tool_Hypr2dBox(self, *args)
  
      def Parab2dBox(self, *args):
          """
          :param theParab2d:
          :type theParab2d: gp_Parab2d
          :param bounding:
          :type bounding: Bnd_Box2d &
          :param boxHypr:
          :type boxHypr: Bnd_Box2d &
          :rtype: None
  
          """
          return _Intf.Intf_Tool_Parab2dBox(self, *args)
  
      def LinBox(self, *args):
          """
          :param theLin:
          :type theLin: gp_Lin
          :param bounding:
          :type bounding: Bnd_Box &
          :param boxLin:
          :type boxLin: Bnd_Box &
          :rtype: None
  
          """
          return _Intf.Intf_Tool_LinBox(self, *args)
  
      def HyprBox(self, *args):
          """
          :param theHypr:
          :type theHypr: gp_Hypr
          :param bounding:
          :type bounding: Bnd_Box &
          :param boxHypr:
          :type boxHypr: Bnd_Box &
          :rtype: None
  
          """
          return _Intf.Intf_Tool_HyprBox(self, *args)
  
      def ParabBox(self, *args):
          """
          :param theParab:
          :type theParab: gp_Parab
          :param bounding:
          :type bounding: Bnd_Box &
          :param boxHypr:
          :type boxHypr: Bnd_Box &
          :rtype: None
  
          """
          return _Intf.Intf_Tool_ParabBox(self, *args)
  
      def NbSegments(self, *args):
          """
          :rtype: int
  
          """
          return _Intf.Intf_Tool_NbSegments(self, *args)
  
      def BeginParam(self, *args):
          """
          :param SegmentNum:
          :type SegmentNum: int
          :rtype: float
  
          """
          return _Intf.Intf_Tool_BeginParam(self, *args)
  
      def EndParam(self, *args):
          """
          :param SegmentNum:
          :type SegmentNum: int
          :rtype: float
  
          """
          return _Intf.Intf_Tool_EndParam(self, *args)
  
      def __del__(self):
      	try:
      		self.thisown = False
      		GarbageCollector.garbage.collect_object(self)
      	except:
      		pass
  
  
  Intf_Tool.Lin2dBox = new_instancemethod(_Intf.Intf_Tool_Lin2dBox,None,Intf_Tool)
  Intf_Tool.Hypr2dBox = new_instancemethod(_Intf.Intf_Tool_Hypr2dBox,None,Intf_Tool)
  Intf_Tool.Parab2dBox = new_instancemethod(_Intf.Intf_Tool_Parab2dBox,None,Intf_Tool)
  Intf_Tool.LinBox = new_instancemethod(_Intf.Intf_Tool_LinBox,None,Intf_Tool)
  Intf_Tool.HyprBox = new_instancemethod(_Intf.Intf_Tool_HyprBox,None,Intf_Tool)
  Intf_Tool.ParabBox = new_instancemethod(_Intf.Intf_Tool_ParabBox,None,Intf_Tool)
  Intf_Tool.NbSegments = new_instancemethod(_Intf.Intf_Tool_NbSegments,None,Intf_Tool)
  Intf_Tool.BeginParam = new_instancemethod(_Intf.Intf_Tool_BeginParam,None,Intf_Tool)
  Intf_Tool.EndParam = new_instancemethod(_Intf.Intf_Tool_EndParam,None,Intf_Tool)
  Intf_Tool._kill_pointed = new_instancemethod(_Intf.Intf_Tool__kill_pointed,None,Intf_Tool)
  Intf_Tool_swigregister = _Intf.Intf_Tool_swigregister
  Intf_Tool_swigregister(Intf_Tool)
  
  class Intf_InterferencePolygon2d(Intf_Interference):
      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): 
          """
          * Constructs an empty interference of Polygon.
  
          :rtype: None
  
          * Constructs and computes an interference between two Polygons.
  
          :param Obje1:
          :type Obje1: Intf_Polygon2d &
          :param Obje2:
          :type Obje2: Intf_Polygon2d &
          :rtype: None
  
          * Constructs and computes the auto interference of a Polygon.
  
          :param Obje:
          :type Obje: Intf_Polygon2d &
          :rtype: None
  
          """
          _Intf.Intf_InterferencePolygon2d_swiginit(self,_Intf.new_Intf_InterferencePolygon2d(*args))
      def Perform(self, *args):
          """
          * Computes an interference between two Polygons.
  
          :param Obje1:
          :type Obje1: Intf_Polygon2d &
          :param Obje2:
          :type Obje2: Intf_Polygon2d &
          :rtype: None
  
          * Computes the self interference of a Polygon.
  
          :param Obje:
          :type Obje: Intf_Polygon2d &
          :rtype: None
  
          """
          return _Intf.Intf_InterferencePolygon2d_Perform(self, *args)
  
      def Pnt2dValue(self, *args):
          """
          * Gives the geometrical 2d point of the intersection point at address <Index> in the interference.
  
          :param Index:
          :type Index: int
          :rtype: gp_Pnt2d
  
          """
          return _Intf.Intf_InterferencePolygon2d_Pnt2dValue(self, *args)
  
      def __del__(self):
      	try:
      		self.thisown = False
      		GarbageCollector.garbage.collect_object(self)
      	except:
      		pass
  
  
  Intf_InterferencePolygon2d.Perform = new_instancemethod(_Intf.Intf_InterferencePolygon2d_Perform,None,Intf_InterferencePolygon2d)
  Intf_InterferencePolygon2d.Pnt2dValue = new_instancemethod(_Intf.Intf_InterferencePolygon2d_Pnt2dValue,None,Intf_InterferencePolygon2d)
  Intf_InterferencePolygon2d._kill_pointed = new_instancemethod(_Intf.Intf_InterferencePolygon2d__kill_pointed,None,Intf_InterferencePolygon2d)
  Intf_InterferencePolygon2d_swigregister = _Intf.Intf_InterferencePolygon2d_swigregister
  Intf_InterferencePolygon2d_swigregister(Intf_InterferencePolygon2d)
  
  
  
  