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

"""
Extrema module, see official documentation at
https://dev.opencascade.org/doc/occt-7.9.0/refman/html/package_extrema.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 _Extrema
else:
    import _Extrema

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__ = _Extrema.delete_SwigPyIterator

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _Extrema:
_Extrema.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 _Extrema.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 = _Extrema.ios_base_erase_event
    imbue_event = _Extrema.ios_base_imbue_event
    copyfmt_event = _Extrema.ios_base_copyfmt_event

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register ios in _Extrema:
_Extrema.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):
        _Extrema.ostream_swiginit(self, _Extrema.new_ostream(__sb))
    __swig_destroy__ = _Extrema.delete_ostream

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

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

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

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

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

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

# Register ostream in _Extrema:
_Extrema.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):
        _Extrema.istream_swiginit(self, _Extrema.new_istream(__sb))
    __swig_destroy__ = _Extrema.delete_istream

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register istream in _Extrema:
_Extrema.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):
        _Extrema.iostream_swiginit(self, _Extrema.new_iostream(__sb))
    __swig_destroy__ = _Extrema.delete_iostream

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

endl_cb_ptr = _Extrema.endl_cb_ptr
endl = _Extrema.endl
ends_cb_ptr = _Extrema.ends_cb_ptr
ends = _Extrema.ends
flush_cb_ptr = _Extrema.flush_cb_ptr
flush = _Extrema.flush
import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.math
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.Message
import OCC.Core.OSD
import OCC.Core.gp
import OCC.Core.Adaptor3d
import OCC.Core.Geom
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.TopAbs
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d
import OCC.Core.GeomAdaptor

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

Extrema_Node = _Extrema.Extrema_Node
Extrema_UIsoEdge = _Extrema.Extrema_UIsoEdge
Extrema_VIsoEdge = _Extrema.Extrema_VIsoEdge
Extrema_Face = _Extrema.Extrema_Face
Extrema_ExtAlgo_Grad = _Extrema.Extrema_ExtAlgo_Grad
Extrema_ExtAlgo_Tree = _Extrema.Extrema_ExtAlgo_Tree
Extrema_ExtFlag_MIN = _Extrema.Extrema_ExtFlag_MIN
Extrema_ExtFlag_MAX = _Extrema.Extrema_ExtFlag_MAX
Extrema_ExtFlag_MINMAX = _Extrema.Extrema_ExtFlag_MINMAX


class Extrema_ElementType(IntEnum):
	Extrema_Node = 0
	Extrema_UIsoEdge = 1
	Extrema_VIsoEdge = 2
	Extrema_Face = 3
Extrema_Node = Extrema_ElementType.Extrema_Node
Extrema_UIsoEdge = Extrema_ElementType.Extrema_UIsoEdge
Extrema_VIsoEdge = Extrema_ElementType.Extrema_VIsoEdge
Extrema_Face = Extrema_ElementType.Extrema_Face

class Extrema_ExtAlgo(IntEnum):
	Extrema_ExtAlgo_Grad = 0
	Extrema_ExtAlgo_Tree = 1
Extrema_ExtAlgo_Grad = Extrema_ExtAlgo.Extrema_ExtAlgo_Grad
Extrema_ExtAlgo_Tree = Extrema_ExtAlgo.Extrema_ExtAlgo_Tree

class Extrema_ExtFlag(IntEnum):
	Extrema_ExtFlag_MIN = 0
	Extrema_ExtFlag_MAX = 1
	Extrema_ExtFlag_MINMAX = 2
Extrema_ExtFlag_MIN = Extrema_ExtFlag.Extrema_ExtFlag_MIN
Extrema_ExtFlag_MAX = Extrema_ExtFlag.Extrema_ExtFlag_MAX
Extrema_ExtFlag_MINMAX = Extrema_ExtFlag.Extrema_ExtFlag_MINMAX


def Handle_Extrema_ExtPExtS_Create():
    return _Extrema.Handle_Extrema_ExtPExtS_Create()

def Handle_Extrema_ExtPExtS_DownCast(t):
    return _Extrema.Handle_Extrema_ExtPExtS_DownCast(t)

def Handle_Extrema_ExtPExtS_IsNull(t):
    return _Extrema.Handle_Extrema_ExtPExtS_IsNull(t)

def Handle_Extrema_ExtPRevS_Create():
    return _Extrema.Handle_Extrema_ExtPRevS_Create()

def Handle_Extrema_ExtPRevS_DownCast(t):
    return _Extrema.Handle_Extrema_ExtPRevS_DownCast(t)

def Handle_Extrema_ExtPRevS_IsNull(t):
    return _Extrema.Handle_Extrema_ExtPRevS_IsNull(t)

def Handle_Extrema_HArray1OfPOnCurv_Create():
    return _Extrema.Handle_Extrema_HArray1OfPOnCurv_Create()

def Handle_Extrema_HArray1OfPOnCurv_DownCast(t):
    return _Extrema.Handle_Extrema_HArray1OfPOnCurv_DownCast(t)

def Handle_Extrema_HArray1OfPOnCurv_IsNull(t):
    return _Extrema.Handle_Extrema_HArray1OfPOnCurv_IsNull(t)

def Handle_Extrema_HArray1OfPOnCurv2d_Create():
    return _Extrema.Handle_Extrema_HArray1OfPOnCurv2d_Create()

def Handle_Extrema_HArray1OfPOnCurv2d_DownCast(t):
    return _Extrema.Handle_Extrema_HArray1OfPOnCurv2d_DownCast(t)

def Handle_Extrema_HArray1OfPOnCurv2d_IsNull(t):
    return _Extrema.Handle_Extrema_HArray1OfPOnCurv2d_IsNull(t)

def Handle_Extrema_HArray1OfPOnSurf_Create():
    return _Extrema.Handle_Extrema_HArray1OfPOnSurf_Create()

def Handle_Extrema_HArray1OfPOnSurf_DownCast(t):
    return _Extrema.Handle_Extrema_HArray1OfPOnSurf_DownCast(t)

def Handle_Extrema_HArray1OfPOnSurf_IsNull(t):
    return _Extrema.Handle_Extrema_HArray1OfPOnSurf_IsNull(t)

def Handle_Extrema_HArray2OfPOnCurv_Create():
    return _Extrema.Handle_Extrema_HArray2OfPOnCurv_Create()

def Handle_Extrema_HArray2OfPOnCurv_DownCast(t):
    return _Extrema.Handle_Extrema_HArray2OfPOnCurv_DownCast(t)

def Handle_Extrema_HArray2OfPOnCurv_IsNull(t):
    return _Extrema.Handle_Extrema_HArray2OfPOnCurv_IsNull(t)

def Handle_Extrema_HArray2OfPOnCurv2d_Create():
    return _Extrema.Handle_Extrema_HArray2OfPOnCurv2d_Create()

def Handle_Extrema_HArray2OfPOnCurv2d_DownCast(t):
    return _Extrema.Handle_Extrema_HArray2OfPOnCurv2d_DownCast(t)

def Handle_Extrema_HArray2OfPOnCurv2d_IsNull(t):
    return _Extrema.Handle_Extrema_HArray2OfPOnCurv2d_IsNull(t)

def Handle_Extrema_HArray2OfPOnSurf_Create():
    return _Extrema.Handle_Extrema_HArray2OfPOnSurf_Create()

def Handle_Extrema_HArray2OfPOnSurf_DownCast(t):
    return _Extrema.Handle_Extrema_HArray2OfPOnSurf_DownCast(t)

def Handle_Extrema_HArray2OfPOnSurf_IsNull(t):
    return _Extrema.Handle_Extrema_HArray2OfPOnSurf_IsNull(t)
class Extrema_Array1OfPOnCurv(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self, *args):
        return _Extrema.Extrema_Array1OfPOnCurv_begin(self, *args)

    def cbegin(self):
        return _Extrema.Extrema_Array1OfPOnCurv_cbegin(self)

    def end(self, *args):
        return _Extrema.Extrema_Array1OfPOnCurv_end(self, *args)

    def cend(self):
        return _Extrema.Extrema_Array1OfPOnCurv_cend(self)

    def __init__(self, *args):
        _Extrema.Extrema_Array1OfPOnCurv_swiginit(self, _Extrema.new_Extrema_Array1OfPOnCurv(*args))
    __swig_destroy__ = _Extrema.delete_Extrema_Array1OfPOnCurv

    def Init(self, theValue):
        return _Extrema.Extrema_Array1OfPOnCurv_Init(self, theValue)

    def Size(self):
        return _Extrema.Extrema_Array1OfPOnCurv_Size(self)

    def Length(self):
        return _Extrema.Extrema_Array1OfPOnCurv_Length(self)

    def IsEmpty(self):
        return _Extrema.Extrema_Array1OfPOnCurv_IsEmpty(self)

    def Lower(self):
        return _Extrema.Extrema_Array1OfPOnCurv_Lower(self)

    def Upper(self):
        return _Extrema.Extrema_Array1OfPOnCurv_Upper(self)

    def Assign(self, theOther):
        return _Extrema.Extrema_Array1OfPOnCurv_Assign(self, theOther)

    def Move(self, *args):
        return _Extrema.Extrema_Array1OfPOnCurv_Move(self, *args)

    def Set(self, *args):
        return _Extrema.Extrema_Array1OfPOnCurv_Set(self, *args)

    def First(self):
        return _Extrema.Extrema_Array1OfPOnCurv_First(self)

    def ChangeFirst(self):
        return _Extrema.Extrema_Array1OfPOnCurv_ChangeFirst(self)

    def Last(self):
        return _Extrema.Extrema_Array1OfPOnCurv_Last(self)

    def ChangeLast(self):
        return _Extrema.Extrema_Array1OfPOnCurv_ChangeLast(self)

    def Value(self, theIndex):
        return _Extrema.Extrema_Array1OfPOnCurv_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _Extrema.Extrema_Array1OfPOnCurv_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _Extrema.Extrema_Array1OfPOnCurv___call__(self, *args)

    def SetValue(self, *args):
        return _Extrema.Extrema_Array1OfPOnCurv_SetValue(self, *args)

    def UpdateLowerBound(self, theLower):
        return _Extrema.Extrema_Array1OfPOnCurv_UpdateLowerBound(self, theLower)

    def UpdateUpperBound(self, theUpper):
        return _Extrema.Extrema_Array1OfPOnCurv_UpdateUpperBound(self, theUpper)

    def Resize(self, theLower, theUpper, theToCopyData):
        return _Extrema.Extrema_Array1OfPOnCurv_Resize(self, theLower, theUpper, theToCopyData)

    def IsDeletable(self):
        return _Extrema.Extrema_Array1OfPOnCurv_IsDeletable(self)

    def __getitem__(self, index):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            return self.Value(index + self.Lower())

    def __setitem__(self, index, value):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            self.SetValue(index + self.Lower(), value)

    def __len__(self):
        return self.Length()

    def __iter__(self):
        self.low = self.Lower()
        self.up = self.Upper()
        self.current = self.Lower() - 1
        return self

    def next(self):
        if self.current >= self.Upper():
            raise StopIteration
        else:
            self.current += 1
        return self.Value(self.current)

    __next__ = next


# Register Extrema_Array1OfPOnCurv in _Extrema:
_Extrema.Extrema_Array1OfPOnCurv_swigregister(Extrema_Array1OfPOnCurv)
class Extrema_Array1OfPOnCurv2d(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self, *args):
        return _Extrema.Extrema_Array1OfPOnCurv2d_begin(self, *args)

    def cbegin(self):
        return _Extrema.Extrema_Array1OfPOnCurv2d_cbegin(self)

    def end(self, *args):
        return _Extrema.Extrema_Array1OfPOnCurv2d_end(self, *args)

    def cend(self):
        return _Extrema.Extrema_Array1OfPOnCurv2d_cend(self)

    def __init__(self, *args):
        _Extrema.Extrema_Array1OfPOnCurv2d_swiginit(self, _Extrema.new_Extrema_Array1OfPOnCurv2d(*args))
    __swig_destroy__ = _Extrema.delete_Extrema_Array1OfPOnCurv2d

    def Init(self, theValue):
        return _Extrema.Extrema_Array1OfPOnCurv2d_Init(self, theValue)

    def Size(self):
        return _Extrema.Extrema_Array1OfPOnCurv2d_Size(self)

    def Length(self):
        return _Extrema.Extrema_Array1OfPOnCurv2d_Length(self)

    def IsEmpty(self):
        return _Extrema.Extrema_Array1OfPOnCurv2d_IsEmpty(self)

    def Lower(self):
        return _Extrema.Extrema_Array1OfPOnCurv2d_Lower(self)

    def Upper(self):
        return _Extrema.Extrema_Array1OfPOnCurv2d_Upper(self)

    def Assign(self, theOther):
        return _Extrema.Extrema_Array1OfPOnCurv2d_Assign(self, theOther)

    def Move(self, *args):
        return _Extrema.Extrema_Array1OfPOnCurv2d_Move(self, *args)

    def Set(self, *args):
        return _Extrema.Extrema_Array1OfPOnCurv2d_Set(self, *args)

    def First(self):
        return _Extrema.Extrema_Array1OfPOnCurv2d_First(self)

    def ChangeFirst(self):
        return _Extrema.Extrema_Array1OfPOnCurv2d_ChangeFirst(self)

    def Last(self):
        return _Extrema.Extrema_Array1OfPOnCurv2d_Last(self)

    def ChangeLast(self):
        return _Extrema.Extrema_Array1OfPOnCurv2d_ChangeLast(self)

    def Value(self, theIndex):
        return _Extrema.Extrema_Array1OfPOnCurv2d_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _Extrema.Extrema_Array1OfPOnCurv2d_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _Extrema.Extrema_Array1OfPOnCurv2d___call__(self, *args)

    def SetValue(self, *args):
        return _Extrema.Extrema_Array1OfPOnCurv2d_SetValue(self, *args)

    def UpdateLowerBound(self, theLower):
        return _Extrema.Extrema_Array1OfPOnCurv2d_UpdateLowerBound(self, theLower)

    def UpdateUpperBound(self, theUpper):
        return _Extrema.Extrema_Array1OfPOnCurv2d_UpdateUpperBound(self, theUpper)

    def Resize(self, theLower, theUpper, theToCopyData):
        return _Extrema.Extrema_Array1OfPOnCurv2d_Resize(self, theLower, theUpper, theToCopyData)

    def IsDeletable(self):
        return _Extrema.Extrema_Array1OfPOnCurv2d_IsDeletable(self)

    def __getitem__(self, index):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            return self.Value(index + self.Lower())

    def __setitem__(self, index, value):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            self.SetValue(index + self.Lower(), value)

    def __len__(self):
        return self.Length()

    def __iter__(self):
        self.low = self.Lower()
        self.up = self.Upper()
        self.current = self.Lower() - 1
        return self

    def next(self):
        if self.current >= self.Upper():
            raise StopIteration
        else:
            self.current += 1
        return self.Value(self.current)

    __next__ = next


# Register Extrema_Array1OfPOnCurv2d in _Extrema:
_Extrema.Extrema_Array1OfPOnCurv2d_swigregister(Extrema_Array1OfPOnCurv2d)
class Extrema_Array1OfPOnSurf(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self, *args):
        return _Extrema.Extrema_Array1OfPOnSurf_begin(self, *args)

    def cbegin(self):
        return _Extrema.Extrema_Array1OfPOnSurf_cbegin(self)

    def end(self, *args):
        return _Extrema.Extrema_Array1OfPOnSurf_end(self, *args)

    def cend(self):
        return _Extrema.Extrema_Array1OfPOnSurf_cend(self)

    def __init__(self, *args):
        _Extrema.Extrema_Array1OfPOnSurf_swiginit(self, _Extrema.new_Extrema_Array1OfPOnSurf(*args))
    __swig_destroy__ = _Extrema.delete_Extrema_Array1OfPOnSurf

    def Init(self, theValue):
        return _Extrema.Extrema_Array1OfPOnSurf_Init(self, theValue)

    def Size(self):
        return _Extrema.Extrema_Array1OfPOnSurf_Size(self)

    def Length(self):
        return _Extrema.Extrema_Array1OfPOnSurf_Length(self)

    def IsEmpty(self):
        return _Extrema.Extrema_Array1OfPOnSurf_IsEmpty(self)

    def Lower(self):
        return _Extrema.Extrema_Array1OfPOnSurf_Lower(self)

    def Upper(self):
        return _Extrema.Extrema_Array1OfPOnSurf_Upper(self)

    def Assign(self, theOther):
        return _Extrema.Extrema_Array1OfPOnSurf_Assign(self, theOther)

    def Move(self, *args):
        return _Extrema.Extrema_Array1OfPOnSurf_Move(self, *args)

    def Set(self, *args):
        return _Extrema.Extrema_Array1OfPOnSurf_Set(self, *args)

    def First(self):
        return _Extrema.Extrema_Array1OfPOnSurf_First(self)

    def ChangeFirst(self):
        return _Extrema.Extrema_Array1OfPOnSurf_ChangeFirst(self)

    def Last(self):
        return _Extrema.Extrema_Array1OfPOnSurf_Last(self)

    def ChangeLast(self):
        return _Extrema.Extrema_Array1OfPOnSurf_ChangeLast(self)

    def Value(self, theIndex):
        return _Extrema.Extrema_Array1OfPOnSurf_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _Extrema.Extrema_Array1OfPOnSurf_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _Extrema.Extrema_Array1OfPOnSurf___call__(self, *args)

    def SetValue(self, *args):
        return _Extrema.Extrema_Array1OfPOnSurf_SetValue(self, *args)

    def UpdateLowerBound(self, theLower):
        return _Extrema.Extrema_Array1OfPOnSurf_UpdateLowerBound(self, theLower)

    def UpdateUpperBound(self, theUpper):
        return _Extrema.Extrema_Array1OfPOnSurf_UpdateUpperBound(self, theUpper)

    def Resize(self, theLower, theUpper, theToCopyData):
        return _Extrema.Extrema_Array1OfPOnSurf_Resize(self, theLower, theUpper, theToCopyData)

    def IsDeletable(self):
        return _Extrema.Extrema_Array1OfPOnSurf_IsDeletable(self)

    def __getitem__(self, index):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            return self.Value(index + self.Lower())

    def __setitem__(self, index, value):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            self.SetValue(index + self.Lower(), value)

    def __len__(self):
        return self.Length()

    def __iter__(self):
        self.low = self.Lower()
        self.up = self.Upper()
        self.current = self.Lower() - 1
        return self

    def next(self):
        if self.current >= self.Upper():
            raise StopIteration
        else:
            self.current += 1
        return self.Value(self.current)

    __next__ = next


# Register Extrema_Array1OfPOnSurf in _Extrema:
_Extrema.Extrema_Array1OfPOnSurf_swigregister(Extrema_Array1OfPOnSurf)
class Extrema_SequenceOfPOnCurv(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self):
        return _Extrema.Extrema_SequenceOfPOnCurv_begin(self)

    def end(self):
        return _Extrema.Extrema_SequenceOfPOnCurv_end(self)

    def cbegin(self):
        return _Extrema.Extrema_SequenceOfPOnCurv_cbegin(self)

    def cend(self):
        return _Extrema.Extrema_SequenceOfPOnCurv_cend(self)

    def __init__(self, *args):
        _Extrema.Extrema_SequenceOfPOnCurv_swiginit(self, _Extrema.new_Extrema_SequenceOfPOnCurv(*args))

    def Size(self):
        return _Extrema.Extrema_SequenceOfPOnCurv_Size(self)

    def Length(self):
        return _Extrema.Extrema_SequenceOfPOnCurv_Length(self)

    def Lower(self):
        return _Extrema.Extrema_SequenceOfPOnCurv_Lower(self)

    def Upper(self):
        return _Extrema.Extrema_SequenceOfPOnCurv_Upper(self)

    def IsEmpty(self):
        return _Extrema.Extrema_SequenceOfPOnCurv_IsEmpty(self)

    def Reverse(self):
        return _Extrema.Extrema_SequenceOfPOnCurv_Reverse(self)

    def Exchange(self, I, J):
        return _Extrema.Extrema_SequenceOfPOnCurv_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _Extrema.Extrema_SequenceOfPOnCurv_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _Extrema.Extrema_SequenceOfPOnCurv_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _Extrema.Extrema_SequenceOfPOnCurv_Assign(self, theOther)

    def Set(self, *args):
        return _Extrema.Extrema_SequenceOfPOnCurv_Set(self, *args)

    def Remove(self, *args):
        return _Extrema.Extrema_SequenceOfPOnCurv_Remove(self, *args)

    def Append(self, *args):
        return _Extrema.Extrema_SequenceOfPOnCurv_Append(self, *args)

    def Prepend(self, *args):
        return _Extrema.Extrema_SequenceOfPOnCurv_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _Extrema.Extrema_SequenceOfPOnCurv_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _Extrema.Extrema_SequenceOfPOnCurv_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _Extrema.Extrema_SequenceOfPOnCurv_Split(self, theIndex, theSeq)

    def First(self):
        return _Extrema.Extrema_SequenceOfPOnCurv_First(self)

    def ChangeFirst(self):
        return _Extrema.Extrema_SequenceOfPOnCurv_ChangeFirst(self)

    def Last(self):
        return _Extrema.Extrema_SequenceOfPOnCurv_Last(self)

    def ChangeLast(self):
        return _Extrema.Extrema_SequenceOfPOnCurv_ChangeLast(self)

    def Value(self, theIndex):
        return _Extrema.Extrema_SequenceOfPOnCurv_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _Extrema.Extrema_SequenceOfPOnCurv_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _Extrema.Extrema_SequenceOfPOnCurv___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _Extrema.Extrema_SequenceOfPOnCurv_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _Extrema.delete_Extrema_SequenceOfPOnCurv

    def __len__(self):
        return self.Size()


# Register Extrema_SequenceOfPOnCurv in _Extrema:
_Extrema.Extrema_SequenceOfPOnCurv_swigregister(Extrema_SequenceOfPOnCurv)
class Extrema_SequenceOfPOnCurv2d(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_begin(self)

    def end(self):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_end(self)

    def cbegin(self):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_cbegin(self)

    def cend(self):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_cend(self)

    def __init__(self, *args):
        _Extrema.Extrema_SequenceOfPOnCurv2d_swiginit(self, _Extrema.new_Extrema_SequenceOfPOnCurv2d(*args))

    def Size(self):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_Size(self)

    def Length(self):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_Length(self)

    def Lower(self):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_Lower(self)

    def Upper(self):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_Upper(self)

    def IsEmpty(self):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_IsEmpty(self)

    def Reverse(self):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_Reverse(self)

    def Exchange(self, I, J):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_Assign(self, theOther)

    def Set(self, *args):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_Set(self, *args)

    def Remove(self, *args):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_Remove(self, *args)

    def Append(self, *args):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_Append(self, *args)

    def Prepend(self, *args):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_Split(self, theIndex, theSeq)

    def First(self):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_First(self)

    def ChangeFirst(self):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_ChangeFirst(self)

    def Last(self):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_Last(self)

    def ChangeLast(self):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_ChangeLast(self)

    def Value(self, theIndex):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _Extrema.Extrema_SequenceOfPOnCurv2d___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _Extrema.Extrema_SequenceOfPOnCurv2d_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _Extrema.delete_Extrema_SequenceOfPOnCurv2d

    def __len__(self):
        return self.Size()


# Register Extrema_SequenceOfPOnCurv2d in _Extrema:
_Extrema.Extrema_SequenceOfPOnCurv2d_swigregister(Extrema_SequenceOfPOnCurv2d)
class Extrema_SequenceOfPOnSurf(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self):
        return _Extrema.Extrema_SequenceOfPOnSurf_begin(self)

    def end(self):
        return _Extrema.Extrema_SequenceOfPOnSurf_end(self)

    def cbegin(self):
        return _Extrema.Extrema_SequenceOfPOnSurf_cbegin(self)

    def cend(self):
        return _Extrema.Extrema_SequenceOfPOnSurf_cend(self)

    def __init__(self, *args):
        _Extrema.Extrema_SequenceOfPOnSurf_swiginit(self, _Extrema.new_Extrema_SequenceOfPOnSurf(*args))

    def Size(self):
        return _Extrema.Extrema_SequenceOfPOnSurf_Size(self)

    def Length(self):
        return _Extrema.Extrema_SequenceOfPOnSurf_Length(self)

    def Lower(self):
        return _Extrema.Extrema_SequenceOfPOnSurf_Lower(self)

    def Upper(self):
        return _Extrema.Extrema_SequenceOfPOnSurf_Upper(self)

    def IsEmpty(self):
        return _Extrema.Extrema_SequenceOfPOnSurf_IsEmpty(self)

    def Reverse(self):
        return _Extrema.Extrema_SequenceOfPOnSurf_Reverse(self)

    def Exchange(self, I, J):
        return _Extrema.Extrema_SequenceOfPOnSurf_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _Extrema.Extrema_SequenceOfPOnSurf_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _Extrema.Extrema_SequenceOfPOnSurf_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _Extrema.Extrema_SequenceOfPOnSurf_Assign(self, theOther)

    def Set(self, *args):
        return _Extrema.Extrema_SequenceOfPOnSurf_Set(self, *args)

    def Remove(self, *args):
        return _Extrema.Extrema_SequenceOfPOnSurf_Remove(self, *args)

    def Append(self, *args):
        return _Extrema.Extrema_SequenceOfPOnSurf_Append(self, *args)

    def Prepend(self, *args):
        return _Extrema.Extrema_SequenceOfPOnSurf_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _Extrema.Extrema_SequenceOfPOnSurf_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _Extrema.Extrema_SequenceOfPOnSurf_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _Extrema.Extrema_SequenceOfPOnSurf_Split(self, theIndex, theSeq)

    def First(self):
        return _Extrema.Extrema_SequenceOfPOnSurf_First(self)

    def ChangeFirst(self):
        return _Extrema.Extrema_SequenceOfPOnSurf_ChangeFirst(self)

    def Last(self):
        return _Extrema.Extrema_SequenceOfPOnSurf_Last(self)

    def ChangeLast(self):
        return _Extrema.Extrema_SequenceOfPOnSurf_ChangeLast(self)

    def Value(self, theIndex):
        return _Extrema.Extrema_SequenceOfPOnSurf_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _Extrema.Extrema_SequenceOfPOnSurf_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _Extrema.Extrema_SequenceOfPOnSurf___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _Extrema.Extrema_SequenceOfPOnSurf_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _Extrema.delete_Extrema_SequenceOfPOnSurf

    def __len__(self):
        return self.Size()


# Register Extrema_SequenceOfPOnSurf in _Extrema:
_Extrema.Extrema_SequenceOfPOnSurf_swigregister(Extrema_SequenceOfPOnSurf)
class Extrema_UBTreeFillerOfSphere(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):
        _Extrema.Extrema_UBTreeFillerOfSphere_swiginit(self, _Extrema.new_Extrema_UBTreeFillerOfSphere(*args))

    def Add(self, theObj, theBnd):
        return _Extrema.Extrema_UBTreeFillerOfSphere_Add(self, theObj, theBnd)

    def Fill(self):
        return _Extrema.Extrema_UBTreeFillerOfSphere_Fill(self)

    def Reset(self):
        return _Extrema.Extrema_UBTreeFillerOfSphere_Reset(self)

    def CheckTree(self, theStream):
        return _Extrema.Extrema_UBTreeFillerOfSphere_CheckTree(self, theStream)
    __swig_destroy__ = _Extrema.delete_Extrema_UBTreeFillerOfSphere

# Register Extrema_UBTreeFillerOfSphere in _Extrema:
_Extrema.Extrema_UBTreeFillerOfSphere_swigregister(Extrema_UBTreeFillerOfSphere)
class Extrema_UBTreeOfSphere(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):
        _Extrema.Extrema_UBTreeOfSphere_swiginit(self, _Extrema.new_Extrema_UBTreeOfSphere(*args))

    def Add(self, theObj, theBnd):
        return _Extrema.Extrema_UBTreeOfSphere_Add(self, theObj, theBnd)

    def Select(self, theSelector):
        return _Extrema.Extrema_UBTreeOfSphere_Select(self, theSelector)

    def Clear(self, aNewAlloc=0):
        return _Extrema.Extrema_UBTreeOfSphere_Clear(self, aNewAlloc)

    def IsEmpty(self):
        return _Extrema.Extrema_UBTreeOfSphere_IsEmpty(self)

    def Root(self):
        return _Extrema.Extrema_UBTreeOfSphere_Root(self)
    __swig_destroy__ = _Extrema.delete_Extrema_UBTreeOfSphere

    def Allocator(self):
        return _Extrema.Extrema_UBTreeOfSphere_Allocator(self)

# Register Extrema_UBTreeOfSphere in _Extrema:
_Extrema.Extrema_UBTreeOfSphere_swigregister(Extrema_UBTreeOfSphere)
class Extrema_CCLocFOfLocECC(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
        ----------
        thetol: float (optional, default to 1.0e-10)

        Return
        -------
        None

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

        Parameters
        ----------
        C1: Adaptor3d_Curve
        C2: Adaptor3d_Curve
        thetol: float (optional, default to 1.0e-10)

        Return
        -------
        None

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

        """
        _Extrema.Extrema_CCLocFOfLocECC_swiginit(self, _Extrema.new_Extrema_CCLocFOfLocECC(*args))

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

        Parameters
        ----------
        theRank: int

        Return
        -------
        Standard_Address

        Description
        -----------
        Returns a pointer to the curve specified in the constructor or in SetCurve() method.

        """
        return _Extrema.Extrema_CCLocFOfLocECC_CurvePtr(self, *args)

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

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

        """
        return _Extrema.Extrema_CCLocFOfLocECC_NbExt(self, *args)

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

        Parameters
        ----------
        N: int
        P1: Extrema_POnCurv
        P2: Extrema_POnCurv

        Return
        -------
        None

        Description
        -----------
        Return the points of the Nth extreme distance.

        """
        return _Extrema.Extrema_CCLocFOfLocECC_Points(self, *args)

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

        Parameters
        ----------
        C: Standard_Address

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_CCLocFOfLocECC_SearchOfTolerance(self, *args)

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

        Parameters
        ----------
        theRank: int
        C1: Adaptor3d_Curve

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_CCLocFOfLocECC_SetCurve(self, *args)

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

        Parameters
        ----------
        theTol: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_CCLocFOfLocECC_SetTolerance(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Return the value of the Nth distance.

        """
        return _Extrema.Extrema_CCLocFOfLocECC_SquareDistance(self, *args)

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

        Parameters
        ----------
        theUfirst: math_Vector
        theUlast: math_Vector

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_CCLocFOfLocECC_SubIntervalInitialize(self, *args)

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

        Description
        -----------
        Returns a tolerance specified in the constructor or in SetTolerance() method.

        """
        return _Extrema.Extrema_CCLocFOfLocECC_Tolerance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_CCLocFOfLocECC

# Register Extrema_CCLocFOfLocECC in _Extrema:
_Extrema.Extrema_CCLocFOfLocECC_swigregister(Extrema_CCLocFOfLocECC)
class Extrema_CCLocFOfLocECC2d(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
        ----------
        thetol: float (optional, default to 1.0e-10)

        Return
        -------
        None

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

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        C2: Adaptor2d_Curve2d
        thetol: float (optional, default to 1.0e-10)

        Return
        -------
        None

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

        """
        _Extrema.Extrema_CCLocFOfLocECC2d_swiginit(self, _Extrema.new_Extrema_CCLocFOfLocECC2d(*args))

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

        Parameters
        ----------
        theRank: int

        Return
        -------
        Standard_Address

        Description
        -----------
        Returns a pointer to the curve specified in the constructor or in SetCurve() method.

        """
        return _Extrema.Extrema_CCLocFOfLocECC2d_CurvePtr(self, *args)

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

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

        """
        return _Extrema.Extrema_CCLocFOfLocECC2d_NbExt(self, *args)

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

        Parameters
        ----------
        N: int
        P1: Extrema_POnCurv2d
        P2: Extrema_POnCurv2d

        Return
        -------
        None

        Description
        -----------
        Return the points of the Nth extreme distance.

        """
        return _Extrema.Extrema_CCLocFOfLocECC2d_Points(self, *args)

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

        Parameters
        ----------
        C: Standard_Address

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_CCLocFOfLocECC2d_SearchOfTolerance(self, *args)

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

        Parameters
        ----------
        theRank: int
        C1: Adaptor2d_Curve2d

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_CCLocFOfLocECC2d_SetCurve(self, *args)

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

        Parameters
        ----------
        theTol: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_CCLocFOfLocECC2d_SetTolerance(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Return the value of the Nth distance.

        """
        return _Extrema.Extrema_CCLocFOfLocECC2d_SquareDistance(self, *args)

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

        Parameters
        ----------
        theUfirst: math_Vector
        theUlast: math_Vector

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_CCLocFOfLocECC2d_SubIntervalInitialize(self, *args)

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

        Description
        -----------
        Returns a tolerance specified in the constructor or in SetTolerance() method.

        """
        return _Extrema.Extrema_CCLocFOfLocECC2d_Tolerance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_CCLocFOfLocECC2d

# Register Extrema_CCLocFOfLocECC2d in _Extrema:
_Extrema.Extrema_CCLocFOfLocECC2d_swigregister(Extrema_CCLocFOfLocECC2d)
class Extrema_Curve2dTool(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

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

        Return
        -------
        opencascade::handle<Geom2d_BSplineCurve>

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

        """
        return _Extrema.Extrema_Curve2dTool_BSpline(*args)

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

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

        Return
        -------
        opencascade::handle<Geom2d_BezierCurve>

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

        """
        return _Extrema.Extrema_Curve2dTool_Bezier(*args)

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

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

        Return
        -------
        gp_Circ2d

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

        """
        return _Extrema.Extrema_Curve2dTool_Circle(*args)

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

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

        Return
        -------
        GeomAbs_Shape

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

        """
        return _Extrema.Extrema_Curve2dTool_Continuity(*args)

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

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

        Return
        -------
        None

        Description
        -----------
        Computes the point of parameter U on the curve.

        """
        return _Extrema.Extrema_Curve2dTool_D0(*args)

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

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

        Return
        -------
        None

        Description
        -----------
        Computes the point of parameter U on the curve with its first derivative.

        """
        return _Extrema.Extrema_Curve2dTool_D1(*args)

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

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        U: float
        P: gp_Pnt2d
        V1: gp_Vec2d
        V2: gp_Vec2d

        Return
        -------
        None

        Description
        -----------
        Returns the point P of parameter U, the first and second derivatives V1 and V2.

        """
        return _Extrema.Extrema_Curve2dTool_D2(*args)

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

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        U: float
        P: gp_Pnt2d
        V1: gp_Vec2d
        V2: gp_Vec2d
        V3: gp_Vec2d

        Return
        -------
        None

        Description
        -----------
        Returns the point P of parameter U, the first, the second and the third derivative.

        """
        return _Extrema.Extrema_Curve2dTool_D3(*args)

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

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

        Return
        -------
        gp_Vec2d

        Description
        -----------
        The returned vector gives the value of the derivative for the order of derivation N.

        """
        return _Extrema.Extrema_Curve2dTool_DN(*args)

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

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

        Return
        -------
        opencascade::handle<TColStd_HArray1OfReal>

        Description
        -----------
        Returns the parameters bounding the intervals of subdivision of curve according to Curvature deflection. Value of deflection is defined in method. //!.

        """
        return _Extrema.Extrema_Curve2dTool_DeflCurvIntervals(*args)

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

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

        Return
        -------
        int

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

        """
        return _Extrema.Extrema_Curve2dTool_Degree(*args)

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

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

        Return
        -------
        gp_Elips2d

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

        """
        return _Extrema.Extrema_Curve2dTool_Ellipse(*args)

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

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

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_Curve2dTool_FirstParameter(*args)

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

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

        Return
        -------
        GeomAbs_CurveType

        Description
        -----------
        Returns the type of the curve in the current interval: Line, Circle, Ellipse, Hyperbola, Parabola, BezierCurve, BSplineCurve, OtherCurve.

        """
        return _Extrema.Extrema_Curve2dTool_GetType(*args)

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

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

        Return
        -------
        gp_Hypr2d

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

        """
        return _Extrema.Extrema_Curve2dTool_Hyperbola(*args)

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

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        T: TColStd_Array1OfReal
        S: GeomAbs_Shape

        Return
        -------
        None

        Description
        -----------
        Stores in <T> the parameters bounding the intervals of continuity <S>.

        """
        return _Extrema.Extrema_Curve2dTool_Intervals(*args)

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

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

        Return
        -------
        bool

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

        """
        return _Extrema.Extrema_Curve2dTool_IsClosed(*args)

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

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

        Return
        -------
        bool

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

        """
        return _Extrema.Extrema_Curve2dTool_IsPeriodic(*args)

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

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

        Return
        -------
        bool

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

        """
        return _Extrema.Extrema_Curve2dTool_IsRational(*args)

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

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

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_Curve2dTool_LastParameter(*args)

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

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

        Return
        -------
        gp_Lin2d

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

        """
        return _Extrema.Extrema_Curve2dTool_Line(*args)

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

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        S: GeomAbs_Shape

        Return
        -------
        int

        Description
        -----------
        If necessary, breaks the curve in intervals of continuity <S>. And returns the number of intervals.

        """
        return _Extrema.Extrema_Curve2dTool_NbIntervals(*args)

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

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

        Return
        -------
        int

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

        """
        return _Extrema.Extrema_Curve2dTool_NbKnots(*args)

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

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

        Return
        -------
        int

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

        """
        return _Extrema.Extrema_Curve2dTool_NbPoles(*args)

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

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

        Return
        -------
        gp_Parab2d

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

        """
        return _Extrema.Extrema_Curve2dTool_Parabola(*args)

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

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

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_Curve2dTool_Period(*args)

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

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        R3d: float

        Return
        -------
        float

        Description
        -----------
        Returns the parametric resolution corresponding to the real space resolution <R3d>.

        """
        return _Extrema.Extrema_Curve2dTool_Resolution(*args)

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

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        U: float

        Return
        -------
        gp_Pnt2d

        Description
        -----------
        Computes the point of parameter U on the curve.

        """
        return _Extrema.Extrema_Curve2dTool_Value(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _Extrema.Extrema_Curve2dTool_swiginit(self, _Extrema.new_Extrema_Curve2dTool())
    __swig_destroy__ = _Extrema.delete_Extrema_Curve2dTool

# Register Extrema_Curve2dTool in _Extrema:
_Extrema.Extrema_Curve2dTool_swigregister(Extrema_Curve2dTool)
class Extrema_CurveTool(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        opencascade::handle<Geom_BSplineCurve>

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

        """
        return _Extrema.Extrema_CurveTool_BSpline(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        opencascade::handle<Geom_BezierCurve>

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

        """
        return _Extrema.Extrema_CurveTool_Bezier(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        gp_Circ

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

        """
        return _Extrema.Extrema_CurveTool_Circle(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        GeomAbs_Shape

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

        """
        return _Extrema.Extrema_CurveTool_Continuity(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        U: float
        P: gp_Pnt

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_CurveTool_D0(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        U: float
        P: gp_Pnt
        V: gp_Vec

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_CurveTool_D1(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        U: float
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_CurveTool_D2(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        U: float
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec
        V3: gp_Vec

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_CurveTool_D3(*args)

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

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

        Return
        -------
        gp_Vec

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

        """
        return _Extrema.Extrema_CurveTool_DN(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        opencascade::handle<TColStd_HArray1OfReal>

        Description
        -----------
        Returns the parameters bounding the intervals of subdivision of curve according to Curvature deflection. Value of deflection is defined in method. //!.

        """
        return _Extrema.Extrema_CurveTool_DeflCurvIntervals(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        int

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

        """
        return _Extrema.Extrema_CurveTool_Degree(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        gp_Elips

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

        """
        return _Extrema.Extrema_CurveTool_Ellipse(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_CurveTool_FirstParameter(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        GeomAbs_CurveType

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

        """
        return _Extrema.Extrema_CurveTool_GetType(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        gp_Hypr

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

        """
        return _Extrema.Extrema_CurveTool_Hyperbola(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        T: TColStd_Array1OfReal
        S: GeomAbs_Shape

        Return
        -------
        None

        Description
        -----------
        Stores in <T> the parameters bounding the intervals of continuity <S>. //! The array must provide enough room to accommodate for the parameters. i.e. T.Length() > NbIntervals().

        """
        return _Extrema.Extrema_CurveTool_Intervals(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        bool

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

        """
        return _Extrema.Extrema_CurveTool_IsPeriodic(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        bool

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

        """
        return _Extrema.Extrema_CurveTool_IsRational(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_CurveTool_LastParameter(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        gp_Lin

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

        """
        return _Extrema.Extrema_CurveTool_Line(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        S: GeomAbs_Shape

        Return
        -------
        int

        Description
        -----------
        Returns the number of intervals for continuity <S>. May be one if Continuity(me) >= <S>.

        """
        return _Extrema.Extrema_CurveTool_NbIntervals(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        int

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

        """
        return _Extrema.Extrema_CurveTool_NbKnots(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        int

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

        """
        return _Extrema.Extrema_CurveTool_NbPoles(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        gp_Parab

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

        """
        return _Extrema.Extrema_CurveTool_Parabola(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_CurveTool_Period(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        R3d: float

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_CurveTool_Resolution(*args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        U: float

        Return
        -------
        gp_Pnt

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

        """
        return _Extrema.Extrema_CurveTool_Value(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _Extrema.Extrema_CurveTool_swiginit(self, _Extrema.new_Extrema_CurveTool())
    __swig_destroy__ = _Extrema.delete_Extrema_CurveTool

# Register Extrema_CurveTool in _Extrema:
_Extrema.Extrema_CurveTool_swigregister(Extrema_CurveTool)
class Extrema_ECC(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
        -----------
        Calculates all the distances as above between Uinf and Usup for C1 and between Vinf and Vsup for C2.

        Parameters
        ----------
        C1: Adaptor3d_Curve
        C2: Adaptor3d_Curve

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u,v)=distance(C1(u),C2(v)) has an extremum when gradient(f)=0. The algorithm uses Evtushenko's global optimization solver.

        Parameters
        ----------
        C1: Adaptor3d_Curve
        C2: Adaptor3d_Curve
        Uinf: float
        Usup: float
        Vinf: float
        Vsup: float

        Return
        -------
        None

        Description
        -----------
        Calculates all the distances as above between Uinf and Usup for C1 and between Vinf and Vsup for C2.

        """
        _Extrema.Extrema_ECC_swiginit(self, _Extrema.new_Extrema_ECC(*args))

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

        Description
        -----------
        Get flag for single extrema computation. Works on parametric solver only.

        """
        return _Extrema.Extrema_ECC_GetSingleSolutionFlag(self, *args)

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

        Description
        -----------
        Returns True if the distances are found.

        """
        return _Extrema.Extrema_ECC_IsDone(self, *args)

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

        Description
        -----------
        Returns state of myParallel flag.

        """
        return _Extrema.Extrema_ECC_IsParallel(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ECC_NbExt(self, *args)

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

        Description
        -----------
        Performs calculations.

        """
        return _Extrema.Extrema_ECC_Perform(self, *args)

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

        Parameters
        ----------
        N: int
        P1: Extrema_POnCurv
        P2: Extrema_POnCurv

        Return
        -------
        None

        Description
        -----------
        Returns the points of the Nth extremum distance. P1 is on the first curve, P2 on the second one.

        """
        return _Extrema.Extrema_ECC_Points(self, *args)

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

        Parameters
        ----------
        C1: Adaptor3d_Curve
        C2: Adaptor3d_Curve
        Uinf: float
        Usup: float
        Vinf: float
        Vsup: float

        Return
        -------
        None

        Description
        -----------
        Set params in case of empty constructor is usage.

        """
        return _Extrema.Extrema_ECC_SetParams(self, *args)

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

        Parameters
        ----------
        theSingleSolutionFlag: bool

        Return
        -------
        None

        Description
        -----------
        Set flag for single extrema computation. Works on parametric solver only.

        """
        return _Extrema.Extrema_ECC_SetSingleSolutionFlag(self, *args)

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

        Parameters
        ----------
        Tol: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_ECC_SetTolerance(self, *args)

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

        Parameters
        ----------
        N: int (optional, default to 1)

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_ECC_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ECC

# Register Extrema_ECC in _Extrema:
_Extrema.Extrema_ECC_swigregister(Extrema_ECC)
class Extrema_ECC2d(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
        -----------
        Calculates all the distances as above between Uinf and Usup for C1 and between Vinf and Vsup for C2.

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        C2: Adaptor2d_Curve2d

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u,v)=distance(C1(u),C2(v)) has an extremum when gradient(f)=0. The algorithm uses Evtushenko's global optimization solver.

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        C2: Adaptor2d_Curve2d
        Uinf: float
        Usup: float
        Vinf: float
        Vsup: float

        Return
        -------
        None

        Description
        -----------
        Calculates all the distances as above between Uinf and Usup for C1 and between Vinf and Vsup for C2.

        """
        _Extrema.Extrema_ECC2d_swiginit(self, _Extrema.new_Extrema_ECC2d(*args))

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

        Description
        -----------
        Get flag for single extrema computation. Works on parametric solver only.

        """
        return _Extrema.Extrema_ECC2d_GetSingleSolutionFlag(self, *args)

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

        Description
        -----------
        Returns True if the distances are found.

        """
        return _Extrema.Extrema_ECC2d_IsDone(self, *args)

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

        Description
        -----------
        Returns state of myParallel flag.

        """
        return _Extrema.Extrema_ECC2d_IsParallel(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ECC2d_NbExt(self, *args)

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

        Description
        -----------
        Performs calculations.

        """
        return _Extrema.Extrema_ECC2d_Perform(self, *args)

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

        Parameters
        ----------
        N: int
        P1: Extrema_POnCurv2d
        P2: Extrema_POnCurv2d

        Return
        -------
        None

        Description
        -----------
        Returns the points of the Nth extremum distance. P1 is on the first curve, P2 on the second one.

        """
        return _Extrema.Extrema_ECC2d_Points(self, *args)

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

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        C2: Adaptor2d_Curve2d
        Uinf: float
        Usup: float
        Vinf: float
        Vsup: float

        Return
        -------
        None

        Description
        -----------
        Set params in case of empty constructor is usage.

        """
        return _Extrema.Extrema_ECC2d_SetParams(self, *args)

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

        Parameters
        ----------
        theSingleSolutionFlag: bool

        Return
        -------
        None

        Description
        -----------
        Set flag for single extrema computation. Works on parametric solver only.

        """
        return _Extrema.Extrema_ECC2d_SetSingleSolutionFlag(self, *args)

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

        Parameters
        ----------
        Tol: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_ECC2d_SetTolerance(self, *args)

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

        Parameters
        ----------
        N: int (optional, default to 1)

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_ECC2d_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ECC2d

# Register Extrema_ECC2d in _Extrema:
_Extrema.Extrema_ECC2d_swigregister(Extrema_ECC2d)
class Extrema_ELPCOfLocateExtPC(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_Pnt
        C: Adaptor3d_Curve
        Uinf: float
        Usup: float
        TolF: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u)=distance(P,C(u)) has an extremum when g(u)=dF/du=0. The algorithm searches all the zeros inside the definition range of the curve. Zeros are searched between uinf and usup. Tol is used to decide to stop the iterations according to the following condition: if n is the number of iterations, the algorithm stops when abs(F(Un)-F(Un-1)) < Tol.

        Parameters
        ----------
        P: gp_Pnt
        C: Adaptor3d_Curve
        TolF: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u)=distance(P,C(u)) has an extremum when g(u)=dF/du=0. The algorithm searches all the zeros inside the definition range of the curve. Tol is used to decide to stop the iterations according to the following condition: if n is the number of iterations, the algorithm stops when abs(F(Un)-F(Un-1)) < Tol.

        """
        _Extrema.Extrema_ELPCOfLocateExtPC_swiginit(self, _Extrema.new_Extrema_ELPCOfLocateExtPC(*args))

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        Uinf: float
        Usup: float
        TolF: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        initializes the fields of the algorithm.

        """
        return _Extrema.Extrema_ELPCOfLocateExtPC_Initialize(self, *args)

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

        Description
        -----------
        True if the distances are found.

        """
        return _Extrema.Extrema_ELPCOfLocateExtPC_IsDone(self, *args)

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

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

        Return
        -------
        bool

        Description
        -----------
        Returns True if the <N>th extremum distance is a minimum.

        """
        return _Extrema.Extrema_ELPCOfLocateExtPC_IsMin(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ELPCOfLocateExtPC_NbExt(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt

        Return
        -------
        None

        Description
        -----------
        An exception is raised if the fields have not been initialized.

        """
        return _Extrema.Extrema_ELPCOfLocateExtPC_Perform(self, *args)

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

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

        Return
        -------
        Extrema_POnCurv

        Description
        -----------
        Returns the point of the <N>th extremum distance.

        """
        return _Extrema.Extrema_ELPCOfLocateExtPC_Point(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Returns the value of the <N>th extremum square distance.

        """
        return _Extrema.Extrema_ELPCOfLocateExtPC_SquareDistance(self, *args)

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

        Parameters
        ----------
        P1: gp_Pnt
        P2: gp_Pnt

        Return
        -------
        dist1: float
        dist2: float

        Description
        -----------
        if the curve is a trimmed curve, dist1 is a square distance between <P> and the point of parameter FirstParameter <P1> and dist2 is a square distance between <P> and the point of parameter LastParameter <P2>.

        """
        return _Extrema.Extrema_ELPCOfLocateExtPC_TrimmedSquareDistances(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ELPCOfLocateExtPC

# Register Extrema_ELPCOfLocateExtPC in _Extrema:
_Extrema.Extrema_ELPCOfLocateExtPC_swigregister(Extrema_ELPCOfLocateExtPC)
class Extrema_ELPCOfLocateExtPC2d(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
        Uinf: float
        Usup: float
        TolF: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u)=distance(P,C(u)) has an extremum when g(u)=dF/du=0. The algorithm searches all the zeros inside the definition range of the curve. Zeros are searched between uinf and usup. Tol is used to decide to stop the iterations according to the following condition: if n is the number of iterations, the algorithm stops when abs(F(Un)-F(Un-1)) < Tol.

        Parameters
        ----------
        P: gp_Pnt2d
        C: Adaptor2d_Curve2d
        TolF: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u)=distance(P,C(u)) has an extremum when g(u)=dF/du=0. The algorithm searches all the zeros inside the definition range of the curve. Tol is used to decide to stop the iterations according to the following condition: if n is the number of iterations, the algorithm stops when abs(F(Un)-F(Un-1)) < Tol.

        """
        _Extrema.Extrema_ELPCOfLocateExtPC2d_swiginit(self, _Extrema.new_Extrema_ELPCOfLocateExtPC2d(*args))

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

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        Uinf: float
        Usup: float
        TolF: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        initializes the fields of the algorithm.

        """
        return _Extrema.Extrema_ELPCOfLocateExtPC2d_Initialize(self, *args)

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

        Description
        -----------
        True if the distances are found.

        """
        return _Extrema.Extrema_ELPCOfLocateExtPC2d_IsDone(self, *args)

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

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

        Return
        -------
        bool

        Description
        -----------
        Returns True if the <N>th extremum distance is a minimum.

        """
        return _Extrema.Extrema_ELPCOfLocateExtPC2d_IsMin(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ELPCOfLocateExtPC2d_NbExt(self, *args)

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

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

        Return
        -------
        None

        Description
        -----------
        An exception is raised if the fields have not been initialized.

        """
        return _Extrema.Extrema_ELPCOfLocateExtPC2d_Perform(self, *args)

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

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

        Return
        -------
        Extrema_POnCurv2d

        Description
        -----------
        Returns the point of the <N>th extremum distance.

        """
        return _Extrema.Extrema_ELPCOfLocateExtPC2d_Point(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Returns the value of the <N>th extremum square distance.

        """
        return _Extrema.Extrema_ELPCOfLocateExtPC2d_SquareDistance(self, *args)

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

        Parameters
        ----------
        P1: gp_Pnt2d
        P2: gp_Pnt2d

        Return
        -------
        dist1: float
        dist2: float

        Description
        -----------
        if the curve is a trimmed curve, dist1 is a square distance between <P> and the point of parameter FirstParameter <P1> and dist2 is a square distance between <P> and the point of parameter LastParameter <P2>.

        """
        return _Extrema.Extrema_ELPCOfLocateExtPC2d_TrimmedSquareDistances(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ELPCOfLocateExtPC2d

# Register Extrema_ELPCOfLocateExtPC2d in _Extrema:
_Extrema.Extrema_ELPCOfLocateExtPC2d_swigregister(Extrema_ELPCOfLocateExtPC2d)
class Extrema_EPCOfELPCOfLocateExtPC(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_Pnt
        C: Adaptor3d_Curve
        NbU: int
        TolU: float
        TolF: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u)=distance(P,C(u)) has an extremum when g(u)=dF/du=0. The algorithm searches all the zeros inside the definition range of the curve. NbU is used to locate the close points to find the zeros. Tol and TolU are used to decide to stop the iterations according to the following condition: if n is the number of iterations, abs(Un-Un-1) < TolU and abs(F(Un)-F(Un-1)) < Tol.

        Parameters
        ----------
        P: gp_Pnt
        C: Adaptor3d_Curve
        NbU: int
        Umin: float
        Usup: float
        TolU: float
        TolF: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u)=distance(P,C(u)) has an extremum when g(u)=dF/du=0. The algorithm searches all the zeros inside the definition range of the curve. NbU is used to locate the close points to find the zeros. Zeros are searched between umin and usup. Tol and TolU are used to decide to stop the iterations according to the following condition: if n is the number of iterations, abs(Un-Un-1) < TolU and abs(F(Un)-F(Un-1)) < Tol.

        """
        _Extrema.Extrema_EPCOfELPCOfLocateExtPC_swiginit(self, _Extrema.new_Extrema_EPCOfELPCOfLocateExtPC(*args))

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        NbU: int
        TolU: float
        TolF: float

        Return
        -------
        None

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        NbU: int
        Umin: float
        Usup: float
        TolU: float
        TolF: float

        Return
        -------
        None

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        None

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

        Parameters
        ----------
        NbU: int
        Umin: float
        Usup: float
        TolU: float
        TolF: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_EPCOfELPCOfLocateExtPC_Initialize(self, *args)

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

        Description
        -----------
        True if the distances are found.

        """
        return _Extrema.Extrema_EPCOfELPCOfLocateExtPC_IsDone(self, *args)

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

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

        Return
        -------
        bool

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

        """
        return _Extrema.Extrema_EPCOfELPCOfLocateExtPC_IsMin(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_EPCOfELPCOfLocateExtPC_NbExt(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_EPCOfELPCOfLocateExtPC_Perform(self, *args)

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

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

        Return
        -------
        Extrema_POnCurv

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

        """
        return _Extrema.Extrema_EPCOfELPCOfLocateExtPC_Point(self, *args)

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

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

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_EPCOfELPCOfLocateExtPC_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_EPCOfELPCOfLocateExtPC

# Register Extrema_EPCOfELPCOfLocateExtPC in _Extrema:
_Extrema.Extrema_EPCOfELPCOfLocateExtPC_swigregister(Extrema_EPCOfELPCOfLocateExtPC)
class Extrema_EPCOfELPCOfLocateExtPC2d(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
        NbU: int
        TolU: float
        TolF: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u)=distance(P,C(u)) has an extremum when g(u)=dF/du=0. The algorithm searches all the zeros inside the definition range of the curve. NbU is used to locate the close points to find the zeros. Tol and TolU are used to decide to stop the iterations according to the following condition: if n is the number of iterations, abs(Un-Un-1) < TolU and abs(F(Un)-F(Un-1)) < Tol.

        Parameters
        ----------
        P: gp_Pnt2d
        C: Adaptor2d_Curve2d
        NbU: int
        Umin: float
        Usup: float
        TolU: float
        TolF: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u)=distance(P,C(u)) has an extremum when g(u)=dF/du=0. The algorithm searches all the zeros inside the definition range of the curve. NbU is used to locate the close points to find the zeros. Zeros are searched between umin and usup. Tol and TolU are used to decide to stop the iterations according to the following condition: if n is the number of iterations, abs(Un-Un-1) < TolU and abs(F(Un)-F(Un-1)) < Tol.

        """
        _Extrema.Extrema_EPCOfELPCOfLocateExtPC2d_swiginit(self, _Extrema.new_Extrema_EPCOfELPCOfLocateExtPC2d(*args))

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

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        NbU: int
        TolU: float
        TolF: float

        Return
        -------
        None

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

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        NbU: int
        Umin: float
        Usup: float
        TolU: float
        TolF: float

        Return
        -------
        None

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

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

        Return
        -------
        None

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

        Parameters
        ----------
        NbU: int
        Umin: float
        Usup: float
        TolU: float
        TolF: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_EPCOfELPCOfLocateExtPC2d_Initialize(self, *args)

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

        Description
        -----------
        True if the distances are found.

        """
        return _Extrema.Extrema_EPCOfELPCOfLocateExtPC2d_IsDone(self, *args)

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

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

        Return
        -------
        bool

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

        """
        return _Extrema.Extrema_EPCOfELPCOfLocateExtPC2d_IsMin(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_EPCOfELPCOfLocateExtPC2d_NbExt(self, *args)

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

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

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_EPCOfELPCOfLocateExtPC2d_Perform(self, *args)

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

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

        Return
        -------
        Extrema_POnCurv2d

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

        """
        return _Extrema.Extrema_EPCOfELPCOfLocateExtPC2d_Point(self, *args)

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

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

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_EPCOfELPCOfLocateExtPC2d_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_EPCOfELPCOfLocateExtPC2d

# Register Extrema_EPCOfELPCOfLocateExtPC2d in _Extrema:
_Extrema.Extrema_EPCOfELPCOfLocateExtPC2d_swigregister(Extrema_EPCOfELPCOfLocateExtPC2d)
class Extrema_EPCOfExtPC(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_Pnt
        C: Adaptor3d_Curve
        NbU: int
        TolU: float
        TolF: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u)=distance(P,C(u)) has an extremum when g(u)=dF/du=0. The algorithm searches all the zeros inside the definition range of the curve. NbU is used to locate the close points to find the zeros. Tol and TolU are used to decide to stop the iterations according to the following condition: if n is the number of iterations, abs(Un-Un-1) < TolU and abs(F(Un)-F(Un-1)) < Tol.

        Parameters
        ----------
        P: gp_Pnt
        C: Adaptor3d_Curve
        NbU: int
        Umin: float
        Usup: float
        TolU: float
        TolF: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u)=distance(P,C(u)) has an extremum when g(u)=dF/du=0. The algorithm searches all the zeros inside the definition range of the curve. NbU is used to locate the close points to find the zeros. Zeros are searched between umin and usup. Tol and TolU are used to decide to stop the iterations according to the following condition: if n is the number of iterations, abs(Un-Un-1) < TolU and abs(F(Un)-F(Un-1)) < Tol.

        """
        _Extrema.Extrema_EPCOfExtPC_swiginit(self, _Extrema.new_Extrema_EPCOfExtPC(*args))

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        NbU: int
        TolU: float
        TolF: float

        Return
        -------
        None

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        NbU: int
        Umin: float
        Usup: float
        TolU: float
        TolF: float

        Return
        -------
        None

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        None

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

        Parameters
        ----------
        NbU: int
        Umin: float
        Usup: float
        TolU: float
        TolF: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_EPCOfExtPC_Initialize(self, *args)

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

        Description
        -----------
        True if the distances are found.

        """
        return _Extrema.Extrema_EPCOfExtPC_IsDone(self, *args)

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

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

        Return
        -------
        bool

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

        """
        return _Extrema.Extrema_EPCOfExtPC_IsMin(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_EPCOfExtPC_NbExt(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_EPCOfExtPC_Perform(self, *args)

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

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

        Return
        -------
        Extrema_POnCurv

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

        """
        return _Extrema.Extrema_EPCOfExtPC_Point(self, *args)

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

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

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_EPCOfExtPC_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_EPCOfExtPC

# Register Extrema_EPCOfExtPC in _Extrema:
_Extrema.Extrema_EPCOfExtPC_swigregister(Extrema_EPCOfExtPC)
class Extrema_EPCOfExtPC2d(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
        NbU: int
        TolU: float
        TolF: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u)=distance(P,C(u)) has an extremum when g(u)=dF/du=0. The algorithm searches all the zeros inside the definition range of the curve. NbU is used to locate the close points to find the zeros. Tol and TolU are used to decide to stop the iterations according to the following condition: if n is the number of iterations, abs(Un-Un-1) < TolU and abs(F(Un)-F(Un-1)) < Tol.

        Parameters
        ----------
        P: gp_Pnt2d
        C: Adaptor2d_Curve2d
        NbU: int
        Umin: float
        Usup: float
        TolU: float
        TolF: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u)=distance(P,C(u)) has an extremum when g(u)=dF/du=0. The algorithm searches all the zeros inside the definition range of the curve. NbU is used to locate the close points to find the zeros. Zeros are searched between umin and usup. Tol and TolU are used to decide to stop the iterations according to the following condition: if n is the number of iterations, abs(Un-Un-1) < TolU and abs(F(Un)-F(Un-1)) < Tol.

        """
        _Extrema.Extrema_EPCOfExtPC2d_swiginit(self, _Extrema.new_Extrema_EPCOfExtPC2d(*args))

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

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        NbU: int
        TolU: float
        TolF: float

        Return
        -------
        None

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

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        NbU: int
        Umin: float
        Usup: float
        TolU: float
        TolF: float

        Return
        -------
        None

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

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

        Return
        -------
        None

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

        Parameters
        ----------
        NbU: int
        Umin: float
        Usup: float
        TolU: float
        TolF: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_EPCOfExtPC2d_Initialize(self, *args)

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

        Description
        -----------
        True if the distances are found.

        """
        return _Extrema.Extrema_EPCOfExtPC2d_IsDone(self, *args)

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

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

        Return
        -------
        bool

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

        """
        return _Extrema.Extrema_EPCOfExtPC2d_IsMin(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_EPCOfExtPC2d_NbExt(self, *args)

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

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

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_EPCOfExtPC2d_Perform(self, *args)

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

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

        Return
        -------
        Extrema_POnCurv2d

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

        """
        return _Extrema.Extrema_EPCOfExtPC2d_Point(self, *args)

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

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

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_EPCOfExtPC2d_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_EPCOfExtPC2d

# Register Extrema_EPCOfExtPC2d in _Extrema:
_Extrema.Extrema_EPCOfExtPC2d_swigregister(Extrema_EPCOfExtPC2d)
class Extrema_ExtCC(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
        ----------
        TolC1: float (optional, default to 1.0e-10)
        TolC2: float (optional, default to 1.0e-10)

        Return
        -------
        None

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

        Parameters
        ----------
        C1: Adaptor3d_Curve
        C2: Adaptor3d_Curve
        TolC1: float (optional, default to 1.0e-10)
        TolC2: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances.

        Parameters
        ----------
        C1: Adaptor3d_Curve
        C2: Adaptor3d_Curve
        U1: float
        U2: float
        V1: float
        V2: float
        TolC1: float (optional, default to 1.0e-10)
        TolC2: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances.

        """
        _Extrema.Extrema_ExtCC_swiginit(self, _Extrema.new_Extrema_ExtCC(*args))

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

        Description
        -----------
        Get flag for single extrema computation. Works on parametric solver only.

        """
        return _Extrema.Extrema_ExtCC_GetSingleSolutionFlag(self, *args)

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

        Parameters
        ----------
        C1: Adaptor3d_Curve
        C2: Adaptor3d_Curve
        TolC1: float (optional, default to 1.0e-10)
        TolC2: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        Initializes but does not perform algorithm.

        Parameters
        ----------
        C1: Adaptor3d_Curve
        C2: Adaptor3d_Curve
        U1: float
        U2: float
        V1: float
        V2: float
        TolC1: float (optional, default to 1.0e-10)
        TolC2: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        Initializes but does not perform algorithm.

        """
        return _Extrema.Extrema_ExtCC_Initialize(self, *args)

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

        Description
        -----------
        Returns True if the distances are found.

        """
        return _Extrema.Extrema_ExtCC_IsDone(self, *args)

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

        Description
        -----------
        Returns True if the two curves are parallel.

        """
        return _Extrema.Extrema_ExtCC_IsParallel(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ExtCC_NbExt(self, *args)

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

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

        """
        return _Extrema.Extrema_ExtCC_Perform(self, *args)

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

        Parameters
        ----------
        N: int
        P1: Extrema_POnCurv
        P2: Extrema_POnCurv

        Return
        -------
        None

        Description
        -----------
        Returns the points of the Nth extremum distance. P1 is on the first curve, P2 on the second one.

        """
        return _Extrema.Extrema_ExtCC_Points(self, *args)

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

        Parameters
        ----------
        theRank: int
        C: Adaptor3d_Curve

        Return
        -------
        None

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

        Parameters
        ----------
        theRank: int
        C: Adaptor3d_Curve
        Uinf: float
        Usup: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_ExtCC_SetCurve(self, *args)

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

        Parameters
        ----------
        theRank: int
        Uinf: float
        Usup: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_ExtCC_SetRange(self, *args)

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

        Parameters
        ----------
        theSingleSolutionFlag: bool

        Return
        -------
        None

        Description
        -----------
        Set flag for single extrema computation. Works on parametric solver only.

        """
        return _Extrema.Extrema_ExtCC_SetSingleSolutionFlag(self, *args)

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

        Parameters
        ----------
        theRank: int
        Tol: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_ExtCC_SetTolerance(self, *args)

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

        Parameters
        ----------
        N: int (optional, default to 1)

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_ExtCC_SquareDistance(self, *args)

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

        Parameters
        ----------
        P11: gp_Pnt
        P12: gp_Pnt
        P21: gp_Pnt
        P22: gp_Pnt

        Return
        -------
        dist11: float
        distP12: float
        distP21: float
        distP22: float

        Description
        -----------
        if the curve is a trimmed curve, dist11 is a square distance between the point on C1 of parameter FirstParameter and the point of parameter FirstParameter on C2.

        """
        return _Extrema.Extrema_ExtCC_TrimmedSquareDistances(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ExtCC

# Register Extrema_ExtCC in _Extrema:
_Extrema.Extrema_ExtCC_swigregister(Extrema_ExtCC)
class Extrema_ExtCC2d(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
        ----------
        C1: Adaptor2d_Curve2d
        C2: Adaptor2d_Curve2d
        TolC1: float (optional, default to 1.0e-10)
        TolC2: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances.

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        C2: Adaptor2d_Curve2d
        U1: float
        U2: float
        V1: float
        V2: float
        TolC1: float (optional, default to 1.0e-10)
        TolC2: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances.

        """
        _Extrema.Extrema_ExtCC2d_swiginit(self, _Extrema.new_Extrema_ExtCC2d(*args))

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

        Description
        -----------
        Get flag for single extrema computation. Works on parametric solver only.

        """
        return _Extrema.Extrema_ExtCC2d_GetSingleSolutionFlag(self, *args)

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

        Parameters
        ----------
        C2: Adaptor2d_Curve2d
        V1: float
        V2: float
        TolC1: float (optional, default to 1.0e-10)
        TolC2: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        initializes the fields.

        """
        return _Extrema.Extrema_ExtCC2d_Initialize(self, *args)

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

        Description
        -----------
        Returns True if the distances are found.

        """
        return _Extrema.Extrema_ExtCC2d_IsDone(self, *args)

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

        Description
        -----------
        Returns True if the two curves are parallel.

        """
        return _Extrema.Extrema_ExtCC2d_IsParallel(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ExtCC2d_NbExt(self, *args)

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

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        U1: float
        U2: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_ExtCC2d_Perform(self, *args)

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

        Parameters
        ----------
        N: int
        P1: Extrema_POnCurv2d
        P2: Extrema_POnCurv2d

        Return
        -------
        None

        Description
        -----------
        Returns the points of the Nth extremum distance. P1 is on the first curve, P2 on the second one.

        """
        return _Extrema.Extrema_ExtCC2d_Points(self, *args)

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

        Parameters
        ----------
        theSingleSolutionFlag: bool

        Return
        -------
        None

        Description
        -----------
        Set flag for single extrema computation. Works on parametric solver only.

        """
        return _Extrema.Extrema_ExtCC2d_SetSingleSolutionFlag(self, *args)

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

        Parameters
        ----------
        N: int (optional, default to 1)

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_ExtCC2d_SquareDistance(self, *args)

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

        Parameters
        ----------
        P11: gp_Pnt2d
        P12: gp_Pnt2d
        P21: gp_Pnt2d
        P22: gp_Pnt2d

        Return
        -------
        dist11: float
        distP12: float
        distP21: float
        distP22: float

        Description
        -----------
        if the curve is a trimmed curve, dist11 is a square distance between the point on C1 of parameter FirstParameter and the point of parameter FirstParameter on C2.

        """
        return _Extrema.Extrema_ExtCC2d_TrimmedSquareDistances(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ExtCC2d

# Register Extrema_ExtCC2d in _Extrema:
_Extrema.Extrema_ExtCC2d_swigregister(Extrema_ExtCC2d)
class Extrema_ExtCS(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
        ----------
        C: Adaptor3d_Curve
        S: Adaptor3d_Surface
        TolC: float
        TolS: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances between C and S.

        Parameters
        ----------
        C: Adaptor3d_Curve
        S: Adaptor3d_Surface
        UCinf: float
        UCsup: float
        Uinf: float
        Usup: float
        Vinf: float
        Vsup: float
        TolC: float
        TolS: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances between C and S. UCinf and UCmax are the start and end parameters of the curve.

        """
        _Extrema.Extrema_ExtCS_swiginit(self, _Extrema.new_Extrema_ExtCS(*args))

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

        Parameters
        ----------
        S: Adaptor3d_Surface
        TolC: float
        TolS: float

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the algorithm.

        Parameters
        ----------
        S: Adaptor3d_Surface
        Uinf: float
        Usup: float
        Vinf: float
        Vsup: float
        TolC: float
        TolS: float

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the algorithm.

        """
        return _Extrema.Extrema_ExtCS_Initialize(self, *args)

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

        Description
        -----------
        Returns True if the distances are found.

        """
        return _Extrema.Extrema_ExtCS_IsDone(self, *args)

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

        Description
        -----------
        Returns True if the curve is on a parallel surface.

        """
        return _Extrema.Extrema_ExtCS_IsParallel(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ExtCS_NbExt(self, *args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        Uinf: float
        Usup: float

        Return
        -------
        None

        Description
        -----------
        Computes the distances. An exception is raised if the fields have not been initialized.

        """
        return _Extrema.Extrema_ExtCS_Perform(self, *args)

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

        Parameters
        ----------
        N: int
        P1: Extrema_POnCurv
        P2: Extrema_POnSurf

        Return
        -------
        None

        Description
        -----------
        Returns the point of the Nth resulting distance.

        """
        return _Extrema.Extrema_ExtCS_Points(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Returns the value of the Nth resulting square distance.

        """
        return _Extrema.Extrema_ExtCS_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ExtCS

# Register Extrema_ExtCS in _Extrema:
_Extrema.Extrema_ExtCS_swigregister(Extrema_ExtCS)
class Extrema_ExtElC(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
        ----------
        C1: gp_Lin
        C2: gp_Lin
        AngTol: float

        Return
        -------
        None

        Description
        -----------
        Calculates the distance between two lines. AngTol is used to test if the lines are parallel: Angle(C1,C2) < AngTol.

        Parameters
        ----------
        C1: gp_Lin
        C2: gp_Circ
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Calculates the distance between a line and a circle.

        Parameters
        ----------
        C1: gp_Lin
        C2: gp_Elips

        Return
        -------
        None

        Description
        -----------
        Calculates the distance between a line and an ellipse.

        Parameters
        ----------
        C1: gp_Lin
        C2: gp_Hypr

        Return
        -------
        None

        Description
        -----------
        Calculates the distance between a line and a hyperbola.

        Parameters
        ----------
        C1: gp_Lin
        C2: gp_Parab

        Return
        -------
        None

        Description
        -----------
        Calculates the distance between a line and a parabola.

        Parameters
        ----------
        C1: gp_Circ
        C2: gp_Circ

        Return
        -------
        None

        Description
        -----------
        Calculates the distance between two circles. The circles can be parallel or identical.

        """
        _Extrema.Extrema_ExtElC_swiginit(self, _Extrema.new_Extrema_ExtElC(*args))

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

        Description
        -----------
        Returns True if the distances are found.

        """
        return _Extrema.Extrema_ExtElC_IsDone(self, *args)

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

        Description
        -----------
        Returns True if the two curves are parallel.

        """
        return _Extrema.Extrema_ExtElC_IsParallel(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ExtElC_NbExt(self, *args)

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

        Parameters
        ----------
        N: int
        P1: Extrema_POnCurv
        P2: Extrema_POnCurv

        Return
        -------
        None

        Description
        -----------
        Returns the points of the Nth extremum distance. P1 is on the first curve, P2 on the second one.

        """
        return _Extrema.Extrema_ExtElC_Points(self, *args)

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

        Parameters
        ----------
        N: int (optional, default to 1)

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_ExtElC_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ExtElC

# Register Extrema_ExtElC in _Extrema:
_Extrema.Extrema_ExtElC_swigregister(Extrema_ExtElC)
class Extrema_ExtElC2d(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
        ----------
        C1: gp_Lin2d
        C2: gp_Lin2d
        AngTol: float

        Return
        -------
        None

        Description
        -----------
        Calculates the distance between two lines. AngTol is used to test if the lines are parallel: Angle(C1,C2) < AngTol.

        Parameters
        ----------
        C1: gp_Lin2d
        C2: gp_Circ2d
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Calculates the distance between a line and a circle.

        Parameters
        ----------
        C1: gp_Lin2d
        C2: gp_Elips2d

        Return
        -------
        None

        Description
        -----------
        Calculates the distance between a line and an ellipse.

        Parameters
        ----------
        C1: gp_Lin2d
        C2: gp_Hypr2d

        Return
        -------
        None

        Description
        -----------
        Calculates the distance between a line and a hyperbola.

        Parameters
        ----------
        C1: gp_Lin2d
        C2: gp_Parab2d

        Return
        -------
        None

        Description
        -----------
        Calculates the distance between a line and a parabola.

        Parameters
        ----------
        C1: gp_Circ2d
        C2: gp_Circ2d

        Return
        -------
        None

        Description
        -----------
        Calculates the distance between two circles. The circles can be parallel or identical.

        Parameters
        ----------
        C1: gp_Circ2d
        C2: gp_Elips2d

        Return
        -------
        None

        Description
        -----------
        Calculates the distance between a circle and an ellipse.

        Parameters
        ----------
        C1: gp_Circ2d
        C2: gp_Hypr2d

        Return
        -------
        None

        Description
        -----------
        Calculates the distance between a circle and a hyperbola.

        Parameters
        ----------
        C1: gp_Circ2d
        C2: gp_Parab2d

        Return
        -------
        None

        Description
        -----------
        Calculates the distance between a circle and a parabola.

        """
        _Extrema.Extrema_ExtElC2d_swiginit(self, _Extrema.new_Extrema_ExtElC2d(*args))

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

        Description
        -----------
        Returns True if the distances are found.

        """
        return _Extrema.Extrema_ExtElC2d_IsDone(self, *args)

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

        Description
        -----------
        Returns True if the two curves are parallel.

        """
        return _Extrema.Extrema_ExtElC2d_IsParallel(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ExtElC2d_NbExt(self, *args)

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

        Parameters
        ----------
        N: int
        P1: Extrema_POnCurv2d
        P2: Extrema_POnCurv2d

        Return
        -------
        None

        Description
        -----------
        Returns the points of the Nth extremum distance. P1 is on the first curve, P2 on the second one.

        """
        return _Extrema.Extrema_ExtElC2d_Points(self, *args)

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

        Parameters
        ----------
        N: int (optional, default to 1)

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_ExtElC2d_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ExtElC2d

# Register Extrema_ExtElC2d in _Extrema:
_Extrema.Extrema_ExtElC2d_swigregister(Extrema_ExtElC2d)
class Extrema_ExtElCS(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
        ----------
        C: gp_Lin
        S: gp_Pln

        Return
        -------
        None

        Description
        -----------
        Calculates the distances between a line and a plane. The line can be on the plane or on a parallel plane.

        Parameters
        ----------
        C: gp_Lin
        S: gp_Cylinder

        Return
        -------
        None

        Description
        -----------
        Calculates the distances between a line and a cylinder.

        Parameters
        ----------
        C: gp_Lin
        S: gp_Cone

        Return
        -------
        None

        Description
        -----------
        Calculates the distances between a line and a cone.

        Parameters
        ----------
        C: gp_Lin
        S: gp_Sphere

        Return
        -------
        None

        Description
        -----------
        Calculates the distances between a line and a sphere.

        Parameters
        ----------
        C: gp_Lin
        S: gp_Torus

        Return
        -------
        None

        Description
        -----------
        Calculates the distances between a line and a torus.

        Parameters
        ----------
        C: gp_Circ
        S: gp_Pln

        Return
        -------
        None

        Description
        -----------
        Calculates the distances between a circle and a plane.

        Parameters
        ----------
        C: gp_Circ
        S: gp_Cylinder

        Return
        -------
        None

        Description
        -----------
        Calculates the distances between a circle and a cylinder.

        Parameters
        ----------
        C: gp_Circ
        S: gp_Cone

        Return
        -------
        None

        Description
        -----------
        Calculates the distances between a circle and a cone.

        Parameters
        ----------
        C: gp_Circ
        S: gp_Sphere

        Return
        -------
        None

        Description
        -----------
        Calculates the distances between a circle and a sphere.

        Parameters
        ----------
        C: gp_Circ
        S: gp_Torus

        Return
        -------
        None

        Description
        -----------
        Calculates the distances between a circle and a torus.

        Parameters
        ----------
        C: gp_Hypr
        S: gp_Pln

        Return
        -------
        None

        Description
        -----------
        Calculates the distances between a hyperbola and a plane.

        """
        _Extrema.Extrema_ExtElCS_swiginit(self, _Extrema.new_Extrema_ExtElCS(*args))

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

        Description
        -----------
        Returns True if the distances are found.

        """
        return _Extrema.Extrema_ExtElCS_IsDone(self, *args)

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

        Description
        -----------
        Returns True if the curve is on a parallel surface.

        """
        return _Extrema.Extrema_ExtElCS_IsParallel(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ExtElCS_NbExt(self, *args)

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

        Parameters
        ----------
        C: gp_Lin
        S: gp_Pln

        Return
        -------
        None

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

        Parameters
        ----------
        C: gp_Lin
        S: gp_Cylinder

        Return
        -------
        None

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

        Parameters
        ----------
        C: gp_Lin
        S: gp_Cone

        Return
        -------
        None

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

        Parameters
        ----------
        C: gp_Lin
        S: gp_Sphere

        Return
        -------
        None

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

        Parameters
        ----------
        C: gp_Lin
        S: gp_Torus

        Return
        -------
        None

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

        Parameters
        ----------
        C: gp_Circ
        S: gp_Pln

        Return
        -------
        None

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

        Parameters
        ----------
        C: gp_Circ
        S: gp_Cylinder

        Return
        -------
        None

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

        Parameters
        ----------
        C: gp_Circ
        S: gp_Cone

        Return
        -------
        None

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

        Parameters
        ----------
        C: gp_Circ
        S: gp_Sphere

        Return
        -------
        None

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

        Parameters
        ----------
        C: gp_Circ
        S: gp_Torus

        Return
        -------
        None

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

        Parameters
        ----------
        C: gp_Hypr
        S: gp_Pln

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_ExtElCS_Perform(self, *args)

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

        Parameters
        ----------
        N: int
        P1: Extrema_POnCurv
        P2: Extrema_POnSurf

        Return
        -------
        None

        Description
        -----------
        Returns the points of the Nth extremum distance. P1 is on the curve, P2 on the surface.

        """
        return _Extrema.Extrema_ExtElCS_Points(self, *args)

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

        Parameters
        ----------
        N: int (optional, default to 1)

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_ExtElCS_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ExtElCS

# Register Extrema_ExtElCS in _Extrema:
_Extrema.Extrema_ExtElCS_swigregister(Extrema_ExtElCS)
class Extrema_ExtElSS(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
        ----------
        S1: gp_Pln
        S2: gp_Pln

        Return
        -------
        None

        Description
        -----------
        Calculates the distances between 2 planes. These planes can be parallel.

        Parameters
        ----------
        S1: gp_Pln
        S2: gp_Sphere

        Return
        -------
        None

        Description
        -----------
        Calculates the distances between a plane and a sphere.

        Parameters
        ----------
        S1: gp_Sphere
        S2: gp_Sphere

        Return
        -------
        None

        Description
        -----------
        Calculates the distances between 2 spheres. These spheres can be parallel.

        Parameters
        ----------
        S1: gp_Sphere
        S2: gp_Cylinder

        Return
        -------
        None

        Description
        -----------
        Calculates the distances between a sphere and a cylinder.

        Parameters
        ----------
        S1: gp_Sphere
        S2: gp_Cone

        Return
        -------
        None

        Description
        -----------
        Calculates the distances between a sphere and a cone.

        Parameters
        ----------
        S1: gp_Sphere
        S2: gp_Torus

        Return
        -------
        None

        Description
        -----------
        Calculates the distances between a sphere and a torus.

        """
        _Extrema.Extrema_ExtElSS_swiginit(self, _Extrema.new_Extrema_ExtElSS(*args))

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

        Description
        -----------
        Returns True if the distances are found.

        """
        return _Extrema.Extrema_ExtElSS_IsDone(self, *args)

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

        Description
        -----------
        Returns True if the two surfaces are parallel.

        """
        return _Extrema.Extrema_ExtElSS_IsParallel(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ExtElSS_NbExt(self, *args)

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

        Parameters
        ----------
        S1: gp_Pln
        S2: gp_Pln

        Return
        -------
        None

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

        Parameters
        ----------
        S1: gp_Pln
        S2: gp_Sphere

        Return
        -------
        None

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

        Parameters
        ----------
        S1: gp_Sphere
        S2: gp_Sphere

        Return
        -------
        None

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

        Parameters
        ----------
        S1: gp_Sphere
        S2: gp_Cylinder

        Return
        -------
        None

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

        Parameters
        ----------
        S1: gp_Sphere
        S2: gp_Cone

        Return
        -------
        None

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

        Parameters
        ----------
        S1: gp_Sphere
        S2: gp_Torus

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_ExtElSS_Perform(self, *args)

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

        Parameters
        ----------
        N: int
        P1: Extrema_POnSurf
        P2: Extrema_POnSurf

        Return
        -------
        None

        Description
        -----------
        Returns the points for the Nth resulting distance. P1 is on the first surface, P2 on the second one.

        """
        return _Extrema.Extrema_ExtElSS_Points(self, *args)

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

        Parameters
        ----------
        N: int (optional, default to 1)

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_ExtElSS_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ExtElSS

# Register Extrema_ExtElSS in _Extrema:
_Extrema.Extrema_ExtElSS_swigregister(Extrema_ExtElSS)
class Extrema_ExtPC(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_Pnt
        C: Adaptor3d_Curve
        Uinf: float
        Usup: float
        TolF: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u)=distance(P,C(u)) has an extremum when g(u)=dF/du=0. The algorithm searches all the zeros inside the definition range of the curve. Zeros are searched between uinf and usup. Tol is used to decide to stop the iterations according to the following condition: if n is the number of iterations, the algorithm stops when abs(F(Un)-F(Un-1)) < Tol.

        Parameters
        ----------
        P: gp_Pnt
        C: Adaptor3d_Curve
        TolF: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u)=distance(P,C(u)) has an extremum when g(u)=dF/du=0. The algorithm searches all the zeros inside the definition range of the curve. Tol is used to decide to stop the iterations according to the following condition: if n is the number of iterations, the algorithm stops when abs(F(Un)-F(Un-1)) < Tol.

        """
        _Extrema.Extrema_ExtPC_swiginit(self, _Extrema.new_Extrema_ExtPC(*args))

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        Uinf: float
        Usup: float
        TolF: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        initializes the fields of the algorithm.

        """
        return _Extrema.Extrema_ExtPC_Initialize(self, *args)

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

        Description
        -----------
        True if the distances are found.

        """
        return _Extrema.Extrema_ExtPC_IsDone(self, *args)

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

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

        Return
        -------
        bool

        Description
        -----------
        Returns True if the <N>th extremum distance is a minimum.

        """
        return _Extrema.Extrema_ExtPC_IsMin(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ExtPC_NbExt(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt

        Return
        -------
        None

        Description
        -----------
        An exception is raised if the fields have not been initialized.

        """
        return _Extrema.Extrema_ExtPC_Perform(self, *args)

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

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

        Return
        -------
        Extrema_POnCurv

        Description
        -----------
        Returns the point of the <N>th extremum distance.

        """
        return _Extrema.Extrema_ExtPC_Point(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Returns the value of the <N>th extremum square distance.

        """
        return _Extrema.Extrema_ExtPC_SquareDistance(self, *args)

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

        Parameters
        ----------
        P1: gp_Pnt
        P2: gp_Pnt

        Return
        -------
        dist1: float
        dist2: float

        Description
        -----------
        if the curve is a trimmed curve, dist1 is a square distance between <P> and the point of parameter FirstParameter <P1> and dist2 is a square distance between <P> and the point of parameter LastParameter <P2>.

        """
        return _Extrema.Extrema_ExtPC_TrimmedSquareDistances(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ExtPC

# Register Extrema_ExtPC in _Extrema:
_Extrema.Extrema_ExtPC_swigregister(Extrema_ExtPC)
class Extrema_ExtPC2d(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
        Uinf: float
        Usup: float
        TolF: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u)=distance(P,C(u)) has an extremum when g(u)=dF/du=0. The algorithm searches all the zeros inside the definition range of the curve. Zeros are searched between uinf and usup. Tol is used to decide to stop the iterations according to the following condition: if n is the number of iterations, the algorithm stops when abs(F(Un)-F(Un-1)) < Tol.

        Parameters
        ----------
        P: gp_Pnt2d
        C: Adaptor2d_Curve2d
        TolF: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u)=distance(P,C(u)) has an extremum when g(u)=dF/du=0. The algorithm searches all the zeros inside the definition range of the curve. Tol is used to decide to stop the iterations according to the following condition: if n is the number of iterations, the algorithm stops when abs(F(Un)-F(Un-1)) < Tol.

        """
        _Extrema.Extrema_ExtPC2d_swiginit(self, _Extrema.new_Extrema_ExtPC2d(*args))

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

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        Uinf: float
        Usup: float
        TolF: float (optional, default to 1.0e-10)

        Return
        -------
        None

        Description
        -----------
        initializes the fields of the algorithm.

        """
        return _Extrema.Extrema_ExtPC2d_Initialize(self, *args)

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

        Description
        -----------
        True if the distances are found.

        """
        return _Extrema.Extrema_ExtPC2d_IsDone(self, *args)

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

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

        Return
        -------
        bool

        Description
        -----------
        Returns True if the <N>th extremum distance is a minimum.

        """
        return _Extrema.Extrema_ExtPC2d_IsMin(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ExtPC2d_NbExt(self, *args)

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

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

        Return
        -------
        None

        Description
        -----------
        An exception is raised if the fields have not been initialized.

        """
        return _Extrema.Extrema_ExtPC2d_Perform(self, *args)

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

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

        Return
        -------
        Extrema_POnCurv2d

        Description
        -----------
        Returns the point of the <N>th extremum distance.

        """
        return _Extrema.Extrema_ExtPC2d_Point(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Returns the value of the <N>th extremum square distance.

        """
        return _Extrema.Extrema_ExtPC2d_SquareDistance(self, *args)

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

        Parameters
        ----------
        P1: gp_Pnt2d
        P2: gp_Pnt2d

        Return
        -------
        dist1: float
        dist2: float

        Description
        -----------
        if the curve is a trimmed curve, dist1 is a square distance between <P> and the point of parameter FirstParameter <P1> and dist2 is a square distance between <P> and the point of parameter LastParameter <P2>.

        """
        return _Extrema.Extrema_ExtPC2d_TrimmedSquareDistances(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ExtPC2d

# Register Extrema_ExtPC2d in _Extrema:
_Extrema.Extrema_ExtPC2d_swigregister(Extrema_ExtPC2d)
class Extrema_ExtPElC(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_Pnt
        C: gp_Lin
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

        Description
        -----------
        Calculates the extremum distance between the point P and the segment [Uinf,Usup] of the line C.

        Parameters
        ----------
        P: gp_Pnt
        C: gp_Circ
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

        Description
        -----------
        Calculates the 2 extremum distances between the point P and the segment [Uinf,Usup] of the circle C. Tol is used to determine if P is on the axis of the circle or if an extremum is on an endpoint of the segment. If P is on the axis of the circle, there are infinite solution then IsDone(me)=False. The conditions on the Uinf and Usup are: 0. <= Uinf <= 2.*PI and Usup > Uinf. If Usup > Uinf + 2.*PI, then only the solutions in the range [Uinf,Uinf+2.*PI[ are computed.

        Parameters
        ----------
        P: gp_Pnt
        C: gp_Elips
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

        Description
        -----------
        Calculates the 4 extremum distances between the point P and the segment [Uinf,Usup] of the ellipse C. Tol is used to determine if the point is on the axis of the ellipse and if the major radius is equal to the minor radius or if an extremum is on an endpoint of the segment. If P is on the axis of the ellipse, there are infinite solution then IsDone(me)=False. The conditions on the Uinf and Usup are: 0. <= Uinf <= 2.*PI and Usup > Uinf. If Usup > Uinf + 2.*PI, then only the solutions in the range [Uinf,Uinf+2.*PI[ are computed.

        Parameters
        ----------
        P: gp_Pnt
        C: gp_Hypr
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

        Description
        -----------
        Calculates the extremum distances between the point P and the segment [Uinf,Usup] of the hyperbola C. Tol is used to determine if two solutions u and v are identical; the condition is: dist(C(u),C(v)) < Tol.

        Parameters
        ----------
        P: gp_Pnt
        C: gp_Parab
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

        Description
        -----------
        Calculates the 4 extremum distances between the point P and the segment [Uinf,Usup] of the parabola C. Tol is used to determine if two solutions u and v are identical; the condition is: dist(C(u),C(v)) < Tol.

        """
        _Extrema.Extrema_ExtPElC_swiginit(self, _Extrema.new_Extrema_ExtPElC(*args))

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

        Description
        -----------
        True if the distances are found.

        """
        return _Extrema.Extrema_ExtPElC_IsDone(self, *args)

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

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

        Return
        -------
        bool

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

        """
        return _Extrema.Extrema_ExtPElC_IsMin(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ExtPElC_NbExt(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt
        C: gp_Lin
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

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

        Parameters
        ----------
        P: gp_Pnt
        C: gp_Circ
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

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

        Parameters
        ----------
        P: gp_Pnt
        C: gp_Elips
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

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

        Parameters
        ----------
        P: gp_Pnt
        C: gp_Hypr
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

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

        Parameters
        ----------
        P: gp_Pnt
        C: gp_Parab
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_ExtPElC_Perform(self, *args)

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

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

        Return
        -------
        Extrema_POnCurv

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

        """
        return _Extrema.Extrema_ExtPElC_Point(self, *args)

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

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

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_ExtPElC_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ExtPElC

# Register Extrema_ExtPElC in _Extrema:
_Extrema.Extrema_ExtPElC_swigregister(Extrema_ExtPElC)
class Extrema_ExtPElC2d(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: gp_Lin2d
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

        Description
        -----------
        Calculates the extremum distance between the point P and the segment [Uinf,Usup] of the line L.

        Parameters
        ----------
        P: gp_Pnt2d
        C: gp_Circ2d
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

        Description
        -----------
        Calculates the 2 extremum distances between the point P and the segment [Uinf,Usup] of the circle C. Tol is used to determine if P is on the axis of the circle or if an extremum is on an endpoint of the segment. If P is on the axis of the circle, there are infinite solution then IsDone(me)=False. The conditions on the Uinf and Usup are: 0. <= Uinf <= 2.*PI and Usup > Uinf. If Usup > Uinf + 2.*PI, then only the solutions in the range [Uinf,Uinf+2.*PI[ are computed.

        Parameters
        ----------
        P: gp_Pnt2d
        C: gp_Elips2d
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

        Description
        -----------
        Calculates the 4 extremum distances between the point P and the segment [Uinf,Usup] of the ellipse C. Tol is used to determine if the point is on the axis of the ellipse and if the major radius is equal to the minor radius or if an extremum is on an endpoint of the segment. If P is on the axis of the ellipse, there are infinite solution then IsDone(me)=False. The conditions on the Uinf and Usup are: 0. <= Uinf <= 2.*PI and Usup > Uinf. If Usup > Uinf + 2.*PI, then only the solutions in the range [Uinf,Uinf+2.*PI[ are computed.

        Parameters
        ----------
        P: gp_Pnt2d
        C: gp_Hypr2d
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

        Description
        -----------
        Calculates the extremum distances between the point P and the segment [Uinf,Usup] of the hyperbola C. Tol is used to determine if two solutions u and v are identical; the condition is: dist(C(u),C(v)) < Tol.

        Parameters
        ----------
        P: gp_Pnt2d
        C: gp_Parab2d
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

        Description
        -----------
        Calculates the 4 extremum distances between the point P and the segment [Uinf,Usup] of the parabola C. Tol is used to determine if two solutions u and v are identical; the condition is: dist(C(u),C(v)) < Tol.

        """
        _Extrema.Extrema_ExtPElC2d_swiginit(self, _Extrema.new_Extrema_ExtPElC2d(*args))

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

        Description
        -----------
        True if the distances are found.

        """
        return _Extrema.Extrema_ExtPElC2d_IsDone(self, *args)

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

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

        Return
        -------
        bool

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

        """
        return _Extrema.Extrema_ExtPElC2d_IsMin(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ExtPElC2d_NbExt(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt2d
        L: gp_Lin2d
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

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

        Parameters
        ----------
        P: gp_Pnt2d
        C: gp_Circ2d
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

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

        Parameters
        ----------
        P: gp_Pnt2d
        C: gp_Elips2d
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

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

        Parameters
        ----------
        P: gp_Pnt2d
        C: gp_Hypr2d
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

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

        Parameters
        ----------
        P: gp_Pnt2d
        C: gp_Parab2d
        Tol: float
        Uinf: float
        Usup: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_ExtPElC2d_Perform(self, *args)

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

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

        Return
        -------
        Extrema_POnCurv2d

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

        """
        return _Extrema.Extrema_ExtPElC2d_Point(self, *args)

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

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

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_ExtPElC2d_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ExtPElC2d

# Register Extrema_ExtPElC2d in _Extrema:
_Extrema.Extrema_ExtPElC2d_swigregister(Extrema_ExtPElC2d)
class Extrema_ExtPElS(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_Pnt
        S: gp_Cylinder
        Tol: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances between a point and a cylinder from gp. Tol is used to test if the point is on the axis.

        Parameters
        ----------
        P: gp_Pnt
        S: gp_Pln
        Tol: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances between a point and a plane from gp. Tol is used to test if the point is on the plane.

        Parameters
        ----------
        P: gp_Pnt
        S: gp_Cone
        Tol: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances between a point and a cone from gp. Tol is used to test if the point is at the apex or on the axis.

        Parameters
        ----------
        P: gp_Pnt
        S: gp_Torus
        Tol: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances between a point and a torus from gp. Tol is used to test if the point is on the axis.

        Parameters
        ----------
        P: gp_Pnt
        S: gp_Sphere
        Tol: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances between a point and a sphere from gp. Tol is used to test if the point is at the center.

        """
        _Extrema.Extrema_ExtPElS_swiginit(self, _Extrema.new_Extrema_ExtPElS(*args))

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

        Description
        -----------
        Returns True if the distances are found.

        """
        return _Extrema.Extrema_ExtPElS_IsDone(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ExtPElS_NbExt(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt
        S: gp_Cylinder
        Tol: float

        Return
        -------
        None

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

        Parameters
        ----------
        P: gp_Pnt
        S: gp_Pln
        Tol: float

        Return
        -------
        None

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

        Parameters
        ----------
        P: gp_Pnt
        S: gp_Cone
        Tol: float

        Return
        -------
        None

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

        Parameters
        ----------
        P: gp_Pnt
        S: gp_Torus
        Tol: float

        Return
        -------
        None

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

        Parameters
        ----------
        P: gp_Pnt
        S: gp_Sphere
        Tol: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_ExtPElS_Perform(self, *args)

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

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

        Return
        -------
        Extrema_POnSurf

        Description
        -----------
        Returns the point of the Nth resulting distance.

        """
        return _Extrema.Extrema_ExtPElS_Point(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Returns the value of the Nth resulting square distance.

        """
        return _Extrema.Extrema_ExtPElS_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ExtPElS

# Register Extrema_ExtPElS in _Extrema:
_Extrema.Extrema_ExtPElS_swigregister(Extrema_ExtPElS)
class Extrema_ExtPExtS(OCC.Core.Standard.Standard_Transient):
    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_Pnt
        S: GeomAdaptor_SurfaceOfLinearExtrusion
        Umin: float
        Usup: float
        Vmin: float
        Vsup: float
        TolU: float
        TolV: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances between a point from gp and a Surface.

        Parameters
        ----------
        P: gp_Pnt
        S: GeomAdaptor_SurfaceOfLinearExtrusion
        TolU: float
        TolV: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances between a point from gp and a Surface.

        """
        _Extrema.Extrema_ExtPExtS_swiginit(self, _Extrema.new_Extrema_ExtPExtS(*args))

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

        Parameters
        ----------
        S: GeomAdaptor_SurfaceOfLinearExtrusion
        Uinf: float
        Usup: float
        Vinf: float
        Vsup: float
        TolU: float
        TolV: float

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the algorithm.

        """
        return _Extrema.Extrema_ExtPExtS_Initialize(self, *args)

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

        Description
        -----------
        Returns True if the distances are found.

        """
        return _Extrema.Extrema_ExtPExtS_IsDone(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ExtPExtS_NbExt(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_ExtPExtS_Perform(self, *args)

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

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

        Return
        -------
        Extrema_POnSurf

        Description
        -----------
        Returns the point of the Nth resulting distance.

        """
        return _Extrema.Extrema_ExtPExtS_Point(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Returns the value of the Nth resulting square distance.

        """
        return _Extrema.Extrema_ExtPExtS_SquareDistance(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ExtPExtS

# Register Extrema_ExtPExtS in _Extrema:
_Extrema.Extrema_ExtPExtS_swigregister(Extrema_ExtPExtS)
class Extrema_ExtPRevS(OCC.Core.Standard.Standard_Transient):
    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_Pnt
        S: GeomAdaptor_SurfaceOfRevolution
        Umin: float
        Usup: float
        Vmin: float
        Vsup: float
        TolU: float
        TolV: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances between a point from gp and a SurfacePtr from Adaptor3d.

        Parameters
        ----------
        P: gp_Pnt
        S: GeomAdaptor_SurfaceOfRevolution
        TolU: float
        TolV: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances between a point from gp and a SurfacePtr from Adaptor3d.

        """
        _Extrema.Extrema_ExtPRevS_swiginit(self, _Extrema.new_Extrema_ExtPRevS(*args))

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

        Parameters
        ----------
        S: GeomAdaptor_SurfaceOfRevolution
        Umin: float
        Usup: float
        Vmin: float
        Vsup: float
        TolU: float
        TolV: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_ExtPRevS_Initialize(self, *args)

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

        Description
        -----------
        Returns True if the distances are found.

        """
        return _Extrema.Extrema_ExtPRevS_IsDone(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ExtPRevS_NbExt(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_ExtPRevS_Perform(self, *args)

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

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

        Return
        -------
        Extrema_POnSurf

        Description
        -----------
        Returns the point of the Nth resulting distance.

        """
        return _Extrema.Extrema_ExtPRevS_Point(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Returns the value of the Nth resulting square distance.

        """
        return _Extrema.Extrema_ExtPRevS_SquareDistance(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ExtPRevS

# Register Extrema_ExtPRevS in _Extrema:
_Extrema.Extrema_ExtPRevS_swigregister(Extrema_ExtPRevS)
class Extrema_ExtPS(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_Pnt
        S: Adaptor3d_Surface
        TolU: float
        TolV: float
        F: Extrema_ExtFlag (optional, default to Extrema_ExtFlag_MINMAX)
        A: Extrema_ExtAlgo (optional, default to Extrema_ExtAlgo_Grad)

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. NbU and NbV are used to locate the close points to find the zeros. They must be great enough such that if there is N extrema, there will be N extrema between P and the grid. TolU et TolV are used to determine the conditions to stop the iterations; at the iteration number n: (Un - Un-1) < TolU and (Vn - Vn-1) < TolV .

        Parameters
        ----------
        P: gp_Pnt
        S: Adaptor3d_Surface
        Uinf: float
        Usup: float
        Vinf: float
        Vsup: float
        TolU: float
        TolV: float
        F: Extrema_ExtFlag (optional, default to Extrema_ExtFlag_MINMAX)
        A: Extrema_ExtAlgo (optional, default to Extrema_ExtAlgo_Grad)

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. NbU and NbV are used to locate the close points to find the zeros. They must be great enough such that if there is N extrema, there will be N extrema between P and the grid. TolU et TolV are used to determine the conditions to stop the iterations; at the iteration number n: (Un - Un-1) < TolU and (Vn - Vn-1) < TolV .

        """
        _Extrema.Extrema_ExtPS_swiginit(self, _Extrema.new_Extrema_ExtPS(*args))

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

        Parameters
        ----------
        S: Adaptor3d_Surface
        Uinf: float
        Usup: float
        Vinf: float
        Vsup: float
        TolU: float
        TolV: float

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the algorithm.

        """
        return _Extrema.Extrema_ExtPS_Initialize(self, *args)

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

        Description
        -----------
        Returns True if the distances are found.

        """
        return _Extrema.Extrema_ExtPS_IsDone(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ExtPS_NbExt(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt

        Return
        -------
        None

        Description
        -----------
        Computes the distances. An exception is raised if the fields have not been initialized.

        """
        return _Extrema.Extrema_ExtPS_Perform(self, *args)

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

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

        Return
        -------
        Extrema_POnSurf

        Description
        -----------
        Returns the point of the Nth resulting distance.

        """
        return _Extrema.Extrema_ExtPS_Point(self, *args)

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

        Parameters
        ----------
        A: Extrema_ExtAlgo

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_ExtPS_SetAlgo(self, *args)

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

        Parameters
        ----------
        F: Extrema_ExtFlag

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_ExtPS_SetFlag(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Returns the value of the Nth resulting square distance.

        """
        return _Extrema.Extrema_ExtPS_SquareDistance(self, *args)

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

        Parameters
        ----------
        PUfVf: gp_Pnt
        PUfVl: gp_Pnt
        PUlVf: gp_Pnt
        PUlVl: gp_Pnt

        Return
        -------
        dUfVf: float
        dUfVl: float
        dUlVf: float
        dUlVl: float

        Description
        -----------
        if the surface is a trimmed surface, dUfVf is a square distance between <P> and the point of parameter FirstUParameter and FirstVParameter <PUfVf>. dUfVl is a square distance between <P> and the point of parameter FirstUParameter and LastVParameter <PUfVl>. dUlVf is a square distance between <P> and the point of parameter LastUParameter and FirstVParameter <PUlVf>. dUlVl is a square distance between <P> and the point of parameter LastUParameter and LastVParameter <PUlVl>.

        """
        return _Extrema.Extrema_ExtPS_TrimmedSquareDistances(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ExtPS

# Register Extrema_ExtPS in _Extrema:
_Extrema.Extrema_ExtPS_swigregister(Extrema_ExtPS)
class Extrema_ExtSS(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
        ----------
        S1: Adaptor3d_Surface
        S2: Adaptor3d_Surface
        TolS1: float
        TolS2: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances between S1 and S2.

        Parameters
        ----------
        S1: Adaptor3d_Surface
        S2: Adaptor3d_Surface
        Uinf1: float
        Usup1: float
        Vinf1: float
        Vsup1: float
        Uinf2: float
        Usup2: float
        Vinf2: float
        Vsup2: float
        TolS1: float
        TolS2: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances between S1 and S2.

        """
        _Extrema.Extrema_ExtSS_swiginit(self, _Extrema.new_Extrema_ExtSS(*args))

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

        Parameters
        ----------
        S2: Adaptor3d_Surface
        Uinf2: float
        Usup2: float
        Vinf2: float
        Vsup2: float
        TolS1: float

        Return
        -------
        None

        Description
        -----------
        Initializes the fields of the algorithm.

        """
        return _Extrema.Extrema_ExtSS_Initialize(self, *args)

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

        Description
        -----------
        Returns True if the distances are found.

        """
        return _Extrema.Extrema_ExtSS_IsDone(self, *args)

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

        Description
        -----------
        Returns True if the surfaces are parallel.

        """
        return _Extrema.Extrema_ExtSS_IsParallel(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_ExtSS_NbExt(self, *args)

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

        Parameters
        ----------
        S1: Adaptor3d_Surface
        Uinf1: float
        Usup1: float
        Vinf1: float
        Vsup1: float
        TolS1: float

        Return
        -------
        None

        Description
        -----------
        Computes the distances. An exception is raised if the fields have not been initialized.

        """
        return _Extrema.Extrema_ExtSS_Perform(self, *args)

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

        Parameters
        ----------
        N: int
        P1: Extrema_POnSurf
        P2: Extrema_POnSurf

        Return
        -------
        None

        Description
        -----------
        Returns the point of the Nth resulting distance.

        """
        return _Extrema.Extrema_ExtSS_Points(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Returns the value of the Nth resulting square distance.

        """
        return _Extrema.Extrema_ExtSS_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_ExtSS

# Register Extrema_ExtSS in _Extrema:
_Extrema.Extrema_ExtSS_swigregister(Extrema_ExtSS)
class Extrema_FuncExtCS(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"""
        Return
        -------
        None

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        S: Adaptor3d_Surface

        Return
        -------
        None

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

        """
        _Extrema.Extrema_FuncExtCS_swiginit(self, _Extrema.new_Extrema_FuncExtCS(*args))

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        S: Adaptor3d_Surface

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_FuncExtCS_Initialize(self, *args)

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

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

        """
        return _Extrema.Extrema_FuncExtCS_NbExt(self, *args)

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

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

        Return
        -------
        Extrema_POnCurv

        Description
        -----------
        Returns the Nth extremum on C.

        """
        return _Extrema.Extrema_FuncExtCS_PointOnCurve(self, *args)

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

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

        Return
        -------
        Extrema_POnSurf

        Description
        -----------
        Return the Nth extremum on S.

        """
        return _Extrema.Extrema_FuncExtCS_PointOnSurface(self, *args)

    def PointsOnCurve(self, *args):
        r"""
        Return
        -------
        Extrema_SequenceOfPOnCurv

        Description
        -----------
        Change Sequence of PointOnCurv.

        """
        return _Extrema.Extrema_FuncExtCS_PointsOnCurve(self, *args)

    def PointsOnSurf(self, *args):
        r"""
        Return
        -------
        Extrema_SequenceOfPOnSurf

        Description
        -----------
        Change Sequence of PointOnSurf.

        """
        return _Extrema.Extrema_FuncExtCS_PointsOnSurf(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Return the value of the Nth distance.

        """
        return _Extrema.Extrema_FuncExtCS_SquareDistance(self, *args)

    def SquareDistances(self, *args):
        r"""
        Return
        -------
        TColStd_SequenceOfReal

        Description
        -----------
        Change Sequence of SquareDistance.

        """
        return _Extrema.Extrema_FuncExtCS_SquareDistances(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_FuncExtCS

# Register Extrema_FuncExtCS in _Extrema:
_Extrema.Extrema_FuncExtCS_swigregister(Extrema_FuncExtCS)
class Extrema_FuncExtSS(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"""
        Return
        -------
        None

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

        Parameters
        ----------
        S1: Adaptor3d_Surface
        S2: Adaptor3d_Surface

        Return
        -------
        None

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

        """
        _Extrema.Extrema_FuncExtSS_swiginit(self, _Extrema.new_Extrema_FuncExtSS(*args))

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

        Parameters
        ----------
        S1: Adaptor3d_Surface
        S2: Adaptor3d_Surface

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_FuncExtSS_Initialize(self, *args)

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

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

        """
        return _Extrema.Extrema_FuncExtSS_NbExt(self, *args)

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

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

        Return
        -------
        Extrema_POnSurf

        Description
        -----------
        Return the Nth extremum on S1.

        """
        return _Extrema.Extrema_FuncExtSS_PointOnS1(self, *args)

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

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

        Return
        -------
        Extrema_POnSurf

        Description
        -----------
        Renvoie le Nieme extremum sur S2.

        """
        return _Extrema.Extrema_FuncExtSS_PointOnS2(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Return the value of the Nth distance.

        """
        return _Extrema.Extrema_FuncExtSS_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_FuncExtSS

# Register Extrema_FuncExtSS in _Extrema:
_Extrema.Extrema_FuncExtSS_swigregister(Extrema_FuncExtSS)
class Extrema_FuncPSDist(OCC.Core.math.math_MultipleVarFunctionWithGradient):
    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
        ----------
        theS: Adaptor3d_Surface
        theP: gp_Pnt

        Return
        -------
        None

        Description
        -----------
        Constructor.

        """
        _Extrema.Extrema_FuncPSDist_swiginit(self, _Extrema.new_Extrema_FuncPSDist(*args))

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

        Parameters
        ----------
        X: math_VectorBase<double >

        Return
        -------
        F: float

        Description
        -----------
        Value.

        """
        return _Extrema.Extrema_FuncPSDist_Value(self, *args)

    __repr__ = _dumps_object

    @methodnotwrapped
    def Gradient(self):
    	pass

    @methodnotwrapped
    def Values(self):
    	pass

    __swig_destroy__ = _Extrema.delete_Extrema_FuncPSDist

# Register Extrema_FuncPSDist in _Extrema:
_Extrema.Extrema_FuncPSDist_swigregister(Extrema_FuncPSDist)
class Extrema_FuncPSNorm(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"""
        Return
        -------
        None

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

        Parameters
        ----------
        P: gp_Pnt
        S: Adaptor3d_Surface

        Return
        -------
        None

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

        """
        _Extrema.Extrema_FuncPSNorm_swiginit(self, _Extrema.new_Extrema_FuncPSNorm(*args))

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

        Parameters
        ----------
        S: Adaptor3d_Surface

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_FuncPSNorm_Initialize(self, *args)

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

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

        """
        return _Extrema.Extrema_FuncPSNorm_NbExt(self, *args)

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

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

        Return
        -------
        Extrema_POnSurf

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

        """
        return _Extrema.Extrema_FuncPSNorm_Point(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_FuncPSNorm_SetPoint(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Return the value of the Nth distance.

        """
        return _Extrema.Extrema_FuncPSNorm_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_FuncPSNorm

# Register Extrema_FuncPSNorm in _Extrema:
_Extrema.Extrema_FuncPSNorm_swigregister(Extrema_FuncPSNorm)
class Extrema_GenExtCS(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
        -----------
        Empty constructor.

        Parameters
        ----------
        C: Adaptor3d_Curve
        S: Adaptor3d_Surface
        NbT: int
        NbU: int
        NbV: int
        Tol1: float
        Tol2: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u,v)=distance(S1(u1,v1),S2(u2,v2)) has an extremum when gradient(F)=0. The algorithm searches all the zeros inside the definition ranges of the surfaces. NbU and NbV are used to locate the close points on the surface and NbT on the curve to find the zeros.

        Parameters
        ----------
        C: Adaptor3d_Curve
        S: Adaptor3d_Surface
        NbT: int
        NbU: int
        NbV: int
        tmin: float
        tsup: float
        Umin: float
        Usup: float
        Vmin: float
        Vsup: float
        Tol1: float
        Tol2: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u,v)=distance(P,S(u,v)) has an extremum when gradient(F)=0. The algorithm searches all the zeros inside the definition ranges of the surface. NbT,NbU and NbV are used to locate the close points to find the zeros.

        """
        _Extrema.Extrema_GenExtCS_swiginit(self, _Extrema.new_Extrema_GenExtCS(*args))

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

        Parameters
        ----------
        S: Adaptor3d_Surface
        NbU: int
        NbV: int
        Tol2: float

        Return
        -------
        None

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

        Parameters
        ----------
        S: Adaptor3d_Surface
        NbU: int
        NbV: int
        Umin: float
        Usup: float
        Vmin: float
        Vsup: float
        Tol2: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_GenExtCS_Initialize(self, *args)

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

        Description
        -----------
        Returns True if the distances are found.

        """
        return _Extrema.Extrema_GenExtCS_IsDone(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_GenExtCS_NbExt(self, *args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        NbT: int
        Tol1: float

        Return
        -------
        None

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        NbT: int
        tmin: float
        tsup: float
        Tol1: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_GenExtCS_Perform(self, *args)

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

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

        Return
        -------
        Extrema_POnCurv

        Description
        -----------
        Returns the point of the Nth resulting distance.

        """
        return _Extrema.Extrema_GenExtCS_PointOnCurve(self, *args)

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

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

        Return
        -------
        Extrema_POnSurf

        Description
        -----------
        Returns the point of the Nth resulting distance.

        """
        return _Extrema.Extrema_GenExtCS_PointOnSurface(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Returns the value of the Nth resulting square distance.

        """
        return _Extrema.Extrema_GenExtCS_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_GenExtCS

# Register Extrema_GenExtCS in _Extrema:
_Extrema.Extrema_GenExtCS_swigregister(Extrema_GenExtCS)
class Extrema_GenExtPS(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
        -----------
        Empty constructor.

        Parameters
        ----------
        P: gp_Pnt
        S: Adaptor3d_Surface
        NbU: int
        NbV: int
        TolU: float
        TolV: float
        F: Extrema_ExtFlag (optional, default to Extrema_ExtFlag_MINMAX)
        A: Extrema_ExtAlgo (optional, default to Extrema_ExtAlgo_Grad)

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u,v)=distance(P,S(u,v)) has an extremum when gradient(F)=0. The algorithm searches all the zeros inside the definition ranges of the surface. NbU and NbV are used to locate the close points to find the zeros. They must be great enough such that if there is N extrema, there will be N extrema between P and the grid. TolU et TolV are used to determine the conditions to stop the iterations; at the iteration number n: (Un - Un-1) < TolU and (Vn - Vn-1) < TolV .

        Parameters
        ----------
        P: gp_Pnt
        S: Adaptor3d_Surface
        NbU: int
        NbV: int
        Umin: float
        Usup: float
        Vmin: float
        Vsup: float
        TolU: float
        TolV: float
        F: Extrema_ExtFlag (optional, default to Extrema_ExtFlag_MINMAX)
        A: Extrema_ExtAlgo (optional, default to Extrema_ExtAlgo_Grad)

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u,v)=distance(P,S(u,v)) has an extremum when gradient(F)=0. The algorithm searches all the zeros inside the definition ranges of the surface. NbU and NbV are used to locate the close points to find the zeros. They must be great enough such that if there is N extrema, there will be N extrema between P and the grid. TolU et TolV are used to determine the conditions to stop the iterations; at the iteration number n: (Un - Un-1) < TolU and (Vn - Vn-1) < TolV .

        """
        _Extrema.Extrema_GenExtPS_swiginit(self, _Extrema.new_Extrema_GenExtPS(*args))

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

        Parameters
        ----------
        S: Adaptor3d_Surface
        NbU: int
        NbV: int
        TolU: float
        TolV: float

        Return
        -------
        None

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

        Parameters
        ----------
        S: Adaptor3d_Surface
        NbU: int
        NbV: int
        Umin: float
        Usup: float
        Vmin: float
        Vsup: float
        TolU: float
        TolV: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_GenExtPS_Initialize(self, *args)

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

        Description
        -----------
        Returns True if the distances are found.

        """
        return _Extrema.Extrema_GenExtPS_IsDone(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_GenExtPS_NbExt(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_GenExtPS_Perform(self, *args)

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

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

        Return
        -------
        Extrema_POnSurf

        Description
        -----------
        Returns the point of the Nth resulting distance.

        """
        return _Extrema.Extrema_GenExtPS_Point(self, *args)

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

        Parameters
        ----------
        A: Extrema_ExtAlgo

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_GenExtPS_SetAlgo(self, *args)

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

        Parameters
        ----------
        F: Extrema_ExtFlag

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_GenExtPS_SetFlag(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Returns the value of the Nth resulting square distance.

        """
        return _Extrema.Extrema_GenExtPS_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_GenExtPS

# Register Extrema_GenExtPS in _Extrema:
_Extrema.Extrema_GenExtPS_swigregister(Extrema_GenExtPS)
class Extrema_GenExtSS(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
        -----------
        Empty constructor.

        Parameters
        ----------
        S1: Adaptor3d_Surface
        S2: Adaptor3d_Surface
        NbU: int
        NbV: int
        Tol1: float
        Tol2: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u,v)=distance(S1(u1,v1),S2(u2,v2)) has an extremum when gradient(F)=0. The algorithm searches all the zeros inside the definition ranges of the surfaces. NbU and NbV are used to locate the close points to find the zeros.

        Parameters
        ----------
        S1: Adaptor3d_Surface
        S2: Adaptor3d_Surface
        NbU: int
        NbV: int
        U1min: float
        U1sup: float
        V1min: float
        V1sup: float
        U2min: float
        U2sup: float
        V2min: float
        V2sup: float
        Tol1: float
        Tol2: float

        Return
        -------
        None

        Description
        -----------
        It calculates all the distances. The function F(u,v)=distance(P,S(u,v)) has an extremum when gradient(F)=0. The algorithm searches all the zeros inside the definition ranges of the surface. NbU and NbV are used to locate the close points to find the zeros.

        """
        _Extrema.Extrema_GenExtSS_swiginit(self, _Extrema.new_Extrema_GenExtSS(*args))

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

        Parameters
        ----------
        S2: Adaptor3d_Surface
        NbU: int
        NbV: int
        Tol2: float

        Return
        -------
        None

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

        Parameters
        ----------
        S2: Adaptor3d_Surface
        NbU: int
        NbV: int
        U2min: float
        U2sup: float
        V2min: float
        V2sup: float
        Tol2: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_GenExtSS_Initialize(self, *args)

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

        Description
        -----------
        Returns True if the distances are found.

        """
        return _Extrema.Extrema_GenExtSS_IsDone(self, *args)

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

        Description
        -----------
        Returns the number of extremum distances.

        """
        return _Extrema.Extrema_GenExtSS_NbExt(self, *args)

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

        Parameters
        ----------
        S1: Adaptor3d_Surface
        Tol1: float

        Return
        -------
        None

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

        Parameters
        ----------
        S1: Adaptor3d_Surface
        U1min: float
        U1sup: float
        V1min: float
        V1sup: float
        Tol1: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_GenExtSS_Perform(self, *args)

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

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

        Return
        -------
        Extrema_POnSurf

        Description
        -----------
        Returns the point of the Nth resulting distance.

        """
        return _Extrema.Extrema_GenExtSS_PointOnS1(self, *args)

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

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

        Return
        -------
        Extrema_POnSurf

        Description
        -----------
        Returns the point of the Nth resulting distance.

        """
        return _Extrema.Extrema_GenExtSS_PointOnS2(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Returns the value of the Nth resulting square distance.

        """
        return _Extrema.Extrema_GenExtSS_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_GenExtSS

# Register Extrema_GenExtSS in _Extrema:
_Extrema.Extrema_GenExtSS_swigregister(Extrema_GenExtSS)
class Extrema_GenLocateExtCS(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
        ----------
        C: Adaptor3d_Curve
        S: Adaptor3d_Surface
        T: float
        U: float
        V: float
        Tol1: float
        Tol2: float

        Return
        -------
        None

        Description
        -----------
        Calculates the distance with two close points. The close points are defined by the parameter values T for C and (U,V) for S. The function F(t,u,v)=distance(C(t),S(u,v)) has an extremun when gradient(F)=0. The algorithm searches a zero near the close points.

        """
        _Extrema.Extrema_GenLocateExtCS_swiginit(self, _Extrema.new_Extrema_GenLocateExtCS(*args))

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

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

        """
        return _Extrema.Extrema_GenLocateExtCS_IsDone(self, *args)

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        S: Adaptor3d_Surface
        T: float
        U: float
        V: float
        Tol1: float
        Tol2: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_GenLocateExtCS_Perform(self, *args)

    def PointOnCurve(self, *args):
        r"""
        Return
        -------
        Extrema_POnCurv

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

        """
        return _Extrema.Extrema_GenLocateExtCS_PointOnCurve(self, *args)

    def PointOnSurface(self, *args):
        r"""
        Return
        -------
        Extrema_POnSurf

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

        """
        return _Extrema.Extrema_GenLocateExtCS_PointOnSurface(self, *args)

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

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

        """
        return _Extrema.Extrema_GenLocateExtCS_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_GenLocateExtCS

# Register Extrema_GenLocateExtCS in _Extrema:
_Extrema.Extrema_GenLocateExtCS_swigregister(Extrema_GenLocateExtCS)
class Extrema_GenLocateExtPS(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
        ----------
        theS: Adaptor3d_Surface
        theTolU: float (optional, default to Precision::PConfusion())
        theTolV: float (optional, default to Precision::PConfusion())

        Return
        -------
        None

        Description
        -----------
        Constructor.

        """
        _Extrema.Extrema_GenLocateExtPS_swiginit(self, _Extrema.new_Extrema_GenLocateExtPS(*args))

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

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

        """
        return _Extrema.Extrema_GenLocateExtPS_IsDone(self, *args)

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

        Parameters
        ----------
        theP: gp_Pnt
        theS: Adaptor3d_Surface
        theU0: float
        theV0: float

        Return
        -------
        bool

        Description
        -----------
        Returns True if UV point theU0, theV0 is point of local minimum of square distance between point theP and points theS(U, V), U, V are in small area around theU0, theV0.

        """
        return _Extrema.Extrema_GenLocateExtPS_IsMinDist(*args)

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

        Parameters
        ----------
        theP: gp_Pnt
        theU0: float
        theV0: float
        isDistanceCriteria: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        Calculates the extrema between the point and the surface using a close point. The close point is defined by the parameter values theU0 and theV0. Type of the algorithm depends on the isDistanceCriteria flag. If flag value is false - normal projection criteria will be used. If flag value is true - distance criteria will be used.

        """
        return _Extrema.Extrema_GenLocateExtPS_Perform(self, *args)

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

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

        """
        return _Extrema.Extrema_GenLocateExtPS_Point(self, *args)

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

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

        """
        return _Extrema.Extrema_GenLocateExtPS_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_GenLocateExtPS

# Register Extrema_GenLocateExtPS in _Extrema:
_Extrema.Extrema_GenLocateExtPS_swigregister(Extrema_GenLocateExtPS)
class Extrema_GenLocateExtSS(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
        ----------
        S1: Adaptor3d_Surface
        S2: Adaptor3d_Surface
        U1: float
        V1: float
        U2: float
        V2: float
        Tol1: float
        Tol2: float

        Return
        -------
        None

        Description
        -----------
        Calculates the distance with two close points. The close points are defined by the parameter values (U1,V1) for S1 and (U2,V2) for S2. The function F(u1,v1,u2,v2)=distance(S1(u1,v1),S2(u2,v2)) has an extremun when gradient(F)=0. The algorithm searches a zero near the close points.

        """
        _Extrema.Extrema_GenLocateExtSS_swiginit(self, _Extrema.new_Extrema_GenLocateExtSS(*args))

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

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

        """
        return _Extrema.Extrema_GenLocateExtSS_IsDone(self, *args)

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

        Parameters
        ----------
        S1: Adaptor3d_Surface
        S2: Adaptor3d_Surface
        U1: float
        V1: float
        U2: float
        V2: float
        Tol1: float
        Tol2: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_GenLocateExtSS_Perform(self, *args)

    def PointOnS1(self, *args):
        r"""
        Return
        -------
        Extrema_POnSurf

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

        """
        return _Extrema.Extrema_GenLocateExtSS_PointOnS1(self, *args)

    def PointOnS2(self, *args):
        r"""
        Return
        -------
        Extrema_POnSurf

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

        """
        return _Extrema.Extrema_GenLocateExtSS_PointOnS2(self, *args)

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

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

        """
        return _Extrema.Extrema_GenLocateExtSS_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_GenLocateExtSS

# Register Extrema_GenLocateExtSS in _Extrema:
_Extrema.Extrema_GenLocateExtSS_swigregister(Extrema_GenLocateExtSS)
class Extrema_GlobOptFuncCCC0(OCC.Core.math.math_MultipleVarFunction):
    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: Adaptor3d_Curve
        C2: Adaptor3d_Curve

        Return
        -------
        None

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

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        C2: Adaptor2d_Curve2d

        Return
        -------
        None

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

        """
        _Extrema.Extrema_GlobOptFuncCCC0_swiginit(self, _Extrema.new_Extrema_GlobOptFuncCCC0(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_GlobOptFuncCCC0

# Register Extrema_GlobOptFuncCCC0 in _Extrema:
_Extrema.Extrema_GlobOptFuncCCC0_swigregister(Extrema_GlobOptFuncCCC0)
class Extrema_GlobOptFuncCCC1(OCC.Core.math.math_MultipleVarFunctionWithGradient):
    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: Adaptor3d_Curve
        C2: Adaptor3d_Curve

        Return
        -------
        None

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

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        C2: Adaptor2d_Curve2d

        Return
        -------
        None

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

        """
        _Extrema.Extrema_GlobOptFuncCCC1_swiginit(self, _Extrema.new_Extrema_GlobOptFuncCCC1(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_GlobOptFuncCCC1

# Register Extrema_GlobOptFuncCCC1 in _Extrema:
_Extrema.Extrema_GlobOptFuncCCC1_swigregister(Extrema_GlobOptFuncCCC1)
class Extrema_GlobOptFuncCCC2(OCC.Core.math.math_MultipleVarFunctionWithHessian):
    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: Adaptor3d_Curve
        C2: Adaptor3d_Curve

        Return
        -------
        None

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

        Parameters
        ----------
        C1: Adaptor2d_Curve2d
        C2: Adaptor2d_Curve2d

        Return
        -------
        None

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

        """
        _Extrema.Extrema_GlobOptFuncCCC2_swiginit(self, _Extrema.new_Extrema_GlobOptFuncCCC2(*args))

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

        Parameters
        ----------
        X: math_Vector
        G: math_Vector

        Return
        -------
        F: float

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

        Parameters
        ----------
        X: math_Vector
        G: math_Vector
        H: math_Matrix

        Return
        -------
        F: float

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

        """
        return _Extrema.Extrema_GlobOptFuncCCC2_Values(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_GlobOptFuncCCC2

# Register Extrema_GlobOptFuncCCC2 in _Extrema:
_Extrema.Extrema_GlobOptFuncCCC2_swigregister(Extrema_GlobOptFuncCCC2)
class Extrema_GlobOptFuncCQuadric(OCC.Core.math.math_MultipleVarFunction):
    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
        ----------
        C: Adaptor3d_Curve *

        Return
        -------
        None

        Description
        -----------
        Curve and surface should exist during all the lifetime of Extrema_GlobOptFuncCQuadric.

        Parameters
        ----------
        C: Adaptor3d_Curve *
        theTf: float
        theTl: float

        Return
        -------
        None

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

        Parameters
        ----------
        C: Adaptor3d_Curve *
        S: Adaptor3d_Surface *

        Return
        -------
        None

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

        """
        _Extrema.Extrema_GlobOptFuncCQuadric_swiginit(self, _Extrema.new_Extrema_GlobOptFuncCQuadric(*args))

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

        Parameters
        ----------
        S: Adaptor3d_Surface *
        theUf: float
        theUl: float
        theVf: float
        theVl: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_GlobOptFuncCQuadric_LoadQuad(self, *args)

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

        Parameters
        ----------
        theCT: math_Vector
        theUV: math_Vector

        Return
        -------
        None

        Description
        -----------
        Parameters of quadric for point on curve defined by theCT.

        """
        return _Extrema.Extrema_GlobOptFuncCQuadric_QuadricParameters(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_GlobOptFuncCQuadric

# Register Extrema_GlobOptFuncCQuadric in _Extrema:
_Extrema.Extrema_GlobOptFuncCQuadric_swigregister(Extrema_GlobOptFuncCQuadric)
class Extrema_GlobOptFuncCS(OCC.Core.math.math_MultipleVarFunctionWithHessian):
    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
        ----------
        C: Adaptor3d_Curve *
        S: Adaptor3d_Surface *

        Return
        -------
        None

        Description
        -----------
        Curve and surface should exist during all the lifetime of Extrema_GlobOptFuncCS.

        """
        _Extrema.Extrema_GlobOptFuncCS_swiginit(self, _Extrema.new_Extrema_GlobOptFuncCS(*args))

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

        Parameters
        ----------
        theX: math_Vector
        theG: math_Vector

        Return
        -------
        theF: float

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

        Parameters
        ----------
        theX: math_Vector
        theG: math_Vector
        theH: math_Matrix

        Return
        -------
        theF: float

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

        """
        return _Extrema.Extrema_GlobOptFuncCS_Values(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_GlobOptFuncCS

# Register Extrema_GlobOptFuncCS in _Extrema:
_Extrema.Extrema_GlobOptFuncCS_swigregister(Extrema_GlobOptFuncCS)
class Extrema_GlobOptFuncConicS(OCC.Core.math.math_MultipleVarFunction):
    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
        ----------
        C: Adaptor3d_Curve *
        S: Adaptor3d_Surface *

        Return
        -------
        None

        Description
        -----------
        Curve and surface should exist during all the lifetime of Extrema_GlobOptFuncConicS.

        Parameters
        ----------
        S: Adaptor3d_Surface *

        Return
        -------
        None

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

        Parameters
        ----------
        S: Adaptor3d_Surface *
        theUf: float
        theUl: float
        theVf: float
        theVl: float

        Return
        -------
        None

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

        """
        _Extrema.Extrema_GlobOptFuncConicS_swiginit(self, _Extrema.new_Extrema_GlobOptFuncConicS(*args))

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

        Parameters
        ----------
        theUV: math_Vector

        Return
        -------
        float

        Description
        -----------
        Parameter of conic for point on surface defined by theUV.

        """
        return _Extrema.Extrema_GlobOptFuncConicS_ConicParameter(self, *args)

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

        Parameters
        ----------
        S: Adaptor3d_Curve *
        theTf: float
        theTl: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_GlobOptFuncConicS_LoadConic(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_GlobOptFuncConicS

# Register Extrema_GlobOptFuncConicS in _Extrema:
_Extrema.Extrema_GlobOptFuncConicS_swigregister(Extrema_GlobOptFuncConicS)
class Extrema_LocECC(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: Adaptor3d_Curve
        C2: Adaptor3d_Curve
        U0: float
        V0: float
        TolU: float
        TolV: float

        Return
        -------
        None

        Description
        -----------
        Calculates the distance with a close point. The close point is defined by a parameter value on each curve. The function F(u,v)=distance(C1(u),C2(v)) has an extremun when gradient(f)=0. The algorithm searches the zero near the close point.

        """
        _Extrema.Extrema_LocECC_swiginit(self, _Extrema.new_Extrema_LocECC(*args))

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

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

        """
        return _Extrema.Extrema_LocECC_IsDone(self, *args)

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

        Parameters
        ----------
        P1: Extrema_POnCurv
        P2: Extrema_POnCurv

        Return
        -------
        None

        Description
        -----------
        Returns the points of the extremum distance. P1 is on the first curve, P2 on the second one.

        """
        return _Extrema.Extrema_LocECC_Point(self, *args)

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

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

        """
        return _Extrema.Extrema_LocECC_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_LocECC

# Register Extrema_LocECC in _Extrema:
_Extrema.Extrema_LocECC_swigregister(Extrema_LocECC)
class Extrema_LocECC2d(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
        U0: float
        V0: float
        TolU: float
        TolV: float

        Return
        -------
        None

        Description
        -----------
        Calculates the distance with a close point. The close point is defined by a parameter value on each curve. The function F(u,v)=distance(C1(u),C2(v)) has an extremun when gradient(f)=0. The algorithm searches the zero near the close point.

        """
        _Extrema.Extrema_LocECC2d_swiginit(self, _Extrema.new_Extrema_LocECC2d(*args))

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

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

        """
        return _Extrema.Extrema_LocECC2d_IsDone(self, *args)

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

        Parameters
        ----------
        P1: Extrema_POnCurv2d
        P2: Extrema_POnCurv2d

        Return
        -------
        None

        Description
        -----------
        Returns the points of the extremum distance. P1 is on the first curve, P2 on the second one.

        """
        return _Extrema.Extrema_LocECC2d_Point(self, *args)

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

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

        """
        return _Extrema.Extrema_LocECC2d_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_LocECC2d

# Register Extrema_LocECC2d in _Extrema:
_Extrema.Extrema_LocECC2d_swigregister(Extrema_LocECC2d)
class Extrema_LocEPCOfLocateExtPC(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_Pnt
        C: Adaptor3d_Curve
        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_Pnt
        C: Adaptor3d_Curve
        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.

        """
        _Extrema.Extrema_LocEPCOfLocateExtPC_swiginit(self, _Extrema.new_Extrema_LocEPCOfLocateExtPC(*args))

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

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

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_LocEPCOfLocateExtPC_Initialize(self, *args)

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

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

        """
        return _Extrema.Extrema_LocEPCOfLocateExtPC_IsDone(self, *args)

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

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

        """
        return _Extrema.Extrema_LocEPCOfLocateExtPC_IsMin(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt
        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 _Extrema.Extrema_LocEPCOfLocateExtPC_Perform(self, *args)

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

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

        """
        return _Extrema.Extrema_LocEPCOfLocateExtPC_Point(self, *args)

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

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

        """
        return _Extrema.Extrema_LocEPCOfLocateExtPC_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_LocEPCOfLocateExtPC

# Register Extrema_LocEPCOfLocateExtPC in _Extrema:
_Extrema.Extrema_LocEPCOfLocateExtPC_swigregister(Extrema_LocEPCOfLocateExtPC)
class Extrema_LocEPCOfLocateExtPC2d(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.

        """
        _Extrema.Extrema_LocEPCOfLocateExtPC2d_swiginit(self, _Extrema.new_Extrema_LocEPCOfLocateExtPC2d(*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 _Extrema.Extrema_LocEPCOfLocateExtPC2d_Initialize(self, *args)

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

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

        """
        return _Extrema.Extrema_LocEPCOfLocateExtPC2d_IsDone(self, *args)

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

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

        """
        return _Extrema.Extrema_LocEPCOfLocateExtPC2d_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 _Extrema.Extrema_LocEPCOfLocateExtPC2d_Perform(self, *args)

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

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

        """
        return _Extrema.Extrema_LocEPCOfLocateExtPC2d_Point(self, *args)

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

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

        """
        return _Extrema.Extrema_LocEPCOfLocateExtPC2d_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_LocEPCOfLocateExtPC2d

# Register Extrema_LocEPCOfLocateExtPC2d in _Extrema:
_Extrema.Extrema_LocEPCOfLocateExtPC2d_swigregister(Extrema_LocEPCOfLocateExtPC2d)
class Extrema_LocateExtCC(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: Adaptor3d_Curve
        C2: Adaptor3d_Curve
        U0: float
        V0: float

        Return
        -------
        None

        Description
        -----------
        Calculates the distance with a close point. The close point is defined by a parameter value on each curve. The function F(u,v)=distance(C1(u),C2(v)) has an extremun when gradient(f)=0. The algorithm searches the zero near the close point.

        """
        _Extrema.Extrema_LocateExtCC_swiginit(self, _Extrema.new_Extrema_LocateExtCC(*args))

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

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

        """
        return _Extrema.Extrema_LocateExtCC_IsDone(self, *args)

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

        Parameters
        ----------
        P1: Extrema_POnCurv
        P2: Extrema_POnCurv

        Return
        -------
        None

        Description
        -----------
        Returns the points of the extremum distance. P1 is on the first curve, P2 on the second one.

        """
        return _Extrema.Extrema_LocateExtCC_Point(self, *args)

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

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

        """
        return _Extrema.Extrema_LocateExtCC_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_LocateExtCC

# Register Extrema_LocateExtCC in _Extrema:
_Extrema.Extrema_LocateExtCC_swigregister(Extrema_LocateExtCC)
class Extrema_LocateExtCC2d(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
        U0: float
        V0: float

        Return
        -------
        None

        Description
        -----------
        Calculates the distance with a close point. The close point is defined by a parameter value on each curve. The function F(u,v)=distance(C1(u),C2(v)) has an extremun when gradient(f)=0. The algorithm searches the zero near the close point.

        """
        _Extrema.Extrema_LocateExtCC2d_swiginit(self, _Extrema.new_Extrema_LocateExtCC2d(*args))

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

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

        """
        return _Extrema.Extrema_LocateExtCC2d_IsDone(self, *args)

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

        Parameters
        ----------
        P1: Extrema_POnCurv2d
        P2: Extrema_POnCurv2d

        Return
        -------
        None

        Description
        -----------
        Returns the points of the extremum distance. P1 is on the first curve, P2 on the second one.

        """
        return _Extrema.Extrema_LocateExtCC2d_Point(self, *args)

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

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

        """
        return _Extrema.Extrema_LocateExtCC2d_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_LocateExtCC2d

# Register Extrema_LocateExtCC2d in _Extrema:
_Extrema.Extrema_LocateExtCC2d_swigregister(Extrema_LocateExtCC2d)
class Extrema_LocateExtPC(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_Pnt
        C: Adaptor3d_Curve
        U0: float
        TolF: 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. TolF is used to decide to stop the iterations. At the nth iteration, the criteria is: abs(Un - Un-1) < TolF.

        Parameters
        ----------
        P: gp_Pnt
        C: Adaptor3d_Curve
        U0: float
        Umin: float
        Usup: float
        TolF: 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. TolF is used to decide to stop the iterations. At the nth iteration, the criteria is: abs(Un - Un-1) < TolF.

        """
        _Extrema.Extrema_LocateExtPC_swiginit(self, _Extrema.new_Extrema_LocateExtPC(*args))

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

        Parameters
        ----------
        C: Adaptor3d_Curve
        Umin: float
        Usup: float
        TolF: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_LocateExtPC_Initialize(self, *args)

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

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

        """
        return _Extrema.Extrema_LocateExtPC_IsDone(self, *args)

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

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

        """
        return _Extrema.Extrema_LocateExtPC_IsMin(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt
        U0: float

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_LocateExtPC_Perform(self, *args)

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

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

        """
        return _Extrema.Extrema_LocateExtPC_Point(self, *args)

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

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

        """
        return _Extrema.Extrema_LocateExtPC_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_LocateExtPC

# Register Extrema_LocateExtPC in _Extrema:
_Extrema.Extrema_LocateExtPC_swigregister(Extrema_LocateExtPC)
class Extrema_LocateExtPC2d(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
        TolF: 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. TolF is used to decide to stop the iterations. At the nth iteration, the criteria is: abs(Un - Un-1) < TolF.

        Parameters
        ----------
        P: gp_Pnt2d
        C: Adaptor2d_Curve2d
        U0: float
        Umin: float
        Usup: float
        TolF: 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. TolF is used to decide to stop the iterations. At the nth iteration, the criteria is: abs(Un - Un-1) < TolF.

        """
        _Extrema.Extrema_LocateExtPC2d_swiginit(self, _Extrema.new_Extrema_LocateExtPC2d(*args))

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

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

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_LocateExtPC2d_Initialize(self, *args)

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

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

        """
        return _Extrema.Extrema_LocateExtPC2d_IsDone(self, *args)

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

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

        """
        return _Extrema.Extrema_LocateExtPC2d_IsMin(self, *args)

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

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

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_LocateExtPC2d_Perform(self, *args)

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

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

        """
        return _Extrema.Extrema_LocateExtPC2d_Point(self, *args)

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

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

        """
        return _Extrema.Extrema_LocateExtPC2d_SquareDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_LocateExtPC2d

# Register Extrema_LocateExtPC2d in _Extrema:
_Extrema.Extrema_LocateExtPC2d_swigregister(Extrema_LocateExtPC2d)
class Extrema_PCFOfEPCOfELPCOfLocateExtPC(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_Pnt
        C: Adaptor3d_Curve

        Return
        -------
        None

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

        """
        _Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC_swiginit(self, _Extrema.new_Extrema_PCFOfEPCOfELPCOfLocateExtPC(*args))

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC_Initialize(self, *args)

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

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

        Return
        -------
        bool

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

        """
        return _Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC_IsMin(self, *args)

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

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

        """
        return _Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC_NbExt(self, *args)

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

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

        Return
        -------
        Extrema_POnCurv

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

        """
        return _Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC_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 _Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC_SearchOfTolerance(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC_SetPoint(self, *args)

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

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

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC_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 _Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC_SubIntervalInitialize(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_PCFOfEPCOfELPCOfLocateExtPC

# Register Extrema_PCFOfEPCOfELPCOfLocateExtPC in _Extrema:
_Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC_swigregister(Extrema_PCFOfEPCOfELPCOfLocateExtPC)
class Extrema_PCFOfEPCOfELPCOfLocateExtPC2d(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.

        """
        _Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC2d_swiginit(self, _Extrema.new_Extrema_PCFOfEPCOfELPCOfLocateExtPC2d(*args))

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

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

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC2d_Initialize(self, *args)

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

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

        Return
        -------
        bool

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

        """
        return _Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC2d_IsMin(self, *args)

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

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

        """
        return _Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC2d_NbExt(self, *args)

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

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

        Return
        -------
        Extrema_POnCurv2d

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

        """
        return _Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC2d_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 _Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC2d_SearchOfTolerance(self, *args)

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

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

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC2d_SetPoint(self, *args)

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

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

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC2d_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 _Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC2d_SubIntervalInitialize(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_PCFOfEPCOfELPCOfLocateExtPC2d

# Register Extrema_PCFOfEPCOfELPCOfLocateExtPC2d in _Extrema:
_Extrema.Extrema_PCFOfEPCOfELPCOfLocateExtPC2d_swigregister(Extrema_PCFOfEPCOfELPCOfLocateExtPC2d)
class Extrema_PCFOfEPCOfExtPC(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_Pnt
        C: Adaptor3d_Curve

        Return
        -------
        None

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

        """
        _Extrema.Extrema_PCFOfEPCOfExtPC_swiginit(self, _Extrema.new_Extrema_PCFOfEPCOfExtPC(*args))

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_PCFOfEPCOfExtPC_Initialize(self, *args)

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

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

        Return
        -------
        bool

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

        """
        return _Extrema.Extrema_PCFOfEPCOfExtPC_IsMin(self, *args)

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

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

        """
        return _Extrema.Extrema_PCFOfEPCOfExtPC_NbExt(self, *args)

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

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

        Return
        -------
        Extrema_POnCurv

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

        """
        return _Extrema.Extrema_PCFOfEPCOfExtPC_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 _Extrema.Extrema_PCFOfEPCOfExtPC_SearchOfTolerance(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_PCFOfEPCOfExtPC_SetPoint(self, *args)

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

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

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_PCFOfEPCOfExtPC_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 _Extrema.Extrema_PCFOfEPCOfExtPC_SubIntervalInitialize(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_PCFOfEPCOfExtPC

# Register Extrema_PCFOfEPCOfExtPC in _Extrema:
_Extrema.Extrema_PCFOfEPCOfExtPC_swigregister(Extrema_PCFOfEPCOfExtPC)
class Extrema_PCFOfEPCOfExtPC2d(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.

        """
        _Extrema.Extrema_PCFOfEPCOfExtPC2d_swiginit(self, _Extrema.new_Extrema_PCFOfEPCOfExtPC2d(*args))

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

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

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_PCFOfEPCOfExtPC2d_Initialize(self, *args)

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

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

        Return
        -------
        bool

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

        """
        return _Extrema.Extrema_PCFOfEPCOfExtPC2d_IsMin(self, *args)

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

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

        """
        return _Extrema.Extrema_PCFOfEPCOfExtPC2d_NbExt(self, *args)

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

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

        Return
        -------
        Extrema_POnCurv2d

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

        """
        return _Extrema.Extrema_PCFOfEPCOfExtPC2d_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 _Extrema.Extrema_PCFOfEPCOfExtPC2d_SearchOfTolerance(self, *args)

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

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

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_PCFOfEPCOfExtPC2d_SetPoint(self, *args)

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

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

        Return
        -------
        float

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

        """
        return _Extrema.Extrema_PCFOfEPCOfExtPC2d_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 _Extrema.Extrema_PCFOfEPCOfExtPC2d_SubIntervalInitialize(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_PCFOfEPCOfExtPC2d

# Register Extrema_PCFOfEPCOfExtPC2d in _Extrema:
_Extrema.Extrema_PCFOfEPCOfExtPC2d_swigregister(Extrema_PCFOfEPCOfExtPC2d)
class Extrema_PCLocFOfLocEPCOfLocateExtPC(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_Pnt
        C: Adaptor3d_Curve

        Return
        -------
        None

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

        """
        _Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC_swiginit(self, _Extrema.new_Extrema_PCLocFOfLocEPCOfLocateExtPC(*args))

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

        Parameters
        ----------
        C: Adaptor3d_Curve

        Return
        -------
        None

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

        """
        return _Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC_Initialize(self, *args)

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

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

        Return
        -------
        bool

        Description
        -----------
        Shows if the Nth distance is a minimum.

        """
        return _Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC_IsMin(self, *args)

    def NbExt(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Return the number of found extrema.

        """
        return _Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC_NbExt(self, *args)

    def Point(self, *args):
        r"""

        Parameters
        ----------
        N: int

        Return
        -------
        Extrema_POnCurv

        Description
        -----------
        Returns the Nth extremum.

        """
        return _Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC_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 _Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC_SearchOfTolerance(self, *args)

    def SetPoint(self, *args):
        r"""

        Parameters
        ----------
        P: gp_Pnt

        Return
        -------
        None

        Description
        -----------
        sets the field P of the function.

        """
        return _Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC_SetPoint(self, *args)

    def SquareDistance(self, *args):
        r"""

        Parameters
        ----------
        N: int

        Return
        -------
        float

        Description
        -----------
        Returns the Nth distance.

        """
        return _Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC_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 _Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC_SubIntervalInitialize(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_PCLocFOfLocEPCOfLocateExtPC

# Register Extrema_PCLocFOfLocEPCOfLocateExtPC in _Extrema:
_Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC_swigregister(Extrema_PCLocFOfLocEPCOfLocateExtPC)
class Extrema_PCLocFOfLocEPCOfLocateExtPC2d(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.

        """
        _Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC2d_swiginit(self, _Extrema.new_Extrema_PCLocFOfLocEPCOfLocateExtPC2d(*args))

    def Initialize(self, *args):
        r"""

        Parameters
        ----------
        C: Adaptor2d_Curve2d

        Return
        -------
        None

        Description
        -----------
        sets the field mycurve of the function.

        """
        return _Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC2d_Initialize(self, *args)

    def IsMin(self, *args):
        r"""

        Parameters
        ----------
        N: int

        Return
        -------
        bool

        Description
        -----------
        Shows if the Nth distance is a minimum.

        """
        return _Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC2d_IsMin(self, *args)

    def NbExt(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Return the number of found extrema.

        """
        return _Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC2d_NbExt(self, *args)

    def Point(self, *args):
        r"""

        Parameters
        ----------
        N: int

        Return
        -------
        Extrema_POnCurv2d

        Description
        -----------
        Returns the Nth extremum.

        """
        return _Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC2d_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 _Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC2d_SearchOfTolerance(self, *args)

    def SetPoint(self, *args):
        r"""

        Parameters
        ----------
        P: gp_Pnt2d

        Return
        -------
        None

        Description
        -----------
        sets the field P of the function.

        """
        return _Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC2d_SetPoint(self, *args)

    def SquareDistance(self, *args):
        r"""

        Parameters
        ----------
        N: int

        Return
        -------
        float

        Description
        -----------
        Returns the Nth distance.

        """
        return _Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC2d_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 _Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC2d_SubIntervalInitialize(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_PCLocFOfLocEPCOfLocateExtPC2d

# Register Extrema_PCLocFOfLocEPCOfLocateExtPC2d in _Extrema:
_Extrema.Extrema_PCLocFOfLocEPCOfLocateExtPC2d_swigregister(Extrema_PCLocFOfLocEPCOfLocateExtPC2d)
class Extrema_POnCurv(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
        -----------
        Creation of an indefinite point on curve.

        Parameters
        ----------
        U: float
        P: gp_Pnt

        Return
        -------
        None

        Description
        -----------
        Creation of a point on curve with a parameter value on the curve and a Pnt from gp.

        """
        _Extrema.Extrema_POnCurv_swiginit(self, _Extrema.new_Extrema_POnCurv(*args))

    def Parameter(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the parameter on the curve.

        """
        return _Extrema.Extrema_POnCurv_Parameter(self, *args)

    def SetValues(self, *args):
        r"""

        Parameters
        ----------
        U: float
        P: gp_Pnt

        Return
        -------
        None

        Description
        -----------
        sets the point and parameter values.

        """
        return _Extrema.Extrema_POnCurv_SetValues(self, *args)

    def Value(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns the point.

        """
        return _Extrema.Extrema_POnCurv_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_POnCurv

# Register Extrema_POnCurv in _Extrema:
_Extrema.Extrema_POnCurv_swigregister(Extrema_POnCurv)
class Extrema_POnCurv2d(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
        -----------
        Creation of an indefinite point on curve.

        Parameters
        ----------
        U: float
        P: gp_Pnt2d

        Return
        -------
        None

        Description
        -----------
        Creation of a point on curve with a parameter value on the curve and a Pnt from gp.

        """
        _Extrema.Extrema_POnCurv2d_swiginit(self, _Extrema.new_Extrema_POnCurv2d(*args))

    def Parameter(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the parameter on the curve.

        """
        return _Extrema.Extrema_POnCurv2d_Parameter(self, *args)

    def SetValues(self, *args):
        r"""

        Parameters
        ----------
        U: float
        P: gp_Pnt2d

        Return
        -------
        None

        Description
        -----------
        sets the point and parameter values.

        """
        return _Extrema.Extrema_POnCurv2d_SetValues(self, *args)

    def Value(self, *args):
        r"""
        Return
        -------
        gp_Pnt2d

        Description
        -----------
        Returns the point.

        """
        return _Extrema.Extrema_POnCurv2d_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_POnCurv2d

# Register Extrema_POnCurv2d in _Extrema:
_Extrema.Extrema_POnCurv2d_swigregister(Extrema_POnCurv2d)
class Extrema_POnSurf(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
        -----------
        Creation of an indefinite point on surface.

        Parameters
        ----------
        U: float
        V: float
        P: gp_Pnt

        Return
        -------
        None

        Description
        -----------
        Creation of a point on surface with parameter values on the surface and a Pnt from gp.

        """
        _Extrema.Extrema_POnSurf_swiginit(self, _Extrema.new_Extrema_POnSurf(*args))

    def Parameter(self, *args):
        r"""

        Parameters
        ----------

        Return
        -------
        U: float
        V: float

        Description
        -----------
        Returns the parameter values on the surface.

        """
        return _Extrema.Extrema_POnSurf_Parameter(self, *args)

    def SetParameters(self, *args):
        r"""

        Parameters
        ----------
        theU: float
        theV: float
        thePnt: gp_Pnt

        Return
        -------
        None

        Description
        -----------
        Sets the params of current POnSurf instance. (e.g. to the point to be projected).

        """
        return _Extrema.Extrema_POnSurf_SetParameters(self, *args)

    def Value(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns the 3d point.

        """
        return _Extrema.Extrema_POnSurf_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_POnSurf

# Register Extrema_POnSurf in _Extrema:
_Extrema.Extrema_POnSurf_swigregister(Extrema_POnSurf)
class Extrema_POnSurfParams(Extrema_POnSurf):
    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
        ----------
        theU: float
        theV: float
        thePnt: gp_Pnt

        Return
        -------
        None

        Description
        -----------
        Creation of a point on surface with parameter values on the surface and a Pnt from gp.

        """
        _Extrema.Extrema_POnSurfParams_swiginit(self, _Extrema.new_Extrema_POnSurfParams(*args))

    def GetElementType(self, *args):
        r"""
        Return
        -------
        Extrema_ElementType

        Description
        -----------
        Query the element type on which this point is situated.

        """
        return _Extrema.Extrema_POnSurfParams_GetElementType(self, *args)

    def GetIndices(self, *args):
        r"""

        Parameters
        ----------

        Return
        -------
        theIndexU: int
        theIndexV: int

        Description
        -----------
        Query the U and V indices of an element that contains this point.

        """
        return _Extrema.Extrema_POnSurfParams_GetIndices(self, *args)

    def GetSqrDistance(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Query the square distance from this point to another one.

        """
        return _Extrema.Extrema_POnSurfParams_GetSqrDistance(self, *args)

    def SetElementType(self, *args):
        r"""

        Parameters
        ----------
        theElementType: Extrema_ElementType

        Return
        -------
        None

        Description
        -----------
        Sets the element type on which this point is situated.

        """
        return _Extrema.Extrema_POnSurfParams_SetElementType(self, *args)

    def SetIndices(self, *args):
        r"""

        Parameters
        ----------
        theIndexU: int
        theIndexV: int

        Return
        -------
        None

        Description
        -----------
        Sets the U and V indices of an element that contains this point.

        """
        return _Extrema.Extrema_POnSurfParams_SetIndices(self, *args)

    def SetSqrDistance(self, *args):
        r"""

        Parameters
        ----------
        theSqrDistance: float

        Return
        -------
        None

        Description
        -----------
        Sets the square distance from this point to another one (e.g. to the point to be projected).

        """
        return _Extrema.Extrema_POnSurfParams_SetSqrDistance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Extrema.delete_Extrema_POnSurfParams

# Register Extrema_POnSurfParams in _Extrema:
_Extrema.Extrema_POnSurfParams_swigregister(Extrema_POnSurfParams)
class Extrema_HArray1OfPOnCurv(Extrema_Array1OfPOnCurv, OCC.Core.Standard.Standard_Transient):
    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):
        _Extrema.Extrema_HArray1OfPOnCurv_swiginit(self, _Extrema.new_Extrema_HArray1OfPOnCurv(*args))

    def Array1(self):
        return _Extrema.Extrema_HArray1OfPOnCurv_Array1(self)

    def ChangeArray1(self):
        return _Extrema.Extrema_HArray1OfPOnCurv_ChangeArray1(self)


    @staticmethod
    def DownCast(t):
      return Handle_Extrema_HArray1OfPOnCurv_DownCast(t)

    __swig_destroy__ = _Extrema.delete_Extrema_HArray1OfPOnCurv

# Register Extrema_HArray1OfPOnCurv in _Extrema:
_Extrema.Extrema_HArray1OfPOnCurv_swigregister(Extrema_HArray1OfPOnCurv)
class Extrema_HArray1OfPOnCurv2d(Extrema_Array1OfPOnCurv2d, OCC.Core.Standard.Standard_Transient):
    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):
        _Extrema.Extrema_HArray1OfPOnCurv2d_swiginit(self, _Extrema.new_Extrema_HArray1OfPOnCurv2d(*args))

    def Array1(self):
        return _Extrema.Extrema_HArray1OfPOnCurv2d_Array1(self)

    def ChangeArray1(self):
        return _Extrema.Extrema_HArray1OfPOnCurv2d_ChangeArray1(self)


    @staticmethod
    def DownCast(t):
      return Handle_Extrema_HArray1OfPOnCurv2d_DownCast(t)

    __swig_destroy__ = _Extrema.delete_Extrema_HArray1OfPOnCurv2d

# Register Extrema_HArray1OfPOnCurv2d in _Extrema:
_Extrema.Extrema_HArray1OfPOnCurv2d_swigregister(Extrema_HArray1OfPOnCurv2d)
class Extrema_HArray1OfPOnSurf(Extrema_Array1OfPOnSurf, OCC.Core.Standard.Standard_Transient):
    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):
        _Extrema.Extrema_HArray1OfPOnSurf_swiginit(self, _Extrema.new_Extrema_HArray1OfPOnSurf(*args))

    def Array1(self):
        return _Extrema.Extrema_HArray1OfPOnSurf_Array1(self)

    def ChangeArray1(self):
        return _Extrema.Extrema_HArray1OfPOnSurf_ChangeArray1(self)


    @staticmethod
    def DownCast(t):
      return Handle_Extrema_HArray1OfPOnSurf_DownCast(t)

    __swig_destroy__ = _Extrema.delete_Extrema_HArray1OfPOnSurf

# Register Extrema_HArray1OfPOnSurf in _Extrema:
_Extrema.Extrema_HArray1OfPOnSurf_swigregister(Extrema_HArray1OfPOnSurf)
class Extrema_HArray2OfPOnCurv(OCC.Core.Standard.Standard_Transient):
    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):
        _Extrema.Extrema_HArray2OfPOnCurv_swiginit(self, _Extrema.new_Extrema_HArray2OfPOnCurv(*args))

    def Array2(self):
        return _Extrema.Extrema_HArray2OfPOnCurv_Array2(self)

    def ChangeArray2(self):
        return _Extrema.Extrema_HArray2OfPOnCurv_ChangeArray2(self)


    @staticmethod
    def DownCast(t):
      return Handle_Extrema_HArray2OfPOnCurv_DownCast(t)

    __swig_destroy__ = _Extrema.delete_Extrema_HArray2OfPOnCurv

# Register Extrema_HArray2OfPOnCurv in _Extrema:
_Extrema.Extrema_HArray2OfPOnCurv_swigregister(Extrema_HArray2OfPOnCurv)
class Extrema_HArray2OfPOnCurv2d(OCC.Core.Standard.Standard_Transient):
    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):
        _Extrema.Extrema_HArray2OfPOnCurv2d_swiginit(self, _Extrema.new_Extrema_HArray2OfPOnCurv2d(*args))

    def Array2(self):
        return _Extrema.Extrema_HArray2OfPOnCurv2d_Array2(self)

    def ChangeArray2(self):
        return _Extrema.Extrema_HArray2OfPOnCurv2d_ChangeArray2(self)


    @staticmethod
    def DownCast(t):
      return Handle_Extrema_HArray2OfPOnCurv2d_DownCast(t)

    __swig_destroy__ = _Extrema.delete_Extrema_HArray2OfPOnCurv2d

# Register Extrema_HArray2OfPOnCurv2d in _Extrema:
_Extrema.Extrema_HArray2OfPOnCurv2d_swigregister(Extrema_HArray2OfPOnCurv2d)
class Extrema_HArray2OfPOnSurf(OCC.Core.Standard.Standard_Transient):
    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):
        _Extrema.Extrema_HArray2OfPOnSurf_swiginit(self, _Extrema.new_Extrema_HArray2OfPOnSurf(*args))

    def Array2(self):
        return _Extrema.Extrema_HArray2OfPOnSurf_Array2(self)

    def ChangeArray2(self):
        return _Extrema.Extrema_HArray2OfPOnSurf_ChangeArray2(self)


    @staticmethod
    def DownCast(t):
      return Handle_Extrema_HArray2OfPOnSurf_DownCast(t)

    __swig_destroy__ = _Extrema.delete_Extrema_HArray2OfPOnSurf

# Register Extrema_HArray2OfPOnSurf in _Extrema:
_Extrema.Extrema_HArray2OfPOnSurf_swigregister(Extrema_HArray2OfPOnSurf)



@deprecated
def Extrema_Curve2dTool_BSpline(*args):
	return Extrema_Curve2dTool.BSpline(*args)

@deprecated
def Extrema_Curve2dTool_Bezier(*args):
	return Extrema_Curve2dTool.Bezier(*args)

@deprecated
def Extrema_Curve2dTool_Circle(*args):
	return Extrema_Curve2dTool.Circle(*args)

@deprecated
def Extrema_Curve2dTool_Continuity(*args):
	return Extrema_Curve2dTool.Continuity(*args)

@deprecated
def Extrema_Curve2dTool_D0(*args):
	return Extrema_Curve2dTool.D0(*args)

@deprecated
def Extrema_Curve2dTool_D1(*args):
	return Extrema_Curve2dTool.D1(*args)

@deprecated
def Extrema_Curve2dTool_D2(*args):
	return Extrema_Curve2dTool.D2(*args)

@deprecated
def Extrema_Curve2dTool_D3(*args):
	return Extrema_Curve2dTool.D3(*args)

@deprecated
def Extrema_Curve2dTool_DN(*args):
	return Extrema_Curve2dTool.DN(*args)

@deprecated
def Extrema_Curve2dTool_DeflCurvIntervals(*args):
	return Extrema_Curve2dTool.DeflCurvIntervals(*args)

@deprecated
def Extrema_Curve2dTool_Degree(*args):
	return Extrema_Curve2dTool.Degree(*args)

@deprecated
def Extrema_Curve2dTool_Ellipse(*args):
	return Extrema_Curve2dTool.Ellipse(*args)

@deprecated
def Extrema_Curve2dTool_FirstParameter(*args):
	return Extrema_Curve2dTool.FirstParameter(*args)

@deprecated
def Extrema_Curve2dTool_GetType(*args):
	return Extrema_Curve2dTool.GetType(*args)

@deprecated
def Extrema_Curve2dTool_Hyperbola(*args):
	return Extrema_Curve2dTool.Hyperbola(*args)

@deprecated
def Extrema_Curve2dTool_Intervals(*args):
	return Extrema_Curve2dTool.Intervals(*args)

@deprecated
def Extrema_Curve2dTool_IsClosed(*args):
	return Extrema_Curve2dTool.IsClosed(*args)

@deprecated
def Extrema_Curve2dTool_IsPeriodic(*args):
	return Extrema_Curve2dTool.IsPeriodic(*args)

@deprecated
def Extrema_Curve2dTool_IsRational(*args):
	return Extrema_Curve2dTool.IsRational(*args)

@deprecated
def Extrema_Curve2dTool_LastParameter(*args):
	return Extrema_Curve2dTool.LastParameter(*args)

@deprecated
def Extrema_Curve2dTool_Line(*args):
	return Extrema_Curve2dTool.Line(*args)

@deprecated
def Extrema_Curve2dTool_NbIntervals(*args):
	return Extrema_Curve2dTool.NbIntervals(*args)

@deprecated
def Extrema_Curve2dTool_NbKnots(*args):
	return Extrema_Curve2dTool.NbKnots(*args)

@deprecated
def Extrema_Curve2dTool_NbPoles(*args):
	return Extrema_Curve2dTool.NbPoles(*args)

@deprecated
def Extrema_Curve2dTool_Parabola(*args):
	return Extrema_Curve2dTool.Parabola(*args)

@deprecated
def Extrema_Curve2dTool_Period(*args):
	return Extrema_Curve2dTool.Period(*args)

@deprecated
def Extrema_Curve2dTool_Resolution(*args):
	return Extrema_Curve2dTool.Resolution(*args)

@deprecated
def Extrema_Curve2dTool_Value(*args):
	return Extrema_Curve2dTool.Value(*args)

@deprecated
def Extrema_CurveTool_BSpline(*args):
	return Extrema_CurveTool.BSpline(*args)

@deprecated
def Extrema_CurveTool_Bezier(*args):
	return Extrema_CurveTool.Bezier(*args)

@deprecated
def Extrema_CurveTool_Circle(*args):
	return Extrema_CurveTool.Circle(*args)

@deprecated
def Extrema_CurveTool_Continuity(*args):
	return Extrema_CurveTool.Continuity(*args)

@deprecated
def Extrema_CurveTool_D0(*args):
	return Extrema_CurveTool.D0(*args)

@deprecated
def Extrema_CurveTool_D1(*args):
	return Extrema_CurveTool.D1(*args)

@deprecated
def Extrema_CurveTool_D2(*args):
	return Extrema_CurveTool.D2(*args)

@deprecated
def Extrema_CurveTool_D3(*args):
	return Extrema_CurveTool.D3(*args)

@deprecated
def Extrema_CurveTool_DN(*args):
	return Extrema_CurveTool.DN(*args)

@deprecated
def Extrema_CurveTool_DeflCurvIntervals(*args):
	return Extrema_CurveTool.DeflCurvIntervals(*args)

@deprecated
def Extrema_CurveTool_Degree(*args):
	return Extrema_CurveTool.Degree(*args)

@deprecated
def Extrema_CurveTool_Ellipse(*args):
	return Extrema_CurveTool.Ellipse(*args)

@deprecated
def Extrema_CurveTool_FirstParameter(*args):
	return Extrema_CurveTool.FirstParameter(*args)

@deprecated
def Extrema_CurveTool_GetType(*args):
	return Extrema_CurveTool.GetType(*args)

@deprecated
def Extrema_CurveTool_Hyperbola(*args):
	return Extrema_CurveTool.Hyperbola(*args)

@deprecated
def Extrema_CurveTool_Intervals(*args):
	return Extrema_CurveTool.Intervals(*args)

@deprecated
def Extrema_CurveTool_IsPeriodic(*args):
	return Extrema_CurveTool.IsPeriodic(*args)

@deprecated
def Extrema_CurveTool_IsRational(*args):
	return Extrema_CurveTool.IsRational(*args)

@deprecated
def Extrema_CurveTool_LastParameter(*args):
	return Extrema_CurveTool.LastParameter(*args)

@deprecated
def Extrema_CurveTool_Line(*args):
	return Extrema_CurveTool.Line(*args)

@deprecated
def Extrema_CurveTool_NbIntervals(*args):
	return Extrema_CurveTool.NbIntervals(*args)

@deprecated
def Extrema_CurveTool_NbKnots(*args):
	return Extrema_CurveTool.NbKnots(*args)

@deprecated
def Extrema_CurveTool_NbPoles(*args):
	return Extrema_CurveTool.NbPoles(*args)

@deprecated
def Extrema_CurveTool_Parabola(*args):
	return Extrema_CurveTool.Parabola(*args)

@deprecated
def Extrema_CurveTool_Period(*args):
	return Extrema_CurveTool.Period(*args)

@deprecated
def Extrema_CurveTool_Resolution(*args):
	return Extrema_CurveTool.Resolution(*args)

@deprecated
def Extrema_CurveTool_Value(*args):
	return Extrema_CurveTool.Value(*args)

@deprecated
def Extrema_GenLocateExtPS_IsMinDist(*args):
	return Extrema_GenLocateExtPS.IsMinDist(*args)



