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

"""
Contap module, see official documentation at
https://www.opencascade.com/doc/occt-7.4.0/refman/html/package_contap.html
"""

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

# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _Contap
else:
    import _Contap

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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


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


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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    def __sub__(self, *args) -> "ptrdiff_t":
        return _Contap.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

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


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


def process_exception(error: "Standard_Failure", method_name: "std::string", class_name: "std::string") -> "void":
    return _Contap.process_exception(error, method_name, class_name)

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

import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.math
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.Message
import OCC.Core.OSD
import OCC.Core.gp
import OCC.Core.IntSurf
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

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

Contap_Lin = _Contap.Contap_Lin
Contap_Circle = _Contap.Contap_Circle
Contap_Walking = _Contap.Contap_Walking
Contap_Restriction = _Contap.Contap_Restriction
Contap_ContourStd = _Contap.Contap_ContourStd
Contap_ContourPrs = _Contap.Contap_ContourPrs
Contap_DraftStd = _Contap.Contap_DraftStd
Contap_DraftPrs = _Contap.Contap_DraftPrs


class Contap_IType(IntEnum):
	Contap_Lin = 0
	Contap_Circle = 1
	Contap_Walking = 2
	Contap_Restriction = 3
Contap_Lin = Contap_IType.Contap_Lin
Contap_Circle = Contap_IType.Contap_Circle
Contap_Walking = Contap_IType.Contap_Walking
Contap_Restriction = Contap_IType.Contap_Restriction

class Contap_TFunction(IntEnum):
	Contap_ContourStd = 0
	Contap_ContourPrs = 1
	Contap_DraftStd = 2
	Contap_DraftPrs = 3
Contap_ContourStd = Contap_TFunction.Contap_ContourStd
Contap_ContourPrs = Contap_TFunction.Contap_ContourPrs
Contap_DraftStd = Contap_TFunction.Contap_DraftStd
Contap_DraftPrs = Contap_TFunction.Contap_DraftPrs


def Handle_Contap_TheIWLineOfTheIWalking_Create() -> "opencascade::handle< Contap_TheIWLineOfTheIWalking >":
    return _Contap.Handle_Contap_TheIWLineOfTheIWalking_Create()

def Handle_Contap_TheIWLineOfTheIWalking_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Contap_TheIWLineOfTheIWalking >":
    return _Contap.Handle_Contap_TheIWLineOfTheIWalking_DownCast(t)

def Handle_Contap_TheIWLineOfTheIWalking_IsNull(t: "opencascade::handle< Contap_TheIWLineOfTheIWalking > const &") -> "bool":
    return _Contap.Handle_Contap_TheIWLineOfTheIWalking_IsNull(t)

def Handle_Contap_TheHSequenceOfPoint_Create() -> "opencascade::handle< Contap_TheHSequenceOfPoint >":
    return _Contap.Handle_Contap_TheHSequenceOfPoint_Create()

def Handle_Contap_TheHSequenceOfPoint_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Contap_TheHSequenceOfPoint >":
    return _Contap.Handle_Contap_TheHSequenceOfPoint_DownCast(t)

def Handle_Contap_TheHSequenceOfPoint_IsNull(t: "opencascade::handle< Contap_TheHSequenceOfPoint > const &") -> "bool":
    return _Contap.Handle_Contap_TheHSequenceOfPoint_IsNull(t)
class Contap_SequenceOfIWLineOfTheIWalking(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) -> "NCollection_Sequence< opencascade::handle< Contap_TheIWLineOfTheIWalking > >::iterator":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< Contap_TheIWLineOfTheIWalking > >::iterator":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< Contap_TheIWLineOfTheIWalking > >::const_iterator":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< Contap_TheIWLineOfTheIWalking > >::const_iterator":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_cend(self)

    def __init__(self, *args):
        _Contap.Contap_SequenceOfIWLineOfTheIWalking_swiginit(self, _Contap.new_Contap_SequenceOfIWLineOfTheIWalking(*args))

    def Size(self) -> "Standard_Integer":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_Size(self)

    def Length(self) -> "Standard_Integer":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_IsEmpty(self)

    def Reverse(self) -> "void":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_delNode(theNode, theAl)

    def Clear(self, theAllocator: "IntSurf_Allocator"=0) -> "void":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_Clear(self, theAllocator)

    def Assign(self, theOther: "Contap_SequenceOfIWLineOfTheIWalking") -> "NCollection_Sequence< opencascade::handle< Contap_TheIWLineOfTheIWalking > > &":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_Assign(self, theOther)

    def Set(self, theOther: "Contap_SequenceOfIWLineOfTheIWalking") -> "NCollection_Sequence< opencascade::handle< Contap_TheIWLineOfTheIWalking > > &":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "Contap_SequenceOfIWLineOfTheIWalking") -> "void":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< Contap_TheIWLineOfTheIWalking > const &":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_First(self)

    def ChangeFirst(self) -> "opencascade::handle< Contap_TheIWLineOfTheIWalking > &":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< Contap_TheIWLineOfTheIWalking > const &":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_Last(self)

    def ChangeLast(self) -> "opencascade::handle< Contap_TheIWLineOfTheIWalking > &":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< Contap_TheIWLineOfTheIWalking > const &":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< Contap_TheIWLineOfTheIWalking > &":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< Contap_TheIWLineOfTheIWalking > &":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< Contap_TheIWLineOfTheIWalking > const &") -> "void":
        return _Contap.Contap_SequenceOfIWLineOfTheIWalking_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _Contap.delete_Contap_SequenceOfIWLineOfTheIWalking

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


# Register Contap_SequenceOfIWLineOfTheIWalking in _Contap:
_Contap.Contap_SequenceOfIWLineOfTheIWalking_swigregister(Contap_SequenceOfIWLineOfTheIWalking)

def Contap_SequenceOfIWLineOfTheIWalking_delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
    return _Contap.Contap_SequenceOfIWLineOfTheIWalking_delNode(theNode, theAl)

class Contap_SequenceOfPathPointOfTheSearch(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) -> "NCollection_Sequence< Contap_ThePathPointOfTheSearch >::iterator":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_begin(self)

    def end(self) -> "NCollection_Sequence< Contap_ThePathPointOfTheSearch >::iterator":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_end(self)

    def cbegin(self) -> "NCollection_Sequence< Contap_ThePathPointOfTheSearch >::const_iterator":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_cbegin(self)

    def cend(self) -> "NCollection_Sequence< Contap_ThePathPointOfTheSearch >::const_iterator":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_cend(self)

    def __init__(self, *args):
        _Contap.Contap_SequenceOfPathPointOfTheSearch_swiginit(self, _Contap.new_Contap_SequenceOfPathPointOfTheSearch(*args))

    def Size(self) -> "Standard_Integer":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_Size(self)

    def Length(self) -> "Standard_Integer":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_IsEmpty(self)

    def Reverse(self) -> "void":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_delNode(theNode, theAl)

    def Clear(self, theAllocator: "IntSurf_Allocator"=0) -> "void":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_Clear(self, theAllocator)

    def Assign(self, theOther: "Contap_SequenceOfPathPointOfTheSearch") -> "NCollection_Sequence< Contap_ThePathPointOfTheSearch > &":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_Assign(self, theOther)

    def Set(self, theOther: "Contap_SequenceOfPathPointOfTheSearch") -> "NCollection_Sequence< Contap_ThePathPointOfTheSearch > &":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "Contap_SequenceOfPathPointOfTheSearch") -> "void":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_Split(self, theIndex, theSeq)

    def First(self) -> "Contap_ThePathPointOfTheSearch const &":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_First(self)

    def ChangeFirst(self) -> "Contap_ThePathPointOfTheSearch &":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_ChangeFirst(self)

    def Last(self) -> "Contap_ThePathPointOfTheSearch const &":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_Last(self)

    def ChangeLast(self) -> "Contap_ThePathPointOfTheSearch &":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "Contap_ThePathPointOfTheSearch const &":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "Contap_ThePathPointOfTheSearch &":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "Contap_ThePathPointOfTheSearch &":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "Contap_ThePathPointOfTheSearch") -> "void":
        return _Contap.Contap_SequenceOfPathPointOfTheSearch_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _Contap.delete_Contap_SequenceOfPathPointOfTheSearch

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


# Register Contap_SequenceOfPathPointOfTheSearch in _Contap:
_Contap.Contap_SequenceOfPathPointOfTheSearch_swigregister(Contap_SequenceOfPathPointOfTheSearch)

def Contap_SequenceOfPathPointOfTheSearch_delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
    return _Contap.Contap_SequenceOfPathPointOfTheSearch_delNode(theNode, theAl)

class Contap_SequenceOfSegmentOfTheSearch(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) -> "NCollection_Sequence< Contap_TheSegmentOfTheSearch >::iterator":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_begin(self)

    def end(self) -> "NCollection_Sequence< Contap_TheSegmentOfTheSearch >::iterator":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_end(self)

    def cbegin(self) -> "NCollection_Sequence< Contap_TheSegmentOfTheSearch >::const_iterator":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_cbegin(self)

    def cend(self) -> "NCollection_Sequence< Contap_TheSegmentOfTheSearch >::const_iterator":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_cend(self)

    def __init__(self, *args):
        _Contap.Contap_SequenceOfSegmentOfTheSearch_swiginit(self, _Contap.new_Contap_SequenceOfSegmentOfTheSearch(*args))

    def Size(self) -> "Standard_Integer":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_Size(self)

    def Length(self) -> "Standard_Integer":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_IsEmpty(self)

    def Reverse(self) -> "void":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_delNode(theNode, theAl)

    def Clear(self, theAllocator: "IntSurf_Allocator"=0) -> "void":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_Clear(self, theAllocator)

    def Assign(self, theOther: "Contap_SequenceOfSegmentOfTheSearch") -> "NCollection_Sequence< Contap_TheSegmentOfTheSearch > &":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_Assign(self, theOther)

    def Set(self, theOther: "Contap_SequenceOfSegmentOfTheSearch") -> "NCollection_Sequence< Contap_TheSegmentOfTheSearch > &":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "Contap_SequenceOfSegmentOfTheSearch") -> "void":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_Split(self, theIndex, theSeq)

    def First(self) -> "Contap_TheSegmentOfTheSearch const &":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_First(self)

    def ChangeFirst(self) -> "Contap_TheSegmentOfTheSearch &":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_ChangeFirst(self)

    def Last(self) -> "Contap_TheSegmentOfTheSearch const &":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_Last(self)

    def ChangeLast(self) -> "Contap_TheSegmentOfTheSearch &":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "Contap_TheSegmentOfTheSearch const &":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "Contap_TheSegmentOfTheSearch &":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "Contap_TheSegmentOfTheSearch &":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "Contap_TheSegmentOfTheSearch") -> "void":
        return _Contap.Contap_SequenceOfSegmentOfTheSearch_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _Contap.delete_Contap_SequenceOfSegmentOfTheSearch

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


# Register Contap_SequenceOfSegmentOfTheSearch in _Contap:
_Contap.Contap_SequenceOfSegmentOfTheSearch_swigregister(Contap_SequenceOfSegmentOfTheSearch)

def Contap_SequenceOfSegmentOfTheSearch_delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
    return _Contap.Contap_SequenceOfSegmentOfTheSearch_delNode(theNode, theAl)

class Contap_TheSequenceOfLine(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) -> "NCollection_Sequence< Contap_Line >::iterator":
        return _Contap.Contap_TheSequenceOfLine_begin(self)

    def end(self) -> "NCollection_Sequence< Contap_Line >::iterator":
        return _Contap.Contap_TheSequenceOfLine_end(self)

    def cbegin(self) -> "NCollection_Sequence< Contap_Line >::const_iterator":
        return _Contap.Contap_TheSequenceOfLine_cbegin(self)

    def cend(self) -> "NCollection_Sequence< Contap_Line >::const_iterator":
        return _Contap.Contap_TheSequenceOfLine_cend(self)

    def __init__(self, *args):
        _Contap.Contap_TheSequenceOfLine_swiginit(self, _Contap.new_Contap_TheSequenceOfLine(*args))

    def Size(self) -> "Standard_Integer":
        return _Contap.Contap_TheSequenceOfLine_Size(self)

    def Length(self) -> "Standard_Integer":
        return _Contap.Contap_TheSequenceOfLine_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _Contap.Contap_TheSequenceOfLine_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _Contap.Contap_TheSequenceOfLine_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _Contap.Contap_TheSequenceOfLine_IsEmpty(self)

    def Reverse(self) -> "void":
        return _Contap.Contap_TheSequenceOfLine_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _Contap.Contap_TheSequenceOfLine_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
        return _Contap.Contap_TheSequenceOfLine_delNode(theNode, theAl)

    def Clear(self, theAllocator: "IntSurf_Allocator"=0) -> "void":
        return _Contap.Contap_TheSequenceOfLine_Clear(self, theAllocator)

    def Assign(self, theOther: "Contap_TheSequenceOfLine") -> "NCollection_Sequence< Contap_Line > &":
        return _Contap.Contap_TheSequenceOfLine_Assign(self, theOther)

    def Set(self, theOther: "Contap_TheSequenceOfLine") -> "NCollection_Sequence< Contap_Line > &":
        return _Contap.Contap_TheSequenceOfLine_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _Contap.Contap_TheSequenceOfLine_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _Contap.Contap_TheSequenceOfLine_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _Contap.Contap_TheSequenceOfLine_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _Contap.Contap_TheSequenceOfLine_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _Contap.Contap_TheSequenceOfLine_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "Contap_TheSequenceOfLine") -> "void":
        return _Contap.Contap_TheSequenceOfLine_Split(self, theIndex, theSeq)

    def First(self) -> "Contap_Line const &":
        return _Contap.Contap_TheSequenceOfLine_First(self)

    def ChangeFirst(self) -> "Contap_Line &":
        return _Contap.Contap_TheSequenceOfLine_ChangeFirst(self)

    def Last(self) -> "Contap_Line const &":
        return _Contap.Contap_TheSequenceOfLine_Last(self)

    def ChangeLast(self) -> "Contap_Line &":
        return _Contap.Contap_TheSequenceOfLine_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "Contap_Line const &":
        return _Contap.Contap_TheSequenceOfLine_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "Contap_Line &":
        return _Contap.Contap_TheSequenceOfLine_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "Contap_Line &":
        return _Contap.Contap_TheSequenceOfLine___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "Contap_Line") -> "void":
        return _Contap.Contap_TheSequenceOfLine_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _Contap.delete_Contap_TheSequenceOfLine

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


# Register Contap_TheSequenceOfLine in _Contap:
_Contap.Contap_TheSequenceOfLine_swigregister(Contap_TheSequenceOfLine)

def Contap_TheSequenceOfLine_delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
    return _Contap.Contap_TheSequenceOfLine_delNode(theNode, theAl)

class Contap_TheSequenceOfPoint(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) -> "NCollection_Sequence< Contap_Point >::iterator":
        return _Contap.Contap_TheSequenceOfPoint_begin(self)

    def end(self) -> "NCollection_Sequence< Contap_Point >::iterator":
        return _Contap.Contap_TheSequenceOfPoint_end(self)

    def cbegin(self) -> "NCollection_Sequence< Contap_Point >::const_iterator":
        return _Contap.Contap_TheSequenceOfPoint_cbegin(self)

    def cend(self) -> "NCollection_Sequence< Contap_Point >::const_iterator":
        return _Contap.Contap_TheSequenceOfPoint_cend(self)

    def __init__(self, *args):
        _Contap.Contap_TheSequenceOfPoint_swiginit(self, _Contap.new_Contap_TheSequenceOfPoint(*args))

    def Size(self) -> "Standard_Integer":
        return _Contap.Contap_TheSequenceOfPoint_Size(self)

    def Length(self) -> "Standard_Integer":
        return _Contap.Contap_TheSequenceOfPoint_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _Contap.Contap_TheSequenceOfPoint_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _Contap.Contap_TheSequenceOfPoint_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _Contap.Contap_TheSequenceOfPoint_IsEmpty(self)

    def Reverse(self) -> "void":
        return _Contap.Contap_TheSequenceOfPoint_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _Contap.Contap_TheSequenceOfPoint_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
        return _Contap.Contap_TheSequenceOfPoint_delNode(theNode, theAl)

    def Clear(self, theAllocator: "IntSurf_Allocator"=0) -> "void":
        return _Contap.Contap_TheSequenceOfPoint_Clear(self, theAllocator)

    def Assign(self, theOther: "Contap_TheSequenceOfPoint") -> "NCollection_Sequence< Contap_Point > &":
        return _Contap.Contap_TheSequenceOfPoint_Assign(self, theOther)

    def Set(self, theOther: "Contap_TheSequenceOfPoint") -> "NCollection_Sequence< Contap_Point > &":
        return _Contap.Contap_TheSequenceOfPoint_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _Contap.Contap_TheSequenceOfPoint_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _Contap.Contap_TheSequenceOfPoint_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _Contap.Contap_TheSequenceOfPoint_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _Contap.Contap_TheSequenceOfPoint_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _Contap.Contap_TheSequenceOfPoint_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "Contap_TheSequenceOfPoint") -> "void":
        return _Contap.Contap_TheSequenceOfPoint_Split(self, theIndex, theSeq)

    def First(self) -> "Contap_Point const &":
        return _Contap.Contap_TheSequenceOfPoint_First(self)

    def ChangeFirst(self) -> "Contap_Point &":
        return _Contap.Contap_TheSequenceOfPoint_ChangeFirst(self)

    def Last(self) -> "Contap_Point const &":
        return _Contap.Contap_TheSequenceOfPoint_Last(self)

    def ChangeLast(self) -> "Contap_Point &":
        return _Contap.Contap_TheSequenceOfPoint_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "Contap_Point const &":
        return _Contap.Contap_TheSequenceOfPoint_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "Contap_Point &":
        return _Contap.Contap_TheSequenceOfPoint_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "Contap_Point &":
        return _Contap.Contap_TheSequenceOfPoint___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "Contap_Point") -> "void":
        return _Contap.Contap_TheSequenceOfPoint_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _Contap.delete_Contap_TheSequenceOfPoint

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


# Register Contap_TheSequenceOfPoint in _Contap:
_Contap.Contap_TheSequenceOfPoint_swigregister(Contap_TheSequenceOfPoint)

def Contap_TheSequenceOfPoint_delNode(theNode: "NCollection_SeqNode *", theAl: "IntSurf_Allocator") -> "void":
    return _Contap.Contap_TheSequenceOfPoint_delNode(theNode, theAl)

class Contap_ArcFunction(OCC.Core.math.math_FunctionWithDerivative):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        _Contap.Contap_ArcFunction_swiginit(self, _Contap.new_Contap_ArcFunction(*args))

    def LastComputedPoint(self, *args) -> "gp_Pnt const":
        r"""
        Returns the point, which has been computed while the last calling value() method.

        Returns
        -------
        gp_Pnt

        """
        return _Contap.Contap_ArcFunction_LastComputedPoint(self, *args)

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

        Returns
        -------
        int

        """
        return _Contap.Contap_ArcFunction_NbSamples(self, *args)

    def Quadric(self, *args) -> "IntSurf_Quadric const &":
        r"""
        No available documentation.

        Returns
        -------
        IntSurf_Quadric

        """
        return _Contap.Contap_ArcFunction_Quadric(self, *args)

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

        Parameters
        ----------
        S: Adaptor3d_HSurface

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

        Parameters
        ----------
        Direction: gp_Dir

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

        Parameters
        ----------
        Direction: gp_Dir
        Angle: float

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

        Parameters
        ----------
        Eye: gp_Pnt

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

        Parameters
        ----------
        Eye: gp_Pnt
        Angle: float

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

        Parameters
        ----------
        A: Adaptor2d_HCurve2d

        Returns
        -------
        None

        """
        return _Contap.Contap_ArcFunction_Set(self, *args)

    def Surface(self, *args) -> "opencascade::handle< Adaptor3d_HSurface > const &":
        r"""
        Returns mysurf field.

        Returns
        -------
        opencascade::handle<Adaptor3d_HSurface>

        """
        return _Contap.Contap_ArcFunction_Surface(self, *args)

    def Valpoint(self, *args) -> "gp_Pnt const":
        r"""
        No available documentation.

        Parameters
        ----------
        Index: int

        Returns
        -------
        gp_Pnt

        """
        return _Contap.Contap_ArcFunction_Valpoint(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Contap.delete_Contap_ArcFunction

# Register Contap_ArcFunction in _Contap:
_Contap.Contap_ArcFunction_swigregister(Contap_ArcFunction)

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

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        _Contap.Contap_ContAna_swiginit(self, _Contap.new_Contap_ContAna(*args))

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

        Returns
        -------
        gp_Circ

        """
        return _Contap.Contap_ContAna_Circle(self, *args)

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

        Returns
        -------
        bool

        """
        return _Contap.Contap_ContAna_IsDone(self, *args)

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

        Parameters
        ----------
        Index: int

        Returns
        -------
        gp_Lin

        """
        return _Contap.Contap_ContAna_Line(self, *args)

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

        Returns
        -------
        int

        """
        return _Contap.Contap_ContAna_NbContours(self, *args)

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

        Parameters
        ----------
        S: gp_Sphere
        D: gp_Dir

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

        Parameters
        ----------
        S: gp_Sphere
        D: gp_Dir
        Ang: float

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

        Parameters
        ----------
        S: gp_Sphere
        Eye: gp_Pnt

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

        Parameters
        ----------
        C: gp_Cylinder
        D: gp_Dir

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

        Parameters
        ----------
        C: gp_Cylinder
        D: gp_Dir
        Ang: float

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

        Parameters
        ----------
        C: gp_Cylinder
        Eye: gp_Pnt

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

        Parameters
        ----------
        C: gp_Cone
        D: gp_Dir

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

        Parameters
        ----------
        C: gp_Cone
        D: gp_Dir
        Ang: float

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

        Parameters
        ----------
        C: gp_Cone
        Eye: gp_Pnt

        Returns
        -------
        None

        """
        return _Contap.Contap_ContAna_Perform(self, *args)

    def TypeContour(self, *args) -> "GeomAbs_CurveType":
        r"""
        Returns geomabs_line or geomabs_circle, when isdone() returns true.

        Returns
        -------
        GeomAbs_CurveType

        """
        return _Contap.Contap_ContAna_TypeContour(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Contap.delete_Contap_ContAna

# Register Contap_ContAna in _Contap:
_Contap.Contap_ContAna_swigregister(Contap_ContAna)

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

    def __init__(self, *args):
        r"""
        No available documentation.

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

        Parameters
        ----------
        Direction: gp_Vec

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

        Parameters
        ----------
        Direction: gp_Vec
        Angle: float

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

        Parameters
        ----------
        Eye: gp_Pnt

        Returns
        -------
        None
        Creates the contour in a given direction.

        Parameters
        ----------
        Surf: Adaptor3d_HSurface
        Domain: Adaptor3d_TopolTool
        Direction: gp_Vec

        Returns
        -------
        None
        Creates the contour in a given direction.

        Parameters
        ----------
        Surf: Adaptor3d_HSurface
        Domain: Adaptor3d_TopolTool
        Direction: gp_Vec
        Angle: float

        Returns
        -------
        None
        Creates the contour for a perspective view.

        Parameters
        ----------
        Surf: Adaptor3d_HSurface
        Domain: Adaptor3d_TopolTool
        Eye: gp_Pnt

        Returns
        -------
        None

        """
        _Contap.Contap_Contour_swiginit(self, _Contap.new_Contap_Contour(*args))

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

        Parameters
        ----------
        Direction: gp_Vec

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

        Parameters
        ----------
        Direction: gp_Vec
        Angle: float

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

        Parameters
        ----------
        Eye: gp_Pnt

        Returns
        -------
        None

        """
        return _Contap.Contap_Contour_Init(self, *args)

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

        Returns
        -------
        bool

        """
        return _Contap.Contap_Contour_IsDone(self, *args)

    def IsEmpty(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the is no line.

        Returns
        -------
        bool

        """
        return _Contap.Contap_Contour_IsEmpty(self, *args)

    def Line(self, *args) -> "Contap_Line const &":
        r"""
        No available documentation.

        Parameters
        ----------
        Index: int

        Returns
        -------
        Contap_Line

        """
        return _Contap.Contap_Contour_Line(self, *args)

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

        Returns
        -------
        int

        """
        return _Contap.Contap_Contour_NbLines(self, *args)

    def Perform(self, *args) -> "void":
        r"""
        Creates the contour in a given direction.

        Parameters
        ----------
        Surf: Adaptor3d_HSurface
        Domain: Adaptor3d_TopolTool

        Returns
        -------
        None
        Creates the contour in a given direction.

        Parameters
        ----------
        Surf: Adaptor3d_HSurface
        Domain: Adaptor3d_TopolTool
        Direction: gp_Vec

        Returns
        -------
        None
        Creates the contour in a given direction.

        Parameters
        ----------
        Surf: Adaptor3d_HSurface
        Domain: Adaptor3d_TopolTool
        Direction: gp_Vec
        Angle: float

        Returns
        -------
        None
        Creates the contour for a perspective view.

        Parameters
        ----------
        Surf: Adaptor3d_HSurface
        Domain: Adaptor3d_TopolTool
        Eye: gp_Pnt

        Returns
        -------
        None

        """
        return _Contap.Contap_Contour_Perform(self, *args)

    def SurfaceFunction(self, *args) -> "Contap_SurfFunction &":
        r"""
        Returns a reference on the internal surfacefunction. this is used to compute tangents on the lines.

        Returns
        -------
        Contap_SurfFunction

        """
        return _Contap.Contap_Contour_SurfaceFunction(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Contap.delete_Contap_Contour

# Register Contap_Contour in _Contap:
_Contap.Contap_Contour_swigregister(Contap_Contour)

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

    @staticmethod
    def Bounds(*args) -> "Standard_Real &, Standard_Real &":
        r"""
        Returns the parametric limits on the arc c. these limits must be finite : they are either the real limits of the arc, for a finite arc, or a bounding box for an infinite arc.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        Ufirst: float
        Ulast: float

        """
        return _Contap.Contap_HContTool_Bounds(*args)

    @staticmethod
    def HasBeenSeen(*args) -> "Standard_Boolean":
        r"""
        Returns true if all the intersection point and edges are known on the arc. the intersection point are given as vertices. the intersection edges are given as intervals between two vertices.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        bool

        """
        return _Contap.Contap_HContTool_HasBeenSeen(*args)

    @staticmethod
    def HasFirstPoint(*args) -> "Standard_Integer &":
        r"""
        Returns true when the segment of range index is not open at the left side. in that case, indfirst is the range in the list intersection points (see nbpoints) of the one which defines the left bound of the segment. otherwise, the method has to return false, and indfirst has no meaning.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d
        Index: int

        Returns
        -------
        IndFirst: int

        """
        return _Contap.Contap_HContTool_HasFirstPoint(*args)

    @staticmethod
    def HasLastPoint(*args) -> "Standard_Integer &":
        r"""
        Returns true when the segment of range index is not open at the right side. in that case, indlast is the range in the list intersection points (see nbpoints) of the one which defines the right bound of the segment. otherwise, the method has to return false, and indlast has no meaning.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d
        Index: int

        Returns
        -------
        IndLast: int

        """
        return _Contap.Contap_HContTool_HasLastPoint(*args)

    @staticmethod
    def IsAllSolution(*args) -> "Standard_Boolean":
        r"""
        Returns true when the whole restriction is solution of the intersection problem.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        bool

        """
        return _Contap.Contap_HContTool_IsAllSolution(*args)

    @staticmethod
    def IsVertex(*args) -> "Standard_Boolean":
        r"""
        Returns true if the intersection point of range index corresponds with a vertex on the arc a.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d
        Index: int

        Returns
        -------
        bool

        """
        return _Contap.Contap_HContTool_IsVertex(*args)

    @staticmethod
    def NbPoints(*args) -> "Standard_Integer":
        r"""
        Returns the number of intersection points on the arc a.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        int

        """
        return _Contap.Contap_HContTool_NbPoints(*args)

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

        Parameters
        ----------
        S: Adaptor3d_HSurface

        Returns
        -------
        int

        """
        return _Contap.Contap_HContTool_NbSamplePoints(*args)

    @staticmethod
    def NbSamplesOnArc(*args) -> "Standard_Integer":
        r"""
        Returns the number of points which is used to make a sample on the arc. this number is a function of the surface and the curveonsurface complexity.

        Parameters
        ----------
        A: Adaptor2d_HCurve2d

        Returns
        -------
        int

        """
        return _Contap.Contap_HContTool_NbSamplesOnArc(*args)

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

        Parameters
        ----------
        S: Adaptor3d_HSurface
        u1: float
        u2: float

        Returns
        -------
        int

        """
        return _Contap.Contap_HContTool_NbSamplesU(*args)

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

        Parameters
        ----------
        S: Adaptor3d_HSurface
        v1: float
        v2: float

        Returns
        -------
        int

        """
        return _Contap.Contap_HContTool_NbSamplesV(*args)

    @staticmethod
    def NbSegments(*args) -> "Standard_Integer":
        r"""
        Returns the number of part of a solution of the of intersection problem.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        int

        """
        return _Contap.Contap_HContTool_NbSegments(*args)

    @staticmethod
    def Parameter(*args) -> "Standard_Real":
        r"""
        Returns the parameter of the vertex v on the arc a.

        Parameters
        ----------
        V: Adaptor3d_HVertex
        C: Adaptor2d_HCurve2d

        Returns
        -------
        float

        """
        return _Contap.Contap_HContTool_Parameter(*args)

    @staticmethod
    def Project(*args) -> "Standard_Real &":
        r"""
        Projects the point p on the arc c. if the methods returns standard_true, the projection is successful, and paramproj is the parameter on the arc of the projected point, ptproj is the projected point. if the method returns standard_false, param proj and ptproj are not significant.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d
        P: gp_Pnt2d
        Ptproj: gp_Pnt2d

        Returns
        -------
        Paramproj: float

        """
        return _Contap.Contap_HContTool_Project(*args)

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

        Parameters
        ----------
        S: Adaptor3d_HSurface
        Index: int

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

        """
        return _Contap.Contap_HContTool_SamplePoint(*args)

    @staticmethod
    def Tolerance(*args) -> "Standard_Real":
        r"""
        Returns the parametric tolerance used to consider that the vertex and another point meet, i-e if abs(parameter(vertex) - parameter(otherpnt))<= tolerance, the points are 'merged'.

        Parameters
        ----------
        V: Adaptor3d_HVertex
        C: Adaptor2d_HCurve2d

        Returns
        -------
        float

        """
        return _Contap.Contap_HContTool_Tolerance(*args)

    @staticmethod
    def Value(*args) -> "Standard_Real &, Standard_Real &":
        r"""
        Returns the value (pt), the tolerance (tol), and the parameter (u) on the arc a , of the intersection point of range index.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d
        Index: int
        Pt: gp_Pnt

        Returns
        -------
        Tol: float
        U: float

        """
        return _Contap.Contap_HContTool_Value(*args)

    @staticmethod
    def Vertex(*args) -> "void":
        r"""
        When isvertex returns true, this method returns the vertex on the arc a.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d
        Index: int
        V: Adaptor3d_HVertex

        Returns
        -------
        None

        """
        return _Contap.Contap_HContTool_Vertex(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _Contap.Contap_HContTool_swiginit(self, _Contap.new_Contap_HContTool())
    __swig_destroy__ = _Contap.delete_Contap_HContTool

# Register Contap_HContTool in _Contap:
_Contap.Contap_HContTool_swigregister(Contap_HContTool)

def Contap_HContTool_Bounds(*args) -> "Standard_Real &, Standard_Real &":
    r"""
    Returns the parametric limits on the arc c. these limits must be finite : they are either the real limits of the arc, for a finite arc, or a bounding box for an infinite arc.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    Ufirst: float
    Ulast: float

    """
    return _Contap.Contap_HContTool_Bounds(*args)

def Contap_HContTool_HasBeenSeen(*args) -> "Standard_Boolean":
    r"""
    Returns true if all the intersection point and edges are known on the arc. the intersection point are given as vertices. the intersection edges are given as intervals between two vertices.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    bool

    """
    return _Contap.Contap_HContTool_HasBeenSeen(*args)

def Contap_HContTool_HasFirstPoint(*args) -> "Standard_Integer &":
    r"""
    Returns true when the segment of range index is not open at the left side. in that case, indfirst is the range in the list intersection points (see nbpoints) of the one which defines the left bound of the segment. otherwise, the method has to return false, and indfirst has no meaning.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d
    Index: int

    Returns
    -------
    IndFirst: int

    """
    return _Contap.Contap_HContTool_HasFirstPoint(*args)

def Contap_HContTool_HasLastPoint(*args) -> "Standard_Integer &":
    r"""
    Returns true when the segment of range index is not open at the right side. in that case, indlast is the range in the list intersection points (see nbpoints) of the one which defines the right bound of the segment. otherwise, the method has to return false, and indlast has no meaning.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d
    Index: int

    Returns
    -------
    IndLast: int

    """
    return _Contap.Contap_HContTool_HasLastPoint(*args)

def Contap_HContTool_IsAllSolution(*args) -> "Standard_Boolean":
    r"""
    Returns true when the whole restriction is solution of the intersection problem.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    bool

    """
    return _Contap.Contap_HContTool_IsAllSolution(*args)

def Contap_HContTool_IsVertex(*args) -> "Standard_Boolean":
    r"""
    Returns true if the intersection point of range index corresponds with a vertex on the arc a.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d
    Index: int

    Returns
    -------
    bool

    """
    return _Contap.Contap_HContTool_IsVertex(*args)

def Contap_HContTool_NbPoints(*args) -> "Standard_Integer":
    r"""
    Returns the number of intersection points on the arc a.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    int

    """
    return _Contap.Contap_HContTool_NbPoints(*args)

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

    Parameters
    ----------
    S: Adaptor3d_HSurface

    Returns
    -------
    int

    """
    return _Contap.Contap_HContTool_NbSamplePoints(*args)

def Contap_HContTool_NbSamplesOnArc(*args) -> "Standard_Integer":
    r"""
    Returns the number of points which is used to make a sample on the arc. this number is a function of the surface and the curveonsurface complexity.

    Parameters
    ----------
    A: Adaptor2d_HCurve2d

    Returns
    -------
    int

    """
    return _Contap.Contap_HContTool_NbSamplesOnArc(*args)

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

    Parameters
    ----------
    S: Adaptor3d_HSurface
    u1: float
    u2: float

    Returns
    -------
    int

    """
    return _Contap.Contap_HContTool_NbSamplesU(*args)

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

    Parameters
    ----------
    S: Adaptor3d_HSurface
    v1: float
    v2: float

    Returns
    -------
    int

    """
    return _Contap.Contap_HContTool_NbSamplesV(*args)

def Contap_HContTool_NbSegments(*args) -> "Standard_Integer":
    r"""
    Returns the number of part of a solution of the of intersection problem.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    int

    """
    return _Contap.Contap_HContTool_NbSegments(*args)

def Contap_HContTool_Parameter(*args) -> "Standard_Real":
    r"""
    Returns the parameter of the vertex v on the arc a.

    Parameters
    ----------
    V: Adaptor3d_HVertex
    C: Adaptor2d_HCurve2d

    Returns
    -------
    float

    """
    return _Contap.Contap_HContTool_Parameter(*args)

def Contap_HContTool_Project(*args) -> "Standard_Real &":
    r"""
    Projects the point p on the arc c. if the methods returns standard_true, the projection is successful, and paramproj is the parameter on the arc of the projected point, ptproj is the projected point. if the method returns standard_false, param proj and ptproj are not significant.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d
    P: gp_Pnt2d
    Ptproj: gp_Pnt2d

    Returns
    -------
    Paramproj: float

    """
    return _Contap.Contap_HContTool_Project(*args)

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

    Parameters
    ----------
    S: Adaptor3d_HSurface
    Index: int

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

    """
    return _Contap.Contap_HContTool_SamplePoint(*args)

def Contap_HContTool_Tolerance(*args) -> "Standard_Real":
    r"""
    Returns the parametric tolerance used to consider that the vertex and another point meet, i-e if abs(parameter(vertex) - parameter(otherpnt))<= tolerance, the points are 'merged'.

    Parameters
    ----------
    V: Adaptor3d_HVertex
    C: Adaptor2d_HCurve2d

    Returns
    -------
    float

    """
    return _Contap.Contap_HContTool_Tolerance(*args)

def Contap_HContTool_Value(*args) -> "Standard_Real &, Standard_Real &":
    r"""
    Returns the value (pt), the tolerance (tol), and the parameter (u) on the arc a , of the intersection point of range index.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d
    Index: int
    Pt: gp_Pnt

    Returns
    -------
    Tol: float
    U: float

    """
    return _Contap.Contap_HContTool_Value(*args)

def Contap_HContTool_Vertex(*args) -> "void":
    r"""
    When isvertex returns true, this method returns the vertex on the arc a.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d
    Index: int
    V: Adaptor3d_HVertex

    Returns
    -------
    None

    """
    return _Contap.Contap_HContTool_Vertex(*args)

class Contap_HCurve2dTool(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) -> "opencascade::handle< Geom2d_BSplineCurve >":
        r"""
        No available documentation.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        opencascade::handle<Geom2d_BSplineCurve>

        """
        return _Contap.Contap_HCurve2dTool_BSpline(*args)

    @staticmethod
    def Bezier(*args) -> "opencascade::handle< Geom2d_BezierCurve >":
        r"""
        No available documentation.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        opencascade::handle<Geom2d_BezierCurve>

        """
        return _Contap.Contap_HCurve2dTool_Bezier(*args)

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

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        gp_Circ2d

        """
        return _Contap.Contap_HCurve2dTool_Circle(*args)

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

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        GeomAbs_Shape

        """
        return _Contap.Contap_HCurve2dTool_Continuity(*args)

    @staticmethod
    def D0(*args) -> "void":
        r"""
        Computes the point of parameter u on the curve.

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

        Returns
        -------
        None

        """
        return _Contap.Contap_HCurve2dTool_D0(*args)

    @staticmethod
    def D1(*args) -> "void":
        r"""
        Computes the point of parameter u on the curve with its first derivative. raised if the continuity of the current interval is not c1.

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

        Returns
        -------
        None

        """
        return _Contap.Contap_HCurve2dTool_D1(*args)

    @staticmethod
    def D2(*args) -> "void":
        r"""
        Returns the point p of parameter u, the first and second derivatives v1 and v2. raised if the continuity of the current interval is not c2.

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

        Returns
        -------
        None

        """
        return _Contap.Contap_HCurve2dTool_D2(*args)

    @staticmethod
    def D3(*args) -> "void":
        r"""
        Returns the point p of parameter u, the first, the second and the third derivative. raised if the continuity of the current interval is not c3.

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

        Returns
        -------
        None

        """
        return _Contap.Contap_HCurve2dTool_D3(*args)

    @staticmethod
    def DN(*args) -> "gp_Vec2d":
        r"""
        The returned vector gives the value of the derivative for the order of derivation n. raised if the continuity of the current interval is not cn. raised if n < 1.

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

        Returns
        -------
        gp_Vec2d

        """
        return _Contap.Contap_HCurve2dTool_DN(*args)

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

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        gp_Elips2d

        """
        return _Contap.Contap_HCurve2dTool_Ellipse(*args)

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

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        float

        """
        return _Contap.Contap_HCurve2dTool_FirstParameter(*args)

    @staticmethod
    def GetType(*args) -> "GeomAbs_CurveType":
        r"""
        Returns the type of the curve in the current interval : line, circle, ellipse, hyperbola, parabola, beziercurve, bsplinecurve, othercurve.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        GeomAbs_CurveType

        """
        return _Contap.Contap_HCurve2dTool_GetType(*args)

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

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        gp_Hypr2d

        """
        return _Contap.Contap_HCurve2dTool_Hyperbola(*args)

    @staticmethod
    def Intervals(*args) -> "void":
        r"""
        Stores in <t> the parameters bounding the intervals of continuity <s>. //! the array must provide enough room to accomodate for the parameters. i.e. t.length() > nbintervals().

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

        Returns
        -------
        None

        """
        return _Contap.Contap_HCurve2dTool_Intervals(*args)

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

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        bool

        """
        return _Contap.Contap_HCurve2dTool_IsClosed(*args)

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

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        bool

        """
        return _Contap.Contap_HCurve2dTool_IsPeriodic(*args)

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

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        float

        """
        return _Contap.Contap_HCurve2dTool_LastParameter(*args)

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

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        gp_Lin2d

        """
        return _Contap.Contap_HCurve2dTool_Line(*args)

    @staticmethod
    def NbIntervals(*args) -> "Standard_Integer":
        r"""
        Returns the number of intervals for continuity <s>. may be one if continuity(myclass) >= <s>.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d
        S: GeomAbs_Shape

        Returns
        -------
        int

        """
        return _Contap.Contap_HCurve2dTool_NbIntervals(*args)

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

        Parameters
        ----------
        C: Adaptor2d_HCurve2d
        U0: float
        U1: float

        Returns
        -------
        int

        """
        return _Contap.Contap_HCurve2dTool_NbSamples(*args)

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

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        gp_Parab2d

        """
        return _Contap.Contap_HCurve2dTool_Parabola(*args)

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

        Parameters
        ----------
        C: Adaptor2d_HCurve2d

        Returns
        -------
        float

        """
        return _Contap.Contap_HCurve2dTool_Period(*args)

    @staticmethod
    def Resolution(*args) -> "Standard_Real":
        r"""
        Returns the parametric resolution corresponding to the real space resolution <r3d>.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d
        R3d: float

        Returns
        -------
        float

        """
        return _Contap.Contap_HCurve2dTool_Resolution(*args)

    @staticmethod
    def Value(*args) -> "gp_Pnt2d":
        r"""
        Computes the point of parameter u on the curve.

        Parameters
        ----------
        C: Adaptor2d_HCurve2d
        U: float

        Returns
        -------
        gp_Pnt2d

        """
        return _Contap.Contap_HCurve2dTool_Value(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _Contap.Contap_HCurve2dTool_swiginit(self, _Contap.new_Contap_HCurve2dTool())
    __swig_destroy__ = _Contap.delete_Contap_HCurve2dTool

# Register Contap_HCurve2dTool in _Contap:
_Contap.Contap_HCurve2dTool_swigregister(Contap_HCurve2dTool)

def Contap_HCurve2dTool_BSpline(*args) -> "opencascade::handle< Geom2d_BSplineCurve >":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    opencascade::handle<Geom2d_BSplineCurve>

    """
    return _Contap.Contap_HCurve2dTool_BSpline(*args)

def Contap_HCurve2dTool_Bezier(*args) -> "opencascade::handle< Geom2d_BezierCurve >":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    opencascade::handle<Geom2d_BezierCurve>

    """
    return _Contap.Contap_HCurve2dTool_Bezier(*args)

def Contap_HCurve2dTool_Circle(*args) -> "gp_Circ2d":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    gp_Circ2d

    """
    return _Contap.Contap_HCurve2dTool_Circle(*args)

def Contap_HCurve2dTool_Continuity(*args) -> "GeomAbs_Shape":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    GeomAbs_Shape

    """
    return _Contap.Contap_HCurve2dTool_Continuity(*args)

def Contap_HCurve2dTool_D0(*args) -> "void":
    r"""
    Computes the point of parameter u on the curve.

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

    Returns
    -------
    None

    """
    return _Contap.Contap_HCurve2dTool_D0(*args)

def Contap_HCurve2dTool_D1(*args) -> "void":
    r"""
    Computes the point of parameter u on the curve with its first derivative. raised if the continuity of the current interval is not c1.

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

    Returns
    -------
    None

    """
    return _Contap.Contap_HCurve2dTool_D1(*args)

def Contap_HCurve2dTool_D2(*args) -> "void":
    r"""
    Returns the point p of parameter u, the first and second derivatives v1 and v2. raised if the continuity of the current interval is not c2.

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

    Returns
    -------
    None

    """
    return _Contap.Contap_HCurve2dTool_D2(*args)

def Contap_HCurve2dTool_D3(*args) -> "void":
    r"""
    Returns the point p of parameter u, the first, the second and the third derivative. raised if the continuity of the current interval is not c3.

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

    Returns
    -------
    None

    """
    return _Contap.Contap_HCurve2dTool_D3(*args)

def Contap_HCurve2dTool_DN(*args) -> "gp_Vec2d":
    r"""
    The returned vector gives the value of the derivative for the order of derivation n. raised if the continuity of the current interval is not cn. raised if n < 1.

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

    Returns
    -------
    gp_Vec2d

    """
    return _Contap.Contap_HCurve2dTool_DN(*args)

def Contap_HCurve2dTool_Ellipse(*args) -> "gp_Elips2d":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    gp_Elips2d

    """
    return _Contap.Contap_HCurve2dTool_Ellipse(*args)

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

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    float

    """
    return _Contap.Contap_HCurve2dTool_FirstParameter(*args)

def Contap_HCurve2dTool_GetType(*args) -> "GeomAbs_CurveType":
    r"""
    Returns the type of the curve in the current interval : line, circle, ellipse, hyperbola, parabola, beziercurve, bsplinecurve, othercurve.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    GeomAbs_CurveType

    """
    return _Contap.Contap_HCurve2dTool_GetType(*args)

def Contap_HCurve2dTool_Hyperbola(*args) -> "gp_Hypr2d":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    gp_Hypr2d

    """
    return _Contap.Contap_HCurve2dTool_Hyperbola(*args)

def Contap_HCurve2dTool_Intervals(*args) -> "void":
    r"""
    Stores in <t> the parameters bounding the intervals of continuity <s>. //! the array must provide enough room to accomodate for the parameters. i.e. t.length() > nbintervals().

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

    Returns
    -------
    None

    """
    return _Contap.Contap_HCurve2dTool_Intervals(*args)

def Contap_HCurve2dTool_IsClosed(*args) -> "Standard_Boolean":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    bool

    """
    return _Contap.Contap_HCurve2dTool_IsClosed(*args)

def Contap_HCurve2dTool_IsPeriodic(*args) -> "Standard_Boolean":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    bool

    """
    return _Contap.Contap_HCurve2dTool_IsPeriodic(*args)

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

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    float

    """
    return _Contap.Contap_HCurve2dTool_LastParameter(*args)

def Contap_HCurve2dTool_Line(*args) -> "gp_Lin2d":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    gp_Lin2d

    """
    return _Contap.Contap_HCurve2dTool_Line(*args)

def Contap_HCurve2dTool_NbIntervals(*args) -> "Standard_Integer":
    r"""
    Returns the number of intervals for continuity <s>. may be one if continuity(myclass) >= <s>.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d
    S: GeomAbs_Shape

    Returns
    -------
    int

    """
    return _Contap.Contap_HCurve2dTool_NbIntervals(*args)

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

    Parameters
    ----------
    C: Adaptor2d_HCurve2d
    U0: float
    U1: float

    Returns
    -------
    int

    """
    return _Contap.Contap_HCurve2dTool_NbSamples(*args)

def Contap_HCurve2dTool_Parabola(*args) -> "gp_Parab2d":
    r"""
    No available documentation.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    gp_Parab2d

    """
    return _Contap.Contap_HCurve2dTool_Parabola(*args)

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

    Parameters
    ----------
    C: Adaptor2d_HCurve2d

    Returns
    -------
    float

    """
    return _Contap.Contap_HCurve2dTool_Period(*args)

def Contap_HCurve2dTool_Resolution(*args) -> "Standard_Real":
    r"""
    Returns the parametric resolution corresponding to the real space resolution <r3d>.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d
    R3d: float

    Returns
    -------
    float

    """
    return _Contap.Contap_HCurve2dTool_Resolution(*args)

def Contap_HCurve2dTool_Value(*args) -> "gp_Pnt2d":
    r"""
    Computes the point of parameter u on the curve.

    Parameters
    ----------
    C: Adaptor2d_HCurve2d
    U: float

    Returns
    -------
    gp_Pnt2d

    """
    return _Contap.Contap_HCurve2dTool_Value(*args)

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

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        _Contap.Contap_Line_swiginit(self, _Contap.new_Contap_Line(*args))

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

        Parameters
        ----------
        P: IntSurf_PntOn2S

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

        Parameters
        ----------
        P: Contap_Point

        Returns
        -------
        None

        """
        return _Contap.Contap_Line_Add(self, *args)

    def Arc(self, *args) -> "opencascade::handle< Adaptor2d_HCurve2d > const &":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Adaptor2d_HCurve2d>

        """
        return _Contap.Contap_Line_Arc(self, *args)

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

        Returns
        -------
        gp_Circ

        """
        return _Contap.Contap_Line_Circle(self, *args)

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

        Returns
        -------
        None

        """
        return _Contap.Contap_Line_Clear(self, *args)

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

        Returns
        -------
        gp_Lin

        """
        return _Contap.Contap_Line_Line(self, *args)

    def LineOn2S(self, *args) -> "opencascade::handle< IntSurf_LineOn2S > const &":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<IntSurf_LineOn2S>

        """
        return _Contap.Contap_Line_LineOn2S(self, *args)

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

        Returns
        -------
        int

        """
        return _Contap.Contap_Line_NbPnts(self, *args)

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

        Returns
        -------
        int

        """
        return _Contap.Contap_Line_NbVertex(self, *args)

    def Point(self, *args) -> "IntSurf_PntOn2S const &":
        r"""
        No available documentation.

        Parameters
        ----------
        Index: int

        Returns
        -------
        IntSurf_PntOn2S

        """
        return _Contap.Contap_Line_Point(self, *args)

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

        Returns
        -------
        None

        """
        return _Contap.Contap_Line_ResetSeqOfVertex(self, *args)

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

        Parameters
        ----------
        L: IntSurf_LineOn2S

        Returns
        -------
        None

        """
        return _Contap.Contap_Line_SetLineOn2S(self, *args)

    def SetTransitionOnS(self, *args) -> "void":
        r"""
        Set the tansition of the line.

        Parameters
        ----------
        T: IntSurf_TypeTrans

        Returns
        -------
        None

        """
        return _Contap.Contap_Line_SetTransitionOnS(self, *args)

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

        Parameters
        ----------
        L: gp_Lin

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

        Parameters
        ----------
        C: gp_Circ

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

        Parameters
        ----------
        A: Adaptor2d_HCurve2d

        Returns
        -------
        None

        """
        return _Contap.Contap_Line_SetValue(self, *args)

    def TransitionOnS(self, *args) -> "IntSurf_TypeTrans":
        r"""
        Returns in if at the 'left' of the line, the normale of the surface is oriented to the observator.

        Returns
        -------
        IntSurf_TypeTrans

        """
        return _Contap.Contap_Line_TransitionOnS(self, *args)

    def TypeContour(self, *args) -> "Contap_IType":
        r"""
        Returns contap_lin for a line, contap_circle for a circle, and contap_walking for a walking line, contap_restriction for a part of boundarie.

        Returns
        -------
        Contap_IType

        """
        return _Contap.Contap_Line_TypeContour(self, *args)

    def Vertex(self, *args) -> "Contap_Point &":
        r"""
        No available documentation.

        Parameters
        ----------
        Index: int

        Returns
        -------
        Contap_Point

        """
        return _Contap.Contap_Line_Vertex(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Contap.delete_Contap_Line

# Register Contap_Line in _Contap:
_Contap.Contap_Line_swigregister(Contap_Line)

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

        Returns
        -------
        None
        Creates a point.

        Parameters
        ----------
        Pt: gp_Pnt
        U: float
        V: float

        Returns
        -------
        None

        """
        _Contap.Contap_Point_swiginit(self, _Contap.new_Contap_Point(*args))

    def Arc(self, *args) -> "opencascade::handle< Adaptor2d_HCurve2d > const &":
        r"""
        Returns the arc of restriction containing the vertex.

        Returns
        -------
        opencascade::handle<Adaptor2d_HCurve2d>

        """
        return _Contap.Contap_Point_Arc(self, *args)

    def IsInternal(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the point is an internal one, i.e if the tangent to the line on the point and the eye direction are parallel.

        Returns
        -------
        bool

        """
        return _Contap.Contap_Point_IsInternal(self, *args)

    def IsMultiple(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the point belongs to several lines.

        Returns
        -------
        bool

        """
        return _Contap.Contap_Point_IsMultiple(self, *args)

    def IsOnArc(self, *args) -> "Standard_Boolean":
        r"""
        Returns true when the point is an intersection between the contour and a restriction.

        Returns
        -------
        bool

        """
        return _Contap.Contap_Point_IsOnArc(self, *args)

    def IsVertex(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the point is a vertex on the initial restriction facet of the surface.

        Returns
        -------
        bool

        """
        return _Contap.Contap_Point_IsVertex(self, *args)

    def ParameterOnArc(self, *args) -> "Standard_Real":
        r"""
        Returns the parameter of the point on the arc returned by the method arc().

        Returns
        -------
        float

        """
        return _Contap.Contap_Point_ParameterOnArc(self, *args)

    def ParameterOnLine(self, *args) -> "Standard_Real":
        r"""
        This method returns the parameter of the point on the intersection line. if the points does not belong to an intersection line, the value returned does not have any sens.

        Returns
        -------
        float

        """
        return _Contap.Contap_Point_ParameterOnLine(self, *args)

    def Parameters(self, *args) -> "void":
        r"""
        Returns the parameters on the surface of the point.

        Parameters
        ----------

        Returns
        -------
        U1: float
        V1: float

        """
        return _Contap.Contap_Point_Parameters(self, *args)

    def SetArc(self, *args) -> "void":
        r"""
        Sets the value of the arc and of the parameter on this arc of the point.

        Parameters
        ----------
        A: Adaptor2d_HCurve2d
        Param: float
        TLine: IntSurf_Transition
        TArc: IntSurf_Transition

        Returns
        -------
        None

        """
        return _Contap.Contap_Point_SetArc(self, *args)

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

        Returns
        -------
        None

        """
        return _Contap.Contap_Point_SetInternal(self, *args)

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

        Returns
        -------
        None

        """
        return _Contap.Contap_Point_SetMultiple(self, *args)

    def SetParameter(self, *args) -> "void":
        r"""
        Set the value of the parameter on the intersection line.

        Parameters
        ----------
        Para: float

        Returns
        -------
        None

        """
        return _Contap.Contap_Point_SetParameter(self, *args)

    def SetValue(self, *args) -> "void":
        r"""
        Sets the values for a point.

        Parameters
        ----------
        Pt: gp_Pnt
        U: float
        V: float

        Returns
        -------
        None

        """
        return _Contap.Contap_Point_SetValue(self, *args)

    def SetVertex(self, *args) -> "void":
        r"""
        Sets the values of a point which is a vertex on the initial facet of restriction of one of the surface.

        Parameters
        ----------
        V: Adaptor3d_HVertex

        Returns
        -------
        None

        """
        return _Contap.Contap_Point_SetVertex(self, *args)

    def TransitionOnArc(self, *args) -> "IntSurf_Transition const &":
        r"""
        Returns the transition of the point on the arc.

        Returns
        -------
        IntSurf_Transition

        """
        return _Contap.Contap_Point_TransitionOnArc(self, *args)

    def TransitionOnLine(self, *args) -> "IntSurf_Transition const &":
        r"""
        Returns the transition of the point on the contour.

        Returns
        -------
        IntSurf_Transition

        """
        return _Contap.Contap_Point_TransitionOnLine(self, *args)

    def Value(self, *args) -> "gp_Pnt const":
        r"""
        Returns the intersection point (geometric information).

        Returns
        -------
        gp_Pnt

        """
        return _Contap.Contap_Point_Value(self, *args)

    def Vertex(self, *args) -> "opencascade::handle< Adaptor3d_HVertex > const &":
        r"""
        Returns the information about the point when it is on the domain of the patch, i-e when the function isvertex returns true. otherwise, an exception is raised.

        Returns
        -------
        opencascade::handle<Adaptor3d_HVertex>

        """
        return _Contap.Contap_Point_Vertex(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Contap.delete_Contap_Point

# Register Contap_Point in _Contap:
_Contap.Contap_Point_swigregister(Contap_Point)

class Contap_SurfFunction(OCC.Core.math.math_FunctionSetWithDerivatives):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        _Contap.Contap_SurfFunction_swiginit(self, _Contap.new_Contap_SurfFunction(*args))

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

        Returns
        -------
        float

        """
        return _Contap.Contap_SurfFunction_Angle(self, *args)

    def Direction(self, *args) -> "gp_Dir const":
        r"""
        No available documentation.

        Returns
        -------
        gp_Dir

        """
        return _Contap.Contap_SurfFunction_Direction(self, *args)

    def Direction2d(self, *args) -> "gp_Dir2d const":
        r"""
        No available documentation.

        Returns
        -------
        gp_Dir2d

        """
        return _Contap.Contap_SurfFunction_Direction2d(self, *args)

    def Direction3d(self, *args) -> "gp_Vec const":
        r"""
        No available documentation.

        Returns
        -------
        gp_Vec

        """
        return _Contap.Contap_SurfFunction_Direction3d(self, *args)

    def Eye(self, *args) -> "gp_Pnt const":
        r"""
        No available documentation.

        Returns
        -------
        gp_Pnt

        """
        return _Contap.Contap_SurfFunction_Eye(self, *args)

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

        Returns
        -------
        Contap_TFunction

        """
        return _Contap.Contap_SurfFunction_FunctionType(self, *args)

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

        Returns
        -------
        bool

        """
        return _Contap.Contap_SurfFunction_IsTangent(self, *args)

    def PSurface(self, *args) -> "opencascade::handle< Adaptor3d_HSurface > const &":
        r"""
        Method is entered for compatibility with intpatch_thesurffunction.

        Returns
        -------
        opencascade::handle<Adaptor3d_HSurface>

        """
        return _Contap.Contap_SurfFunction_PSurface(self, *args)

    def Point(self, *args) -> "gp_Pnt const":
        r"""
        Returns the value of the solution point on the surface.

        Returns
        -------
        gp_Pnt

        """
        return _Contap.Contap_SurfFunction_Point(self, *args)

    def Root(self, *args) -> "Standard_Real":
        r"""
        Root is the value of the function at the solution. it is a vector of dimension 1, i-e a real.

        Returns
        -------
        float

        """
        return _Contap.Contap_SurfFunction_Root(self, *args)

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

        Parameters
        ----------
        S: Adaptor3d_HSurface

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

        Parameters
        ----------
        Eye: gp_Pnt

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

        Parameters
        ----------
        Dir: gp_Dir

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

        Parameters
        ----------
        Dir: gp_Dir
        Angle: float

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

        Parameters
        ----------
        Eye: gp_Pnt
        Angle: float

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

        Parameters
        ----------
        Tolerance: float

        Returns
        -------
        None

        """
        return _Contap.Contap_SurfFunction_Set(self, *args)

    def Surface(self, *args) -> "opencascade::handle< Adaptor3d_HSurface > const &":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Adaptor3d_HSurface>

        """
        return _Contap.Contap_SurfFunction_Surface(self, *args)

    def Tolerance(self, *args) -> "Standard_Real":
        r"""
        Returns the value tol so that if abs(func.root())<tol the function is considered null.

        Returns
        -------
        float

        """
        return _Contap.Contap_SurfFunction_Tolerance(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Contap.delete_Contap_SurfFunction

# Register Contap_SurfFunction in _Contap:
_Contap.Contap_SurfFunction_swigregister(Contap_SurfFunction)

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

    @staticmethod
    def DerivAndNorm(*args) -> "void":
        r"""
        Computes the point <p>, and normal vector <n> on <s> at parameters u,v.

        Parameters
        ----------
        S: Adaptor3d_HSurface
        U: float
        V: float
        P: gp_Pnt
        d1u: gp_Vec
        d1v: gp_Vec
        N: gp_Vec

        Returns
        -------
        None

        """
        return _Contap.Contap_SurfProps_DerivAndNorm(*args)

    @staticmethod
    def NormAndDn(*args) -> "void":
        r"""
        Computes the point <p>, normal vector <n>, and its derivatives <dnu> and <dnv> on <s> at parameters u,v.

        Parameters
        ----------
        S: Adaptor3d_HSurface
        U: float
        V: float
        P: gp_Pnt
        N: gp_Vec
        Dnu: gp_Vec
        Dnv: gp_Vec

        Returns
        -------
        None

        """
        return _Contap.Contap_SurfProps_NormAndDn(*args)

    @staticmethod
    def Normale(*args) -> "void":
        r"""
        Computes the point <p>, and normal vector <n> on <s> at parameters u,v.

        Parameters
        ----------
        S: Adaptor3d_HSurface
        U: float
        V: float
        P: gp_Pnt
        N: gp_Vec

        Returns
        -------
        None

        """
        return _Contap.Contap_SurfProps_Normale(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _Contap.Contap_SurfProps_swiginit(self, _Contap.new_Contap_SurfProps())
    __swig_destroy__ = _Contap.delete_Contap_SurfProps

# Register Contap_SurfProps in _Contap:
_Contap.Contap_SurfProps_swigregister(Contap_SurfProps)

def Contap_SurfProps_DerivAndNorm(*args) -> "void":
    r"""
    Computes the point <p>, and normal vector <n> on <s> at parameters u,v.

    Parameters
    ----------
    S: Adaptor3d_HSurface
    U: float
    V: float
    P: gp_Pnt
    d1u: gp_Vec
    d1v: gp_Vec
    N: gp_Vec

    Returns
    -------
    None

    """
    return _Contap.Contap_SurfProps_DerivAndNorm(*args)

def Contap_SurfProps_NormAndDn(*args) -> "void":
    r"""
    Computes the point <p>, normal vector <n>, and its derivatives <dnu> and <dnv> on <s> at parameters u,v.

    Parameters
    ----------
    S: Adaptor3d_HSurface
    U: float
    V: float
    P: gp_Pnt
    N: gp_Vec
    Dnu: gp_Vec
    Dnv: gp_Vec

    Returns
    -------
    None

    """
    return _Contap.Contap_SurfProps_NormAndDn(*args)

def Contap_SurfProps_Normale(*args) -> "void":
    r"""
    Computes the point <p>, and normal vector <n> on <s> at parameters u,v.

    Parameters
    ----------
    S: Adaptor3d_HSurface
    U: float
    V: float
    P: gp_Pnt
    N: gp_Vec

    Returns
    -------
    None

    """
    return _Contap.Contap_SurfProps_Normale(*args)

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

        Parameters
        ----------
        theAllocator: IntSurf_Allocator,optional
        	default value is 0

        Returns
        -------
        None

        """
        _Contap.Contap_TheIWLineOfTheIWalking_swiginit(self, _Contap.new_Contap_TheIWLineOfTheIWalking(*args))

    def AddIndexPassing(self, *args) -> "void":
        r"""
        Associer a l 'indice du point sur la ligne l'indice du point passant dans l'iterateur de depart.

        Parameters
        ----------
        Index: int

        Returns
        -------
        None

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_AddIndexPassing(self, *args)

    def AddPoint(self, *args) -> "void":
        r"""
        Add a point in the line.

        Parameters
        ----------
        P: IntSurf_PntOn2S

        Returns
        -------
        None

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_AddPoint(self, *args)

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

        Parameters
        ----------
        Closed: bool
        HasFirst: bool

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

        Parameters
        ----------
        Closed: bool
        HasLast: bool
        Index: int
        P: IntSurf_PathPoint

        Returns
        -------
        None

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_AddStatusFirst(self, *args)

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

        Parameters
        ----------
        Closed: bool
        HasFirst: bool
        HasLast: bool

        Returns
        -------
        None

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_AddStatusFirstLast(self, *args)

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

        Parameters
        ----------
        HasLast: bool

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

        Parameters
        ----------
        HasLast: bool
        Index: int
        P: IntSurf_PathPoint

        Returns
        -------
        None

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_AddStatusLast(self, *args)

    def Cut(self, *args) -> "void":
        r"""
        Cut the line at the point of rank index.

        Parameters
        ----------
        Index: int

        Returns
        -------
        None

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_Cut(self, *args)

    def FirstPoint(self, *args) -> "IntSurf_PathPoint const &":
        r"""
        Returns the first point of the line when it is a marching point. an exception is raised if hasfirstpoint returns false.

        Returns
        -------
        IntSurf_PathPoint

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_FirstPoint(self, *args)

    def FirstPointIndex(self, *args) -> "Standard_Integer":
        r"""
        Returns the index of first point of the line when it is a marching point.this index is the index in the pointstartiterator. an exception is raised if hasfirstpoint returns false.

        Returns
        -------
        int

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_FirstPointIndex(self, *args)

    def HasFirstPoint(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the first point of the line is a marching point . when is hasfirstpoint==false ,the line begins on the natural bound of the surface.the line can be too long.

        Returns
        -------
        bool

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_HasFirstPoint(self, *args)

    def HasLastPoint(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the end point of the line is a marching point (point from intws). when is hasfirstpoint==false ,the line ends on the natural bound of the surface.the line can be too long.

        Returns
        -------
        bool

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_HasLastPoint(self, *args)

    def IsClosed(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the line is closed.

        Returns
        -------
        bool

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_IsClosed(self, *args)

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

        Returns
        -------
        bool

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_IsTangentAtBegining(self, *args)

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

        Returns
        -------
        bool

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_IsTangentAtEnd(self, *args)

    def LastPoint(self, *args) -> "IntSurf_PathPoint const &":
        r"""
        Returns the last point of the line when it is a marching point. an exception is raised if haslastpoint returns false.

        Returns
        -------
        IntSurf_PathPoint

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_LastPoint(self, *args)

    def LastPointIndex(self, *args) -> "Standard_Integer":
        r"""
        Returns the index of last point of the line when it is a marching point.this index is the index in the pointstartiterator. an exception is raised if haslastpoint returns false.

        Returns
        -------
        int

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_LastPointIndex(self, *args)

    def Line(self, *args) -> "opencascade::handle< IntSurf_LineOn2S > const &":
        r"""
        Returns the lineon2s contained in the walking line.

        Returns
        -------
        opencascade::handle<IntSurf_LineOn2S>

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_Line(self, *args)

    def NbPassingPoint(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of points belonging to pnts1 which are passing point.

        Returns
        -------
        int

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_NbPassingPoint(self, *args)

    def NbPoints(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of points of the line (including first point and end point : see haslastpoint and hasfirstpoint).

        Returns
        -------
        int

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_NbPoints(self, *args)

    def PassingPoint(self, *args) -> "void":
        r"""
        Returns the index of the point belonging to the line which is associated to the passing point belonging to pnts1 an exception is raised if index > nbpassingpoint().

        Parameters
        ----------
        Index: int

        Returns
        -------
        IndexLine: int
        IndexPnts: int

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_PassingPoint(self, *args)

    def Reverse(self, *args) -> "void":
        r"""
        Reverse the points in the line. hasfirst, haslast are kept.

        Returns
        -------
        None

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_Reverse(self, *args)

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

        Parameters
        ----------
        IsTangent: bool

        Returns
        -------
        None

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_SetTangencyAtBegining(self, *args)

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

        Parameters
        ----------
        IsTangent: bool

        Returns
        -------
        None

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_SetTangencyAtEnd(self, *args)

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

        Parameters
        ----------
        V: gp_Vec
        Index: int

        Returns
        -------
        None

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_SetTangentVector(self, *args)

    def TangentVector(self, *args) -> "gp_Vec const":
        r"""
        No available documentation.

        Parameters
        ----------

        Returns
        -------
        Index: int

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_TangentVector(self, *args)

    def Value(self, *args) -> "IntSurf_PntOn2S const &":
        r"""
        Returns the point of range index. if index <= 0 or index > nbpoints, an exception is raised.

        Parameters
        ----------
        Index: int

        Returns
        -------
        IntSurf_PntOn2S

        """
        return _Contap.Contap_TheIWLineOfTheIWalking_Value(self, *args)


    @staticmethod
    def DownCast(t):
      return Handle_Contap_TheIWLineOfTheIWalking_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _Contap.delete_Contap_TheIWLineOfTheIWalking

# Register Contap_TheIWLineOfTheIWalking in _Contap:
_Contap.Contap_TheIWLineOfTheIWalking_swigregister(Contap_TheIWLineOfTheIWalking)

class Contap_TheIWalking(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"""
        Deflection is the maximum deflection admitted between two consecutive points on a resulting polyline. step is the maximum increment admitted between two consecutive points (in 2d space). epsilon is the tolerance beyond which 2 points are confused. thetofillholes is the flag defining whether possible holes between resulting curves are filled or not in case of contap walking thetofillholes is true.

        Parameters
        ----------
        Epsilon: float
        Deflection: float
        Step: float
        theToFillHoles: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        _Contap.Contap_TheIWalking_swiginit(self, _Contap.new_Contap_TheIWalking(*args))

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the calculus was successful.

        Returns
        -------
        bool

        """
        return _Contap.Contap_TheIWalking_IsDone(self, *args)

    def NbLines(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of resulting polylines. an exception is raised if isdone returns false.

        Returns
        -------
        int

        """
        return _Contap.Contap_TheIWalking_NbLines(self, *args)

    def NbSinglePnts(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of points belonging to pnts on which no line starts or ends. an exception is raised if isdone returns false.

        Returns
        -------
        int

        """
        return _Contap.Contap_TheIWalking_NbSinglePnts(self, *args)

    def Perform(self, *args) -> "void":
        r"""
        Searches a set of polylines starting on a point of pnts1 or pnts2. each point on a resulting polyline verifies f(u,v)=0.

        Parameters
        ----------
        Pnts1: IntSurf_SequenceOfPathPoint
        Pnts2: IntSurf_SequenceOfInteriorPoint
        Func: Contap_SurfFunction
        S: Adaptor3d_HSurface
        Reversed: bool,optional
        	default value is Standard_False

        Returns
        -------
        None
        Searches a set of polylines starting on a point of pnts1. each point on a resulting polyline verifies f(u,v)=0.

        Parameters
        ----------
        Pnts1: IntSurf_SequenceOfPathPoint
        Func: Contap_SurfFunction
        S: Adaptor3d_HSurface
        Reversed: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        return _Contap.Contap_TheIWalking_Perform(self, *args)

    def SetTolerance(self, *args) -> "void":
        r"""
        Deflection is the maximum deflection admitted between two consecutive points on a resulting polyline. step is the maximum increment admitted between two consecutive points (in 2d space). epsilon is the tolerance beyond which 2 points are confused.

        Parameters
        ----------
        Epsilon: float
        Deflection: float
        Step: float

        Returns
        -------
        None

        """
        return _Contap.Contap_TheIWalking_SetTolerance(self, *args)

    def SinglePnt(self, *args) -> "IntSurf_PathPoint const &":
        r"""
        Returns the point of range index . an exception is raised if isdone returns false. an exception is raised if index<=0 or index > nbsinglepnts.

        Parameters
        ----------
        Index: int

        Returns
        -------
        IntSurf_PathPoint

        """
        return _Contap.Contap_TheIWalking_SinglePnt(self, *args)

    def Value(self, *args) -> "opencascade::handle< Contap_TheIWLineOfTheIWalking > const &":
        r"""
        Returns the polyline of range index. an exception is raised if isdone is false. an exception is raised if index<=0 or index>nblines.

        Parameters
        ----------
        Index: int

        Returns
        -------
        opencascade::handle<Contap_TheIWLineOfTheIWalking>

        """
        return _Contap.Contap_TheIWalking_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Contap.delete_Contap_TheIWalking

# Register Contap_TheIWalking in _Contap:
_Contap.Contap_TheIWalking_swigregister(Contap_TheIWalking)

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

    def __init__(self, *args):
        r"""
        No available documentation.

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

        Parameters
        ----------
        P: gp_Pnt
        Tol: float
        V: Adaptor3d_HVertex
        A: Adaptor2d_HCurve2d
        Parameter: float

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

        Parameters
        ----------
        P: gp_Pnt
        Tol: float
        A: Adaptor2d_HCurve2d
        Parameter: float

        Returns
        -------
        None

        """
        _Contap.Contap_ThePathPointOfTheSearch_swiginit(self, _Contap.new_Contap_ThePathPointOfTheSearch(*args))

    def Arc(self, *args) -> "opencascade::handle< Adaptor2d_HCurve2d > const &":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Adaptor2d_HCurve2d>

        """
        return _Contap.Contap_ThePathPointOfTheSearch_Arc(self, *args)

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

        Returns
        -------
        bool

        """
        return _Contap.Contap_ThePathPointOfTheSearch_IsNew(self, *args)

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

        Returns
        -------
        float

        """
        return _Contap.Contap_ThePathPointOfTheSearch_Parameter(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt
        Tol: float
        V: Adaptor3d_HVertex
        A: Adaptor2d_HCurve2d
        Parameter: float

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

        Parameters
        ----------
        P: gp_Pnt
        Tol: float
        A: Adaptor2d_HCurve2d
        Parameter: float

        Returns
        -------
        None

        """
        return _Contap.Contap_ThePathPointOfTheSearch_SetValue(self, *args)

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

        Returns
        -------
        float

        """
        return _Contap.Contap_ThePathPointOfTheSearch_Tolerance(self, *args)

    def Value(self, *args) -> "gp_Pnt const":
        r"""
        No available documentation.

        Returns
        -------
        gp_Pnt

        """
        return _Contap.Contap_ThePathPointOfTheSearch_Value(self, *args)

    def Vertex(self, *args) -> "opencascade::handle< Adaptor3d_HVertex > const &":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Adaptor3d_HVertex>

        """
        return _Contap.Contap_ThePathPointOfTheSearch_Vertex(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Contap.delete_Contap_ThePathPointOfTheSearch

# Register Contap_ThePathPointOfTheSearch in _Contap:
_Contap.Contap_ThePathPointOfTheSearch_swigregister(Contap_ThePathPointOfTheSearch)

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

        Returns
        -------
        None

        """
        _Contap.Contap_TheSearch_swiginit(self, _Contap.new_Contap_TheSearch(*args))

    def AllArcSolution(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if all arc of the arcs are solution (inside the surface). an exception is raised if isdone returns false.

        Returns
        -------
        bool

        """
        return _Contap.Contap_TheSearch_AllArcSolution(self, *args)

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the calculus was successful.

        Returns
        -------
        bool

        """
        return _Contap.Contap_TheSearch_IsDone(self, *args)

    def NbPoints(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of resulting points. an exception is raised if isdone returns false (notdone).

        Returns
        -------
        int

        """
        return _Contap.Contap_TheSearch_NbPoints(self, *args)

    def NbSegments(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of the resulting segments. an exception is raised if isdone returns false (notdone).

        Returns
        -------
        int

        """
        return _Contap.Contap_TheSearch_NbSegments(self, *args)

    def Perform(self, *args) -> "void":
        r"""
        Algorithm to find the points and parts of curves of domain (domain of of restriction of a surface) which verify f = 0. tolboundary defines if a curve is on q. toltangency defines if a point is on q.

        Parameters
        ----------
        F: Contap_ArcFunction
        Domain: Adaptor3d_TopolTool
        TolBoundary: float
        TolTangency: float
        RecheckOnRegularity: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        return _Contap.Contap_TheSearch_Perform(self, *args)

    def Point(self, *args) -> "Contap_ThePathPointOfTheSearch const &":
        r"""
        Returns the resulting point of range index. the exception notdone is raised if isdone() returns false. the exception outofrange is raised if index <= 0 or index > nbpoints.

        Parameters
        ----------
        Index: int

        Returns
        -------
        Contap_ThePathPointOfTheSearch

        """
        return _Contap.Contap_TheSearch_Point(self, *args)

    def Segment(self, *args) -> "Contap_TheSegmentOfTheSearch const &":
        r"""
        Returns the resulting segment of range index. the exception notdone is raised if isdone() returns false. the exception outofrange is raised if index <= 0 or index > nbpoints.

        Parameters
        ----------
        Index: int

        Returns
        -------
        Contap_TheSegmentOfTheSearch

        """
        return _Contap.Contap_TheSearch_Segment(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Contap.delete_Contap_TheSearch

# Register Contap_TheSearch in _Contap:
_Contap.Contap_TheSearch_swigregister(Contap_TheSearch)

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

    def __init__(self, *args):
        r"""
        No available documentation.

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

        Parameters
        ----------
        F: Contap_SurfFunction
        Surf: Adaptor3d_HSurface
        T: Adaptor3d_TopolTool
        Epsilon: float

        Returns
        -------
        None

        """
        _Contap.Contap_TheSearchInside_swiginit(self, _Contap.new_Contap_TheSearchInside(*args))

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

        Returns
        -------
        bool

        """
        return _Contap.Contap_TheSearchInside_IsDone(self, *args)

    def NbPoints(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of points. the exception notdone if raised if isdone returns false.

        Returns
        -------
        int

        """
        return _Contap.Contap_TheSearchInside_NbPoints(self, *args)

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

        Parameters
        ----------
        F: Contap_SurfFunction
        Surf: Adaptor3d_HSurface
        T: Adaptor3d_TopolTool
        Epsilon: float

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

        Parameters
        ----------
        F: Contap_SurfFunction
        Surf: Adaptor3d_HSurface
        UStart: float
        VStart: float

        Returns
        -------
        None

        """
        return _Contap.Contap_TheSearchInside_Perform(self, *args)

    def Value(self, *args) -> "IntSurf_InteriorPoint const &":
        r"""
        Returns the point of range index. the exception notdone if raised if isdone returns false. the exception outofrange if raised if index <= 0 or index > nbpoints.

        Parameters
        ----------
        Index: int

        Returns
        -------
        IntSurf_InteriorPoint

        """
        return _Contap.Contap_TheSearchInside_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Contap.delete_Contap_TheSearchInside

# Register Contap_TheSearchInside in _Contap:
_Contap.Contap_TheSearchInside_swigregister(Contap_TheSearchInside)

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

        Returns
        -------
        None

        """
        _Contap.Contap_TheSegmentOfTheSearch_swiginit(self, _Contap.new_Contap_TheSegmentOfTheSearch(*args))

    def Curve(self, *args) -> "opencascade::handle< Adaptor2d_HCurve2d > const &":
        r"""
        Returns the geometric curve on the surface 's domain which is solution.

        Returns
        -------
        opencascade::handle<Adaptor2d_HCurve2d>

        """
        return _Contap.Contap_TheSegmentOfTheSearch_Curve(self, *args)

    def FirstPoint(self, *args) -> "Contap_ThePathPointOfTheSearch const &":
        r"""
        Returns the first point.

        Returns
        -------
        Contap_ThePathPointOfTheSearch

        """
        return _Contap.Contap_TheSegmentOfTheSearch_FirstPoint(self, *args)

    def HasFirstPoint(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if there is a vertex (thepathpoint) defining the lowest valid parameter on the arc.

        Returns
        -------
        bool

        """
        return _Contap.Contap_TheSegmentOfTheSearch_HasFirstPoint(self, *args)

    def HasLastPoint(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if there is a vertex (thepathpoint) defining the greatest valid parameter on the arc.

        Returns
        -------
        bool

        """
        return _Contap.Contap_TheSegmentOfTheSearch_HasLastPoint(self, *args)

    def LastPoint(self, *args) -> "Contap_ThePathPointOfTheSearch const &":
        r"""
        Returns the last point.

        Returns
        -------
        Contap_ThePathPointOfTheSearch

        """
        return _Contap.Contap_TheSegmentOfTheSearch_LastPoint(self, *args)

    def SetLimitPoint(self, *args) -> "void":
        r"""
        Defines the first point or the last point, depending on the value of the boolean first.

        Parameters
        ----------
        V: Contap_ThePathPointOfTheSearch
        First: bool

        Returns
        -------
        None

        """
        return _Contap.Contap_TheSegmentOfTheSearch_SetLimitPoint(self, *args)

    def SetValue(self, *args) -> "void":
        r"""
        Defines the concerned arc.

        Parameters
        ----------
        A: Adaptor2d_HCurve2d

        Returns
        -------
        None

        """
        return _Contap.Contap_TheSegmentOfTheSearch_SetValue(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Contap.delete_Contap_TheSegmentOfTheSearch

# Register Contap_TheSegmentOfTheSearch in _Contap:
_Contap.Contap_TheSegmentOfTheSearch_swigregister(Contap_TheSegmentOfTheSearch)

class Contap_TheHSequenceOfPoint(Contap_TheSequenceOfPoint, 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):
        _Contap.Contap_TheHSequenceOfPoint_swiginit(self, _Contap.new_Contap_TheHSequenceOfPoint(*args))

    def Sequence(self) -> "Contap_TheSequenceOfPoint const &":
        return _Contap.Contap_TheHSequenceOfPoint_Sequence(self)

    def Append(self, *args) -> "void":
        return _Contap.Contap_TheHSequenceOfPoint_Append(self, *args)

    def ChangeSequence(self) -> "Contap_TheSequenceOfPoint &":
        return _Contap.Contap_TheHSequenceOfPoint_ChangeSequence(self)


    @staticmethod
    def DownCast(t):
      return Handle_Contap_TheHSequenceOfPoint_DownCast(t)

    __swig_destroy__ = _Contap.delete_Contap_TheHSequenceOfPoint

# Register Contap_TheHSequenceOfPoint in _Contap:
_Contap.Contap_TheHSequenceOfPoint_swigregister(Contap_TheHSequenceOfPoint)





