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

"""
Adaptor3d module, see official documentation at
https://www.opencascade.com/doc/occt-7.7.0/refman/html/package_adaptor3d.html
"""

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _Adaptor3d
else:
    import _Adaptor3d

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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


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


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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


def process_exception(error, method_name, class_name):
    return _Adaptor3d.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.Geom
import OCC.Core.gp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.TopAbs
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d
import OCC.Core.math
import OCC.Core.Message
import OCC.Core.OSD

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




def Handle_Adaptor3d_Curve_Create():
    return _Adaptor3d.Handle_Adaptor3d_Curve_Create()

def Handle_Adaptor3d_Curve_DownCast(t):
    return _Adaptor3d.Handle_Adaptor3d_Curve_DownCast(t)

def Handle_Adaptor3d_Curve_IsNull(t):
    return _Adaptor3d.Handle_Adaptor3d_Curve_IsNull(t)

def Handle_Adaptor3d_HVertex_Create():
    return _Adaptor3d.Handle_Adaptor3d_HVertex_Create()

def Handle_Adaptor3d_HVertex_DownCast(t):
    return _Adaptor3d.Handle_Adaptor3d_HVertex_DownCast(t)

def Handle_Adaptor3d_HVertex_IsNull(t):
    return _Adaptor3d.Handle_Adaptor3d_HVertex_IsNull(t)

def Handle_Adaptor3d_Surface_Create():
    return _Adaptor3d.Handle_Adaptor3d_Surface_Create()

def Handle_Adaptor3d_Surface_DownCast(t):
    return _Adaptor3d.Handle_Adaptor3d_Surface_DownCast(t)

def Handle_Adaptor3d_Surface_IsNull(t):
    return _Adaptor3d.Handle_Adaptor3d_Surface_IsNull(t)

def Handle_Adaptor3d_TopolTool_Create():
    return _Adaptor3d.Handle_Adaptor3d_TopolTool_Create()

def Handle_Adaptor3d_TopolTool_DownCast(t):
    return _Adaptor3d.Handle_Adaptor3d_TopolTool_DownCast(t)

def Handle_Adaptor3d_TopolTool_IsNull(t):
    return _Adaptor3d.Handle_Adaptor3d_TopolTool_IsNull(t)

def Handle_Adaptor3d_CurveOnSurface_Create():
    return _Adaptor3d.Handle_Adaptor3d_CurveOnSurface_Create()

def Handle_Adaptor3d_CurveOnSurface_DownCast(t):
    return _Adaptor3d.Handle_Adaptor3d_CurveOnSurface_DownCast(t)

def Handle_Adaptor3d_CurveOnSurface_IsNull(t):
    return _Adaptor3d.Handle_Adaptor3d_CurveOnSurface_IsNull(t)

def Handle_Adaptor3d_IsoCurve_Create():
    return _Adaptor3d.Handle_Adaptor3d_IsoCurve_Create()

def Handle_Adaptor3d_IsoCurve_DownCast(t):
    return _Adaptor3d.Handle_Adaptor3d_IsoCurve_DownCast(t)

def Handle_Adaptor3d_IsoCurve_IsNull(t):
    return _Adaptor3d.Handle_Adaptor3d_IsoCurve_IsNull(t)
class Adaptor3d_Curve(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 BSpline(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Geom_BSplineCurve>

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

        """
        return _Adaptor3d.Adaptor3d_Curve_BSpline(self, *args)

    def Bezier(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Geom_BezierCurve>

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

        """
        return _Adaptor3d.Adaptor3d_Curve_Bezier(self, *args)

    def Circle(self, *args):
        r"""
        Return
        -------
        gp_Circ

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

        """
        return _Adaptor3d.Adaptor3d_Curve_Circle(self, *args)

    def Continuity(self, *args):
        r"""
        Return
        -------
        GeomAbs_Shape

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

        """
        return _Adaptor3d.Adaptor3d_Curve_Continuity(self, *args)

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

        Parameters
        ----------
        U: float
        P: gp_Pnt

        Return
        -------
        None

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

        """
        return _Adaptor3d.Adaptor3d_Curve_D0(self, *args)

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

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

        Return
        -------
        None

        Description
        -----------
        Computes the point of parameter u on the curve with its first derivative. raised if the continuity of the current interval is not c1.

        """
        return _Adaptor3d.Adaptor3d_Curve_D1(self, *args)

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

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

        Return
        -------
        None

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

        """
        return _Adaptor3d.Adaptor3d_Curve_D2(self, *args)

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

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

        Return
        -------
        None

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

        """
        return _Adaptor3d.Adaptor3d_Curve_D3(self, *args)

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

        Parameters
        ----------
        U: float
        N: int

        Return
        -------
        gp_Vec

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

        """
        return _Adaptor3d.Adaptor3d_Curve_DN(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Curve_Degree(self, *args)

    def Ellipse(self, *args):
        r"""
        Return
        -------
        gp_Elips

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

        """
        return _Adaptor3d.Adaptor3d_Curve_Ellipse(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Curve_FirstParameter(self, *args)

    def GetType(self, *args):
        r"""
        Return
        -------
        GeomAbs_CurveType

        Description
        -----------
        Returns the type of the curve in the current interval: line, circle, ellipse, hyperbola, parabola, beziercurve, bsplinecurve, othercurve.

        """
        return _Adaptor3d.Adaptor3d_Curve_GetType(self, *args)

    def Hyperbola(self, *args):
        r"""
        Return
        -------
        gp_Hypr

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

        """
        return _Adaptor3d.Adaptor3d_Curve_Hyperbola(self, *args)

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

        Parameters
        ----------
        T: TColStd_Array1OfReal
        S: GeomAbs_Shape

        Return
        -------
        None

        Description
        -----------
        Stores in <t> the parameters bounding the intervals of continuity <s>. //! the array must provide enough room to accommodate for the parameters. i.e. t.length() > nbintervals().

        """
        return _Adaptor3d.Adaptor3d_Curve_Intervals(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Curve_IsClosed(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Curve_IsPeriodic(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Curve_IsRational(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Curve_LastParameter(self, *args)

    def Line(self, *args):
        r"""
        Return
        -------
        gp_Lin

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

        """
        return _Adaptor3d.Adaptor3d_Curve_Line(self, *args)

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

        Parameters
        ----------
        S: GeomAbs_Shape

        Return
        -------
        int

        Description
        -----------
        Returns the number of intervals for continuity <s>. may be one if continuity(me) >= <s>.

        """
        return _Adaptor3d.Adaptor3d_Curve_NbIntervals(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Curve_NbKnots(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Curve_NbPoles(self, *args)

    def OffsetCurve(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Geom_OffsetCurve>

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

        """
        return _Adaptor3d.Adaptor3d_Curve_OffsetCurve(self, *args)

    def Parabola(self, *args):
        r"""
        Return
        -------
        gp_Parab

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

        """
        return _Adaptor3d.Adaptor3d_Curve_Parabola(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Curve_Period(self, *args)

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

        Parameters
        ----------
        R3d: float

        Return
        -------
        float

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

        """
        return _Adaptor3d.Adaptor3d_Curve_Resolution(self, *args)

    def ShallowCopy(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor3d_Curve>

        Description
        -----------
        Shallow copy of adaptor.

        """
        return _Adaptor3d.Adaptor3d_Curve_ShallowCopy(self, *args)

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

        Parameters
        ----------
        First: float
        Last: float
        Tol: float

        Return
        -------
        opencascade::handle<Adaptor3d_Curve>

        Description
        -----------
        Returns a curve equivalent of <self> between parameters <first> and <last>. <tol> is used to test for 3d points confusion. if <first> >= <last>.

        """
        return _Adaptor3d.Adaptor3d_Curve_Trim(self, *args)

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

        Parameters
        ----------
        U: float

        Return
        -------
        gp_Pnt

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

        """
        return _Adaptor3d.Adaptor3d_Curve_Value(self, *args)


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


    __repr__ = _dumps_object


    def __init__(self):
        _Adaptor3d.Adaptor3d_Curve_swiginit(self, _Adaptor3d.new_Adaptor3d_Curve())
    __swig_destroy__ = _Adaptor3d.delete_Adaptor3d_Curve

# Register Adaptor3d_Curve in _Adaptor3d:
_Adaptor3d.Adaptor3d_Curve_swigregister(Adaptor3d_Curve)
class Adaptor3d_HSurfaceTool(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        gp_Ax1

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_AxeOfRevolution(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        opencascade::handle<Geom_BSplineSurface>

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_BSpline(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        opencascade::handle<Adaptor3d_Curve>

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_BasisCurve(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        opencascade::handle<Adaptor3d_Surface>

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_BasisSurface(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        opencascade::handle<Geom_BezierSurface>

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_Bezier(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        gp_Cone

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_Cone(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        gp_Cylinder

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_Cylinder(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface
        theU: float
        theV: float
        thePnt: gp_Pnt

        Return
        -------
        None

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_D0(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface
        theU: float
        theV: float
        thePnt: gp_Pnt
        theD1U: gp_Vec
        theD1V: gp_Vec

        Return
        -------
        None

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_D1(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface
        theU: float
        theV: float
        thePnt: gp_Pnt
        theD1U: gp_Vec
        theD1V: gp_Vec
        theD2U: gp_Vec
        theD2V: gp_Vec
        theD2UV: gp_Vec

        Return
        -------
        None

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_D2(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface
        theU: float
        theV: float
        thePnt: gp_Pnt
        theD1U: gp_Vec
        theD1V: gp_Vec
        theD2U: gp_Vec
        theD2V: gp_Vec
        theD2UV: gp_Vec
        theD3U: gp_Vec
        theD3V: gp_Vec
        theD3UUV: gp_Vec
        theD3UVV: gp_Vec

        Return
        -------
        None

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_D3(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface
        theU: float
        theV: float
        theNU: int
        theNV: int

        Return
        -------
        gp_Vec

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_DN(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        gp_Dir

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_Direction(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        float

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_FirstUParameter(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        float

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_FirstVParameter(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        GeomAbs_SurfaceType

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_GetType(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface
        theAlongU: bool
        theAngTol: float (optional, default to Precision::Angular())

        Return
        -------
        bool

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_IsSurfG1(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        bool

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_IsUClosed(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        bool

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_IsUPeriodic(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        bool

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_IsVClosed(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        bool

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_IsVPeriodic(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        float

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_LastUParameter(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        float

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_LastVParameter(*args)

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

        Parameters
        ----------
        S: Adaptor3d_Surface

        Return
        -------
        int

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

        Parameters
        ----------
        S: Adaptor3d_Surface
        u1: float
        u2: float

        Return
        -------
        int

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_NbSamplesU(*args)

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

        Parameters
        ----------
        S: Adaptor3d_Surface

        Return
        -------
        int

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

        Parameters
        ----------
        &: Adaptor3d_Surface
        v1: float
        v2: float

        Return
        -------
        int

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_NbSamplesV(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface
        theSh: GeomAbs_Shape

        Return
        -------
        int

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_NbUIntervals(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface
        theSh: GeomAbs_Shape

        Return
        -------
        int

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_NbVIntervals(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        float

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_OffsetValue(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        gp_Pln

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_Plane(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        gp_Sphere

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_Sphere(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        gp_Torus

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_Torus(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface
        theTab: TColStd_Array1OfReal
        theSh: GeomAbs_Shape

        Return
        -------
        None

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_UIntervals(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        float

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_UPeriod(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface
        theR3d: float

        Return
        -------
        float

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_UResolution(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface
        theFirst: float
        theLast: float
        theTol: float

        Return
        -------
        opencascade::handle<Adaptor3d_Surface>

        Description
        -----------
        If <first> >= <last>.

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_UTrim(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface
        theTab: TColStd_Array1OfReal
        theSh: GeomAbs_Shape

        Return
        -------
        None

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_VIntervals(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface

        Return
        -------
        float

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_VPeriod(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface
        theR3d: float

        Return
        -------
        float

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_VResolution(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface
        theFirst: float
        theLast: float
        theTol: float

        Return
        -------
        opencascade::handle<Adaptor3d_Surface>

        Description
        -----------
        If <first> >= <last>.

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_VTrim(*args)

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

        Parameters
        ----------
        theSurf: Adaptor3d_Surface
        theU: float
        theV: float

        Return
        -------
        gp_Pnt

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

        """
        return _Adaptor3d.Adaptor3d_HSurfaceTool_Value(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _Adaptor3d.Adaptor3d_HSurfaceTool_swiginit(self, _Adaptor3d.new_Adaptor3d_HSurfaceTool())
    __swig_destroy__ = _Adaptor3d.delete_Adaptor3d_HSurfaceTool

# Register Adaptor3d_HSurfaceTool in _Adaptor3d:
_Adaptor3d.Adaptor3d_HSurfaceTool_swigregister(Adaptor3d_HSurfaceTool)
class Adaptor3d_HVertex(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

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

        Parameters
        ----------
        P: gp_Pnt2d
        Ori: TopAbs_Orientation
        Resolution: float

        Return
        -------
        None

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

        """
        _Adaptor3d.Adaptor3d_HVertex_swiginit(self, _Adaptor3d.new_Adaptor3d_HVertex(*args))

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

        Parameters
        ----------
        Other: Adaptor3d_HVertex

        Return
        -------
        bool

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

        """
        return _Adaptor3d.Adaptor3d_HVertex_IsSame(self, *args)

    def Orientation(self, *args):
        r"""
        Return
        -------
        TopAbs_Orientation

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

        """
        return _Adaptor3d.Adaptor3d_HVertex_Orientation(self, *args)

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

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

        Return
        -------
        float

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

        """
        return _Adaptor3d.Adaptor3d_HVertex_Parameter(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Parametric resolution (2d).

        """
        return _Adaptor3d.Adaptor3d_HVertex_Resolution(self, *args)

    def Value(self, *args):
        r"""
        Return
        -------
        gp_Pnt2d

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

        """
        return _Adaptor3d.Adaptor3d_HVertex_Value(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Adaptor3d.delete_Adaptor3d_HVertex

# Register Adaptor3d_HVertex in _Adaptor3d:
_Adaptor3d.Adaptor3d_HVertex_swigregister(Adaptor3d_HVertex)
class Adaptor3d_InterFunc(OCC.Core.math.math_FunctionWithDerivative):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        FixVal: float
        Fix: int

        Return
        -------
        None

        Description
        -----------
        Build the function u(t)=fixval if fix =1 or v(t)=fixval if fix=2.

        """
        _Adaptor3d.Adaptor3d_InterFunc_swiginit(self, _Adaptor3d.new_Adaptor3d_InterFunc(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _Adaptor3d.delete_Adaptor3d_InterFunc

# Register Adaptor3d_InterFunc in _Adaptor3d:
_Adaptor3d.Adaptor3d_InterFunc_swigregister(Adaptor3d_InterFunc)
class Adaptor3d_Surface(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 AxeOfRevolution(self, *args):
        r"""
        Return
        -------
        gp_Ax1

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

        """
        return _Adaptor3d.Adaptor3d_Surface_AxeOfRevolution(self, *args)

    def BSpline(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Geom_BSplineSurface>

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

        """
        return _Adaptor3d.Adaptor3d_Surface_BSpline(self, *args)

    def BasisCurve(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor3d_Curve>

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

        """
        return _Adaptor3d.Adaptor3d_Surface_BasisCurve(self, *args)

    def BasisSurface(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor3d_Surface>

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

        """
        return _Adaptor3d.Adaptor3d_Surface_BasisSurface(self, *args)

    def Bezier(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Geom_BezierSurface>

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

        """
        return _Adaptor3d.Adaptor3d_Surface_Bezier(self, *args)

    def Cone(self, *args):
        r"""
        Return
        -------
        gp_Cone

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

        """
        return _Adaptor3d.Adaptor3d_Surface_Cone(self, *args)

    def Cylinder(self, *args):
        r"""
        Return
        -------
        gp_Cylinder

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

        """
        return _Adaptor3d.Adaptor3d_Surface_Cylinder(self, *args)

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

        Parameters
        ----------
        U: float
        V: float
        P: gp_Pnt

        Return
        -------
        None

        Description
        -----------
        Computes the point of parameters u,v on the surface.

        """
        return _Adaptor3d.Adaptor3d_Surface_D0(self, *args)

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

        Parameters
        ----------
        U: float
        V: float
        P: gp_Pnt
        D1U: gp_Vec
        D1V: gp_Vec

        Return
        -------
        None

        Description
        -----------
        Computes the point and the first derivatives on the surface. raised if the continuity of the current intervals is not c1. //! tip: use geomlib::normestim() to calculate surface normal at specified (u, v) point.

        """
        return _Adaptor3d.Adaptor3d_Surface_D1(self, *args)

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

        Parameters
        ----------
        U: float
        V: float
        P: gp_Pnt
        D1U: gp_Vec
        D1V: gp_Vec
        D2U: gp_Vec
        D2V: gp_Vec
        D2UV: gp_Vec

        Return
        -------
        None

        Description
        -----------
        Computes the point, the first and second derivatives on the surface. raised if the continuity of the current intervals is not c2.

        """
        return _Adaptor3d.Adaptor3d_Surface_D2(self, *args)

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

        Parameters
        ----------
        U: float
        V: float
        P: gp_Pnt
        D1U: gp_Vec
        D1V: gp_Vec
        D2U: gp_Vec
        D2V: gp_Vec
        D2UV: gp_Vec
        D3U: gp_Vec
        D3V: gp_Vec
        D3UUV: gp_Vec
        D3UVV: gp_Vec

        Return
        -------
        None

        Description
        -----------
        Computes the point, the first, second and third derivatives on the surface. raised if the continuity of the current intervals is not c3.

        """
        return _Adaptor3d.Adaptor3d_Surface_D3(self, *args)

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

        Parameters
        ----------
        U: float
        V: float
        Nu: int
        Nv: int

        Return
        -------
        gp_Vec

        Description
        -----------
        Computes the derivative of order nu in the direction u and nv in the direction v at the point p(u, v). raised if the current u interval is not not cnu and the current v interval is not cnv. raised if nu + nv < 1 or nu < 0 or nv < 0.

        """
        return _Adaptor3d.Adaptor3d_Surface_DN(self, *args)

    def Direction(self, *args):
        r"""
        Return
        -------
        gp_Dir

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

        """
        return _Adaptor3d.Adaptor3d_Surface_Direction(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_FirstUParameter(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_FirstVParameter(self, *args)

    def GetType(self, *args):
        r"""
        Return
        -------
        GeomAbs_SurfaceType

        Description
        -----------
        Returns the type of the surface: plane, cylinder, cone, sphere, torus, beziersurface, bsplinesurface, surfaceofrevolution, surfaceofextrusion, othersurface.

        """
        return _Adaptor3d.Adaptor3d_Surface_GetType(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_IsUClosed(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_IsUPeriodic(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_IsURational(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_IsVClosed(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_IsVPeriodic(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_IsVRational(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_LastUParameter(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_LastVParameter(self, *args)

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

        Parameters
        ----------
        S: GeomAbs_Shape

        Return
        -------
        int

        Description
        -----------
        Returns the number of u intervals for continuity <s>. may be one if ucontinuity(me) >= <s>.

        """
        return _Adaptor3d.Adaptor3d_Surface_NbUIntervals(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_NbUKnots(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_NbUPoles(self, *args)

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

        Parameters
        ----------
        S: GeomAbs_Shape

        Return
        -------
        int

        Description
        -----------
        Returns the number of v intervals for continuity <s>. may be one if vcontinuity(me) >= <s>.

        """
        return _Adaptor3d.Adaptor3d_Surface_NbVIntervals(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_NbVKnots(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_NbVPoles(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_OffsetValue(self, *args)

    def Plane(self, *args):
        r"""
        Return
        -------
        gp_Pln

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

        """
        return _Adaptor3d.Adaptor3d_Surface_Plane(self, *args)

    def ShallowCopy(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor3d_Surface>

        Description
        -----------
        Shallow copy of adaptor.

        """
        return _Adaptor3d.Adaptor3d_Surface_ShallowCopy(self, *args)

    def Sphere(self, *args):
        r"""
        Return
        -------
        gp_Sphere

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

        """
        return _Adaptor3d.Adaptor3d_Surface_Sphere(self, *args)

    def Torus(self, *args):
        r"""
        Return
        -------
        gp_Torus

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

        """
        return _Adaptor3d.Adaptor3d_Surface_Torus(self, *args)

    def UContinuity(self, *args):
        r"""
        Return
        -------
        GeomAbs_Shape

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

        """
        return _Adaptor3d.Adaptor3d_Surface_UContinuity(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_UDegree(self, *args)

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

        Parameters
        ----------
        T: TColStd_Array1OfReal
        S: GeomAbs_Shape

        Return
        -------
        None

        Description
        -----------
        Returns the intervals with the requested continuity in the u direction.

        """
        return _Adaptor3d.Adaptor3d_Surface_UIntervals(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_UPeriod(self, *args)

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

        Parameters
        ----------
        R3d: float

        Return
        -------
        float

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

        """
        return _Adaptor3d.Adaptor3d_Surface_UResolution(self, *args)

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

        Parameters
        ----------
        First: float
        Last: float
        Tol: float

        Return
        -------
        opencascade::handle<Adaptor3d_Surface>

        Description
        -----------
        Returns a surface trimmed in the u direction equivalent of <self> between parameters <first> and <last>. <tol> is used to test for 3d points confusion. if <first> >= <last>.

        """
        return _Adaptor3d.Adaptor3d_Surface_UTrim(self, *args)

    def VContinuity(self, *args):
        r"""
        Return
        -------
        GeomAbs_Shape

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

        """
        return _Adaptor3d.Adaptor3d_Surface_VContinuity(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_VDegree(self, *args)

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

        Parameters
        ----------
        T: TColStd_Array1OfReal
        S: GeomAbs_Shape

        Return
        -------
        None

        Description
        -----------
        Returns the intervals with the requested continuity in the v direction.

        """
        return _Adaptor3d.Adaptor3d_Surface_VIntervals(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_Surface_VPeriod(self, *args)

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

        Parameters
        ----------
        R3d: float

        Return
        -------
        float

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

        """
        return _Adaptor3d.Adaptor3d_Surface_VResolution(self, *args)

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

        Parameters
        ----------
        First: float
        Last: float
        Tol: float

        Return
        -------
        opencascade::handle<Adaptor3d_Surface>

        Description
        -----------
        Returns a surface trimmed in the v direction between parameters <first> and <last>. <tol> is used to test for 3d points confusion. if <first> >= <last>.

        """
        return _Adaptor3d.Adaptor3d_Surface_VTrim(self, *args)

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

        Parameters
        ----------
        U: float
        V: float

        Return
        -------
        gp_Pnt

        Description
        -----------
        Computes the point of parameters u,v on the surface. tip: use geomlib::normestim() to calculate surface normal at specified (u, v) point.

        """
        return _Adaptor3d.Adaptor3d_Surface_Value(self, *args)


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


    __repr__ = _dumps_object


    def __init__(self):
        _Adaptor3d.Adaptor3d_Surface_swiginit(self, _Adaptor3d.new_Adaptor3d_Surface())
    __swig_destroy__ = _Adaptor3d.delete_Adaptor3d_Surface

# Register Adaptor3d_Surface in _Adaptor3d:
_Adaptor3d.Adaptor3d_Surface_swigregister(Adaptor3d_Surface)
class Adaptor3d_TopolTool(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

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

        Parameters
        ----------
        Surface: Adaptor3d_Surface

        Return
        -------
        None

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

        """
        _Adaptor3d.Adaptor3d_TopolTool_swiginit(self, _Adaptor3d.new_Adaptor3d_TopolTool(*args))

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

        Parameters
        ----------
        theDefl: float
        theNUmin: int
        theNVmin: int

        Return
        -------
        None

        Description
        -----------
        Compute the sample-points for the intersections algorithms by adaptive algorithm for bspline surfaces - is used in samplepnts @param thedefl [in] required deflection @param thenumin [in] minimal nb points for u @param thenvmin [in] minimal nb points for v.

        """
        return _Adaptor3d.Adaptor3d_TopolTool_BSplSamplePnts(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt2d
        Tol: float
        ReacdreOnPeriodic: bool (optional, default to Standard_True)

        Return
        -------
        TopAbs_State

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

        """
        return _Adaptor3d.Adaptor3d_TopolTool_Classify(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_TopolTool_ComputeSamplePoints(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_TopolTool_DomainIsInfinite(self, *args)

    def Edge(self, *args):
        r"""
        Return
        -------
        Standard_Address

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

        """
        return _Adaptor3d.Adaptor3d_TopolTool_Edge(self, *args)

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

        Parameters
        ----------
        theC: gp_Cone

        Return
        -------
        theU: float
        theV: float

        Description
        -----------
        Computes the cone's apex parameters. @param[in] thec conical surface @param[in] theu u parameter of cone's apex @param[in] thev v parameter of cone's apex.

        """
        return _Adaptor3d.Adaptor3d_TopolTool_GetConeApexParam(*args)

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

        Description
        -----------
        Answers if arcs and vertices may have 3d representations, so that we could use tol3d and pnt methods.

        """
        return _Adaptor3d.Adaptor3d_TopolTool_Has3d(self, *args)

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

        Parameters
        ----------
        V1: Adaptor3d_HVertex
        V2: Adaptor3d_HVertex

        Return
        -------
        bool

        Description
        -----------
        Returns true if the vertices v1 and v2 are identical. this method does not take the orientation of the vertices in account.

        """
        return _Adaptor3d.Adaptor3d_TopolTool_Identical(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_TopolTool_Init(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_TopolTool_InitVertexIterator(self, *args)

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

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

        Parameters
        ----------
        S: Adaptor3d_Surface

        Return
        -------
        None

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

        Parameters
        ----------
        Curve: Adaptor2d_Curve2d

        Return
        -------
        None

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

        """
        return _Adaptor3d.Adaptor3d_TopolTool_Initialize(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt2d
        Tol: float
        ReacdreOnPeriodic: bool (optional, default to Standard_True)

        Return
        -------
        bool

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

        """
        return _Adaptor3d.Adaptor3d_TopolTool_IsThePointOn(self, *args)

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

        Description
        -----------
        Returns true if provide uniform sampling of points.

        """
        return _Adaptor3d.Adaptor3d_TopolTool_IsUniformSampling(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_TopolTool_More(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_TopolTool_MoreVertex(self, *args)

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

        Description
        -----------
        Compute the sample-points for the intersections algorithms.

        """
        return _Adaptor3d.Adaptor3d_TopolTool_NbSamples(self, *args)

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

        Description
        -----------
        Compute the sample-points for the intersections algorithms.

        """
        return _Adaptor3d.Adaptor3d_TopolTool_NbSamplesU(self, *args)

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

        Description
        -----------
        Compute the sample-points for the intersections algorithms.

        """
        return _Adaptor3d.Adaptor3d_TopolTool_NbSamplesV(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_TopolTool_Next(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_TopolTool_NextVertex(self, *args)

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

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

        Return
        -------
        TopAbs_Orientation

        Description
        -----------
        If the function returns the orientation of the arc. if the orientation is forward or reversed, the arc is a 'real' limit of the surface. if the orientation is internal or external, the arc is considered as an arc on the surface.

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

        Return
        -------
        TopAbs_Orientation

        Description
        -----------
        Returns the orientation of the vertex v. the vertex has been found with an exploration on a given arc. the orientation is the orientation of the vertex on this arc.

        """
        return _Adaptor3d.Adaptor3d_TopolTool_Orientation(self, *args)

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

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

        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns 3d point of the vertex v.

        """
        return _Adaptor3d.Adaptor3d_TopolTool_Pnt(self, *args)

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

        Parameters
        ----------
        theDefl: float
        theNUmin: int
        theNVmin: int

        Return
        -------
        None

        Description
        -----------
        Compute the sample-points for the intersections algorithms by adaptive algorithm for bspline surfaces. for other surfaces algorithm is the same as in method computesamplepoints(), but only fill arrays of u and v sample parameters; @param thedefl [in] a required deflection @param thenumin [in] minimal nb points for u @param thenvmin [in] minimal nb points for v.

        """
        return _Adaptor3d.Adaptor3d_TopolTool_SamplePnts(self, *args)

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

        Parameters
        ----------
        Index: int
        P2d: gp_Pnt2d
        P3d: gp_Pnt

        Return
        -------
        None

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

        """
        return _Adaptor3d.Adaptor3d_TopolTool_SamplePoint(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        Returns 3d tolerance of the arc c.

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

        Return
        -------
        float

        Description
        -----------
        Returns 3d tolerance of the vertex v.

        """
        return _Adaptor3d.Adaptor3d_TopolTool_Tol3d(self, *args)

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

        Parameters
        ----------
        theArray: TColStd_Array1OfReal

        Return
        -------
        None

        Description
        -----------
        Return the set of u parameters on the surface obtained by the method samplepnts.

        """
        return _Adaptor3d.Adaptor3d_TopolTool_UParameters(self, *args)

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

        Parameters
        ----------
        theArray: TColStd_Array1OfReal

        Return
        -------
        None

        Description
        -----------
        Return the set of v parameters on the surface obtained by the method samplepnts.

        """
        return _Adaptor3d.Adaptor3d_TopolTool_VParameters(self, *args)

    def Value(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor2d_Curve2d>

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

        """
        return _Adaptor3d.Adaptor3d_TopolTool_Value(self, *args)

    def Vertex(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor3d_HVertex>

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

        """
        return _Adaptor3d.Adaptor3d_TopolTool_Vertex(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Adaptor3d.delete_Adaptor3d_TopolTool

# Register Adaptor3d_TopolTool in _Adaptor3d:
_Adaptor3d.Adaptor3d_TopolTool_swigregister(Adaptor3d_TopolTool)
class Adaptor3d_CurveOnSurface(Adaptor3d_Curve):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

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

        Parameters
        ----------
        S: Adaptor3d_Surface

        Return
        -------
        None

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

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        S: Adaptor3d_Surface

        Return
        -------
        None

        Description
        -----------
        Creates a curveonsurface from the 2d curve <c> and the surface <s>.

        """
        _Adaptor3d.Adaptor3d_CurveOnSurface_swiginit(self, _Adaptor3d.new_Adaptor3d_CurveOnSurface(*args))

    def ChangeCurve(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor2d_Curve2d>

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

        """
        return _Adaptor3d.Adaptor3d_CurveOnSurface_ChangeCurve(self, *args)

    def ChangeSurface(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor3d_Surface>

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

        """
        return _Adaptor3d.Adaptor3d_CurveOnSurface_ChangeSurface(self, *args)

    def GetCurve(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor2d_Curve2d>

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

        """
        return _Adaptor3d.Adaptor3d_CurveOnSurface_GetCurve(self, *args)

    def GetSurface(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor3d_Surface>

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

        """
        return _Adaptor3d.Adaptor3d_CurveOnSurface_GetSurface(self, *args)

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

        Parameters
        ----------
        S: Adaptor3d_Surface

        Return
        -------
        None

        Description
        -----------
        Changes the surface.

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

        Return
        -------
        None

        Description
        -----------
        Changes the 2d curve.

        Parameters
        ----------
        C: Adaptor2d_Curve2d
        S: Adaptor3d_Surface

        Return
        -------
        None

        Description
        -----------
        Load both curve and surface.

        """
        return _Adaptor3d.Adaptor3d_CurveOnSurface_Load(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Adaptor3d.delete_Adaptor3d_CurveOnSurface

# Register Adaptor3d_CurveOnSurface in _Adaptor3d:
_Adaptor3d.Adaptor3d_CurveOnSurface_swigregister(Adaptor3d_CurveOnSurface)
class Adaptor3d_IsoCurve(Adaptor3d_Curve):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        The iso is set to noneiso.

        Parameters
        ----------
        S: Adaptor3d_Surface

        Return
        -------
        None

        Description
        -----------
        The surface is loaded. the iso is set to noneiso.

        Parameters
        ----------
        S: Adaptor3d_Surface
        Iso: GeomAbs_IsoType
        Param: float

        Return
        -------
        None

        Description
        -----------
        Creates an isocurve curve. iso defines the type (isou or isou) param defines the value of the iso. the bounds of the iso are the bounds of the surface.

        Parameters
        ----------
        S: Adaptor3d_Surface
        Iso: GeomAbs_IsoType
        Param: float
        WFirst: float
        WLast: float

        Return
        -------
        None

        Description
        -----------
        Create an isocurve curve. iso defines the type (isou or isov). param defines the value of the iso. wfirst,wlast define the bounds of the iso.

        """
        _Adaptor3d.Adaptor3d_IsoCurve_swiginit(self, _Adaptor3d.new_Adaptor3d_IsoCurve(*args))

    def Iso(self, *args):
        r"""
        Return
        -------
        GeomAbs_IsoType

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

        """
        return _Adaptor3d.Adaptor3d_IsoCurve_Iso(self, *args)

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

        Parameters
        ----------
        S: Adaptor3d_Surface

        Return
        -------
        None

        Description
        -----------
        Changes the surface. the iso is reset to noneiso.

        Parameters
        ----------
        Iso: GeomAbs_IsoType
        Param: float

        Return
        -------
        None

        Description
        -----------
        Changes the iso on the current surface.

        Parameters
        ----------
        Iso: GeomAbs_IsoType
        Param: float
        WFirst: float
        WLast: float

        Return
        -------
        None

        Description
        -----------
        Changes the iso on the current surface.

        """
        return _Adaptor3d.Adaptor3d_IsoCurve_Load(self, *args)

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

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

        """
        return _Adaptor3d.Adaptor3d_IsoCurve_Parameter(self, *args)

    def Surface(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Adaptor3d_Surface>

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

        """
        return _Adaptor3d.Adaptor3d_IsoCurve_Surface(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Adaptor3d.delete_Adaptor3d_IsoCurve

# Register Adaptor3d_IsoCurve in _Adaptor3d:
_Adaptor3d.Adaptor3d_IsoCurve_swigregister(Adaptor3d_IsoCurve)



@deprecated
def Adaptor3d_HSurfaceTool_AxeOfRevolution(*args):
	return Adaptor3d_HSurfaceTool.AxeOfRevolution(*args)

@deprecated
def Adaptor3d_HSurfaceTool_BSpline(*args):
	return Adaptor3d_HSurfaceTool.BSpline(*args)

@deprecated
def Adaptor3d_HSurfaceTool_BasisCurve(*args):
	return Adaptor3d_HSurfaceTool.BasisCurve(*args)

@deprecated
def Adaptor3d_HSurfaceTool_BasisSurface(*args):
	return Adaptor3d_HSurfaceTool.BasisSurface(*args)

@deprecated
def Adaptor3d_HSurfaceTool_Bezier(*args):
	return Adaptor3d_HSurfaceTool.Bezier(*args)

@deprecated
def Adaptor3d_HSurfaceTool_Cone(*args):
	return Adaptor3d_HSurfaceTool.Cone(*args)

@deprecated
def Adaptor3d_HSurfaceTool_Cylinder(*args):
	return Adaptor3d_HSurfaceTool.Cylinder(*args)

@deprecated
def Adaptor3d_HSurfaceTool_D0(*args):
	return Adaptor3d_HSurfaceTool.D0(*args)

@deprecated
def Adaptor3d_HSurfaceTool_D1(*args):
	return Adaptor3d_HSurfaceTool.D1(*args)

@deprecated
def Adaptor3d_HSurfaceTool_D2(*args):
	return Adaptor3d_HSurfaceTool.D2(*args)

@deprecated
def Adaptor3d_HSurfaceTool_D3(*args):
	return Adaptor3d_HSurfaceTool.D3(*args)

@deprecated
def Adaptor3d_HSurfaceTool_DN(*args):
	return Adaptor3d_HSurfaceTool.DN(*args)

@deprecated
def Adaptor3d_HSurfaceTool_Direction(*args):
	return Adaptor3d_HSurfaceTool.Direction(*args)

@deprecated
def Adaptor3d_HSurfaceTool_FirstUParameter(*args):
	return Adaptor3d_HSurfaceTool.FirstUParameter(*args)

@deprecated
def Adaptor3d_HSurfaceTool_FirstVParameter(*args):
	return Adaptor3d_HSurfaceTool.FirstVParameter(*args)

@deprecated
def Adaptor3d_HSurfaceTool_GetType(*args):
	return Adaptor3d_HSurfaceTool.GetType(*args)

@deprecated
def Adaptor3d_HSurfaceTool_IsSurfG1(*args):
	return Adaptor3d_HSurfaceTool.IsSurfG1(*args)

@deprecated
def Adaptor3d_HSurfaceTool_IsUClosed(*args):
	return Adaptor3d_HSurfaceTool.IsUClosed(*args)

@deprecated
def Adaptor3d_HSurfaceTool_IsUPeriodic(*args):
	return Adaptor3d_HSurfaceTool.IsUPeriodic(*args)

@deprecated
def Adaptor3d_HSurfaceTool_IsVClosed(*args):
	return Adaptor3d_HSurfaceTool.IsVClosed(*args)

@deprecated
def Adaptor3d_HSurfaceTool_IsVPeriodic(*args):
	return Adaptor3d_HSurfaceTool.IsVPeriodic(*args)

@deprecated
def Adaptor3d_HSurfaceTool_LastUParameter(*args):
	return Adaptor3d_HSurfaceTool.LastUParameter(*args)

@deprecated
def Adaptor3d_HSurfaceTool_LastVParameter(*args):
	return Adaptor3d_HSurfaceTool.LastVParameter(*args)

@deprecated
def Adaptor3d_HSurfaceTool_NbSamplesU(*args):
	return Adaptor3d_HSurfaceTool.NbSamplesU(*args)

@deprecated
def Adaptor3d_HSurfaceTool_NbSamplesU(*args):
	return Adaptor3d_HSurfaceTool.NbSamplesU(*args)

@deprecated
def Adaptor3d_HSurfaceTool_NbSamplesV(*args):
	return Adaptor3d_HSurfaceTool.NbSamplesV(*args)

@deprecated
def Adaptor3d_HSurfaceTool_NbSamplesV(*args):
	return Adaptor3d_HSurfaceTool.NbSamplesV(*args)

@deprecated
def Adaptor3d_HSurfaceTool_NbUIntervals(*args):
	return Adaptor3d_HSurfaceTool.NbUIntervals(*args)

@deprecated
def Adaptor3d_HSurfaceTool_NbVIntervals(*args):
	return Adaptor3d_HSurfaceTool.NbVIntervals(*args)

@deprecated
def Adaptor3d_HSurfaceTool_OffsetValue(*args):
	return Adaptor3d_HSurfaceTool.OffsetValue(*args)

@deprecated
def Adaptor3d_HSurfaceTool_Plane(*args):
	return Adaptor3d_HSurfaceTool.Plane(*args)

@deprecated
def Adaptor3d_HSurfaceTool_Sphere(*args):
	return Adaptor3d_HSurfaceTool.Sphere(*args)

@deprecated
def Adaptor3d_HSurfaceTool_Torus(*args):
	return Adaptor3d_HSurfaceTool.Torus(*args)

@deprecated
def Adaptor3d_HSurfaceTool_UIntervals(*args):
	return Adaptor3d_HSurfaceTool.UIntervals(*args)

@deprecated
def Adaptor3d_HSurfaceTool_UPeriod(*args):
	return Adaptor3d_HSurfaceTool.UPeriod(*args)

@deprecated
def Adaptor3d_HSurfaceTool_UResolution(*args):
	return Adaptor3d_HSurfaceTool.UResolution(*args)

@deprecated
def Adaptor3d_HSurfaceTool_UTrim(*args):
	return Adaptor3d_HSurfaceTool.UTrim(*args)

@deprecated
def Adaptor3d_HSurfaceTool_VIntervals(*args):
	return Adaptor3d_HSurfaceTool.VIntervals(*args)

@deprecated
def Adaptor3d_HSurfaceTool_VPeriod(*args):
	return Adaptor3d_HSurfaceTool.VPeriod(*args)

@deprecated
def Adaptor3d_HSurfaceTool_VResolution(*args):
	return Adaptor3d_HSurfaceTool.VResolution(*args)

@deprecated
def Adaptor3d_HSurfaceTool_VTrim(*args):
	return Adaptor3d_HSurfaceTool.VTrim(*args)

@deprecated
def Adaptor3d_HSurfaceTool_Value(*args):
	return Adaptor3d_HSurfaceTool.Value(*args)

@deprecated
def Adaptor3d_TopolTool_GetConeApexParam(*args):
	return Adaptor3d_TopolTool.GetConeApexParam(*args)



