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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _FilletSurf:
_FilletSurf.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 _FilletSurf.process_exception(error, method_name, class_name)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

endl_cb_ptr = _FilletSurf.endl_cb_ptr
endl = _FilletSurf.endl
ends_cb_ptr = _FilletSurf.ends_cb_ptr
ends = _FilletSurf.ends
flush_cb_ptr = _FilletSurf.flush_cb_ptr
flush = _FilletSurf.flush
import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.TopoDS
import OCC.Core.Message
import OCC.Core.TCollection
import OCC.Core.OSD
import OCC.Core.TColStd
import OCC.Core.TopAbs
import OCC.Core.TopLoc
import OCC.Core.gp
import OCC.Core.TopTools
import OCC.Core.Geom
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.Geom2d
import OCC.Core.ChFi3d
import OCC.Core.BRepAdaptor
import OCC.Core.Adaptor3d
import OCC.Core.Adaptor2d
import OCC.Core.math
import OCC.Core.Geom2dAdaptor
import OCC.Core.GeomAdaptor
import OCC.Core.ChFiDS
import OCC.Core.Law
import OCC.Core.TopOpeBRepBuild
import OCC.Core.TopOpeBRepDS
import OCC.Core.TopOpeBRepTool
import OCC.Core.BRepClass3d
import OCC.Core.IntCurveSurface
import OCC.Core.Intf
import OCC.Core.Bnd
import OCC.Core.BVH
import OCC.Core.IntSurf
import OCC.Core.IntCurvesFace
import OCC.Core.TopExp

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

FilletSurf_EmptyList = _FilletSurf.FilletSurf_EmptyList
FilletSurf_EdgeNotG1 = _FilletSurf.FilletSurf_EdgeNotG1
FilletSurf_FacesNotG1 = _FilletSurf.FilletSurf_FacesNotG1
FilletSurf_EdgeNotOnShape = _FilletSurf.FilletSurf_EdgeNotOnShape
FilletSurf_NotSharpEdge = _FilletSurf.FilletSurf_NotSharpEdge
FilletSurf_PbFilletCompute = _FilletSurf.FilletSurf_PbFilletCompute
FilletSurf_IsOk = _FilletSurf.FilletSurf_IsOk
FilletSurf_IsNotOk = _FilletSurf.FilletSurf_IsNotOk
FilletSurf_IsPartial = _FilletSurf.FilletSurf_IsPartial
FilletSurf_TwoExtremityOnEdge = _FilletSurf.FilletSurf_TwoExtremityOnEdge
FilletSurf_OneExtremityOnEdge = _FilletSurf.FilletSurf_OneExtremityOnEdge
FilletSurf_NoExtremityOnEdge = _FilletSurf.FilletSurf_NoExtremityOnEdge


class FilletSurf_ErrorTypeStatus(IntEnum):
	FilletSurf_EmptyList = 0
	FilletSurf_EdgeNotG1 = 1
	FilletSurf_FacesNotG1 = 2
	FilletSurf_EdgeNotOnShape = 3
	FilletSurf_NotSharpEdge = 4
	FilletSurf_PbFilletCompute = 5
FilletSurf_EmptyList = FilletSurf_ErrorTypeStatus.FilletSurf_EmptyList
FilletSurf_EdgeNotG1 = FilletSurf_ErrorTypeStatus.FilletSurf_EdgeNotG1
FilletSurf_FacesNotG1 = FilletSurf_ErrorTypeStatus.FilletSurf_FacesNotG1
FilletSurf_EdgeNotOnShape = FilletSurf_ErrorTypeStatus.FilletSurf_EdgeNotOnShape
FilletSurf_NotSharpEdge = FilletSurf_ErrorTypeStatus.FilletSurf_NotSharpEdge
FilletSurf_PbFilletCompute = FilletSurf_ErrorTypeStatus.FilletSurf_PbFilletCompute

class FilletSurf_StatusDone(IntEnum):
	FilletSurf_IsOk = 0
	FilletSurf_IsNotOk = 1
	FilletSurf_IsPartial = 2
FilletSurf_IsOk = FilletSurf_StatusDone.FilletSurf_IsOk
FilletSurf_IsNotOk = FilletSurf_StatusDone.FilletSurf_IsNotOk
FilletSurf_IsPartial = FilletSurf_StatusDone.FilletSurf_IsPartial

class FilletSurf_StatusType(IntEnum):
	FilletSurf_TwoExtremityOnEdge = 0
	FilletSurf_OneExtremityOnEdge = 1
	FilletSurf_NoExtremityOnEdge = 2
FilletSurf_TwoExtremityOnEdge = FilletSurf_StatusType.FilletSurf_TwoExtremityOnEdge
FilletSurf_OneExtremityOnEdge = FilletSurf_StatusType.FilletSurf_OneExtremityOnEdge
FilletSurf_NoExtremityOnEdge = FilletSurf_StatusType.FilletSurf_NoExtremityOnEdge

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

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

        Parameters
        ----------
        S: TopoDS_Shape
        E: TopTools_ListOfShape
        R: float
        Ta: float (optional, default to 1.0e-2)
        Tapp3d: float (optional, default to 1.0e-4)
        Tapp2d: float (optional, default to 1.0e-5)

        Return
        -------
        None

        Description
        -----------
        initialize of the information necessary for the computation of the fillet on the Shape S from a list of edges E and a radius R. //! Ta is the angular tolerance Tapp3d is the 3d approximation tolerance Tapp2d is the 2d approximation tolerance.

        """
        _FilletSurf.FilletSurf_Builder_swiginit(self, _FilletSurf.new_FilletSurf_Builder(*args))

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

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

        Return
        -------
        opencascade::handle<Geom_Curve>

        Description
        -----------
        gives the 3d curve of SurfaceFillet(Index) on SupportFace1(Index).

        """
        return _FilletSurf.FilletSurf_Builder_CurveOnFace1(self, *args)

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

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

        Return
        -------
        opencascade::handle<Geom_Curve>

        Description
        -----------
        gives the 3d curve of SurfaceFillet(Index) on SupportFace2(Index).

        """
        return _FilletSurf.FilletSurf_Builder_CurveOnFace2(self, *args)

    def EndSectionStatus(self, *args):
        r"""
        Return
        -------
        FilletSurf_StatusType

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

        """
        return _FilletSurf.FilletSurf_Builder_EndSectionStatus(self, *args)

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

        Description
        -----------
        gives the parameter of the fillet on the first edge.

        """
        return _FilletSurf.FilletSurf_Builder_FirstParameter(self, *args)

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

        Description
        -----------
        gives the status about the computation of the fillet returns: IsOK :no problem during the computation IsNotOk: no result is produced IsPartial: the result is partial.

        """
        return _FilletSurf.FilletSurf_Builder_IsDone(self, *args)

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

        Description
        -----------
        gives the parameter of the fillet on the last edge.

        """
        return _FilletSurf.FilletSurf_Builder_LastParameter(self, *args)

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

        Parameters
        ----------
        IndexSurf: int

        Return
        -------
        int

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

        """
        return _FilletSurf.FilletSurf_Builder_NbSection(self, *args)

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

        Description
        -----------
        gives the number of NUBS surfaces of the Fillet.

        """
        return _FilletSurf.FilletSurf_Builder_NbSurface(self, *args)

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

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

        Return
        -------
        opencascade::handle<Geom2d_Curve>

        Description
        -----------
        gives the PCurve associated to CurveOnFace1(Index) on the Fillet.

        """
        return _FilletSurf.FilletSurf_Builder_PCurve1OnFillet(self, *args)

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

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

        Return
        -------
        opencascade::handle<Geom2d_Curve>

        Description
        -----------
        gives the PCurve associated to CurveOnSup2(Index) on the fillet.

        """
        return _FilletSurf.FilletSurf_Builder_PCurve2OnFillet(self, *args)

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

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

        Return
        -------
        opencascade::handle<Geom2d_Curve>

        Description
        -----------
        gives the PCurve associated to CurvOnSup1(Index) on the support face.

        """
        return _FilletSurf.FilletSurf_Builder_PCurveOnFace1(self, *args)

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

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

        Return
        -------
        opencascade::handle<Geom2d_Curve>

        Description
        -----------
        gives the PCurve associated to CurveOnSup2(Index) on the support face.

        """
        return _FilletSurf.FilletSurf_Builder_PCurveOnFace2(self, *args)

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

        Description
        -----------
        ---Purpose computation of the fillet (list of NUBS).

        """
        return _FilletSurf.FilletSurf_Builder_Perform(self, *args)

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

        Parameters
        ----------
        IndexSurf: int
        IndexSec: int
        Circ: Geom_TrimmedCurve

        Return
        -------
        None

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

        """
        return _FilletSurf.FilletSurf_Builder_Section(self, *args)

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

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

        """
        return _FilletSurf.FilletSurf_Builder_Simulate(self, *args)

    def StartSectionStatus(self, *args):
        r"""
        Return
        -------
        FilletSurf_StatusType

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

        """
        return _FilletSurf.FilletSurf_Builder_StartSectionStatus(self, *args)

    def StatusError(self, *args):
        r"""
        Return
        -------
        FilletSurf_ErrorTypeStatus

        Description
        -----------
        gives information about error status if IsDone=IsNotOk returns EdgeNotG1: the edges are not G1 FacesNotG1: two connected faces on a same support are not G1 EdgeNotOnShape: the edge is not on shape NotSharpEdge: the edge is not sharp PbFilletCompute: problem during the computation of the fillet.

        """
        return _FilletSurf.FilletSurf_Builder_StatusError(self, *args)

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

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

        Return
        -------
        TopoDS_Face

        Description
        -----------
        gives the first support face relative to SurfaceFillet(Index);.

        """
        return _FilletSurf.FilletSurf_Builder_SupportFace1(self, *args)

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

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

        Return
        -------
        TopoDS_Face

        Description
        -----------
        gives the second support face relative to SurfaceFillet(Index);.

        """
        return _FilletSurf.FilletSurf_Builder_SupportFace2(self, *args)

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

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

        Return
        -------
        opencascade::handle<Geom_Surface>

        Description
        -----------
        gives the NUBS surface of index Index.

        """
        return _FilletSurf.FilletSurf_Builder_SurfaceFillet(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        gives the 3d tolerance reached during approximation of surface of index Index.

        """
        return _FilletSurf.FilletSurf_Builder_TolApp3d(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _FilletSurf.delete_FilletSurf_Builder

# Register FilletSurf_Builder in _FilletSurf:
_FilletSurf.FilletSurf_Builder_swigregister(FilletSurf_Builder)
class FilletSurf_InternalBuilder(OCC.Core.ChFi3d.ChFi3d_FilBuilder):
    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
        ----------
        S: TopoDS_Shape
        FShape: ChFi3d_FilletShape (optional, default to ChFi3d_Polynomial)
        Ta: float (optional, default to 1.0e-2)
        Tapp3d: float (optional, default to 1.0e-4)
        Tapp2d: float (optional, default to 1.0e-5)

        Return
        -------
        None

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

        """
        _FilletSurf.FilletSurf_InternalBuilder_swiginit(self, _FilletSurf.new_FilletSurf_InternalBuilder(*args))

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

        Parameters
        ----------
        E: TopTools_ListOfShape
        R: float

        Return
        -------
        int

        Description
        -----------
        Initializes the contour with a list of Edges 0: no problem 1: empty list 2: the edges are not G1 3: two connected faces on a same support are not G1 4: the edge is not on shape 5: NotSharpEdge: the edge is not sharp.

        """
        return _FilletSurf.FilletSurf_InternalBuilder_Add(self, *args)

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

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

        Return
        -------
        opencascade::handle<Geom_Curve>

        Description
        -----------
        gives the 3d curve of SurfaceFillet(Index) on SupportFace1(Index).

        """
        return _FilletSurf.FilletSurf_InternalBuilder_CurveOnFace1(self, *args)

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

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

        Return
        -------
        opencascade::handle<Geom_Curve>

        Description
        -----------
        gives the 3d curve of SurfaceFillet(Index) on SupportFace2(Index).

        """
        return _FilletSurf.FilletSurf_InternalBuilder_CurveOnFace2(self, *args)

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

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

        """
        return _FilletSurf.FilletSurf_InternalBuilder_Done(self, *args)

    def EndSectionStatus(self, *args):
        r"""
        Return
        -------
        FilletSurf_StatusType

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

        """
        return _FilletSurf.FilletSurf_InternalBuilder_EndSectionStatus(self, *args)

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

        Description
        -----------
        gives the parameter of the fillet on the first edge.

        """
        return _FilletSurf.FilletSurf_InternalBuilder_FirstParameter(self, *args)

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

        Description
        -----------
        gives the parameter of the fillet on the last edge.

        """
        return _FilletSurf.FilletSurf_InternalBuilder_LastParameter(self, *args)

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

        Parameters
        ----------
        IndexSurf: int

        Return
        -------
        int

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

        """
        return _FilletSurf.FilletSurf_InternalBuilder_NbSection(self, *args)

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

        Description
        -----------
        gives the number of NUBS surfaces of the Fillet.

        """
        return _FilletSurf.FilletSurf_InternalBuilder_NbSurface(self, *args)

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

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

        Return
        -------
        opencascade::handle<Geom2d_Curve>

        Description
        -----------
        gives the PCurve associated to CurveOnFace1(Index) on the Fillet.

        """
        return _FilletSurf.FilletSurf_InternalBuilder_PCurve1OnFillet(self, *args)

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

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

        Return
        -------
        opencascade::handle<Geom2d_Curve>

        Description
        -----------
        gives the PCurve associated to CurveOnSup2(Index) on the fillet.

        """
        return _FilletSurf.FilletSurf_InternalBuilder_PCurve2OnFillet(self, *args)

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

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

        Return
        -------
        opencascade::handle<Geom2d_Curve>

        Description
        -----------
        gives the PCurve associated to CurvOnSup1(Index) on the support face.

        """
        return _FilletSurf.FilletSurf_InternalBuilder_PCurveOnFace1(self, *args)

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

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

        Return
        -------
        opencascade::handle<Geom2d_Curve>

        Description
        -----------
        gives the PCurve associated to CurveOnSup2(Index) on the support face.

        """
        return _FilletSurf.FilletSurf_InternalBuilder_PCurveOnFace2(self, *args)

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

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

        """
        return _FilletSurf.FilletSurf_InternalBuilder_Perform(self, *args)

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

        Parameters
        ----------
        IndexSurf: int
        IndexSec: int
        Circ: Geom_TrimmedCurve

        Return
        -------
        None

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

        """
        return _FilletSurf.FilletSurf_InternalBuilder_Section(self, *args)

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

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

        """
        return _FilletSurf.FilletSurf_InternalBuilder_Simulate(self, *args)

    def StartSectionStatus(self, *args):
        r"""
        Return
        -------
        FilletSurf_StatusType

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

        """
        return _FilletSurf.FilletSurf_InternalBuilder_StartSectionStatus(self, *args)

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

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

        Return
        -------
        TopoDS_Face

        Description
        -----------
        gives the first support face relative to SurfaceFillet(Index);.

        """
        return _FilletSurf.FilletSurf_InternalBuilder_SupportFace1(self, *args)

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

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

        Return
        -------
        TopoDS_Face

        Description
        -----------
        gives the second support face relative to SurfaceFillet(Index);.

        """
        return _FilletSurf.FilletSurf_InternalBuilder_SupportFace2(self, *args)

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

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

        Return
        -------
        opencascade::handle<Geom_Surface>

        Description
        -----------
        gives the NUBS surface of index Index.

        """
        return _FilletSurf.FilletSurf_InternalBuilder_SurfaceFillet(self, *args)

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

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

        Return
        -------
        float

        Description
        -----------
        gives the 3d tolerance reached during approximation of the surface of index Index.

        """
        return _FilletSurf.FilletSurf_InternalBuilder_TolApp3d(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _FilletSurf.delete_FilletSurf_InternalBuilder

# Register FilletSurf_InternalBuilder in _FilletSurf:
_FilletSurf.FilletSurf_InternalBuilder_swigregister(FilletSurf_InternalBuilder)



