# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# 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://www.opencascade.com/doc/occt-7.4.0/refman/html/package_geom2dint.html
"""

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

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _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 == "thisown":
            self.this.own(value)
        elif name == "this":
            set(self, name, value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


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


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


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


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

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

    def value(self) -> "PyObject *":
        return _Geom2dInt.SwigPyIterator_value(self)

    def incr(self, n: "size_t"=1) -> "swig::SwigPyIterator *":
        return _Geom2dInt.SwigPyIterator_incr(self, n)

    def decr(self, n: "size_t"=1) -> "swig::SwigPyIterator *":
        return _Geom2dInt.SwigPyIterator_decr(self, n)

    def distance(self, x: "SwigPyIterator") -> "ptrdiff_t":
        return _Geom2dInt.SwigPyIterator_distance(self, x)

    def equal(self, x: "SwigPyIterator") -> "bool":
        return _Geom2dInt.SwigPyIterator_equal(self, x)

    def copy(self) -> "swig::SwigPyIterator *":
        return _Geom2dInt.SwigPyIterator_copy(self)

    def next(self) -> "PyObject *":
        return _Geom2dInt.SwigPyIterator_next(self)

    def __next__(self) -> "PyObject *":
        return _Geom2dInt.SwigPyIterator___next__(self)

    def previous(self) -> "PyObject *":
        return _Geom2dInt.SwigPyIterator_previous(self)

    def advance(self, n: "ptrdiff_t") -> "swig::SwigPyIterator *":
        return _Geom2dInt.SwigPyIterator_advance(self, n)

    def __eq__(self, x: "SwigPyIterator") -> "bool":
        return _Geom2dInt.SwigPyIterator___eq__(self, x)

    def __ne__(self, x: "SwigPyIterator") -> "bool":
        return _Geom2dInt.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator &":
        return _Geom2dInt.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator &":
        return _Geom2dInt.SwigPyIterator___isub__(self, n)

    def __add__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator *":
        return _Geom2dInt.SwigPyIterator___add__(self, n)

    def __sub__(self, *args) -> "ptrdiff_t":
        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: "Standard_Failure", method_name: "std::string", class_name: "std::string") -> "void":
    return _Geom2dInt.process_exception(error, method_name, class_name)

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

import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.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"""
        No available documentation.

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

        Returns
        -------
        None

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

    def AnErrorOccurred(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Returns
        -------
        bool

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

    def NbRoots(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

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

    def Perform(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        NumSegOn1: int
        NumSegOn2: int
        ParamOnSeg1: float
        ParamOnSeg2: float
        No available documentation.

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

        Returns
        -------
        None

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

    def Roots(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------

        Returns
        -------
        U: float
        V: float

        """
        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"""
        Empty constructor.

        Returns
        -------
        None
        Self intersection of a curve.

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

        Returns
        -------
        None
        Self intersection of a curve with a domain.

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

        Returns
        -------
        None
        Intersection between 2 curves.

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

        Returns
        -------
        None
        Intersection between 2 curves.

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

        Returns
        -------
        None
        Intersection between 2 curves.

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

        Returns
        -------
        None
        Intersection between 2 curves.

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

        Returns
        -------
        None

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

    def ComputeDomain(self, *args) -> "IntRes2d_Domain":
        r"""
        Create a domain from a curve.

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

        Returns
        -------
        IntRes2d_Domain

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

    def GetMinNbSamples(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

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

    def Perform(self, *args) -> "void":
        r"""
        Intersection between 2 curves.

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

        Returns
        -------
        None
        Intersection between 2 curves.

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

        Returns
        -------
        None
        Intersection between 2 curves.

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

        Returns
        -------
        None
        Intersection between 2 curves.

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

        Returns
        -------
        None
        Intersection between 2 curves.

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

        Returns
        -------
        None
        Intersection between 2 curves.

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

        Returns
        -------
        None

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

    def SetMinNbSamples(self, *args) -> "void":
        r"""
        Set / get minimum number of points in polygon intersection.

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

        Returns
        -------
        None

        """
        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) -> "gp_Circ2d":
        r"""
        Returns the circ2d from gp corresponding to the curve c. this method is called only when thetype returns geomabs_circle.

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

        Returns
        -------
        gp_Circ2d

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Circle(*args)

    @staticmethod
    def D0(*args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_D0(*args)

    @staticmethod
    def D1(*args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_D1(*args)

    @staticmethod
    def D2(*args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_D2(*args)

    @staticmethod
    def D3(*args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_D3(*args)

    @staticmethod
    def DN(*args) -> "gp_Vec2d":
        r"""
        No available documentation.

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

        Returns
        -------
        gp_Vec2d

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_DN(*args)

    @staticmethod
    def Degree(*args) -> "Standard_Integer":
        r"""
        No available documentation.

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

        Returns
        -------
        int

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Degree(*args)

    @staticmethod
    def Ellipse(*args) -> "gp_Elips2d":
        r"""
        Returns the elips2d from gp corresponding to the curve c. this method is called only when thetype returns geomabs_ellipse.

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

        Returns
        -------
        gp_Elips2d

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Ellipse(*args)

    @staticmethod
    def EpsX(*args) -> "Standard_Real":
        r"""
        No available documentation.

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

        Returns
        -------
        float
        No available documentation.

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

        Returns
        -------
        float

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_EpsX(*args)

    @staticmethod
    def FirstParameter(*args) -> "Standard_Real":
        r"""
        No available documentation.

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

        Returns
        -------
        float

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_FirstParameter(*args)

    @staticmethod
    def GetInterval(*args) -> "Standard_Real &, Standard_Real &":
        r"""
        Output the bounds of interval of index <index> used if type == composite.

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

        Returns
        -------
        U1: float
        U2: float

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_GetInterval(*args)

    @staticmethod
    def GetType(*args) -> "GeomAbs_CurveType":
        r"""
        No available documentation.

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

        Returns
        -------
        GeomAbs_CurveType

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_GetType(*args)

    @staticmethod
    def Hyperbola(*args) -> "gp_Hypr2d":
        r"""
        Returns the hypr2d from gp corresponding to the curve c. this method is called only when thetype returns geomabs_hyperbola.

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

        Returns
        -------
        gp_Hypr2d

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Hyperbola(*args)

    @staticmethod
    def Intervals(*args) -> "void":
        r"""
        Compute tab.

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

        Returns
        -------
        None

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Intervals(*args)

    @staticmethod
    def LastParameter(*args) -> "Standard_Real":
        r"""
        No available documentation.

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

        Returns
        -------
        float

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_LastParameter(*args)

    @staticmethod
    def Line(*args) -> "gp_Lin2d":
        r"""
        Returns the lin2d from gp corresponding to the curve c. this method is called only when thetype returns geomabs_line.

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

        Returns
        -------
        gp_Lin2d

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Line(*args)

    @staticmethod
    def NbIntervals(*args) -> "Standard_Integer":
        r"""
        Output the number of interval of continuity c2 of the curve.

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

        Returns
        -------
        int

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_NbIntervals(*args)

    @staticmethod
    def NbSamples(*args) -> "Standard_Integer":
        r"""
        No available documentation.

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

        Returns
        -------
        int
        No available documentation.

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

        Returns
        -------
        int

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_NbSamples(*args)

    @staticmethod
    def Parabola(*args) -> "gp_Parab2d":
        r"""
        Returns the parab2d from gp corresponding to the curve c. this method is called only when thetype returns geomabs_parabola.

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

        Returns
        -------
        gp_Parab2d

        """
        return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Parabola(*args)

    @staticmethod
    def Value(*args) -> "gp_Pnt2d":
        r"""
        No available documentation.

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

        Returns
        -------
        gp_Pnt2d

        """
        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)

def Geom2dInt_Geom2dCurveTool_Circle(*args) -> "gp_Circ2d":
    r"""
    Returns the circ2d from gp corresponding to the curve c. this method is called only when thetype returns geomabs_circle.

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

    Returns
    -------
    gp_Circ2d

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Circle(*args)

def Geom2dInt_Geom2dCurveTool_D0(*args) -> "void":
    r"""
    No available documentation.

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

    Returns
    -------
    None

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_D0(*args)

def Geom2dInt_Geom2dCurveTool_D1(*args) -> "void":
    r"""
    No available documentation.

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

    Returns
    -------
    None

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_D1(*args)

def Geom2dInt_Geom2dCurveTool_D2(*args) -> "void":
    r"""
    No available documentation.

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

    Returns
    -------
    None

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_D2(*args)

def Geom2dInt_Geom2dCurveTool_D3(*args) -> "void":
    r"""
    No available documentation.

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

    Returns
    -------
    None

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_D3(*args)

def Geom2dInt_Geom2dCurveTool_DN(*args) -> "gp_Vec2d":
    r"""
    No available documentation.

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

    Returns
    -------
    gp_Vec2d

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_DN(*args)

def Geom2dInt_Geom2dCurveTool_Degree(*args) -> "Standard_Integer":
    r"""
    No available documentation.

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

    Returns
    -------
    int

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Degree(*args)

def Geom2dInt_Geom2dCurveTool_Ellipse(*args) -> "gp_Elips2d":
    r"""
    Returns the elips2d from gp corresponding to the curve c. this method is called only when thetype returns geomabs_ellipse.

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

    Returns
    -------
    gp_Elips2d

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Ellipse(*args)

def Geom2dInt_Geom2dCurveTool_EpsX(*args) -> "Standard_Real":
    r"""
    No available documentation.

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

    Returns
    -------
    float
    No available documentation.

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

    Returns
    -------
    float

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_EpsX(*args)

def Geom2dInt_Geom2dCurveTool_FirstParameter(*args) -> "Standard_Real":
    r"""
    No available documentation.

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

    Returns
    -------
    float

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_FirstParameter(*args)

def Geom2dInt_Geom2dCurveTool_GetInterval(*args) -> "Standard_Real &, Standard_Real &":
    r"""
    Output the bounds of interval of index <index> used if type == composite.

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

    Returns
    -------
    U1: float
    U2: float

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_GetInterval(*args)

def Geom2dInt_Geom2dCurveTool_GetType(*args) -> "GeomAbs_CurveType":
    r"""
    No available documentation.

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

    Returns
    -------
    GeomAbs_CurveType

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_GetType(*args)

def Geom2dInt_Geom2dCurveTool_Hyperbola(*args) -> "gp_Hypr2d":
    r"""
    Returns the hypr2d from gp corresponding to the curve c. this method is called only when thetype returns geomabs_hyperbola.

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

    Returns
    -------
    gp_Hypr2d

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Hyperbola(*args)

def Geom2dInt_Geom2dCurveTool_Intervals(*args) -> "void":
    r"""
    Compute tab.

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

    Returns
    -------
    None

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Intervals(*args)

def Geom2dInt_Geom2dCurveTool_LastParameter(*args) -> "Standard_Real":
    r"""
    No available documentation.

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

    Returns
    -------
    float

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_LastParameter(*args)

def Geom2dInt_Geom2dCurveTool_Line(*args) -> "gp_Lin2d":
    r"""
    Returns the lin2d from gp corresponding to the curve c. this method is called only when thetype returns geomabs_line.

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

    Returns
    -------
    gp_Lin2d

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Line(*args)

def Geom2dInt_Geom2dCurveTool_NbIntervals(*args) -> "Standard_Integer":
    r"""
    Output the number of interval of continuity c2 of the curve.

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

    Returns
    -------
    int

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_NbIntervals(*args)

def Geom2dInt_Geom2dCurveTool_NbSamples(*args) -> "Standard_Integer":
    r"""
    No available documentation.

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

    Returns
    -------
    int
    No available documentation.

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

    Returns
    -------
    int

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_NbSamples(*args)

def Geom2dInt_Geom2dCurveTool_Parabola(*args) -> "gp_Parab2d":
    r"""
    Returns the parab2d from gp corresponding to the curve c. this method is called only when thetype returns geomabs_parabola.

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

    Returns
    -------
    gp_Parab2d

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Parabola(*args)

def Geom2dInt_Geom2dCurveTool_Value(*args) -> "gp_Pnt2d":
    r"""
    No available documentation.

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

    Returns
    -------
    gp_Pnt2d

    """
    return _Geom2dInt.Geom2dInt_Geom2dCurveTool_Value(*args)

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"""
        Empty constructor.

        Returns
        -------
        None
        Intersection between a line and a parametric curve.

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

        Returns
        -------
        None
        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

        Returns
        -------
        None
        Intersection between an ellipse and a parametric curve.

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

        Returns
        -------
        None
        Intersection between a parabola and a parametric curve.

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

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

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

        Returns
        -------
        None

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

    def Perform(self, *args) -> "void":
        r"""
        Intersection between a line and a parametric curve.

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

        Returns
        -------
        None
        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

        Returns
        -------
        None
        Intersection between an ellipse and a parametric curve.

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

        Returns
        -------
        None
        Intersection between a parabola and a parametric curve.

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

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

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

        Returns
        -------
        None

        """
        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"""
        Constructor of the class.

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

        Returns
        -------
        None

        """
        _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"""
        No available documentation.

        Returns
        -------
        None
        No available documentation.

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

        Returns
        -------
        None

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

    def Initialize(self, *args) -> "void":
        r"""
        Sets the field mycurve of the function.

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

        Returns
        -------
        None

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

    def IsMin(self, *args) -> "Standard_Boolean":
        r"""
        Shows if the nth distance is a minimum.

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

        Returns
        -------
        bool

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

    def NbExt(self, *args) -> "Standard_Integer":
        r"""
        Return the nunber of found extrema.

        Returns
        -------
        int

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

    def Point(self, *args) -> "Extrema_POnCurv2d const &":
        r"""
        Returns the nth extremum.

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

        Returns
        -------
        Extrema_POnCurv2d

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

    def SearchOfTolerance(self, *args) -> "Standard_Real":
        r"""
        Computes a tol value. if 1st derivative of curve |d1|<tol, it is considered d1=0.

        Returns
        -------
        float

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

    def SetPoint(self, *args) -> "void":
        r"""
        Sets the field p of the function.

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

        Returns
        -------
        None

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

    def SquareDistance(self, *args) -> "Standard_Real":
        r"""
        Returns the nth distance.

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

        Returns
        -------
        float

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

    def SubIntervalInitialize(self, *args) -> "void":
        r"""
        Determines boundaries of subinterval for find of root.

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

        Returns
        -------
        None

        """
        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"""
        No available documentation.

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

        Returns
        -------
        None

        """
        _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"""
        Empty constructor.

        Returns
        -------
        None
        Intersection between a line and a parametric curve.

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

        Returns
        -------
        None
        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

        Returns
        -------
        None
        Intersection between an ellipse and a parametric curve.

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

        Returns
        -------
        None
        Intersection between a parabola and a parametric curve.

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

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

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

        Returns
        -------
        None

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

    def Perform(self, *args) -> "void":
        r"""
        Intersection between a line and a parametric curve.

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

        Returns
        -------
        None
        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

        Returns
        -------
        None
        Intersection between an ellipse and a parametric curve.

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

        Returns
        -------
        None
        Intersection between a parabola and a parametric curve.

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

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

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

        Returns
        -------
        None

        """
        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"""
        No available documentation.

        Returns
        -------
        None

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

    def GetMinNbSamples(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

        Returns
        -------
        int

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

    def Perform(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None
        No available documentation.

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

        Returns
        -------
        None

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

    def SetMinNbSamples(self, *args) -> "void":
        r"""
        Set / get minimum number of points in polygon for intersection.

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

        Returns
        -------
        None

        """
        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"""
        Empty constructor.

        Returns
        -------
        None
        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.

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

        Returns
        -------
        None

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

    def And_Domaine_Objet1_Intersections(self, *args) -> "void":
        r"""
        No available documentation.

        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

        Returns
        -------
        NbResultats: int

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

    def FindU(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

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

        Returns
        -------
        float

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

    def FindV(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

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

        Returns
        -------
        float

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

    def Perform(self, *args) -> "void":
        r"""
        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.

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

        Returns
        -------
        None

        """
        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"""
        No available documentation.

        Returns
        -------
        None
        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 searchs 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
        TolU: float

        Returns
        -------
        None
        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 searchs 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.

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

        Returns
        -------
        None

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

    def Initialize(self, *args) -> "void":
        r"""
        Sets the fields of the algorithm.

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

        Returns
        -------
        None

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

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the distance is found.

        Returns
        -------
        bool

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

    def IsMin(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the extremum distance is a minimum.

        Returns
        -------
        bool

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

    def Perform(self, *args) -> "void":
        r"""
        The algorithm is done with the point p. an exception is raised if the fields have not been initialized.

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

        Returns
        -------
        None

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

    def Point(self, *args) -> "Extrema_POnCurv2d const &":
        r"""
        Returns the point of the extremum distance.

        Returns
        -------
        Extrema_POnCurv2d

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

    def SquareDistance(self, *args) -> "Standard_Real":
        r"""
        Returns the value of the extremum square distance.

        Returns
        -------
        float

        """
        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"""
        Compute a polygon on the domain of the curve.

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

        Returns
        -------
        None

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

    def ApproxParamOnCurve(self, *args) -> "Standard_Real":
        r"""
        Give an approximation of the parameter on the curve according to the discretization of the curve.

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

        Returns
        -------
        float

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

    def AutoIntersectionIsPossible(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Returns
        -------
        bool

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

    def CalculRegion(self, *args) -> "Standard_Integer":
        r"""
        No available documentation.

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

        Returns
        -------
        int

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

    def Closed(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

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

        Returns
        -------
        None
        Returns true if the polyline is closed.

        Returns
        -------
        bool

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

    def ComputeWithBox(self, *args) -> "void":
        r"""
        The current polygon is modified if most of the points of the polygon are are outside the box <otherbox>. in this situation, bounds are computed to build a polygon inside or near the otherbox.

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

        Returns
        -------
        None

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

    def Dump(self, *args) -> "void":
        r"""
        No available documentation.

        Returns
        -------
        None

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

    def InfParameter(self, *args) -> "Standard_Real":
        r"""
        Returns the parameter (on the curve) of the first point of the polygon.

        Returns
        -------
        float

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

    def SetDeflectionOverEstimation(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def SupParameter(self, *args) -> "Standard_Real":
        r"""
        Returns the parameter (on the curve) of the last point of the polygon.

        Returns
        -------
        float

        """
        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) -> "Standard_Real":
        r"""
        Returns the parameter v of the point on the parametric curve corresponding to the point pnt. the correspondance 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 rigth parameter has to be made on the natural parametric domain of the curve.

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

        Returns
        -------
        float
        Returns the parameter v of the point on the parametric curve corresponding to the point pnt. the correspondance 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 wich the parameter certainly lies. these parameters are given to implement a more efficient algoritm. so, it is not necessary to check that the returned value verifies lowparameter <= value <= highparameter.

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

        Returns
        -------
        float

        """
        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)

def Geom2dInt_TheProjPCurOfGInter_FindParameter(*args) -> "Standard_Real":
    r"""
    Returns the parameter v of the point on the parametric curve corresponding to the point pnt. the correspondance 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 rigth parameter has to be made on the natural parametric domain of the curve.

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

    Returns
    -------
    float
    Returns the parameter v of the point on the parametric curve corresponding to the point pnt. the correspondance 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 wich the parameter certainly lies. these parameters are given to implement a more efficient algoritm. so, it is not necessary to check that the returned value verifies lowparameter <= value <= highparameter.

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

    Returns
    -------
    float

    """
    return _Geom2dInt.Geom2dInt_TheProjPCurOfGInter_FindParameter(*args)





