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

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

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

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

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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


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


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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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


def process_exception(error: "Standard_Failure", method_name: "std::string", class_name: "std::string") -> "void":
    return _BRepFilletAPI.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.BRepBuilderAPI
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.TopoDS
import OCC.Core.Message
import OCC.Core.OSD
import OCC.Core.TopAbs
import OCC.Core.TopLoc
import OCC.Core.TopTools
import OCC.Core.BRepTools
import OCC.Core.Bnd
import OCC.Core.BVH
import OCC.Core.Geom2d
import OCC.Core.BRep
import OCC.Core.Poly
import OCC.Core.TShort
import OCC.Core.ChFiDS
import OCC.Core.Adaptor3d
import OCC.Core.Adaptor2d
import OCC.Core.math
import OCC.Core.BRepAdaptor
import OCC.Core.GeomAdaptor
import OCC.Core.Geom2dAdaptor
import OCC.Core.Law
import OCC.Core.ChFi2d
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.IntSurf
import OCC.Core.IntCurvesFace
import OCC.Core.TopExp
import OCC.Core.Extrema
import OCC.Core.ChFi3d
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 *



class BRepFilletAPI_LocalOperation(OCC.Core.BRepBuilderAPI.BRepBuilderAPI_MakeShape):
    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) -> "Standard_Real":
        r"""
        Returns the abscissa of the vertex v on the contour of index ic.

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

        Returns
        -------
        float

        """
        return _BRepFilletAPI.BRepFilletAPI_LocalOperation_Abscissa(self, *args)

    def Add(self, *args) -> "void":
        r"""
        Adds a contour in the builder (builds a contour of tangent edges).

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

        Returns
        -------
        None

        """
        return _BRepFilletAPI.BRepFilletAPI_LocalOperation_Add(self, *args)

    def Closed(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the contour of index ic is closed.

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

        Returns
        -------
        bool

        """
        return _BRepFilletAPI.BRepFilletAPI_LocalOperation_Closed(self, *args)

    def ClosedAndTangent(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the contour of index ic is closed an tangent.

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

        Returns
        -------
        bool

        """
        return _BRepFilletAPI.BRepFilletAPI_LocalOperation_ClosedAndTangent(self, *args)

    def Contour(self, *args) -> "Standard_Integer":
        r"""
        Returns the index of the contour containing the edge e, returns 0 if e doesn't belong to any contour.

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

        Returns
        -------
        int

        """
        return _BRepFilletAPI.BRepFilletAPI_LocalOperation_Contour(self, *args)

    def Edge(self, *args) -> "TopoDS_Edge const":
        r"""
        Returns the edge j in the contour i.

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

        Returns
        -------
        TopoDS_Edge

        """
        return _BRepFilletAPI.BRepFilletAPI_LocalOperation_Edge(self, *args)

    def FirstVertex(self, *args) -> "TopoDS_Vertex":
        r"""
        Returns the first vertex of the contour of index ic.

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

        Returns
        -------
        TopoDS_Vertex

        """
        return _BRepFilletAPI.BRepFilletAPI_LocalOperation_FirstVertex(self, *args)

    def LastVertex(self, *args) -> "TopoDS_Vertex":
        r"""
        Returns the last vertex of the contour of index ic.

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

        Returns
        -------
        TopoDS_Vertex

        """
        return _BRepFilletAPI.BRepFilletAPI_LocalOperation_LastVertex(self, *args)

    def Length(self, *args) -> "Standard_Real":
        r"""
        Returns the length the contour of index ic.

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

        Returns
        -------
        float

        """
        return _BRepFilletAPI.BRepFilletAPI_LocalOperation_Length(self, *args)

    def NbContours(self, *args) -> "Standard_Integer":
        r"""
        Number of contours.

        Returns
        -------
        int

        """
        return _BRepFilletAPI.BRepFilletAPI_LocalOperation_NbContours(self, *args)

    def NbEdges(self, *args) -> "Standard_Integer":
        r"""
        Number of edges in the contour i.

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

        Returns
        -------
        int

        """
        return _BRepFilletAPI.BRepFilletAPI_LocalOperation_NbEdges(self, *args)

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

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

        Returns
        -------
        int

        """
        return _BRepFilletAPI.BRepFilletAPI_LocalOperation_NbSurf(self, *args)

    def RelativeAbscissa(self, *args) -> "Standard_Real":
        r"""
        Returns the relative abscissa([0.,1.]) of the vertex v on the contour of index ic.

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

        Returns
        -------
        float

        """
        return _BRepFilletAPI.BRepFilletAPI_LocalOperation_RelativeAbscissa(self, *args)

    def Remove(self, *args) -> "void":
        r"""
        Remove the contour containing the edge e.

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

        Returns
        -------
        None

        """
        return _BRepFilletAPI.BRepFilletAPI_LocalOperation_Remove(self, *args)

    def Reset(self, *args) -> "void":
        r"""
        Reset all the fields updated by build operation and leave the algorithm in the same state than before build call. it allows contours and radius modifications to build the result another time.

        Returns
        -------
        None

        """
        return _BRepFilletAPI.BRepFilletAPI_LocalOperation_Reset(self, *args)

    def ResetContour(self, *args) -> "void":
        r"""
        Reset the contour of index ic, there is nomore information in the contour.

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

        Returns
        -------
        None

        """
        return _BRepFilletAPI.BRepFilletAPI_LocalOperation_ResetContour(self, *args)

    def Sect(self, *args) -> "opencascade::handle< ChFiDS_SecHArray1 >":
        r"""
        No available documentation.

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

        Returns
        -------
        opencascade::handle<ChFiDS_SecHArray1>

        """
        return _BRepFilletAPI.BRepFilletAPI_LocalOperation_Sect(self, *args)

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

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

        Returns
        -------
        None

        """
        return _BRepFilletAPI.BRepFilletAPI_LocalOperation_Simulate(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepFilletAPI.delete_BRepFilletAPI_LocalOperation

# Register BRepFilletAPI_LocalOperation in _BRepFilletAPI:
_BRepFilletAPI.BRepFilletAPI_LocalOperation_swigregister(BRepFilletAPI_LocalOperation)

class BRepFilletAPI_MakeFillet2d(OCC.Core.BRepBuilderAPI.BRepBuilderAPI_MakeShape):
    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"""
        Initializes an empty algorithm for computing fillets and chamfers. the face on which the fillets and chamfers are built is defined using the init function. the vertices on which fillets or chamfers are built are defined using the addfillet or addchamfer function. warning the status of the initialization, as given by the status function, can be one of the following: - chfi2d_ready if the initialization is correct, - chfi2d_notplanar if f is not planar, - chfi2d_noface if f is a null face.

        Returns
        -------
        None
        Initializes an algorithm for computing fillets and chamfers on the face f. the vertices on which fillets or chamfers are built are defined using the addfillet or addchamfer function. warning the status of the initialization, as given by the status function, can be one of the following: - chfi2d_ready if the initialization is correct, - chfi2d_notplanar if f is not planar, - chfi2d_noface if f is a null face.

        Parameters
        ----------
        F: TopoDS_Face

        Returns
        -------
        None

        """
        _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_swiginit(self, _BRepFilletAPI.new_BRepFilletAPI_MakeFillet2d(*args))

    def AddChamfer(self, *args) -> "TopoDS_Edge":
        r"""
        Adds a chamfer on the face modified by this algorithm between the two adjacent edges e1 and e2, where the extremities of the chamfer are on e1 and e2 at distances d1 and d2 respectively in cases where the edges are not rectilinear, distances are measured using the curvilinear abscissa of the edges and the angle is measured with respect to the tangent at the corresponding point. the angle ang is given in radians. this function returns the chamfer and builds the resulting face.

        Parameters
        ----------
        E1: TopoDS_Edge
        E2: TopoDS_Edge
        D1: float
        D2: float

        Returns
        -------
        TopoDS_Edge
        Adds a chamfer on the face modified by this algorithm between the two edges connected by the vertex v, where e is one of the two edges. the chamfer makes an angle ang with e and one of its extremities is on e at distance d from v. in cases where the edges are not rectilinear, distances are measured using the curvilinear abscissa of the edges and the angle is measured with respect to the tangent at the corresponding point. the angle ang is given in radians. this function returns the chamfer and builds the resulting face. warning the status of the construction, as given by the status function, can be one of the following: - chfi2d_isdone if the chamfer is built, - chfi2d_parameterserror if d1, d2, d or ang is less than or equal to zero, - chfi2d_connexionerror if: - the edge e, e1 or e2 does not belong to the initial face, or - the edges e1 and e2 are not adjacent, or - the vertex v is not one of the limit points of the edge e, - chfi2d_computationerror if the parameters of the chamfer are too large to build a chamfer between the two adjacent edges, - chfi2d_notauthorized if: - the edge e1, e2 or one of the two edges connected to v is a fillet or chamfer, or - a curve other than a straight line or an arc of a circle is used as e, e1 or e2. do not use the returned chamfer if the status of the construction is not chfi2d_isdone.

        Parameters
        ----------
        E: TopoDS_Edge
        V: TopoDS_Vertex
        D: float
        Ang: float

        Returns
        -------
        TopoDS_Edge

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_AddChamfer(self, *args)

    def AddFillet(self, *args) -> "TopoDS_Edge":
        r"""
        Adds a fillet of radius radius between the two edges adjacent to the vertex v on the face modified by this algorithm. the two edges do not need to be rectilinear. this function returns the fillet and builds the resulting face. warning the status of the construction, as given by the status function, can be one of the following: - chfi2d_isdone if the fillet is built, - chfi2d_connexionerror if v does not belong to the initial face, - chfi2d_computationerror if radius is too large to build a fillet between the two adjacent edges, - chfi2d_notauthorized - if one of the two edges connected to v is a fillet or chamfer, or - if a curve other than a straight line or an arc of a circle is used as e, e1 or e2. do not use the returned fillet if the status of the construction is not chfi2d_isdone. exceptions standard_negativevalue if radius is less than or equal to zero.

        Parameters
        ----------
        V: TopoDS_Vertex
        Radius: float

        Returns
        -------
        TopoDS_Edge

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_AddFillet(self, *args)

    def BasisEdge(self, *args) -> "TopoDS_Edge const":
        r"""
        Returns the basis edge on the face modified by this algorithm from which the chamfered or filleted edge e is built. if e has not been modified, this function returns e. warning e is returned if it does not belong to the initial face.

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

        Returns
        -------
        TopoDS_Edge

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_BasisEdge(self, *args)

    def ChamferEdges(self, *args) -> "TopTools_SequenceOfShape const &":
        r"""
        Returns the table of chamfers on the face modified by this algorithm.

        Returns
        -------
        TopTools_SequenceOfShape

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_ChamferEdges(self, *args)

    def DescendantEdge(self, *args) -> "TopoDS_Edge const":
        r"""
        Returns the chamfered or filleted edge built from the edge e on the face modified by this algorithm. if e has not been modified, this function returns e. exceptions standard_nosuchobject if the edge e does not belong to the initial face.

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

        Returns
        -------
        TopoDS_Edge

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_DescendantEdge(self, *args)

    def FilletEdges(self, *args) -> "TopTools_SequenceOfShape const &":
        r"""
        Returns the table of fillets on the face modified by this algorithm.

        Returns
        -------
        TopTools_SequenceOfShape

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_FilletEdges(self, *args)

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

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

        Returns
        -------
        bool

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_HasDescendant(self, *args)

    def Init(self, *args) -> "void":
        r"""
        Initializes this algorithm for constructing fillets or chamfers with the face f. warning the status of the initialization, as given by the status function, can be one of the following: - chfi2d_ready if the initialization is correct, - chfi2d_notplanar if f is not planar, - chfi2d_noface if f is a null face.

        Parameters
        ----------
        F: TopoDS_Face

        Returns
        -------
        None
        This initialize method allow to init the builder from a face <refface> and another face <modface> which derive from <refface>. this is usefull to modify a fillet or a chamfer already created on <modface> .

        Parameters
        ----------
        RefFace: TopoDS_Face
        ModFace: TopoDS_Face

        Returns
        -------
        None

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_Init(self, *args)

    def IsModified(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the edge e on the face modified by this algorithm is chamfered or filleted. warning returns false if e does not belong to the face modified by this algorithm.

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

        Returns
        -------
        bool

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_IsModified(self, *args)

    def ModifyChamfer(self, *args) -> "TopoDS_Edge":
        r"""
        Modifies the chamfer chamfer on the face modified by this algorithm, where: e1 and e2 are the two adjacent edges on which chamfer is already built; the extremities of the new chamfer are on e1 and e2 at distances d1 and d2 respectively.

        Parameters
        ----------
        Chamfer: TopoDS_Edge
        E1: TopoDS_Edge
        E2: TopoDS_Edge
        D1: float
        D2: float

        Returns
        -------
        TopoDS_Edge
        Modifies the chamfer chamfer on the face modified by this algorithm, where: e is one of the two adjacent edges on which chamfer is already built; the new chamfer makes an angle ang with e and one of its extremities is on e at distance d from the vertex on which the chamfer is built. in cases where the edges are not rectilinear, the distances are measured using the curvilinear abscissa of the edges and the angle is measured with respect to the tangent at the corresponding point. the angle ang is given in radians. this function returns the new chamfer and modifies the existing face. warning the status of the construction, as given by the status function, can be one of the following: - chfi2d_isdone if the chamfer is built, - chfi2d_parameterserror if d1, d2, d or ang is less than or equal to zero, - chfi2d_connexionerror if: - the edge e, e1, e2 or chamfer does not belong to the existing face, or - the edges e1 and e2 are not adjacent, - chfi2d_computationerror if the parameters of the chamfer are too large to build a chamfer between the two adjacent edges, - chfi2d_notauthorized if e1 or e2 is a fillet or chamfer. do not use the returned chamfer if the status of the construction is not chfi2d_isdone.

        Parameters
        ----------
        Chamfer: TopoDS_Edge
        E: TopoDS_Edge
        D: float
        Ang: float

        Returns
        -------
        TopoDS_Edge

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_ModifyChamfer(self, *args)

    def ModifyFillet(self, *args) -> "TopoDS_Edge":
        r"""
        Assigns the radius radius to the fillet fillet already built on the face modified by this algorithm. this function returns the new fillet and modifies the existing face. warning the status of the construction, as given by the status function, can be one of the following: - chfi2d_isdone if the new fillet is built, - chfi2d_connexionerror if fillet does not belong to the existing face, - chfi2d_computationerror if radius is too large to build a fillet between the two adjacent edges. do not use the returned fillet if the status of the construction is not chfi2d_isdone. exceptions standard_negativevalue if radius is less than or equal to zero.

        Parameters
        ----------
        Fillet: TopoDS_Edge
        Radius: float

        Returns
        -------
        TopoDS_Edge

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_ModifyFillet(self, *args)

    def NbChamfer(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of chamfers on the face modified by this algorithm.

        Returns
        -------
        int

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_NbChamfer(self, *args)

    def NbCurves(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of new curves after the shape creation.

        Returns
        -------
        int

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_NbCurves(self, *args)

    def NbFillet(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of fillets on the face modified by this algorithm.

        Returns
        -------
        int

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_NbFillet(self, *args)

    def NewEdges(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        Return the edges created for curve i.

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

        Returns
        -------
        TopTools_ListOfShape

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_NewEdges(self, *args)

    def RemoveChamfer(self, *args) -> "TopoDS_Vertex":
        r"""
        Removes the chamfer chamfer already built on the face modified by this algorithm. this function returns the vertex connecting the two adjacent edges of chamfer and modifies the existing face. warning - the returned vertex is only valid if the status function returns chfi2d_isdone. - a null vertex is returned if the edge chamfer does not belong to the initial face.

        Parameters
        ----------
        Chamfer: TopoDS_Edge

        Returns
        -------
        TopoDS_Vertex

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_RemoveChamfer(self, *args)

    def RemoveFillet(self, *args) -> "TopoDS_Vertex":
        r"""
        Removes the fillet fillet already built on the face modified by this algorithm. this function returns the vertex connecting the two adjacent edges of fillet and modifies the existing face. warning - the returned vertex is only valid if the status function returns chfi2d_isdone. - a null vertex is returned if the edge fillet does not belong to the initial face.

        Parameters
        ----------
        Fillet: TopoDS_Edge

        Returns
        -------
        TopoDS_Vertex

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_RemoveFillet(self, *args)

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

        Returns
        -------
        ChFi2d_ConstructionError

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet2d_Status(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepFilletAPI.delete_BRepFilletAPI_MakeFillet2d

# Register BRepFilletAPI_MakeFillet2d in _BRepFilletAPI:
_BRepFilletAPI.BRepFilletAPI_MakeFillet2d_swigregister(BRepFilletAPI_MakeFillet2d)

class BRepFilletAPI_MakeChamfer(BRepFilletAPI_LocalOperation):
    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"""
        Initializes an algorithm for computing chamfers on the shape s. the edges on which chamfers are built are defined using the add function.

        Parameters
        ----------
        S: TopoDS_Shape

        Returns
        -------
        None

        """
        _BRepFilletAPI.BRepFilletAPI_MakeChamfer_swiginit(self, _BRepFilletAPI.new_BRepFilletAPI_MakeChamfer(*args))

    def Add(self, *args) -> "void":
        r"""
        Adds edge e to the table of edges used by this algorithm to build chamfers, where the parameters of the chamfer must be set after the.

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

        Returns
        -------
        None
        Adds edge e to the table of edges used by this algorithm to build chamfers, where the parameters of the chamfer are given by the distance dis (symmetric chamfer). the add function results in a contour being built by propagation from the edge e (i.e. the contour contains at least this edge). this contour is composed of edges of the shape which are tangential to one another and which delimit two series of tangential faces, with one series of faces being located on either side of the contour. warning nothing is done if edge e or the face f does not belong to the initial shape.

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

        Returns
        -------
        None
        Adds edge e to the table of edges used by this algorithm to build chamfers, where the parameters of the chamfer are given by the two distances dis1 and dis2; the face f identifies the side where dis1 is measured. the add function results in a contour being built by propagation from the edge e (i.e. the contour contains at least this edge). this contour is composed of edges of the shape which are tangential to one another and which delimit two series of tangential faces, with one series of faces being located on either side of the contour. warning nothing is done if edge e or the face f does not belong to the initial shape.

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

        Returns
        -------
        None

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeChamfer_Add(self, *args)

    def AddDA(self, *args) -> "void":
        r"""
        Adds a fillet contour in the builder (builds a contour of tangent edges to <e> and sets the distance <dis1> and angle <angle> ( parameters of the chamfer ) ).

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

        Returns
        -------
        None

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeChamfer_AddDA(self, *args)

    def Builder(self, *args) -> "opencascade::handle< TopOpeBRepBuild_HBuilder >":
        r"""
        Returns the internal filleting algorithm.

        Returns
        -------
        opencascade::handle<TopOpeBRepBuild_HBuilder>

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeChamfer_Builder(self, *args)

    def Dists(self, *args) -> "void":
        r"""
        Returns the distances dis1 and dis2 which give the parameters of the chamfer along the contour of index ic in the internal data structure of this algorithm. warning -1. is returned if ic is outside the bounds of the table of contours.

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

        Returns
        -------
        Dis1: float
        Dis2: float

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeChamfer_Dists(self, *args)

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

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

        Returns
        -------
        Dis: float

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeChamfer_GetDist(self, *args)

    def GetDistAngle(self, *args) -> "void":
        r"""
        Gives the distances <dis> and <angle> of the fillet contour of index <ic> in the ds.

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

        Returns
        -------
        Dis: float
        Angle: float

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeChamfer_GetDistAngle(self, *args)

    def IsDistanceAngle(self, *args) -> "Standard_Boolean":
        r"""
        Return true if chamfer is made with distance and angle false else.

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

        Returns
        -------
        bool

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeChamfer_IsDistanceAngle(self, *args)

    def IsSymetric(self, *args) -> "Standard_Boolean":
        r"""
        Return true if chamfer symetric false else.

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

        Returns
        -------
        bool

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeChamfer_IsSymetric(self, *args)

    def IsTwoDistances(self, *args) -> "Standard_Boolean":
        r"""
        Return true if chamfer is made with two distances false else.

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

        Returns
        -------
        bool

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeChamfer_IsTwoDistances(self, *args)

    def SetDist(self, *args) -> "void":
        r"""
        Sets the distances dis1 and dis2 which give the parameters of the chamfer along the contour of index ic generated using the add function in the internal data structure of this algorithm. the face f identifies the side where dis1 is measured. warning nothing is done if either the edge e or the face f does not belong to the initial shape.

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

        Returns
        -------
        None

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeChamfer_SetDist(self, *args)

    def SetDistAngle(self, *args) -> "void":
        r"""
        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>.

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

        Returns
        -------
        None

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeChamfer_SetDistAngle(self, *args)

    def SetDists(self, *args) -> "void":
        r"""
        Sets the distances dis1 and dis2 which give the parameters of the chamfer along the contour of index ic generated using the add function in the internal data structure of this algorithm. the face f identifies the side where dis1 is measured. warning nothing is done if either the edge e or the face f does not belong to the initial shape.

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

        Returns
        -------
        None

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeChamfer_SetDists(self, *args)

    def SetMode(self, *args) -> "void":
        r"""
        Sets the mode of chamfer.

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

        Returns
        -------
        None

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeChamfer_SetMode(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepFilletAPI.delete_BRepFilletAPI_MakeChamfer

# Register BRepFilletAPI_MakeChamfer in _BRepFilletAPI:
_BRepFilletAPI.BRepFilletAPI_MakeChamfer_swigregister(BRepFilletAPI_MakeChamfer)

class BRepFilletAPI_MakeFillet(BRepFilletAPI_LocalOperation):
    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"""
        Initializes the computation of the fillets. <fshape> sets the type of fillet surface. the default value is chfi3d_rational (classical nurbs representation of circles). chfi3d_quasiangular corresponds to a nurbs representation of circles which parameterisation matches the circle one. chfi3d_polynomial corresponds to a polynomial representation of circles.

        Parameters
        ----------
        S: TopoDS_Shape
        FShape: ChFi3d_FilletShape,optional
        	default value is ChFi3d_Rational

        Returns
        -------
        None

        """
        _BRepFilletAPI.BRepFilletAPI_MakeFillet_swiginit(self, _BRepFilletAPI.new_BRepFilletAPI_MakeFillet(*args))

    def Add(self, *args) -> "void":
        r"""
        Adds a fillet contour in the builder (builds a contour of tangent edges). the radius must be set after.

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

        Returns
        -------
        None
        Adds a fillet description in the builder - builds a contour of tangent edges, - sets the radius.

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

        Returns
        -------
        None
        Adds a fillet description in the builder - builds a contour of tangent edges, - sets a linear radius evolution law between the first and last vertex of the spine.

        Parameters
        ----------
        R1: float
        R2: float
        E: TopoDS_Edge

        Returns
        -------
        None
        Adds a fillet description in the builder - builds a contour of tangent edges, - sest the radius evolution law.

        Parameters
        ----------
        L: Law_Function
        E: TopoDS_Edge

        Returns
        -------
        None
        Adds a fillet description in the builder - builds a contour of tangent edges, - sets the radius evolution law interpolating the values given in the array uandr : //! p2d.x() = relative parameter on the spine [0,1] p2d.y() = value of the radius.

        Parameters
        ----------
        UandR: TColgp_Array1OfPnt2d
        E: TopoDS_Edge

        Returns
        -------
        None

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_Add(self, *args)

    def BadShape(self, *args) -> "TopoDS_Shape":
        r"""
        If (hasresult()) returns the partial result.

        Returns
        -------
        TopoDS_Shape

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_BadShape(self, *args)

    def Builder(self, *args) -> "opencascade::handle< TopOpeBRepBuild_HBuilder >":
        r"""
        Returns the internal topology building algorithm.

        Returns
        -------
        opencascade::handle<TopOpeBRepBuild_HBuilder>

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_Builder(self, *args)

    def ComputedSurface(self, *args) -> "opencascade::handle< Geom_Surface >":
        r"""
        Returns the surface number is concerning the contour ic.

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

        Returns
        -------
        opencascade::handle<Geom_Surface>

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_ComputedSurface(self, *args)

    def FaultyContour(self, *args) -> "Standard_Integer":
        r"""
        For each i in [1.. nbfaultycontours] returns the index ic of the contour where the computation of the fillet failed. the method nbedges(ic) gives the number of edges in the contour ic the method edge(ic,ie) gives the edge number ie of the contour ic.

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

        Returns
        -------
        int

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_FaultyContour(self, *args)

    def FaultyVertex(self, *args) -> "TopoDS_Vertex":
        r"""
        Returns the vertex where the computation failed.

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

        Returns
        -------
        TopoDS_Vertex

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_FaultyVertex(self, *args)

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

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

        Returns
        -------
        F: float
        L: float

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_GetBounds(self, *args)

    def GetFilletShape(self, *args) -> "ChFi3d_FilletShape":
        r"""
        Returns the type of fillet shape built by this algorithm.

        Returns
        -------
        ChFi3d_FilletShape

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_GetFilletShape(self, *args)

    def GetLaw(self, *args) -> "opencascade::handle< Law_Function >":
        r"""
        No available documentation.

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

        Returns
        -------
        opencascade::handle<Law_Function>

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_GetLaw(self, *args)

    def HasResult(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if a part of the result has been computed if the filling in a corner failed a shape with a hole is returned.

        Returns
        -------
        bool

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_HasResult(self, *args)

    def IsConstant(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the radius of the fillet along the contour of index ic in the internal data structure of this algorithm is constant, warning false is returned if ic is outside the bounds of the table of contours or if e does not belong to the contour of index ic.

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

        Returns
        -------
        bool
        Returns true if the radius of the fillet along the edge e of the contour of index ic in the internal data structure of this algorithm is constant. warning false is returned if ic is outside the bounds of the table of contours or if e does not belong to the contour of index ic.

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

        Returns
        -------
        bool

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_IsConstant(self, *args)

    def NbComputedSurfaces(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of surfaces which have been computed on the contour ic.

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

        Returns
        -------
        int

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_NbComputedSurfaces(self, *args)

    def NbFaultyContours(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of contours where the computation of the fillet failed.

        Returns
        -------
        int

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_NbFaultyContours(self, *args)

    def NbFaultyVertices(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of vertices where the computation failed.

        Returns
        -------
        int

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_NbFaultyVertices(self, *args)

    def NbSurfaces(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of surfaces after the shape creation.

        Returns
        -------
        int

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_NbSurfaces(self, *args)

    def NewFaces(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        Return the faces created for surface <i>.

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

        Returns
        -------
        TopTools_ListOfShape

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_NewFaces(self, *args)

    def Radius(self, *args) -> "Standard_Real":
        r"""
        Returns the radius of the fillet along the contour of index ic in the internal data structure of this algorithm warning - use this function only if the radius is constant. - -1. is returned if ic is outside the bounds of the table of contours or if e does not belong to the contour of index ic.

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

        Returns
        -------
        float
        Returns the radius of the fillet along the edge e of the contour of index ic in the internal data structure of this algorithm. warning - use this function only if the radius is constant. - -1 is returned if ic is outside the bounds of the table of contours or if e does not belong to the contour of index ic.

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

        Returns
        -------
        float

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_Radius(self, *args)

    def SetContinuity(self, *args) -> "void":
        r"""
        Changes the parameters of continiuity internalcontinuity to produce fillet'surfaces with an continuity ci (i=0,1 or 2). by defaultinternalcontinuity = geomabs_c1. angulartolerance is the g1 tolerance between fillet and support'faces.

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

        Returns
        -------
        None

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_SetContinuity(self, *args)

    def SetFilletShape(self, *args) -> "void":
        r"""
        Assigns fshape as the type of fillet shape built by this algorithm.

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

        Returns
        -------
        None

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_SetFilletShape(self, *args)

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

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

        Returns
        -------
        None

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_SetLaw(self, *args)

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

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

        Returns
        -------
        None

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_SetParams(self, *args)

    def SetRadius(self, *args) -> "void":
        r"""
        Sets the parameters of the fillet along the contour of index ic generated using the add function in the internal data structure of this algorithm, where radius is the radius of the fillet.

        Parameters
        ----------
        Radius: float
        IC: int
        IinC: int

        Returns
        -------
        None
        Sets the parameters of the fillet along the contour of index ic generated using the add function in the internal data structure of this algorithm, where the radius of the fillet evolves according to a linear evolution law defined from r1 to r2, between the first and last vertices of the contour of index ic.

        Parameters
        ----------
        R1: float
        R2: float
        IC: int
        IinC: int

        Returns
        -------
        None
        Sets the parameters of the fillet along the contour of index ic generated using the add function in the internal data structure of this algorithm, where the radius of the fillet evolves according to the evolution law l, between the first and last vertices of the contour of index ic.

        Parameters
        ----------
        L: Law_Function
        IC: int
        IinC: int

        Returns
        -------
        None
        Sets the parameters of the fillet along the contour of index ic generated using the add function in the internal data structure of this algorithm, where the radius of the fillet evolves according to the evolution law which interpolates the set of parameter and radius pairs given in the array uandr as follows: - the x coordinate of a point in uandr defines a relative parameter on the contour (i.e. a parameter between 0 and 1), - the y coordinate of a point in uandr gives the corresponding value of the radius, and the radius evolves between the first and last vertices of the contour of index ic.

        Parameters
        ----------
        UandR: TColgp_Array1OfPnt2d
        IC: int
        IinC: int

        Returns
        -------
        None
        Assigns radius as the radius of the fillet on the edge e.

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

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

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

        Returns
        -------
        None

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_SetRadius(self, *args)

    def StripeStatus(self, *args) -> "ChFiDS_ErrorStatus":
        r"""
        Returns the status concerning the contour ic in case of error chfids_ok : the computation is ok chfids_startsolfailure : the computation can't start, perhaps the the radius is too big chfids_twistedsurface : the computation failed because of a twisted surface chfids_walkingfailure : there is a problem in the walking chfids_error: other error different from above.

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

        Returns
        -------
        ChFiDS_ErrorStatus

        """
        return _BRepFilletAPI.BRepFilletAPI_MakeFillet_StripeStatus(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepFilletAPI.delete_BRepFilletAPI_MakeFillet

# Register BRepFilletAPI_MakeFillet in _BRepFilletAPI:
_BRepFilletAPI.BRepFilletAPI_MakeFillet_swigregister(BRepFilletAPI_MakeFillet)





