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

"""
Geom2dInt module, see official documentation at
https://dev.opencascade.org/doc/occt-7.9.0/refman/html/package_geom2dint.html
"""

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if getattr(globals().get("__spec__"), "parent", None) or __package__ or "." in __name__:
    from . import _Geom2dInt
else:
    import _Geom2dInt

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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


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


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


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


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


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

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _Geom2dInt.delete_SwigPyIterator

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _Geom2dInt:
_Geom2dInt.SwigPyIterator_swigregister(SwigPyIterator)

def _dumps_object(klass):
    """ Overwrite default string output for any wrapped object.
    By default, __repr__ method returns something like:
    <OCC.Core.TopoDS.TopoDS_Shape; proxy of <Swig Object of type 'TopoDS_Shape *' at 0x02BB0758> >
    This is too much verbose.
    We prefer :
    <class 'gp_Pnt'>
    or
    <class 'TopoDS_Shape'>
    """
    klass_name = str(klass.__class__).split(".")[3].split("'")[0]
    repr_string = "<class '" + klass_name + "'"
# for TopoDS_Shape, we also look for the base type
    if klass_name == "TopoDS_Shape":
        if klass.IsNull():
            repr_string += ": Null>"
            return repr_string
        st = klass.ShapeType()
        types = {OCC.Core.TopAbs.TopAbs_VERTEX: "Vertex",
                 OCC.Core.TopAbs.TopAbs_SOLID: "Solid",
                 OCC.Core.TopAbs.TopAbs_EDGE: "Edge",
                 OCC.Core.TopAbs.TopAbs_FACE: "Face",
                 OCC.Core.TopAbs.TopAbs_SHELL: "Shell",
                 OCC.Core.TopAbs.TopAbs_WIRE: "Wire",
                 OCC.Core.TopAbs.TopAbs_COMPOUND: "Compound",
                 OCC.Core.TopAbs.TopAbs_COMPSOLID: "Compsolid"}
        repr_string += "; Type:%s" % types[st]        
    elif hasattr(klass, "IsNull"):
        if klass.IsNull():
            repr_string += "; Null"
    repr_string += ">"
    return repr_string


def process_exception(error, method_name, class_name):
    return _Geom2dInt.process_exception(error, method_name, class_name)

import warnings
from OCC.Wrapper.wrapper_utils import Proxy, deprecated

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

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    erase_event = _Geom2dInt.ios_base_erase_event
    imbue_event = _Geom2dInt.ios_base_imbue_event
    copyfmt_event = _Geom2dInt.ios_base_copyfmt_event

    def register_callback(self, __fn, __index):
        return _Geom2dInt.ios_base_register_callback(self, __fn, __index)

    def flags(self, *args):
        return _Geom2dInt.ios_base_flags(self, *args)

    def setf(self, *args):
        return _Geom2dInt.ios_base_setf(self, *args)

    def unsetf(self, __mask):
        return _Geom2dInt.ios_base_unsetf(self, __mask)

    def precision(self, *args):
        return _Geom2dInt.ios_base_precision(self, *args)

    def width(self, *args):
        return _Geom2dInt.ios_base_width(self, *args)

    @staticmethod
    def sync_with_stdio(__sync=True):
        return _Geom2dInt.ios_base_sync_with_stdio(__sync)

    def imbue(self, __loc):
        return _Geom2dInt.ios_base_imbue(self, __loc)

    def getloc(self):
        return _Geom2dInt.ios_base_getloc(self)

    @staticmethod
    def xalloc():
        return _Geom2dInt.ios_base_xalloc()

    def iword(self, __ix):
        return _Geom2dInt.ios_base_iword(self, __ix)

    def pword(self, __ix):
        return _Geom2dInt.ios_base_pword(self, __ix)
    __swig_destroy__ = _Geom2dInt.delete_ios_base

# Register ios_base in _Geom2dInt:
_Geom2dInt.ios_base_swigregister(ios_base)
cvar = _Geom2dInt.cvar
ios_base.boolalpha = _Geom2dInt.cvar.ios_base_boolalpha
ios_base.dec = _Geom2dInt.cvar.ios_base_dec
ios_base.fixed = _Geom2dInt.cvar.ios_base_fixed
ios_base.hex = _Geom2dInt.cvar.ios_base_hex
ios_base.internal = _Geom2dInt.cvar.ios_base_internal
ios_base.left = _Geom2dInt.cvar.ios_base_left
ios_base.oct = _Geom2dInt.cvar.ios_base_oct
ios_base.right = _Geom2dInt.cvar.ios_base_right
ios_base.scientific = _Geom2dInt.cvar.ios_base_scientific
ios_base.showbase = _Geom2dInt.cvar.ios_base_showbase
ios_base.showpoint = _Geom2dInt.cvar.ios_base_showpoint
ios_base.showpos = _Geom2dInt.cvar.ios_base_showpos
ios_base.skipws = _Geom2dInt.cvar.ios_base_skipws
ios_base.unitbuf = _Geom2dInt.cvar.ios_base_unitbuf
ios_base.uppercase = _Geom2dInt.cvar.ios_base_uppercase
ios_base.adjustfield = _Geom2dInt.cvar.ios_base_adjustfield
ios_base.basefield = _Geom2dInt.cvar.ios_base_basefield
ios_base.floatfield = _Geom2dInt.cvar.ios_base_floatfield
ios_base.badbit = _Geom2dInt.cvar.ios_base_badbit
ios_base.eofbit = _Geom2dInt.cvar.ios_base_eofbit
ios_base.failbit = _Geom2dInt.cvar.ios_base_failbit
ios_base.goodbit = _Geom2dInt.cvar.ios_base_goodbit
ios_base.app = _Geom2dInt.cvar.ios_base_app
ios_base.ate = _Geom2dInt.cvar.ios_base_ate
ios_base.binary = _Geom2dInt.cvar.ios_base_binary
ios_base.ios_base_in = _Geom2dInt.cvar.ios_base_ios_base_in
ios_base.out = _Geom2dInt.cvar.ios_base_out
ios_base.trunc = _Geom2dInt.cvar.ios_base_trunc
ios_base.beg = _Geom2dInt.cvar.ios_base_beg
ios_base.cur = _Geom2dInt.cvar.ios_base_cur
ios_base.end = _Geom2dInt.cvar.ios_base_end

class ios(ios_base):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def rdstate(self):
        return _Geom2dInt.ios_rdstate(self)

    def clear(self, *args):
        return _Geom2dInt.ios_clear(self, *args)

    def setstate(self, __state):
        return _Geom2dInt.ios_setstate(self, __state)

    def good(self):
        return _Geom2dInt.ios_good(self)

    def eof(self):
        return _Geom2dInt.ios_eof(self)

    def fail(self):
        return _Geom2dInt.ios_fail(self)

    def bad(self):
        return _Geom2dInt.ios_bad(self)

    def exceptions(self, *args):
        return _Geom2dInt.ios_exceptions(self, *args)

    def __init__(self, __sb):
        _Geom2dInt.ios_swiginit(self, _Geom2dInt.new_ios(__sb))
    __swig_destroy__ = _Geom2dInt.delete_ios

    def tie(self, *args):
        return _Geom2dInt.ios_tie(self, *args)

    def rdbuf(self, *args):
        return _Geom2dInt.ios_rdbuf(self, *args)

    def copyfmt(self, __rhs):
        return _Geom2dInt.ios_copyfmt(self, __rhs)

    def fill(self, *args):
        return _Geom2dInt.ios_fill(self, *args)

    def imbue(self, __loc):
        return _Geom2dInt.ios_imbue(self, __loc)

    def narrow(self, __c, __dfault):
        return _Geom2dInt.ios_narrow(self, __c, __dfault)

    def widen(self, __c):
        return _Geom2dInt.ios_widen(self, __c)

# Register ios in _Geom2dInt:
_Geom2dInt.ios_swigregister(ios)
class ostream(ios):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _Geom2dInt.ostream_swiginit(self, _Geom2dInt.new_ostream(__sb))
    __swig_destroy__ = _Geom2dInt.delete_ostream

    def __lshift__(self, *args):
        return _Geom2dInt.ostream___lshift__(self, *args)

    def put(self, __c):
        return _Geom2dInt.ostream_put(self, __c)

    def write(self, __s, __n):
        return _Geom2dInt.ostream_write(self, __s, __n)

    def flush(self):
        return _Geom2dInt.ostream_flush(self)

    def tellp(self):
        return _Geom2dInt.ostream_tellp(self)

    def seekp(self, *args):
        return _Geom2dInt.ostream_seekp(self, *args)

# Register ostream in _Geom2dInt:
_Geom2dInt.ostream_swigregister(ostream)
class istream(ios):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _Geom2dInt.istream_swiginit(self, _Geom2dInt.new_istream(__sb))
    __swig_destroy__ = _Geom2dInt.delete_istream

    def __rshift__(self, *args):
        return _Geom2dInt.istream___rshift__(self, *args)

    def gcount(self):
        return _Geom2dInt.istream_gcount(self)

    def get(self, *args):
        return _Geom2dInt.istream_get(self, *args)

    def getline(self, *args):
        return _Geom2dInt.istream_getline(self, *args)

    def ignore(self, *args):
        return _Geom2dInt.istream_ignore(self, *args)

    def peek(self):
        return _Geom2dInt.istream_peek(self)

    def read(self, __s, __n):
        return _Geom2dInt.istream_read(self, __s, __n)

    def readsome(self, __s, __n):
        return _Geom2dInt.istream_readsome(self, __s, __n)

    def putback(self, __c):
        return _Geom2dInt.istream_putback(self, __c)

    def unget(self):
        return _Geom2dInt.istream_unget(self)

    def sync(self):
        return _Geom2dInt.istream_sync(self)

    def tellg(self):
        return _Geom2dInt.istream_tellg(self)

    def seekg(self, *args):
        return _Geom2dInt.istream_seekg(self, *args)

# Register istream in _Geom2dInt:
_Geom2dInt.istream_swigregister(istream)
class iostream(istream, ostream):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _Geom2dInt.iostream_swiginit(self, _Geom2dInt.new_iostream(__sb))
    __swig_destroy__ = _Geom2dInt.delete_iostream

# Register iostream in _Geom2dInt:
_Geom2dInt.iostream_swigregister(iostream)
cin = cvar.cin
cout = cvar.cout
cerr = cvar.cerr
clog = cvar.clog

endl_cb_ptr = _Geom2dInt.endl_cb_ptr
endl = _Geom2dInt.endl
ends_cb_ptr = _Geom2dInt.ends_cb_ptr
ends = _Geom2dInt.ends
flush_cb_ptr = _Geom2dInt.flush_cb_ptr
flush = _Geom2dInt.flush
import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d
import OCC.Core.gp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.IntRes2d
import OCC.Core.math
import OCC.Core.Message
import OCC.Core.OSD
import OCC.Core.IntCurve
import OCC.Core.Extrema
import OCC.Core.Adaptor3d
import OCC.Core.Geom
import OCC.Core.TopAbs
import OCC.Core.GeomAdaptor
import OCC.Core.Intf
import OCC.Core.Bnd
import OCC.Core.BVH

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



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

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

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        C2: Adaptor2d_Curve2d
        Tol: float

        Return
        -------
        None

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

        """
        _Geom2dInt.Geom2dInt_ExactIntersectionPointOfTheIntPCurvePCurveOfGInter_swiginit(self, _Geom2dInt.new_Geom2dInt_ExactIntersectionPointOfTheIntPCurvePCurveOfGInter(*args))

    def AnErrorOccurred(self, *args):
        r"""
        Return
        -------
        bool

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

        """
        return _Geom2dInt.Geom2dInt_ExactIntersectionPointOfTheIntPCurvePCurveOfGInter_AnErrorOccurred(self, *args)

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

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

        """
        return _Geom2dInt.Geom2dInt_ExactIntersectionPointOfTheIntPCurvePCurveOfGInter_NbRoots(self, *args)

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

        Parameters
        ----------
        Poly1: Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter
        Poly2: Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter

        Return
        -------
        NumSegOn1: int
        NumSegOn2: int
        ParamOnSeg1: float
        ParamOnSeg2: float

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

        Parameters
        ----------
        Uo: float
        Vo: float
        UInf: float
        VInf: float
        USup: float
        VSup: float

        Return
        -------
        None

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

        """
        return _Geom2dInt.Geom2dInt_ExactIntersectionPointOfTheIntPCurvePCurveOfGInter_Perform(self, *args)

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

        Parameters
        ----------

        Return
        -------
        U: float
        V: float

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

        """
        return _Geom2dInt.Geom2dInt_ExactIntersectionPointOfTheIntPCurvePCurveOfGInter_Roots(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Geom2dInt.delete_Geom2dInt_ExactIntersectionPointOfTheIntPCurvePCurveOfGInter

# Register Geom2dInt_ExactIntersectionPointOfTheIntPCurvePCurveOfGInter in _Geom2dInt:
_Geom2dInt.Geom2dInt_ExactIntersectionPointOfTheIntPCurvePCurveOfGInter_swigregister(Geom2dInt_ExactIntersectionPointOfTheIntPCurvePCurveOfGInter)
class Geom2dInt_GInter(OCC.Core.IntRes2d.IntRes2d_Intersection):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Empty constructor.

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Self Intersection of a curve.

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        D: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Self Intersection of a curve with a domain.

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        C2: Adaptor2d_Curve2d
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between 2 curves.

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        D1: IntRes2d_Domain
        C2: Adaptor2d_Curve2d
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between 2 curves.

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        C2: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between 2 curves.

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        D1: IntRes2d_Domain
        C2: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between 2 curves.

        """
        _Geom2dInt.Geom2dInt_GInter_swiginit(self, _Geom2dInt.new_Geom2dInt_GInter(*args))

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

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        TolDomain: float

        Return
        -------
        IntRes2d_Domain

        Description
        -----------
        Create a domain from a curve.

        """
        return _Geom2dInt.Geom2dInt_GInter_ComputeDomain(self, *args)

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

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

        """
        return _Geom2dInt.Geom2dInt_GInter_GetMinNbSamples(self, *args)

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

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        D1: IntRes2d_Domain
        C2: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between 2 curves.

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        C2: Adaptor2d_Curve2d
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between 2 curves.

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        D1: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between 2 curves.

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between 2 curves.

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        D1: IntRes2d_Domain
        C2: Adaptor2d_Curve2d
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between 2 curves.

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        C2: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between 2 curves.

        """
        return _Geom2dInt.Geom2dInt_GInter_Perform(self, *args)

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

        Parameters
        ----------
        theMinNbSamples: int

        Return
        -------
        None

        Description
        -----------
        Set / get minimum number of points in polygon intersection.

        """
        return _Geom2dInt.Geom2dInt_GInter_SetMinNbSamples(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Geom2dInt.delete_Geom2dInt_GInter

# Register Geom2dInt_GInter in _Geom2dInt:
_Geom2dInt.Geom2dInt_GInter_swigregister(Geom2dInt_GInter)
class Geom2dInt_Geom2dCurveTool(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def Circle(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        gp_Circ2d

        Description
        -----------
        Returns the Circ2d from gp corresponding to the curve C. This method is called only when TheType returns GeomAbs_Circle.

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Circle(*args)

    @staticmethod
    def D0(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        U: float
        P: gp_Pnt2d

        Return
        -------
        None

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

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_D0(*args)

    @staticmethod
    def D1(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        U: float
        P: gp_Pnt2d
        T: gp_Vec2d

        Return
        -------
        None

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

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_D1(*args)

    @staticmethod
    def D2(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        U: float
        P: gp_Pnt2d
        T: gp_Vec2d
        N: gp_Vec2d

        Return
        -------
        None

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

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_D2(*args)

    @staticmethod
    def D3(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        U: float
        P: gp_Pnt2d
        T: gp_Vec2d
        N: gp_Vec2d
        V: gp_Vec2d

        Return
        -------
        None

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

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_D3(*args)

    @staticmethod
    def DN(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        U: float
        N: int

        Return
        -------
        gp_Vec2d

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

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_DN(*args)

    @staticmethod
    def Degree(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        int

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

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Degree(*args)

    @staticmethod
    def Ellipse(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        gp_Elips2d

        Description
        -----------
        Returns the Elips2d from gp corresponding to the curve C. This method is called only when TheType returns GeomAbs_Ellipse.

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Ellipse(*args)

    @staticmethod
    def EpsX(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        float

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

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        Eps_XYZ: float

        Return
        -------
        float

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

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_EpsX(*args)

    @staticmethod
    def FirstParameter(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        float

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

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_FirstParameter(*args)

    @staticmethod
    def GetInterval(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        Index: int
        Tab: TColStd_Array1OfReal

        Return
        -------
        U1: float
        U2: float

        Description
        -----------
        output the bounds of interval of index <Index> used if Type == Composite.

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_GetInterval(*args)

    @staticmethod
    def GetType(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        GeomAbs_CurveType

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

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_GetType(*args)

    @staticmethod
    def Hyperbola(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        gp_Hypr2d

        Description
        -----------
        Returns the Hypr2d from gp corresponding to the curve C. This method is called only when TheType returns GeomAbs_Hyperbola.

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Hyperbola(*args)

    @staticmethod
    def Intervals(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        Tab: TColStd_Array1OfReal

        Return
        -------
        None

        Description
        -----------
        compute Tab.

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Intervals(*args)

    @staticmethod
    def LastParameter(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        float

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

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_LastParameter(*args)

    @staticmethod
    def Line(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        gp_Lin2d

        Description
        -----------
        Returns the Lin2d from gp corresponding to the curve C. This method is called only when TheType returns GeomAbs_Line.

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Line(*args)

    @staticmethod
    def NbIntervals(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        int

        Description
        -----------
        output the number of interval of continuity C2 of the curve.

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_NbIntervals(*args)

    @staticmethod
    def NbSamples(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        int

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

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        U0: float
        U1: float

        Return
        -------
        int

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

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_NbSamples(*args)

    @staticmethod
    def Parabola(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        gp_Parab2d

        Description
        -----------
        Returns the Parab2d from gp corresponding to the curve C. This method is called only when TheType returns GeomAbs_Parabola.

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Parabola(*args)

    @staticmethod
    def Value(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        X: float

        Return
        -------
        gp_Pnt2d

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

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Value(*args)

    __repr__ = _dumps_object

    @methodnotwrapped
    def IsComposite(self):
    	pass


    def __init__(self):
        _Geom2dInt.Geom2dInt_Geom2dCurveTool_swiginit(self, _Geom2dInt.new_Geom2dInt_Geom2dCurveTool())
    __swig_destroy__ = _Geom2dInt.delete_Geom2dInt_Geom2dCurveTool

# Register Geom2dInt_Geom2dCurveTool in _Geom2dInt:
_Geom2dInt.Geom2dInt_Geom2dCurveTool_swigregister(Geom2dInt_Geom2dCurveTool)
class Geom2dInt_IntConicCurveOfGInter(OCC.Core.IntRes2d.IntRes2d_Intersection):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Empty constructor.

        Parameters
        ----------
        L: gp_Lin2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between a line and a parametric curve.

        Parameters
        ----------
        C: gp_Circ2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between a line and a parametric curve.

        Parameters
        ----------
        E: gp_Elips2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between an ellipse and a parametric curve.

        Parameters
        ----------
        Prb: gp_Parab2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between a parabola and a parametric curve.

        Parameters
        ----------
        H: gp_Hypr2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between the main branch of an hyperbola and a parametric curve.

        """
        _Geom2dInt.Geom2dInt_IntConicCurveOfGInter_swiginit(self, _Geom2dInt.new_Geom2dInt_IntConicCurveOfGInter(*args))

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

        Parameters
        ----------
        L: gp_Lin2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between a line and a parametric curve.

        Parameters
        ----------
        C: gp_Circ2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between a line and a parametric curve.

        Parameters
        ----------
        E: gp_Elips2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between an ellipse and a parametric curve.

        Parameters
        ----------
        Prb: gp_Parab2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between a parabola and a parametric curve.

        Parameters
        ----------
        H: gp_Hypr2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between the main branch of an hyperbola and a parametric curve.

        """
        return _Geom2dInt.Geom2dInt_IntConicCurveOfGInter_Perform(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Geom2dInt.delete_Geom2dInt_IntConicCurveOfGInter

# Register Geom2dInt_IntConicCurveOfGInter in _Geom2dInt:
_Geom2dInt.Geom2dInt_IntConicCurveOfGInter_swigregister(Geom2dInt_IntConicCurveOfGInter)
class Geom2dInt_MyImpParToolOfTheIntersectorOfTheIntConicCurveOfGInter(OCC.Core.math.math_FunctionWithDerivative):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        IT: IntCurve_IConicTool
        PC: Adaptor2d_Curve2d

        Return
        -------
        None

        Description
        -----------
        Constructor of the class.

        """
        _Geom2dInt.Geom2dInt_MyImpParToolOfTheIntersectorOfTheIntConicCurveOfGInter_swiginit(self, _Geom2dInt.new_Geom2dInt_MyImpParToolOfTheIntersectorOfTheIntConicCurveOfGInter(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _Geom2dInt.delete_Geom2dInt_MyImpParToolOfTheIntersectorOfTheIntConicCurveOfGInter

# Register Geom2dInt_MyImpParToolOfTheIntersectorOfTheIntConicCurveOfGInter in _Geom2dInt:
_Geom2dInt.Geom2dInt_MyImpParToolOfTheIntersectorOfTheIntConicCurveOfGInter_swigregister(Geom2dInt_MyImpParToolOfTheIntersectorOfTheIntConicCurveOfGInter)
class Geom2dInt_PCLocFOfTheLocateExtPCOfTheProjPCurOfGInter(OCC.Core.math.math_FunctionWithDerivative):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

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

        Parameters
        ----------
        P: gp_Pnt2d
        C: Adaptor2d_Curve2d

        Return
        -------
        None

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

        """
        _Geom2dInt.Geom2dInt_PCLocFOfTheLocateExtPCOfTheProjPCurOfGInter_swiginit(self, _Geom2dInt.new_Geom2dInt_PCLocFOfTheLocateExtPCOfTheProjPCurOfGInter(*args))

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

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        None

        Description
        -----------
        sets the field mycurve of the function.

        """
        return _Geom2dInt.Geom2dInt_PCLocFOfTheLocateExtPCOfTheProjPCurOfGInter_Initialize(self, *args)

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

        Parameters
        ----------
        N: int

        Return
        -------
        bool

        Description
        -----------
        Shows if the Nth distance is a minimum.

        """
        return _Geom2dInt.Geom2dInt_PCLocFOfTheLocateExtPCOfTheProjPCurOfGInter_IsMin(self, *args)

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

        Description
        -----------
        Return the number of found extrema.

        """
        return _Geom2dInt.Geom2dInt_PCLocFOfTheLocateExtPCOfTheProjPCurOfGInter_NbExt(self, *args)

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

        Parameters
        ----------
        N: int

        Return
        -------
        Extrema_POnCurv2d

        Description
        -----------
        Returns the Nth extremum.

        """
        return _Geom2dInt.Geom2dInt_PCLocFOfTheLocateExtPCOfTheProjPCurOfGInter_Point(self, *args)

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

        Description
        -----------
        Computes a Tol value. If 1st derivative of curve |D1|<Tol, it is considered D1=0.

        """
        return _Geom2dInt.Geom2dInt_PCLocFOfTheLocateExtPCOfTheProjPCurOfGInter_SearchOfTolerance(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt2d

        Return
        -------
        None

        Description
        -----------
        sets the field P of the function.

        """
        return _Geom2dInt.Geom2dInt_PCLocFOfTheLocateExtPCOfTheProjPCurOfGInter_SetPoint(self, *args)

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

        Parameters
        ----------
        N: int

        Return
        -------
        float

        Description
        -----------
        Returns the Nth distance.

        """
        return _Geom2dInt.Geom2dInt_PCLocFOfTheLocateExtPCOfTheProjPCurOfGInter_SquareDistance(self, *args)

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

        Parameters
        ----------
        theUfirst: float
        theUlast: float

        Return
        -------
        None

        Description
        -----------
        Determines boundaries of subinterval for find of root.

        """
        return _Geom2dInt.Geom2dInt_PCLocFOfTheLocateExtPCOfTheProjPCurOfGInter_SubIntervalInitialize(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Geom2dInt.delete_Geom2dInt_PCLocFOfTheLocateExtPCOfTheProjPCurOfGInter

# Register Geom2dInt_PCLocFOfTheLocateExtPCOfTheProjPCurOfGInter in _Geom2dInt:
_Geom2dInt.Geom2dInt_PCLocFOfTheLocateExtPCOfTheProjPCurOfGInter_swigregister(Geom2dInt_PCLocFOfTheLocateExtPCOfTheProjPCurOfGInter)
class Geom2dInt_TheCurveLocatorOfTheProjPCurOfGInter(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    __repr__ = _dumps_object

    @methodnotwrapped
    def Locate(self):
    	pass


    def __init__(self):
        _Geom2dInt.Geom2dInt_TheCurveLocatorOfTheProjPCurOfGInter_swiginit(self, _Geom2dInt.new_Geom2dInt_TheCurveLocatorOfTheProjPCurOfGInter())
    __swig_destroy__ = _Geom2dInt.delete_Geom2dInt_TheCurveLocatorOfTheProjPCurOfGInter

# Register Geom2dInt_TheCurveLocatorOfTheProjPCurOfGInter in _Geom2dInt:
_Geom2dInt.Geom2dInt_TheCurveLocatorOfTheProjPCurOfGInter_swigregister(Geom2dInt_TheCurveLocatorOfTheProjPCurOfGInter)
class Geom2dInt_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfGInter(OCC.Core.math.math_FunctionSetWithDerivatives):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        curve1: Adaptor2d_Curve2d
        curve2: Adaptor2d_Curve2d

        Return
        -------
        None

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

        """
        _Geom2dInt.Geom2dInt_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfGInter_swiginit(self, _Geom2dInt.new_Geom2dInt_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfGInter(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _Geom2dInt.delete_Geom2dInt_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfGInter

# Register Geom2dInt_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfGInter in _Geom2dInt:
_Geom2dInt.Geom2dInt_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfGInter_swigregister(Geom2dInt_TheDistBetweenPCurvesOfTheIntPCurvePCurveOfGInter)
class Geom2dInt_TheIntConicCurveOfGInter(OCC.Core.IntRes2d.IntRes2d_Intersection):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Empty constructor.

        Parameters
        ----------
        L: gp_Lin2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between a line and a parametric curve.

        Parameters
        ----------
        C: gp_Circ2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between a line and a parametric curve.

        Parameters
        ----------
        E: gp_Elips2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between an ellipse and a parametric curve.

        Parameters
        ----------
        Prb: gp_Parab2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between a parabola and a parametric curve.

        Parameters
        ----------
        H: gp_Hypr2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between the main branch of an hyperbola and a parametric curve.

        """
        _Geom2dInt.Geom2dInt_TheIntConicCurveOfGInter_swiginit(self, _Geom2dInt.new_Geom2dInt_TheIntConicCurveOfGInter(*args))

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

        Parameters
        ----------
        L: gp_Lin2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between a line and a parametric curve.

        Parameters
        ----------
        C: gp_Circ2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between a line and a parametric curve.

        Parameters
        ----------
        E: gp_Elips2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between an ellipse and a parametric curve.

        Parameters
        ----------
        Prb: gp_Parab2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between a parabola and a parametric curve.

        Parameters
        ----------
        H: gp_Hypr2d
        D1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        D2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between the main branch of an hyperbola and a parametric curve.

        """
        return _Geom2dInt.Geom2dInt_TheIntConicCurveOfGInter_Perform(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Geom2dInt.delete_Geom2dInt_TheIntConicCurveOfGInter

# Register Geom2dInt_TheIntConicCurveOfGInter in _Geom2dInt:
_Geom2dInt.Geom2dInt_TheIntConicCurveOfGInter_swigregister(Geom2dInt_TheIntConicCurveOfGInter)
class Geom2dInt_TheIntPCurvePCurveOfGInter(OCC.Core.IntRes2d.IntRes2d_Intersection):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

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

        """
        _Geom2dInt.Geom2dInt_TheIntPCurvePCurveOfGInter_swiginit(self, _Geom2dInt.new_Geom2dInt_TheIntPCurvePCurveOfGInter(*args))

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

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

        """
        return _Geom2dInt.Geom2dInt_TheIntPCurvePCurveOfGInter_GetMinNbSamples(self, *args)

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

        Parameters
        ----------
        Curve1: Adaptor2d_Curve2d
        Domain1: IntRes2d_Domain
        Curve2: Adaptor2d_Curve2d
        Domain2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

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

        Parameters
        ----------
        Curve1: Adaptor2d_Curve2d
        Domain1: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

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

        """
        return _Geom2dInt.Geom2dInt_TheIntPCurvePCurveOfGInter_Perform(self, *args)

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

        Parameters
        ----------
        theMinNbSamples: int

        Return
        -------
        None

        Description
        -----------
        Set / get minimum number of points in polygon for intersection.

        """
        return _Geom2dInt.Geom2dInt_TheIntPCurvePCurveOfGInter_SetMinNbSamples(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Geom2dInt.delete_Geom2dInt_TheIntPCurvePCurveOfGInter

# Register Geom2dInt_TheIntPCurvePCurveOfGInter in _Geom2dInt:
_Geom2dInt.Geom2dInt_TheIntPCurvePCurveOfGInter_swigregister(Geom2dInt_TheIntPCurvePCurveOfGInter)
class Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter(OCC.Core.IntRes2d.IntRes2d_Intersection):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Empty constructor.

        Parameters
        ----------
        ITool: IntCurve_IConicTool
        Dom1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        Dom2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between an implicit curve and a parametrised curve. The exception ConstructionError is raised if the domain of the parametrised curve does not verify HasFirstPoint and HasLastPoint return True.

        """
        _Geom2dInt.Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter_swiginit(self, _Geom2dInt.new_Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter(*args))

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

        Parameters
        ----------
        TheImpTool: IntCurve_IConicTool
        TheParCurve: Adaptor2d_Curve2d
        TheImpCurveDomain: IntRes2d_Domain
        TheParCurveDomain: IntRes2d_Domain
        Inter2_And_Domain2: TColStd_Array1OfReal
        Inter1: TColStd_Array1OfReal
        Resultat1: TColStd_Array1OfReal
        Resultat2: TColStd_Array1OfReal
        EpsNul: float

        Return
        -------
        NbResultats: int

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

        """
        return _Geom2dInt.Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter_And_Domaine_Objet1_Intersections(self, *args)

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

        Parameters
        ----------
        parameter: float
        point: gp_Pnt2d
        TheParCurev: Adaptor2d_Curve2d
        TheImpTool: IntCurve_IConicTool

        Return
        -------
        float

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

        """
        return _Geom2dInt.Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter_FindU(self, *args)

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

        Parameters
        ----------
        parameter: float
        point: gp_Pnt2d
        TheImpTool: IntCurve_IConicTool
        ParCurve: Adaptor2d_Curve2d
        TheParCurveDomain: IntRes2d_Domain
        V0: float
        V1: float
        Tolerance: float

        Return
        -------
        float

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

        """
        return _Geom2dInt.Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter_FindV(self, *args)

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

        Parameters
        ----------
        ITool: IntCurve_IConicTool
        Dom1: IntRes2d_Domain
        PCurve: Adaptor2d_Curve2d
        Dom2: IntRes2d_Domain
        TolConf: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Intersection between an implicit curve and a parametrised curve. The exception ConstructionError is raised if the domain of the parametrised curve does not verify HasFirstPoint and HasLastPoint return True.

        """
        return _Geom2dInt.Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter_Perform(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Geom2dInt.delete_Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter

# Register Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter in _Geom2dInt:
_Geom2dInt.Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter_swigregister(Geom2dInt_TheIntersectorOfTheIntConicCurveOfGInter)
class Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

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

        Parameters
        ----------
        P: gp_Pnt2d
        C: Adaptor2d_Curve2d
        U0: float
        TolU: float

        Return
        -------
        None

        Description
        -----------
        Calculates the distance with a close point. The close point is defined by the parameter value U0. The function F(u)=distance(P,C(u)) has an extremum when g(u)=dF/du=0. The algorithm searches a zero near the close point. TolU is used to decide to stop the iterations. At the nth iteration, the criteria is: abs(Un - Un-1) < TolU.

        Parameters
        ----------
        P: gp_Pnt2d
        C: Adaptor2d_Curve2d
        U0: float
        Umin: float
        Usup: float
        TolU: float

        Return
        -------
        None

        Description
        -----------
        Calculates the distance with a close point. The close point is defined by the parameter value U0. The function F(u)=distance(P,C(u)) has an extremum when g(u)=dF/du=0. The algorithm searches a zero near the close point. Zeros are searched between Umin et Usup. TolU is used to decide to stop the iterations. At the nth iteration, the criteria is: abs(Un - Un-1) < TolU.

        """
        _Geom2dInt.Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter_swiginit(self, _Geom2dInt.new_Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter(*args))

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

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        Umin: float
        Usup: float
        TolU: float

        Return
        -------
        None

        Description
        -----------
        sets the fields of the algorithm.

        """
        return _Geom2dInt.Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter_Initialize(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the distance is found.

        """
        return _Geom2dInt.Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter_IsDone(self, *args)

    def IsMin(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the extremum distance is a minimum.

        """
        return _Geom2dInt.Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter_IsMin(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt2d
        U0: float

        Return
        -------
        None

        Description
        -----------
        the algorithm is done with the point P. An exception is raised if the fields have not been initialized.

        """
        return _Geom2dInt.Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter_Perform(self, *args)

    def Point(self, *args):
        r"""
        Return
        -------
        Extrema_POnCurv2d

        Description
        -----------
        Returns the point of the extremum distance.

        """
        return _Geom2dInt.Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter_Point(self, *args)

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

        Description
        -----------
        Returns the value of the extremum square distance.

        """
        return _Geom2dInt.Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Geom2dInt.delete_Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter

# Register Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter in _Geom2dInt:
_Geom2dInt.Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter_swigregister(Geom2dInt_TheLocateExtPCOfTheProjPCurOfGInter)
class Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter(OCC.Core.Intf.Intf_Polygon2d):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        Curve: Adaptor2d_Curve2d
        NbPnt: int
        Domain: IntRes2d_Domain
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Compute a polygon on the domain of the curve.

        """
        _Geom2dInt.Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter_swiginit(self, _Geom2dInt.new_Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter(*args))

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

        Parameters
        ----------
        Index: int
        ParamOnLine: float

        Return
        -------
        float

        Description
        -----------
        Give an approximation of the parameter on the curve according to the discretization of the Curve.

        """
        return _Geom2dInt.Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter_ApproxParamOnCurve(self, *args)

    def AutoIntersectionIsPossible(self, *args):
        r"""
        Return
        -------
        bool

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

        """
        return _Geom2dInt.Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter_AutoIntersectionIsPossible(self, *args)

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

        Parameters
        ----------
        x: float
        y: float
        x1: float
        x2: float
        y1: float
        y2: float

        Return
        -------
        int

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

        """
        return _Geom2dInt.Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter_CalculRegion(self, *args)

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

        Parameters
        ----------
        clos: bool

        Return
        -------
        None

        Description
        -----------
        No available documentation.
        Return
        -------
        bool

        Description
        -----------
        Returns True if the polyline is closed.

        """
        return _Geom2dInt.Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter_Closed(self, *args)

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

        Parameters
        ----------
        Curve: Adaptor2d_Curve2d
        OtherBox: Bnd_Box2d

        Return
        -------
        None

        Description
        -----------
        The current polygon is modified if most of the points of the polygon are outside the box <OtherBox>. In this situation, bounds are computed to build a polygon inside or near the OtherBox.

        """
        return _Geom2dInt.Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter_ComputeWithBox(self, *args)

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

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

        """
        return _Geom2dInt.Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter_Dump(self, *args)

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

        Description
        -----------
        Returns the parameter (On the curve) of the first point of the Polygon.

        """
        return _Geom2dInt.Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter_InfParameter(self, *args)

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

        Parameters
        ----------
        x: float

        Return
        -------
        None

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

        """
        return _Geom2dInt.Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter_SetDeflectionOverEstimation(self, *args)

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

        Description
        -----------
        Returns the parameter (On the curve) of the last point of the Polygon.

        """
        return _Geom2dInt.Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter_SupParameter(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Geom2dInt.delete_Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter

# Register Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter in _Geom2dInt:
_Geom2dInt.Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter_swigregister(Geom2dInt_ThePolygon2dOfTheIntPCurvePCurveOfGInter)
class Geom2dInt_TheProjPCurOfGInter(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def FindParameter(*args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        Pnt: gp_Pnt2d
        Tol: float

        Return
        -------
        float

        Description
        -----------
        Returns the parameter V of the point on the parametric curve corresponding to the Point Pnt. The Correspondence between Pnt and the point P(V) on the parametric curve must be coherent with the way of determination of the signed distance between a point and the implicit curve. Tol is the tolerance on the distance between a point and the parametrised curve. In that case, no bounds are given. The research of the right parameter has to be made on the natural parametric domain of the curve.

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        Pnt: gp_Pnt2d
        LowParameter: float
        HighParameter: float
        Tol: float

        Return
        -------
        float

        Description
        -----------
        Returns the parameter V of the point on the parametric curve corresponding to the Point Pnt. The Correspondence between Pnt and the point P(V) on the parametric curve must be coherent with the way of determination of the signed distance between a point and the implicit curve. Tol is the tolerance on the distance between a point and the parametrised curve. LowParameter and HighParameter give the boundaries of the interval in which the parameter certainly lies. These parameters are given to implement a more efficient algorithm. So, it is not necessary to check that the returned value verifies LowParameter <= Value <= HighParameter.

        """
        return _Geom2dInt.Geom2dInt_TheProjPCurOfGInter_FindParameter(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _Geom2dInt.Geom2dInt_TheProjPCurOfGInter_swiginit(self, _Geom2dInt.new_Geom2dInt_TheProjPCurOfGInter())
    __swig_destroy__ = _Geom2dInt.delete_Geom2dInt_TheProjPCurOfGInter

# Register Geom2dInt_TheProjPCurOfGInter in _Geom2dInt:
_Geom2dInt.Geom2dInt_TheProjPCurOfGInter_swigregister(Geom2dInt_TheProjPCurOfGInter)



@deprecated
def Geom2dInt_Geom2dCurveTool_Circle(*args):
	return Geom2dInt_Geom2dCurveTool.Circle(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_D0(*args):
	return Geom2dInt_Geom2dCurveTool.D0(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_D1(*args):
	return Geom2dInt_Geom2dCurveTool.D1(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_D2(*args):
	return Geom2dInt_Geom2dCurveTool.D2(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_D3(*args):
	return Geom2dInt_Geom2dCurveTool.D3(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_DN(*args):
	return Geom2dInt_Geom2dCurveTool.DN(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_Degree(*args):
	return Geom2dInt_Geom2dCurveTool.Degree(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_Ellipse(*args):
	return Geom2dInt_Geom2dCurveTool.Ellipse(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_EpsX(*args):
	return Geom2dInt_Geom2dCurveTool.EpsX(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_EpsX(*args):
	return Geom2dInt_Geom2dCurveTool.EpsX(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_FirstParameter(*args):
	return Geom2dInt_Geom2dCurveTool.FirstParameter(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_GetInterval(*args):
	return Geom2dInt_Geom2dCurveTool.GetInterval(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_GetType(*args):
	return Geom2dInt_Geom2dCurveTool.GetType(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_Hyperbola(*args):
	return Geom2dInt_Geom2dCurveTool.Hyperbola(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_Intervals(*args):
	return Geom2dInt_Geom2dCurveTool.Intervals(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_LastParameter(*args):
	return Geom2dInt_Geom2dCurveTool.LastParameter(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_Line(*args):
	return Geom2dInt_Geom2dCurveTool.Line(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_NbIntervals(*args):
	return Geom2dInt_Geom2dCurveTool.NbIntervals(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_NbSamples(*args):
	return Geom2dInt_Geom2dCurveTool.NbSamples(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_NbSamples(*args):
	return Geom2dInt_Geom2dCurveTool.NbSamples(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_Parabola(*args):
	return Geom2dInt_Geom2dCurveTool.Parabola(*args)

@deprecated
def Geom2dInt_Geom2dCurveTool_Value(*args):
	return Geom2dInt_Geom2dCurveTool.Value(*args)

@deprecated
def Geom2dInt_TheProjPCurOfGInter_FindParameter(*args):
	return Geom2dInt_TheProjPCurOfGInter.FindParameter(*args)

@deprecated
def Geom2dInt_TheProjPCurOfGInter_FindParameter(*args):
	return Geom2dInt_TheProjPCurOfGInter.FindParameter(*args)



