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

"""
ChFi3d module, see official documentation at
https://www.opencascade.com/doc/occt-7.7.0/refman/html/package_chfi3d.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 _ChFi3d
else:
    import _ChFi3d

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _ChFi3d:
_ChFi3d.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 _ChFi3d.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.BRepAdaptor
import OCC.Core.Adaptor3d
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
import OCC.Core.TopoDS
import OCC.Core.TopLoc
import OCC.Core.GeomAdaptor
import OCC.Core.Geom2dAdaptor
import OCC.Core.ChFiDS
import OCC.Core.TopTools
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
import OCC.Core.Extrema
import OCC.Core.BRepBlend
import OCC.Core.BlendFunc
import OCC.Core.Convert
import OCC.Core.Blend
import OCC.Core.Approx
import OCC.Core.AppCont
import OCC.Core.AppParCurves
import OCC.Core.AppBlend
import OCC.Core.GeomFill
import OCC.Core.TColGeom

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

ChFi3d_Rational = _ChFi3d.ChFi3d_Rational
ChFi3d_QuasiAngular = _ChFi3d.ChFi3d_QuasiAngular
ChFi3d_Polynomial = _ChFi3d.ChFi3d_Polynomial


class ChFi3d_FilletShape(IntEnum):
	ChFi3d_Rational = 0
	ChFi3d_QuasiAngular = 1
	ChFi3d_Polynomial = 2
ChFi3d_Rational = ChFi3d_FilletShape.ChFi3d_Rational
ChFi3d_QuasiAngular = ChFi3d_FilletShape.ChFi3d_QuasiAngular
ChFi3d_Polynomial = ChFi3d_FilletShape.ChFi3d_Polynomial

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

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

        Parameters
        ----------
        S1: BRepAdaptor_Surface
        S2: BRepAdaptor_Surface
        E: TopoDS_Edge
        Or1: TopAbs_Orientation
        Or2: TopAbs_Orientation

        Return
        -------
        int

        Description
        -----------
        Returns reversed in or1 and(or) or2 if the concave edge defined by the interior of faces f1 and f2, in the neighbourhood of their boundary e is of the edge opposite to the normal of their surface support. the orientation of faces is not taken into consideration in the calculation. the function returns 0 if the calculation fails (tangence), if not, it returns the number of choice of the fillet or chamfer corresponding to the orientations calculated and to the tangent to the guide line read in e.

        """
        return _ChFi3d.chfi3d_ConcaveSide(*args)

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

        Parameters
        ----------
        E: TopoDS_Edge
        F1: TopoDS_Face
        F2: TopoDS_Face
        SinTol: float
        CorrectPoint: bool

        Return
        -------
        ChFiDS_TypeOfConcavity

        Description
        -----------
        Defines the type of concavity in the edge of connection of two faces.

        """
        return _ChFi3d.chfi3d_DefineConnectType(*args)

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

        Parameters
        ----------
        theEdge: TopoDS_Edge
        theFace1: TopoDS_Face
        theFace2: TopoDS_Face
        Order: GeomAbs_Shape (optional, default to GeomAbs_G1)

        Return
        -------
        bool

        Description
        -----------
        Returns true if theedge between theface1 and theface2 is tangent.

        """
        return _ChFi3d.chfi3d_IsTangentFaces(*args)

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

        Parameters
        ----------
        Or1: TopAbs_Orientation
        Or2: TopAbs_Orientation
        OrSave1: TopAbs_Orientation
        OrSave2: TopAbs_Orientation
        ChoixSauv: int

        Return
        -------
        int

        Description
        -----------
        Same as concaveside, but the orientations are logically deduced from the result of the call of concaveside on the first pair of faces of the fillet or chamnfer.

        Parameters
        ----------
        Or: TopAbs_Orientation
        OrSave: TopAbs_Orientation
        OrFace: TopAbs_Orientation

        Return
        -------
        None

        Description
        -----------
        Same as the other nextside, but the calculation is done on an edge only.

        """
        return _ChFi3d.chfi3d_NextSide(*args)

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

        Parameters
        ----------
        Or: TopAbs_Orientation
        OrSave1: TopAbs_Orientation
        OrSave2: TopAbs_Orientation
        OrFace1: TopAbs_Orientation
        OrFace2: TopAbs_Orientation

        Return
        -------
        bool

        Description
        -----------
        Enables to determine while processing an angle, if two fillets or chamfers constituting a face have identic or opposed concave edges.

        """
        return _ChFi3d.chfi3d_SameSide(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _ChFi3d.chfi3d_swiginit(self, _ChFi3d.new_chfi3d())
    __swig_destroy__ = _ChFi3d.delete_chfi3d

# Register chfi3d in _ChFi3d:
_ChFi3d.chfi3d_swigregister(chfi3d)
class ChFi3d_Builder(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

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

        Parameters
        ----------
        IC: int
        V: TopoDS_Vertex

        Return
        -------
        float

        Description
        -----------
        Returns the abscissa of the vertex v on the contour of index ic.

        """
        return _ChFi3d.ChFi3d_Builder_Abscissa(self, *args)

    def BadShape(self, *args):
        r"""
        Return
        -------
        TopoDS_Shape

        Description
        -----------
        If (hasresult()) returns partial result if (!hasresult()).

        """
        return _ChFi3d.ChFi3d_Builder_BadShape(self, *args)

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

        Description
        -----------
        Returns the builder of topologic operations.

        """
        return _ChFi3d.ChFi3d_Builder_Builder(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        bool

        Description
        -----------
        Returns true if the contour of index ic is closed.

        """
        return _ChFi3d.ChFi3d_Builder_Closed(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        bool

        Description
        -----------
        Returns true if the contour of index ic is closed an tangent.

        """
        return _ChFi3d.ChFi3d_Builder_ClosedAndTangent(self, *args)

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

        Description
        -----------
        General calculation of geometry on all edges, topologic reconstruction.

        """
        return _ChFi3d.ChFi3d_Builder_Compute(self, *args)

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

        Parameters
        ----------
        IC: int
        IS: int

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

        Description
        -----------
        Returns the is'th surface calculated on the contour ic.

        """
        return _ChFi3d.ChFi3d_Builder_ComputedSurface(self, *args)

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

        Parameters
        ----------
        E: TopoDS_Edge

        Return
        -------
        int

        Description
        -----------
        Gives the number of the contour containing e or 0 if e does not belong to any contour.

        Parameters
        ----------
        E: TopoDS_Edge

        Return
        -------
        IndexInSpine: int

        Description
        -----------
        Gives the number of the contour containing e or 0 if e does not belong to any contour. sets in indexinspine the index of e in the contour if it's found.

        """
        return _ChFi3d.ChFi3d_Builder_Contains(self, *args)

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

        Parameters
        ----------
        I: int

        Return
        -------
        int

        Description
        -----------
        Returns the number of i'th contour on which the calculation has failed.

        """
        return _ChFi3d.ChFi3d_Builder_FaultyContour(self, *args)

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

        Parameters
        ----------
        IV: int

        Return
        -------
        TopoDS_Vertex

        Description
        -----------
        Returns the iv'th vertex on which the calculation has failed.

        """
        return _ChFi3d.ChFi3d_Builder_FaultyVertex(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        TopoDS_Vertex

        Description
        -----------
        Returns the first vertex v of the contour of index ic.

        """
        return _ChFi3d.ChFi3d_Builder_FirstVertex(self, *args)

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

        Parameters
        ----------
        EouV: TopoDS_Shape

        Return
        -------
        TopTools_ListOfShape

        Description
        -----------
        Advanced function for the history.

        """
        return _ChFi3d.ChFi3d_Builder_Generated(self, *args)

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

        Description
        -----------
        Returns true if a partial result has been calculated.

        """
        return _ChFi3d.ChFi3d_Builder_HasResult(self, *args)

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

        Description
        -----------
        Returns true if the computation is success.

        """
        return _ChFi3d.ChFi3d_Builder_IsDone(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        TopoDS_Vertex

        Description
        -----------
        Returns the last vertex v of the contour of index ic.

        """
        return _ChFi3d.ChFi3d_Builder_LastVertex(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        float

        Description
        -----------
        Returns the length of the contour of index ic.

        """
        return _ChFi3d.ChFi3d_Builder_Length(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        int

        Description
        -----------
        Returns the number of surfaces calculated on the contour ic.

        """
        return _ChFi3d.ChFi3d_Builder_NbComputedSurfaces(self, *args)

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

        Description
        -----------
        Gives the number of disjoint contours on which the fillets are calculated.

        """
        return _ChFi3d.ChFi3d_Builder_NbElements(self, *args)

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

        Description
        -----------
        Returns the number of contours on which the calculation has failed.

        """
        return _ChFi3d.ChFi3d_Builder_NbFaultyContours(self, *args)

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

        Description
        -----------
        Returns the number of vertices on which the calculation has failed.

        """
        return _ChFi3d.ChFi3d_Builder_NbFaultyVertices(self, *args)

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

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

        Return
        -------
        bool

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

        """
        return _ChFi3d.ChFi3d_Builder_PerformTwoCornerbyInter(self, *args)

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

        Parameters
        ----------
        IC: int
        V: TopoDS_Vertex

        Return
        -------
        float

        Description
        -----------
        Returns the relative abscissa([0.,1.]) of the vertex v on the contour of index ic.

        """
        return _ChFi3d.ChFi3d_Builder_RelativeAbscissa(self, *args)

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

        Parameters
        ----------
        E: TopoDS_Edge

        Return
        -------
        None

        Description
        -----------
        Extracts from the list the contour containing edge e.

        """
        return _ChFi3d.ChFi3d_Builder_Remove(self, *args)

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

        Description
        -----------
        Reset all results of compute and returns the algorithm in the state of the last acquisition to enable modification of contours or areas.

        """
        return _ChFi3d.ChFi3d_Builder_Reset(self, *args)

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

        Parameters
        ----------
        InternalContinuity: GeomAbs_Shape
        AngularTolerance: float

        Return
        -------
        None

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

        """
        return _ChFi3d.ChFi3d_Builder_SetContinuity(self, *args)

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

        Parameters
        ----------
        Tang: float
        Tesp: float
        T2d: float
        TApp3d: float
        TolApp2d: float
        Fleche: float

        Return
        -------
        None

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

        """
        return _ChFi3d.ChFi3d_Builder_SetParams(self, *args)

    def Shape(self, *args):
        r"""
        Return
        -------
        TopoDS_Shape

        Description
        -----------
        If (isdone()) makes the result. if (!isdone()).

        """
        return _ChFi3d.ChFi3d_Builder_Shape(self, *args)

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

        Parameters
        ----------
        Data: ChFiDS_SurfData
        SetData: ChFiDS_SequenceOfSurfData
        Spine: ChFiDS_Spine
        Iedge: int
        S1: Adaptor3d_Surface
        I1: Adaptor3d_TopolTool
        S2: Adaptor3d_Surface
        I2: Adaptor3d_TopolTool

        Return
        -------
        Intf: bool
        Intl: bool

        Description
        -----------
        Method, implemented in the inheritants, calculates the elements of construction of the surface (fillet or chamfer).

        """
        return _ChFi3d.ChFi3d_Builder_SplitKPart(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        ChFiDS_ErrorStatus

        Description
        -----------
        For the stripe ic ,indication on the cause of failure walkingfailure,twistedsurface,error, ok.

        """
        return _ChFi3d.ChFi3d_Builder_StripeStatus(self, *args)

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

        Parameters
        ----------
        I: int

        Return
        -------
        opencascade::handle<ChFiDS_Spine>

        Description
        -----------
        Gives the n'th set of edges (contour) if i >nbelements().

        """
        return _ChFi3d.ChFi3d_Builder_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _ChFi3d.delete_ChFi3d_Builder

# Register ChFi3d_Builder in _ChFi3d:
_ChFi3d.ChFi3d_Builder_swigregister(ChFi3d_Builder)
class ChFi3d_SearchSing(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
        ----------
        C1: Geom_Curve
        C2: Geom_Curve

        Return
        -------
        None

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

        """
        _ChFi3d.ChFi3d_SearchSing_swiginit(self, _ChFi3d.new_ChFi3d_SearchSing(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _ChFi3d.delete_ChFi3d_SearchSing

# Register ChFi3d_SearchSing in _ChFi3d:
_ChFi3d.ChFi3d_SearchSing_swigregister(ChFi3d_SearchSing)
class ChFi3d_ChBuilder(ChFi3d_Builder):
    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
        Ta: float (optional, default to 1.0e-2)

        Return
        -------
        None

        Description
        -----------
        Initializes the builder with the shape <s> for the computation of chamfers.

        """
        _ChFi3d.ChFi3d_ChBuilder_swiginit(self, _ChFi3d.new_ChFi3d_ChBuilder(*args))

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

        Parameters
        ----------
        E: TopoDS_Edge

        Return
        -------
        None

        Description
        -----------
        Initializes a contour with the edge <e> as first (the next are found by propagation ). the two distances (parameters of the chamfer) must be set after. if the edge <e> has more than 2 adjacent faces.

        Parameters
        ----------
        Dis: float
        E: TopoDS_Edge

        Return
        -------
        None

        Description
        -----------
        Initializes a new contour with the edge <e> as first (the next are found by propagation ), and the distance <dis> if the edge <e> has more than 2 adjacent faces.

        Parameters
        ----------
        Dis1: float
        Dis2: float
        E: TopoDS_Edge
        F: TopoDS_Face

        Return
        -------
        None

        Description
        -----------
        Initializes a new contour with the edge <e> as first (the next are found by propagation ), and the distance <dis1> and <dis2> if the edge <e> has more than 2 adjacent faces.

        """
        return _ChFi3d.ChFi3d_ChBuilder_Add(self, *args)

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

        Parameters
        ----------
        Dis: float
        Angle: float
        E: TopoDS_Edge
        F: TopoDS_Face

        Return
        -------
        None

        Description
        -----------
        Initializes a new contour with the edge <e> as first (the next are found by propagation ), and the distance <dis1> and <angle> if the edge <e> has more than 2 adjacent faces.

        """
        return _ChFi3d.ChFi3d_ChBuilder_AddDA(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        Dis1: float
        Dis2: float

        Description
        -----------
        Gives the distances <dis1> and <dis2> of the fillet contour of index <ic> in the ds.

        """
        return _ChFi3d.ChFi3d_ChBuilder_Dists(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        Dis: float

        Description
        -----------
        Gives the distances <dis> of the fillet contour of index <ic> in the ds.

        """
        return _ChFi3d.ChFi3d_ChBuilder_GetDist(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        Dis: float
        Angle: float

        Description
        -----------
        Gives the distances <dis> and <angle> of the fillet contour of index <ic> in the ds.

        """
        return _ChFi3d.ChFi3d_ChBuilder_GetDistAngle(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        ChFiDS_ChamfMethod

        Description
        -----------
        Renvoi la methode des chanfreins utilisee.

        """
        return _ChFi3d.ChFi3d_ChBuilder_IsChamfer(self, *args)

    def Mode(self, *args):
        r"""
        Return
        -------
        ChFiDS_ChamfMode

        Description
        -----------
        Returns the mode of chamfer used.

        """
        return _ChFi3d.ChFi3d_ChBuilder_Mode(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        int

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

        """
        return _ChFi3d.ChFi3d_ChBuilder_NbSurf(self, *args)

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

        Parameters
        ----------
        Data: ChFiDS_SequenceOfSurfData
        Guide: ChFiDS_ElSpine
        Spine: ChFiDS_Spine
        Choix: int
        S1: BRepAdaptor_Surface
        I1: Adaptor3d_TopolTool
        S2: BRepAdaptor_Surface
        I2: Adaptor3d_TopolTool
        MaxStep: float
        Fleche: float
        TolGuide: float
        Inside: bool
        Appro: bool
        Forward: bool
        RecOnS1: bool
        RecOnS2: bool
        Soldep: math_Vector

        Return
        -------
        First: float
        Last: float
        Intf: int
        Intl: int

        Description
        -----------
        Methode, implemented in inheritants, calculates the elements of construction of the surface (fillet or chamfer).

        Parameters
        ----------
        Data: ChFiDS_SequenceOfSurfData
        Guide: ChFiDS_ElSpine
        Spine: ChFiDS_Spine
        Choix: int
        S1: BRepAdaptor_Surface
        I1: Adaptor3d_TopolTool
        PC1: BRepAdaptor_Curve2d
        Sref1: BRepAdaptor_Surface
        PCref1: BRepAdaptor_Curve2d
        S2: BRepAdaptor_Surface
        I2: Adaptor3d_TopolTool
        Or2: TopAbs_Orientation
        MaxStep: float
        Fleche: float
        TolGuide: float
        Inside: bool
        Appro: bool
        Forward: bool
        RecP: bool
        RecS: bool
        RecRst: bool
        Soldep: math_Vector

        Return
        -------
        Decroch1: bool
        First: float
        Last: float

        Description
        -----------
        Method, implemented in the inheritants, calculates the elements of construction of the surface (fillet or chamfer) contact edge/face.

        Parameters
        ----------
        Data: ChFiDS_SequenceOfSurfData
        Guide: ChFiDS_ElSpine
        Spine: ChFiDS_Spine
        Choix: int
        S1: BRepAdaptor_Surface
        I1: Adaptor3d_TopolTool
        Or1: TopAbs_Orientation
        S2: BRepAdaptor_Surface
        I2: Adaptor3d_TopolTool
        PC2: BRepAdaptor_Curve2d
        Sref2: BRepAdaptor_Surface
        PCref2: BRepAdaptor_Curve2d
        MaxStep: float
        Fleche: float
        TolGuide: float
        Inside: bool
        Appro: bool
        Forward: bool
        RecP: bool
        RecS: bool
        RecRst: bool
        Soldep: math_Vector

        Return
        -------
        Decroch2: bool
        First: float
        Last: float

        Description
        -----------
        Method, implemented in inheritants, calculates the elements of construction of the surface (fillet or chamfer) contact edge/face.

        Parameters
        ----------
        Data: ChFiDS_SequenceOfSurfData
        Guide: ChFiDS_ElSpine
        Spine: ChFiDS_Spine
        Choix: int
        S1: BRepAdaptor_Surface
        I1: Adaptor3d_TopolTool
        PC1: BRepAdaptor_Curve2d
        Sref1: BRepAdaptor_Surface
        PCref1: BRepAdaptor_Curve2d
        Or1: TopAbs_Orientation
        S2: BRepAdaptor_Surface
        I2: Adaptor3d_TopolTool
        PC2: BRepAdaptor_Curve2d
        Sref2: BRepAdaptor_Surface
        PCref2: BRepAdaptor_Curve2d
        Or2: TopAbs_Orientation
        MaxStep: float
        Fleche: float
        TolGuide: float
        Inside: bool
        Appro: bool
        Forward: bool
        RecP1: bool
        RecRst1: bool
        RecP2: bool
        RecRst2: bool
        Soldep: math_Vector

        Return
        -------
        Decroch1: bool
        Decroch2: bool
        First: float
        Last: float

        Description
        -----------
        Method, implemented in inheritants, calculates the elements of construction of the surface (fillet or chamfer) contact edge/edge.

        """
        return _ChFi3d.ChFi3d_ChBuilder_PerformSurf(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        None

        Description
        -----------
        Reset tous rayons du contour ic.

        """
        return _ChFi3d.ChFi3d_ChBuilder_ResetContour(self, *args)

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

        Parameters
        ----------
        IC: int
        IS: int

        Return
        -------
        opencascade::handle<ChFiDS_SecHArray1>

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

        """
        return _ChFi3d.ChFi3d_ChBuilder_Sect(self, *args)

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

        Parameters
        ----------
        Dis: float
        IC: int
        F: TopoDS_Face

        Return
        -------
        None

        Description
        -----------
        Set the distance <dis> of the fillet contour of index <ic> in the ds with <dis> on <f>. if the face <f> is not one of common faces of an edge of the contour <ic>.

        """
        return _ChFi3d.ChFi3d_ChBuilder_SetDist(self, *args)

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

        Parameters
        ----------
        Dis: float
        Angle: float
        IC: int
        F: TopoDS_Face

        Return
        -------
        None

        Description
        -----------
        Set the distance <dis> and <angle> of the fillet contour of index <ic> in the ds with <dis> on <f>. if the face <f> is not one of common faces of an edge of the contour <ic>.

        """
        return _ChFi3d.ChFi3d_ChBuilder_SetDistAngle(self, *args)

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

        Parameters
        ----------
        Dis1: float
        Dis2: float
        IC: int
        F: TopoDS_Face

        Return
        -------
        None

        Description
        -----------
        Set the distances <dis1> and <dis2> of the fillet contour of index <ic> in the ds with <dis1> on <f>. if the face <f> is not one of common faces of an edge of the contour <ic>.

        """
        return _ChFi3d.ChFi3d_ChBuilder_SetDists(self, *args)

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

        Parameters
        ----------
        theMode: ChFiDS_ChamfMode

        Return
        -------
        None

        Description
        -----------
        Set the mode of shamfer.

        """
        return _ChFi3d.ChFi3d_ChBuilder_SetMode(self, *args)

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

        Parameters
        ----------
        Data: ChFiDS_SurfData
        Guide: ChFiDS_ElSpine
        Spine: ChFiDS_Spine
        Choix: int
        S1: BRepAdaptor_Surface
        I1: Adaptor3d_TopolTool
        PC1: BRepAdaptor_Curve2d
        Sref1: BRepAdaptor_Surface
        PCref1: BRepAdaptor_Curve2d
        S2: BRepAdaptor_Surface
        I2: Adaptor3d_TopolTool
        Or2: TopAbs_Orientation
        Fleche: float
        TolGuide: float
        Inside: bool
        Appro: bool
        Forward: bool
        RecP: bool
        RecS: bool
        RecRst: bool
        Soldep: math_Vector

        Return
        -------
        Decroch1: bool
        First: float
        Last: float

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

        Parameters
        ----------
        Data: ChFiDS_SurfData
        Guide: ChFiDS_ElSpine
        Spine: ChFiDS_Spine
        Choix: int
        S1: BRepAdaptor_Surface
        I1: Adaptor3d_TopolTool
        Or1: TopAbs_Orientation
        S2: BRepAdaptor_Surface
        I2: Adaptor3d_TopolTool
        PC2: BRepAdaptor_Curve2d
        Sref2: BRepAdaptor_Surface
        PCref2: BRepAdaptor_Curve2d
        Fleche: float
        TolGuide: float
        Inside: bool
        Appro: bool
        Forward: bool
        RecP: bool
        RecS: bool
        RecRst: bool
        Soldep: math_Vector

        Return
        -------
        Decroch2: bool
        First: float
        Last: float

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

        Parameters
        ----------
        Data: ChFiDS_SurfData
        Guide: ChFiDS_ElSpine
        Spine: ChFiDS_Spine
        Choix: int
        S1: BRepAdaptor_Surface
        I1: Adaptor3d_TopolTool
        PC1: BRepAdaptor_Curve2d
        Sref1: BRepAdaptor_Surface
        PCref1: BRepAdaptor_Curve2d
        Or1: TopAbs_Orientation
        S2: BRepAdaptor_Surface
        I2: Adaptor3d_TopolTool
        PC2: BRepAdaptor_Curve2d
        Sref2: BRepAdaptor_Surface
        PCref2: BRepAdaptor_Curve2d
        Or2: TopAbs_Orientation
        Fleche: float
        TolGuide: float
        Inside: bool
        Appro: bool
        Forward: bool
        RecP1: bool
        RecRst1: bool
        RecP2: bool
        RecRst2: bool
        Soldep: math_Vector

        Return
        -------
        Decroch1: bool
        Decroch2: bool
        First: float
        Last: float

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

        """
        return _ChFi3d.ChFi3d_ChBuilder_SimulSurf(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        None

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

        """
        return _ChFi3d.ChFi3d_ChBuilder_Simulate(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _ChFi3d.delete_ChFi3d_ChBuilder

# Register ChFi3d_ChBuilder in _ChFi3d:
_ChFi3d.ChFi3d_ChBuilder_swigregister(ChFi3d_ChBuilder)
class ChFi3d_FilBuilder(ChFi3d_Builder):
    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_Rational)
        Ta: float (optional, default to 1.0e-2)

        Return
        -------
        None

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

        """
        _ChFi3d.ChFi3d_FilBuilder_swiginit(self, _ChFi3d.new_ChFi3d_FilBuilder(*args))

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

        Parameters
        ----------
        E: TopoDS_Edge

        Return
        -------
        None

        Description
        -----------
        Initialisation of a contour with the first edge (the following are found by propagation). attention, you need to start with setradius.

        Parameters
        ----------
        Radius: float
        E: TopoDS_Edge

        Return
        -------
        None

        Description
        -----------
        Initialisation of the constant vector the corresponding 1st edge.

        """
        return _ChFi3d.ChFi3d_FilBuilder_Add(self, *args)

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

        Parameters
        ----------
        IC: int
        E: TopoDS_Edge

        Return
        -------
        First: float
        Last: float

        Description
        -----------
        Returns in first and last les extremities of the part of variable vector framing e, returns false if e is flagged as edge constant.

        """
        return _ChFi3d.ChFi3d_FilBuilder_GetBounds(self, *args)

    def GetFilletShape(self, *args):
        r"""
        Return
        -------
        ChFi3d_FilletShape

        Description
        -----------
        Returns the type of fillet surface.

        """
        return _ChFi3d.ChFi3d_FilBuilder_GetFilletShape(self, *args)

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

        Parameters
        ----------
        IC: int
        E: TopoDS_Edge

        Return
        -------
        opencascade::handle<Law_Function>

        Description
        -----------
        Returns the rule of elementary evolution of the part to variable vector framing e, returns a rule zero if e is flagged as edge constant.

        """
        return _ChFi3d.ChFi3d_FilBuilder_GetLaw(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        bool

        Description
        -----------
        Returns true the contour is flagged as edge constant.

        Parameters
        ----------
        IC: int
        E: TopoDS_Edge

        Return
        -------
        bool

        Description
        -----------
        Returns true e is flagged as edge constant.

        """
        return _ChFi3d.ChFi3d_FilBuilder_IsConstant(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        int

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

        """
        return _ChFi3d.ChFi3d_FilBuilder_NbSurf(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        float

        Description
        -----------
        Returns the vector if the contour is flagged as edge constant.

        Parameters
        ----------
        IC: int
        E: TopoDS_Edge

        Return
        -------
        float

        Description
        -----------
        Returns the vector if e is flagged as edge constant.

        """
        return _ChFi3d.ChFi3d_FilBuilder_Radius(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        None

        Description
        -----------
        Reset all vectors of contour ic.

        """
        return _ChFi3d.ChFi3d_FilBuilder_ResetContour(self, *args)

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

        Parameters
        ----------
        IC: int
        IS: int

        Return
        -------
        opencascade::handle<ChFiDS_SecHArray1>

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

        """
        return _ChFi3d.ChFi3d_FilBuilder_Sect(self, *args)

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

        Parameters
        ----------
        FShape: ChFi3d_FilletShape

        Return
        -------
        None

        Description
        -----------
        Sets the type of fillet surface.

        """
        return _ChFi3d.ChFi3d_FilBuilder_SetFilletShape(self, *args)

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

        Parameters
        ----------
        IC: int
        E: TopoDS_Edge
        L: Law_Function

        Return
        -------
        None

        Description
        -----------
        Sets the rule of elementary evolution of the part to variable vector framing e.

        """
        return _ChFi3d.ChFi3d_FilBuilder_SetLaw(self, *args)

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

        Parameters
        ----------
        C: Law_Function
        IC: int
        IinC: int

        Return
        -------
        None

        Description
        -----------
        Set the radius of the contour of index ic.

        Parameters
        ----------
        Radius: float
        IC: int
        E: TopoDS_Edge

        Return
        -------
        None

        Description
        -----------
        Set a constant on edge e of the contour of index ic. since then e is flagged as constant.

        Parameters
        ----------
        Radius: float
        IC: int
        V: TopoDS_Vertex

        Return
        -------
        None

        Description
        -----------
        Set a vector on vertex v of the contour of index ic.

        Parameters
        ----------
        UandR: gp_XY
        IC: int
        IinC: int

        Return
        -------
        None

        Description
        -----------
        Set a vertex on the point of parametre u in the edge iinc of the contour of index ic.

        """
        return _ChFi3d.ChFi3d_FilBuilder_SetRadius(self, *args)

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

        Parameters
        ----------
        IC: int

        Return
        -------
        None

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

        """
        return _ChFi3d.ChFi3d_FilBuilder_Simulate(self, *args)

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

        Parameters
        ----------
        IC: int
        E: TopoDS_Edge

        Return
        -------
        None

        Description
        -----------
        Extracts the flag constant and the vector of edge e.

        Parameters
        ----------
        IC: int
        V: TopoDS_Vertex

        Return
        -------
        None

        Description
        -----------
        Extracts the vector of the vertex v.

        """
        return _ChFi3d.ChFi3d_FilBuilder_UnSet(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _ChFi3d.delete_ChFi3d_FilBuilder

# Register ChFi3d_FilBuilder in _ChFi3d:
_ChFi3d.ChFi3d_FilBuilder_swigregister(ChFi3d_FilBuilder)



@deprecated
def chfi3d_ConcaveSide(*args):
	return chfi3d.ConcaveSide(*args)

@deprecated
def chfi3d_DefineConnectType(*args):
	return chfi3d.DefineConnectType(*args)

@deprecated
def chfi3d_IsTangentFaces(*args):
	return chfi3d.IsTangentFaces(*args)

@deprecated
def chfi3d_NextSide(*args):
	return chfi3d.NextSide(*args)

@deprecated
def chfi3d_NextSide(*args):
	return chfi3d.NextSide(*args)

@deprecated
def chfi3d_SameSide(*args):
	return chfi3d.SameSide(*args)



