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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _BRepFeat:
_BRepFeat.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 _BRepFeat.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.TopoDS
import OCC.Core.Message
import OCC.Core.TCollection
import OCC.Core.OSD
import OCC.Core.TColStd
import OCC.Core.TopAbs
import OCC.Core.TopLoc
import OCC.Core.gp
import OCC.Core.Geom
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.BOPAlgo
import OCC.Core.TopTools
import OCC.Core.IntTools
import OCC.Core.BRepAdaptor
import OCC.Core.Adaptor3d
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d
import OCC.Core.math
import OCC.Core.GeomAdaptor
import OCC.Core.Geom2dAdaptor
import OCC.Core.Bnd
import OCC.Core.BVH
import OCC.Core.Geom2dHatch
import OCC.Core.IntRes2d
import OCC.Core.HatchGen
import OCC.Core.Geom2dInt
import OCC.Core.IntCurve
import OCC.Core.Extrema
import OCC.Core.Intf
import OCC.Core.GeomAPI
import OCC.Core.Approx
import OCC.Core.AppCont
import OCC.Core.AppParCurves
import OCC.Core.BRepClass3d
import OCC.Core.IntCurveSurface
import OCC.Core.IntSurf
import OCC.Core.IntCurvesFace
import OCC.Core.IntPatch
import OCC.Core.IntAna
import OCC.Core.GeomInt
import OCC.Core.IntImp
import OCC.Core.ApproxInt
import OCC.Core.BOPDS
import OCC.Core.BRepTools
import OCC.Core.BRep
import OCC.Core.Poly
import OCC.Core.TShort
import OCC.Core.BOPTools
import OCC.Core.BRepBuilderAPI
import OCC.Core.TColGeom
import OCC.Core.LocOpe

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

BRepFeat_NoSelection = _BRepFeat.BRepFeat_NoSelection
BRepFeat_SelectionFU = _BRepFeat.BRepFeat_SelectionFU
BRepFeat_SelectionU = _BRepFeat.BRepFeat_SelectionU
BRepFeat_SelectionSh = _BRepFeat.BRepFeat_SelectionSh
BRepFeat_SelectionShU = _BRepFeat.BRepFeat_SelectionShU
BRepFeat_NoError = _BRepFeat.BRepFeat_NoError
BRepFeat_InvalidPlacement = _BRepFeat.BRepFeat_InvalidPlacement
BRepFeat_HoleTooLong = _BRepFeat.BRepFeat_HoleTooLong
BRepFeat_OK = _BRepFeat.BRepFeat_OK
BRepFeat_BadDirect = _BRepFeat.BRepFeat_BadDirect
BRepFeat_BadIntersect = _BRepFeat.BRepFeat_BadIntersect
BRepFeat_EmptyBaryCurve = _BRepFeat.BRepFeat_EmptyBaryCurve
BRepFeat_EmptyCutResult = _BRepFeat.BRepFeat_EmptyCutResult
BRepFeat_FalseSide = _BRepFeat.BRepFeat_FalseSide
BRepFeat_IncDirection = _BRepFeat.BRepFeat_IncDirection
BRepFeat_IncSlidFace = _BRepFeat.BRepFeat_IncSlidFace
BRepFeat_IncParameter = _BRepFeat.BRepFeat_IncParameter
BRepFeat_IncTypes = _BRepFeat.BRepFeat_IncTypes
BRepFeat_IntervalOverlap = _BRepFeat.BRepFeat_IntervalOverlap
BRepFeat_InvFirstShape = _BRepFeat.BRepFeat_InvFirstShape
BRepFeat_InvOption = _BRepFeat.BRepFeat_InvOption
BRepFeat_InvShape = _BRepFeat.BRepFeat_InvShape
BRepFeat_LocOpeNotDone = _BRepFeat.BRepFeat_LocOpeNotDone
BRepFeat_LocOpeInvNotDone = _BRepFeat.BRepFeat_LocOpeInvNotDone
BRepFeat_NoExtFace = _BRepFeat.BRepFeat_NoExtFace
BRepFeat_NoFaceProf = _BRepFeat.BRepFeat_NoFaceProf
BRepFeat_NoGluer = _BRepFeat.BRepFeat_NoGluer
BRepFeat_NoIntersectF = _BRepFeat.BRepFeat_NoIntersectF
BRepFeat_NoIntersectU = _BRepFeat.BRepFeat_NoIntersectU
BRepFeat_NoParts = _BRepFeat.BRepFeat_NoParts
BRepFeat_NoProjPt = _BRepFeat.BRepFeat_NoProjPt
BRepFeat_NotInitialized = _BRepFeat.BRepFeat_NotInitialized
BRepFeat_NotYetImplemented = _BRepFeat.BRepFeat_NotYetImplemented
BRepFeat_NullRealTool = _BRepFeat.BRepFeat_NullRealTool
BRepFeat_NullToolF = _BRepFeat.BRepFeat_NullToolF
BRepFeat_NullToolU = _BRepFeat.BRepFeat_NullToolU


class BRepFeat_PerfSelection(IntEnum):
	BRepFeat_NoSelection = 0
	BRepFeat_SelectionFU = 1
	BRepFeat_SelectionU = 2
	BRepFeat_SelectionSh = 3
	BRepFeat_SelectionShU = 4
BRepFeat_NoSelection = BRepFeat_PerfSelection.BRepFeat_NoSelection
BRepFeat_SelectionFU = BRepFeat_PerfSelection.BRepFeat_SelectionFU
BRepFeat_SelectionU = BRepFeat_PerfSelection.BRepFeat_SelectionU
BRepFeat_SelectionSh = BRepFeat_PerfSelection.BRepFeat_SelectionSh
BRepFeat_SelectionShU = BRepFeat_PerfSelection.BRepFeat_SelectionShU

class BRepFeat_Status(IntEnum):
	BRepFeat_NoError = 0
	BRepFeat_InvalidPlacement = 1
	BRepFeat_HoleTooLong = 2
BRepFeat_NoError = BRepFeat_Status.BRepFeat_NoError
BRepFeat_InvalidPlacement = BRepFeat_Status.BRepFeat_InvalidPlacement
BRepFeat_HoleTooLong = BRepFeat_Status.BRepFeat_HoleTooLong

class BRepFeat_StatusError(IntEnum):
	BRepFeat_OK = 0
	BRepFeat_BadDirect = 1
	BRepFeat_BadIntersect = 2
	BRepFeat_EmptyBaryCurve = 3
	BRepFeat_EmptyCutResult = 4
	BRepFeat_FalseSide = 5
	BRepFeat_IncDirection = 6
	BRepFeat_IncSlidFace = 7
	BRepFeat_IncParameter = 8
	BRepFeat_IncTypes = 9
	BRepFeat_IntervalOverlap = 10
	BRepFeat_InvFirstShape = 11
	BRepFeat_InvOption = 12
	BRepFeat_InvShape = 13
	BRepFeat_LocOpeNotDone = 14
	BRepFeat_LocOpeInvNotDone = 15
	BRepFeat_NoExtFace = 16
	BRepFeat_NoFaceProf = 17
	BRepFeat_NoGluer = 18
	BRepFeat_NoIntersectF = 19
	BRepFeat_NoIntersectU = 20
	BRepFeat_NoParts = 21
	BRepFeat_NoProjPt = 22
	BRepFeat_NotInitialized = 23
	BRepFeat_NotYetImplemented = 24
	BRepFeat_NullRealTool = 25
	BRepFeat_NullToolF = 26
	BRepFeat_NullToolU = 27
BRepFeat_OK = BRepFeat_StatusError.BRepFeat_OK
BRepFeat_BadDirect = BRepFeat_StatusError.BRepFeat_BadDirect
BRepFeat_BadIntersect = BRepFeat_StatusError.BRepFeat_BadIntersect
BRepFeat_EmptyBaryCurve = BRepFeat_StatusError.BRepFeat_EmptyBaryCurve
BRepFeat_EmptyCutResult = BRepFeat_StatusError.BRepFeat_EmptyCutResult
BRepFeat_FalseSide = BRepFeat_StatusError.BRepFeat_FalseSide
BRepFeat_IncDirection = BRepFeat_StatusError.BRepFeat_IncDirection
BRepFeat_IncSlidFace = BRepFeat_StatusError.BRepFeat_IncSlidFace
BRepFeat_IncParameter = BRepFeat_StatusError.BRepFeat_IncParameter
BRepFeat_IncTypes = BRepFeat_StatusError.BRepFeat_IncTypes
BRepFeat_IntervalOverlap = BRepFeat_StatusError.BRepFeat_IntervalOverlap
BRepFeat_InvFirstShape = BRepFeat_StatusError.BRepFeat_InvFirstShape
BRepFeat_InvOption = BRepFeat_StatusError.BRepFeat_InvOption
BRepFeat_InvShape = BRepFeat_StatusError.BRepFeat_InvShape
BRepFeat_LocOpeNotDone = BRepFeat_StatusError.BRepFeat_LocOpeNotDone
BRepFeat_LocOpeInvNotDone = BRepFeat_StatusError.BRepFeat_LocOpeInvNotDone
BRepFeat_NoExtFace = BRepFeat_StatusError.BRepFeat_NoExtFace
BRepFeat_NoFaceProf = BRepFeat_StatusError.BRepFeat_NoFaceProf
BRepFeat_NoGluer = BRepFeat_StatusError.BRepFeat_NoGluer
BRepFeat_NoIntersectF = BRepFeat_StatusError.BRepFeat_NoIntersectF
BRepFeat_NoIntersectU = BRepFeat_StatusError.BRepFeat_NoIntersectU
BRepFeat_NoParts = BRepFeat_StatusError.BRepFeat_NoParts
BRepFeat_NoProjPt = BRepFeat_StatusError.BRepFeat_NoProjPt
BRepFeat_NotInitialized = BRepFeat_StatusError.BRepFeat_NotInitialized
BRepFeat_NotYetImplemented = BRepFeat_StatusError.BRepFeat_NotYetImplemented
BRepFeat_NullRealTool = BRepFeat_StatusError.BRepFeat_NullRealTool
BRepFeat_NullToolF = BRepFeat_StatusError.BRepFeat_NullToolF
BRepFeat_NullToolU = BRepFeat_StatusError.BRepFeat_NullToolU

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

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

        Parameters
        ----------
        S: TopoDS_Shape
        Pt: gp_Pnt

        Return
        -------
        None

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

        """
        return _BRepFeat.brepfeat_Barycenter(*args)

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

        Parameters
        ----------
        S: TopoDS_Shape
        F: TopoDS_Face

        Return
        -------
        None

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

        """
        return _BRepFeat.brepfeat_FaceUntil(*args)

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

        Parameters
        ----------
        F1: TopoDS_Face
        F2: TopoDS_Face

        Return
        -------
        bool

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

        """
        return _BRepFeat.brepfeat_IsInside(*args)

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

        Parameters
        ----------
        S: TopoDS_Shape
        C: Geom_Curve

        Return
        -------
        float

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

        """
        return _BRepFeat.brepfeat_ParametricBarycenter(*args)

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

        Parameters
        ----------
        S: TopoDS_Shape
        C: Geom_Curve
        Ori: bool (optional, default to Standard_False)

        Return
        -------
        prmin: float
        prmax: float
        prbmin: float
        prbmax: float
        flag: bool

        Description
        -----------
        Ori = true taking account the orientation.

        """
        return _BRepFeat.brepfeat_ParametricMinMax(*args)

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

        Parameters
        ----------
        S: TopoDS_Shape
        Pt: TColgp_SequenceOfPnt

        Return
        -------
        None

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

        """
        return _BRepFeat.brepfeat_SampleEdges(*args)

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

        Parameters
        ----------
        SRef: TopoDS_Shape
        Fac: TopoDS_Face
        Orf: TopAbs_Orientation

        Return
        -------
        TopoDS_Solid

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

        """
        return _BRepFeat.brepfeat_Tool(*args)

    __repr__ = _dumps_object

    @methodnotwrapped
    def IsInOut(self):
    	pass


    def __init__(self):
        _BRepFeat.brepfeat_swiginit(self, _BRepFeat.new_brepfeat())
    __swig_destroy__ = _BRepFeat.delete_brepfeat

# Register brepfeat in _BRepFeat:
_BRepFeat.brepfeat_swigregister(brepfeat)
class BRepFeat_Builder(OCC.Core.BOPAlgo.BOPAlgo_BOP):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

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

        """
        _BRepFeat.BRepFeat_Builder_swiginit(self, _BRepFeat.new_BRepFeat_Builder(*args))

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

        Description
        -----------
        Collects the images of the object, that contains in the images of the tool.

        """
        return _BRepFeat.BRepFeat_Builder_CheckSolidImages(self, *args)

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

        Description
        -----------
        Collects the removed parts of the tool into myremoved map.

        Parameters
        ----------
        theS: TopoDS_Shape
        theM: TopTools_MapOfShape

        Return
        -------
        None

        Description
        -----------
        Adds the shape s and its sub-shapes into myremoved map.

        """
        return _BRepFeat.BRepFeat_Builder_FillRemoved(self, *args)

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

        Parameters
        ----------
        theShape: TopoDS_Shape

        Return
        -------
        None

        Description
        -----------
        Initializes the object of local boolean operation.

        Parameters
        ----------
        theShape: TopoDS_Shape
        theTool: TopoDS_Shape

        Return
        -------
        None

        Description
        -----------
        Initializes the arguments of local boolean operation.

        """
        return _BRepFeat.BRepFeat_Builder_Init(self, *args)

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

        Parameters
        ----------
        theS: TopoDS_Shape

        Return
        -------
        None

        Description
        -----------
        Adds shape thes and all its sub-shapes into myshapes map.

        """
        return _BRepFeat.BRepFeat_Builder_KeepPart(self, *args)

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

        Parameters
        ----------
        theIm: TopTools_ListOfShape

        Return
        -------
        None

        Description
        -----------
        Initializes parts of the tool for second step of algorithm. collects shapes and all sub-shapes into myshapes map.

        """
        return _BRepFeat.BRepFeat_Builder_KeepParts(self, *args)

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

        Parameters
        ----------
        theLT: TopTools_ListOfShape

        Return
        -------
        None

        Description
        -----------
        Collects parts of the tool.

        """
        return _BRepFeat.BRepFeat_Builder_PartsOfTool(self, *args)

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

        Parameters
        ----------
        theRange: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        None

        Description
        -----------
        Main function to build the result of the local operation required.

        """
        return _BRepFeat.BRepFeat_Builder_PerformResult(self, *args)

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

        Parameters
        ----------
        theE: TopoDS_Shape
        theF: TopoDS_Face
        theME: TopTools_MapOfShape
        aLEIm: TopTools_ListOfShape

        Return
        -------
        None

        Description
        -----------
        Rebuilds edges in accordance with the kept parts of the tool.

        """
        return _BRepFeat.BRepFeat_Builder_RebuildEdge(self, *args)

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

        Description
        -----------
        Rebuilds faces in accordance with the kept parts of the tool.

        """
        return _BRepFeat.BRepFeat_Builder_RebuildFaces(self, *args)

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

        Parameters
        ----------
        theFuse: int

        Return
        -------
        None

        Description
        -----------
        Sets the operation of local boolean operation. if thefuse = 0 than the operation is cut, otherwise fuse.

        Parameters
        ----------
        theFuse: int
        theFlag: bool

        Return
        -------
        None

        Description
        -----------
        Sets the operation of local boolean operation. if theflag = true it means that no selection of parts of the tool is needed, t.e. no second part. in that case if thefuse = 0 than operation is common, otherwise cut21. if theflag = false setoperation(thefuse) function is called.

        """
        return _BRepFeat.BRepFeat_Builder_SetOperation(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepFeat.delete_BRepFeat_Builder

# Register BRepFeat_Builder in _BRepFeat:
_BRepFeat.BRepFeat_Builder_swigregister(BRepFeat_Builder)
class BRepFeat_Form(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 BarycCurve(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Geom_Curve>

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

        """
        return _BRepFeat.BRepFeat_Form_BarycCurve(self, *args)

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

        Description
        -----------
        Initializes the topological construction if the basis shape is present.

        """
        return _BRepFeat.BRepFeat_Form_BasisShapeValid(self, *args)

    def CurrentStatusError(self, *args):
        r"""
        Return
        -------
        BRepFeat_StatusError

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

        """
        return _BRepFeat.BRepFeat_Form_CurrentStatusError(self, *args)

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

        Parameters
        ----------
        S: TColGeom_SequenceOfCurve

        Return
        -------
        None

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

        """
        return _BRepFeat.BRepFeat_Form_Curves(self, *args)

    def FirstShape(self, *args):
        r"""
        Return
        -------
        TopTools_ListOfShape

        Description
        -----------
        Returns the list of shapes created at the bottom of the created form. it may be an empty list.

        """
        return _BRepFeat.BRepFeat_Form_FirstShape(self, *args)

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

        Description
        -----------
        Initializes the topological construction if the generated shape s is present.

        """
        return _BRepFeat.BRepFeat_Form_GeneratedShapeValid(self, *args)

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

        Description
        -----------
        Initializes the topological construction if the glued face is present.

        """
        return _BRepFeat.BRepFeat_Form_GluedFacesValid(self, *args)

    def LastShape(self, *args):
        r"""
        Return
        -------
        TopTools_ListOfShape

        Description
        -----------
        Returns the list of shapes created at the top of the created form. it may be an empty list.

        """
        return _BRepFeat.BRepFeat_Form_LastShape(self, *args)

    def NewEdges(self, *args):
        r"""
        Return
        -------
        TopTools_ListOfShape

        Description
        -----------
        Returns a list of the limiting and glueing edges generated by the feature. these edges did not originally exist in the basis shape. the list provides the information necessary for subsequent addition of fillets. it may be an empty list.

        """
        return _BRepFeat.BRepFeat_Form_NewEdges(self, *args)

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

        Description
        -----------
        Initializes the topological construction if the selected face is present.

        """
        return _BRepFeat.BRepFeat_Form_PerfSelectionValid(self, *args)

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

        Description
        -----------
        Initializes the topological construction if the shape is present from the specified integer on.

        """
        return _BRepFeat.BRepFeat_Form_ShapeFromValid(self, *args)

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

        Description
        -----------
        Initializes the topological construction if the shape is present until the specified integer.

        """
        return _BRepFeat.BRepFeat_Form_ShapeUntilValid(self, *args)

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

        Description
        -----------
        Initializes the topological construction if the sketch face is present. if the sketch face is inside the basis shape, local operations such as glueing can be performed.

        """
        return _BRepFeat.BRepFeat_Form_SketchFaceValid(self, *args)

    def TgtEdges(self, *args):
        r"""
        Return
        -------
        TopTools_ListOfShape

        Description
        -----------
        Returns a list of the tangent edges among the limiting and glueing edges generated by the feature. these edges did not originally exist in the basis shape and are tangent to the face against which the feature is built. the list provides the information necessary for subsequent addition of fillets. it may be an empty list. if an edge is tangent, no fillet is possible, and the edge must subsequently be removed if you want to add a fillet.

        """
        return _BRepFeat.BRepFeat_Form_TgtEdges(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepFeat.delete_BRepFeat_Form

# Register BRepFeat_Form in _BRepFeat:
_BRepFeat.BRepFeat_Form_swigregister(BRepFeat_Form)
class BRepFeat_Gluer(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"""
        Return
        -------
        None

        Description
        -----------
        Initializes an empty constructor.

        Parameters
        ----------
        Snew: TopoDS_Shape
        Sbase: TopoDS_Shape

        Return
        -------
        None

        Description
        -----------
        Initializes the shapes to be glued, the new shape snew and the basis shape sbase.

        """
        _BRepFeat.BRepFeat_Gluer_swiginit(self, _BRepFeat.new_BRepFeat_Gluer(*args))

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

        Description
        -----------
        Returns the basis shape of the compound shape.

        """
        return _BRepFeat.BRepFeat_Gluer_BasisShape(self, *args)

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

        Parameters
        ----------
        Fnew: TopoDS_Face
        Fbase: TopoDS_Face

        Return
        -------
        None

        Description
        -----------
        Defines a contact between fnew on the new shape snew and fbase on the basis shape sbase. informs other methods that fnew in the new shape snew is connected to the face fbase in the basis shape sbase. the contact faces of the glued shape must not have parts outside the contact faces of the basis shape. this indicates that glueing is possible.

        Parameters
        ----------
        Enew: TopoDS_Edge
        Ebase: TopoDS_Edge

        Return
        -------
        None

        Description
        -----------
        Nforms other methods that the edge enew in the new shape is the same as the edge ebase in the basis shape and is therefore attached to the basis shape. this indicates that glueing is possible.

        """
        return _BRepFeat.BRepFeat_Gluer_Bind(self, *args)

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

        Description
        -----------
        Returns the resulting compound shape.

        """
        return _BRepFeat.BRepFeat_Gluer_GluedShape(self, *args)

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

        Parameters
        ----------
        Snew: TopoDS_Shape
        Sbase: TopoDS_Shape

        Return
        -------
        None

        Description
        -----------
        Initializes the new shape snew and the basis shape sbase for the local glueing operation.

        """
        return _BRepFeat.BRepFeat_Gluer_Init(self, *args)

    def OpeType(self, *args):
        r"""
        Return
        -------
        LocOpe_Operation

        Description
        -----------
        Determine which operation type to use glueing or sliding.

        """
        return _BRepFeat.BRepFeat_Gluer_OpeType(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepFeat.delete_BRepFeat_Gluer

# Register BRepFeat_Gluer in _BRepFeat:
_BRepFeat.BRepFeat_Gluer_swigregister(BRepFeat_Gluer)
class BRepFeat_RibSlot(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

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

        Parameters
        ----------
        faces: TopTools_ListOfShape
        cc: Geom_Curve
        par: float
        bnd: float
        Pln: Geom_Plane

        Return
        -------
        TopoDS_Face

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

        """
        return _BRepFeat.BRepFeat_RibSlot_ChoiceOfFaces(*args)

    def CurrentStatusError(self, *args):
        r"""
        Return
        -------
        BRepFeat_StatusError

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

        """
        return _BRepFeat.BRepFeat_RibSlot_CurrentStatusError(self, *args)

    def FacesForDraft(self, *args):
        r"""
        Return
        -------
        TopTools_ListOfShape

        Description
        -----------
        Returns a list of the limiting and glueing faces generated by the feature. these faces did not originally exist in the basis shape. the list provides the information necessary for subsequent addition of a draft to a face. it may be an empty list. if a face has tangent edges, no draft is possible, and the tangent edges must subsequently be removed if you want to add a draft to the face.

        """
        return _BRepFeat.BRepFeat_RibSlot_FacesForDraft(self, *args)

    def FirstShape(self, *args):
        r"""
        Return
        -------
        TopTools_ListOfShape

        Description
        -----------
        Returns the list of shapes created at the bottom of the created form. it may be an empty list.

        """
        return _BRepFeat.BRepFeat_RibSlot_FirstShape(self, *args)

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

        Parameters
        ----------
        C: Geom_Curve
        P: gp_Pnt

        Return
        -------
        float

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

        """
        return _BRepFeat.BRepFeat_RibSlot_IntPar(*args)

    def LastShape(self, *args):
        r"""
        Return
        -------
        TopTools_ListOfShape

        Description
        -----------
        Returns the list of shapes created at the top of the created form. it may be an empty list.

        """
        return _BRepFeat.BRepFeat_RibSlot_LastShape(self, *args)

    def NewEdges(self, *args):
        r"""
        Return
        -------
        TopTools_ListOfShape

        Description
        -----------
        Returns a list of the limiting and glueing edges generated by the feature. these edges did not originally exist in the basis shape. the list provides the information necessary for subsequent addition of fillets. it may be an empty list.

        """
        return _BRepFeat.BRepFeat_RibSlot_NewEdges(self, *args)

    def TgtEdges(self, *args):
        r"""
        Return
        -------
        TopTools_ListOfShape

        Description
        -----------
        Returns a list of the tangent edges among the limiting and glueing edges generated by the feature. these edges did not originally exist in the basis shape and are tangent to the face against which the feature is built. the list provides the information necessary for subsequent addition of fillets. it may be an empty list. if an edge is tangent, no fillet is possible, and the edge must subsequently be removed if you want to add a fillet.

        """
        return _BRepFeat.BRepFeat_RibSlot_TgtEdges(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepFeat.delete_BRepFeat_RibSlot

# Register BRepFeat_RibSlot in _BRepFeat:
_BRepFeat.BRepFeat_RibSlot_swigregister(BRepFeat_RibSlot)
class BRepFeat_SplitShape(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"""
        Return
        -------
        None

        Description
        -----------
        Empty constructor.

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

        Return
        -------
        None

        Description
        -----------
        Creates the process with the shape <s>.

        """
        _BRepFeat.BRepFeat_SplitShape_swiginit(self, _BRepFeat.new_BRepFeat_SplitShape(*args))

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

        Parameters
        ----------
        theEdges: TopTools_SequenceOfShape

        Return
        -------
        bool

        Description
        -----------
        Add splitting edges or wires for whole initial shape without additional specification edge->face, edge->edge this method puts edge on the corresponding faces from initial shape.

        Parameters
        ----------
        W: TopoDS_Wire
        F: TopoDS_Face

        Return
        -------
        None

        Description
        -----------
        Adds the wire <w> on the face <f>. raises nosuchobject if <f> does not belong to the original shape.

        Parameters
        ----------
        E: TopoDS_Edge
        F: TopoDS_Face

        Return
        -------
        None

        Description
        -----------
        Adds the edge <e> on the face <f>.

        Parameters
        ----------
        Comp: TopoDS_Compound
        F: TopoDS_Face

        Return
        -------
        None

        Description
        -----------
        Adds the compound <comp> on the face <f>. the compound <comp> must consist of edges lying on the face <f>. if edges are geometrically connected, they must be connected topologically, i.e. they must share common vertices. //! raises nosuchobject if <f> does not belong to the original shape.

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

        Return
        -------
        None

        Description
        -----------
        Adds the edge <e> on the existing edge <eon>.

        """
        return _BRepFeat.BRepFeat_SplitShape_Add(self, *args)

    def DirectLeft(self, *args):
        r"""
        Return
        -------
        TopTools_ListOfShape

        Description
        -----------
        Returns the faces which are the left of the projected wires.

        """
        return _BRepFeat.BRepFeat_SplitShape_DirectLeft(self, *args)

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

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

        Return
        -------
        None

        Description
        -----------
        Initializes the process on the shape <s>.

        """
        return _BRepFeat.BRepFeat_SplitShape_Init(self, *args)

    def Left(self, *args):
        r"""
        Return
        -------
        TopTools_ListOfShape

        Description
        -----------
        Returns the faces of the 'left' part on the shape. (it is build from directleft, with the faces connected to this set, and so on...). raises notdone if isdone returns <standard_false>.

        """
        return _BRepFeat.BRepFeat_SplitShape_Left(self, *args)

    def Right(self, *args):
        r"""
        Return
        -------
        TopTools_ListOfShape

        Description
        -----------
        Returns the faces of the 'right' part on the shape.

        """
        return _BRepFeat.BRepFeat_SplitShape_Right(self, *args)

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

        Parameters
        ----------
        ToCheckInterior: bool

        Return
        -------
        None

        Description
        -----------
        Set the flag of check internal intersections default value is true (to check).

        """
        return _BRepFeat.BRepFeat_SplitShape_SetCheckInterior(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepFeat.delete_BRepFeat_SplitShape

# Register BRepFeat_SplitShape in _BRepFeat:
_BRepFeat.BRepFeat_SplitShape_swigregister(BRepFeat_SplitShape)
class BRepFeat_MakeCylindricalHole(BRepFeat_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"""
        Return
        -------
        None

        Description
        -----------
        Empty constructor.

        """
        _BRepFeat.BRepFeat_MakeCylindricalHole_swiginit(self, _BRepFeat.new_BRepFeat_MakeCylindricalHole(*args))

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

        Description
        -----------
        Builds the resulting shape (redefined from makeshape). invalidates the given parts of tools if any, and performs the result of the local operation.

        """
        return _BRepFeat.BRepFeat_MakeCylindricalHole_Build(self, *args)

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

        Parameters
        ----------
        Axis: gp_Ax1

        Return
        -------
        None

        Description
        -----------
        Sets the axis of the hole(s).

        Parameters
        ----------
        S: TopoDS_Shape
        Axis: gp_Ax1

        Return
        -------
        None

        Description
        -----------
        Sets the shape and axis on which hole(s) will be performed.

        """
        return _BRepFeat.BRepFeat_MakeCylindricalHole_Init(self, *args)

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

        Parameters
        ----------
        Radius: float

        Return
        -------
        None

        Description
        -----------
        Performs every holes of radius <radius>. this command has the same effect as a cut operation with an infinite cylinder defined by the given axis and <radius>.

        Parameters
        ----------
        Radius: float
        PFrom: float
        PTo: float
        WithControl: bool (optional, default to Standard_True)

        Return
        -------
        None

        Description
        -----------
        Performs evry hole of radius <radius> located between pfrom and pto on the given axis. if <withcontrol> is set to standard_false no control are done on the resulting shape after the operation is performed.

        """
        return _BRepFeat.BRepFeat_MakeCylindricalHole_Perform(self, *args)

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

        Parameters
        ----------
        Radius: float
        Length: float
        WithControl: bool (optional, default to Standard_True)

        Return
        -------
        None

        Description
        -----------
        Performs a blind hole of radius <radius> and length <length>. the length is measured from the origin of the given axis. if <withcontrol> is set to standard_false no control are done after the operation is performed.

        """
        return _BRepFeat.BRepFeat_MakeCylindricalHole_PerformBlind(self, *args)

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

        Parameters
        ----------
        Radius: float
        WithControl: bool (optional, default to Standard_True)

        Return
        -------
        None

        Description
        -----------
        Performs the first hole of radius <radius>, in the direction of the defined axis. first hole signify first encountered after the origin of the axis. if <withcontrol> is set to standard_false no control are done on the resulting shape after the operation is performed.

        """
        return _BRepFeat.BRepFeat_MakeCylindricalHole_PerformThruNext(self, *args)

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

        Parameters
        ----------
        Radius: float
        WithControl: bool (optional, default to Standard_True)

        Return
        -------
        None

        Description
        -----------
        Performs evry holes of radius <radius> located after the origin of the given axis. if <withcontrol> is set to standard_false no control are done on the resulting shape after the operation is performed.

        """
        return _BRepFeat.BRepFeat_MakeCylindricalHole_PerformUntilEnd(self, *args)

    def Status(self, *args):
        r"""
        Return
        -------
        BRepFeat_Status

        Description
        -----------
        Returns the status after a hole is performed.

        """
        return _BRepFeat.BRepFeat_MakeCylindricalHole_Status(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepFeat.delete_BRepFeat_MakeCylindricalHole

# Register BRepFeat_MakeCylindricalHole in _BRepFeat:
_BRepFeat.BRepFeat_MakeCylindricalHole_swigregister(BRepFeat_MakeCylindricalHole)
class BRepFeat_MakeDPrism(BRepFeat_Form):
    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
        ----------
        Sbase: TopoDS_Shape
        Pbase: TopoDS_Face
        Skface: TopoDS_Face
        Angle: float
        Fuse: int
        Modify: bool

        Return
        -------
        None

        Description
        -----------
        A face pbase is selected in the shape sbase to serve as the basis for the draft prism. the draft will be defined by the angle angle and fuse offers a choice between: - removing matter with a boolean cut using the setting 0 - adding matter with boolean fusion using the setting 1. the sketch face skface serves to determine the type of operation. if it is inside the basis shape, a local operation such as glueing can be performed. initializes the draft prism class.
        Return
        -------
        None

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

        """
        _BRepFeat.BRepFeat_MakeDPrism_swiginit(self, _BRepFeat.new_BRepFeat_MakeDPrism(*args))

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

        Parameters
        ----------
        E: TopoDS_Edge
        OnFace: TopoDS_Face

        Return
        -------
        None

        Description
        -----------
        Indicates that the edge <e> will slide on the face <onface>. raises constructionerror if the face does not belong to the basis shape, or the edge to the prismed shape.

        """
        return _BRepFeat.BRepFeat_MakeDPrism_Add(self, *args)

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

        Parameters
        ----------
        sig: int

        Return
        -------
        None

        Description
        -----------
        Determination of topedges and latedges. sig = 1 -> topedges = firstshape of the dprism sig = 2 -> topedges = lastshape of the dprism.

        """
        return _BRepFeat.BRepFeat_MakeDPrism_BossEdges(self, *args)

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

        Parameters
        ----------
        Sbase: TopoDS_Shape
        Pbase: TopoDS_Face
        Skface: TopoDS_Face
        Angle: float
        Fuse: int
        Modify: bool

        Return
        -------
        None

        Description
        -----------
        Initializes this algorithm for building draft prisms along surfaces. a face pbase is selected in the basis shape sbase to serve as the basis from the draft prism. the draft will be defined by the angle angle and fuse offers a choice between: - removing matter with a boolean cut using the setting 0 - adding matter with boolean fusion using the setting 1. the sketch face skface serves to determine the type of operation. if it is inside the basis shape, a local operation such as glueing can be performed.

        """
        return _BRepFeat.BRepFeat_MakeDPrism_Init(self, *args)

    def LatEdges(self, *args):
        r"""
        Return
        -------
        TopTools_ListOfShape

        Description
        -----------
        Returns the list of topods edges of the bottom of the boss.

        """
        return _BRepFeat.BRepFeat_MakeDPrism_LatEdges(self, *args)

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

        Parameters
        ----------
        Height: float

        Return
        -------
        None

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

        Parameters
        ----------
        Until: TopoDS_Shape

        Return
        -------
        None

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

        Parameters
        ----------
        From: TopoDS_Shape
        Until: TopoDS_Shape

        Return
        -------
        None

        Description
        -----------
        Assigns one of the following semantics - to a height height - to a face until - from a face from to a height until. reconstructs the feature topologically according to the semantic option chosen.

        """
        return _BRepFeat.BRepFeat_MakeDPrism_Perform(self, *args)

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

        Parameters
        ----------
        FUntil: TopoDS_Shape

        Return
        -------
        None

        Description
        -----------
        Realizes a semi-infinite prism, limited by the face funtil.

        """
        return _BRepFeat.BRepFeat_MakeDPrism_PerformFromEnd(self, *args)

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

        Description
        -----------
        Builds an infinite prism. the infinite descendants will not be kept in the result.

        """
        return _BRepFeat.BRepFeat_MakeDPrism_PerformThruAll(self, *args)

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

        Description
        -----------
        Realizes a semi-infinite prism, limited by the position of the prism base.

        """
        return _BRepFeat.BRepFeat_MakeDPrism_PerformUntilEnd(self, *args)

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

        Parameters
        ----------
        Until: TopoDS_Shape
        Height: float

        Return
        -------
        None

        Description
        -----------
        Assigns both a limiting shape, until from topods_shape, and a height, height at which to stop generation of the prism feature.

        """
        return _BRepFeat.BRepFeat_MakeDPrism_PerformUntilHeight(self, *args)

    def TopEdges(self, *args):
        r"""
        Return
        -------
        TopTools_ListOfShape

        Description
        -----------
        Returns the list of topods edges of the top of the boss.

        """
        return _BRepFeat.BRepFeat_MakeDPrism_TopEdges(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepFeat.delete_BRepFeat_MakeDPrism

# Register BRepFeat_MakeDPrism in _BRepFeat:
_BRepFeat.BRepFeat_MakeDPrism_swigregister(BRepFeat_MakeDPrism)
class BRepFeat_MakeLinearForm(BRepFeat_RibSlot):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Initializes the linear form class.

        Parameters
        ----------
        Sbase: TopoDS_Shape
        W: TopoDS_Wire
        P: Geom_Plane
        Direction: gp_Vec
        Direction1: gp_Vec
        Fuse: int
        Modify: bool

        Return
        -------
        None

        Description
        -----------
        Contour w, a shape sbase and a plane p are initialized to serve as the basic elements in the construction of the rib or groove. direction and direction1 give the vectors for defining the direction(s) in which thickness will be built up. fuse offers a choice between: - removing matter with a boolean cut using the setting 0 in case of the groove - adding matter with boolean fusion using the setting 1 in case of the rib.

        """
        _BRepFeat.BRepFeat_MakeLinearForm_swiginit(self, _BRepFeat.new_BRepFeat_MakeLinearForm(*args))

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

        Parameters
        ----------
        E: TopoDS_Edge
        OnFace: TopoDS_Face

        Return
        -------
        None

        Description
        -----------
        Indicates that the edge <e> will slide on the face <onface>. raises constructionerror if the face does not belong to the basis shape, or the edge to the prismed shape.

        """
        return _BRepFeat.BRepFeat_MakeLinearForm_Add(self, *args)

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

        Parameters
        ----------
        Sbase: TopoDS_Shape
        W: TopoDS_Wire
        P: Geom_Plane
        Direction: gp_Vec
        Direction1: gp_Vec
        Fuse: int
        Modify: bool

        Return
        -------
        None

        Description
        -----------
        Initializes this construction algorithm. a contour w, a shape sbase and a plane p are initialized to serve as the basic elements in the construction of the rib or groove. the vectors for defining the direction(s) in which thickness will be built up are given by direction and direction1. fuse offers a choice between: - removing matter with a boolean cut using the setting 0 in case of the groove - adding matter with boolean fusion using the setting 1 in case of the rib.

        """
        return _BRepFeat.BRepFeat_MakeLinearForm_Init(self, *args)

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

        Description
        -----------
        Performs a prism from the wire to the plane along the basis shape sbase. reconstructs the feature topologically.

        """
        return _BRepFeat.BRepFeat_MakeLinearForm_Perform(self, *args)

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

        Parameters
        ----------
        L: TopTools_ListOfShape
        F: TopoDS_Face
        FPoint: gp_Pnt
        LPoint: gp_Pnt

        Return
        -------
        falseside: bool

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

        """
        return _BRepFeat.BRepFeat_MakeLinearForm_Propagate(self, *args)

    __repr__ = _dumps_object

    @methodnotwrapped
    def TransformShapeFU(self):
    	pass

    __swig_destroy__ = _BRepFeat.delete_BRepFeat_MakeLinearForm

# Register BRepFeat_MakeLinearForm in _BRepFeat:
_BRepFeat.BRepFeat_MakeLinearForm_swigregister(BRepFeat_MakeLinearForm)
class BRepFeat_MakePipe(BRepFeat_Form):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Initializes the pipe class.

        Parameters
        ----------
        Sbase: TopoDS_Shape
        Pbase: TopoDS_Shape
        Skface: TopoDS_Face
        Spine: TopoDS_Wire
        Fuse: int
        Modify: bool

        Return
        -------
        None

        Description
        -----------
        A face pbase is selected in the shape sbase to serve as the basis for the pipe. it will be defined by the wire spine. fuse offers a choice between: - removing matter with a boolean cut using the setting 0 - adding matter with boolean fusion using the setting 1. the sketch face skface serves to determine the type of operation. if it is inside the basis shape, a local operation such as glueing can be performed.

        """
        _BRepFeat.BRepFeat_MakePipe_swiginit(self, _BRepFeat.new_BRepFeat_MakePipe(*args))

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

        Parameters
        ----------
        E: TopoDS_Edge
        OnFace: TopoDS_Face

        Return
        -------
        None

        Description
        -----------
        Indicates that the edge <e> will slide on the face <onface>. raises constructionerror if the face does not belong to the basis shape, or the edge to the prismed shape.

        """
        return _BRepFeat.BRepFeat_MakePipe_Add(self, *args)

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

        Parameters
        ----------
        Sbase: TopoDS_Shape
        Pbase: TopoDS_Shape
        Skface: TopoDS_Face
        Spine: TopoDS_Wire
        Fuse: int
        Modify: bool

        Return
        -------
        None

        Description
        -----------
        Initializes this algorithm for adding pipes to shapes. a face pbase is selected in the shape sbase to serve as the basis for the pipe. it will be defined by the wire spine. fuse offers a choice between: - removing matter with a boolean cut using the setting 0 - adding matter with boolean fusion using the setting 1. the sketch face skface serves to determine the type of operation. if it is inside the basis shape, a local operation such as glueing can be performed.

        """
        return _BRepFeat.BRepFeat_MakePipe_Init(self, *args)

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

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

        Parameters
        ----------
        Until: TopoDS_Shape

        Return
        -------
        None

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

        Parameters
        ----------
        From: TopoDS_Shape
        Until: TopoDS_Shape

        Return
        -------
        None

        Description
        -----------
        Assigns one of the following semantics - to a face until - from a face from to a height until. reconstructs the feature topologically according to the semantic option chosen.

        """
        return _BRepFeat.BRepFeat_MakePipe_Perform(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepFeat.delete_BRepFeat_MakePipe

# Register BRepFeat_MakePipe in _BRepFeat:
_BRepFeat.BRepFeat_MakePipe_swigregister(BRepFeat_MakePipe)
class BRepFeat_MakePrism(BRepFeat_Form):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Builds a prism by projecting a wire along the face of a shape. initializes the prism class.

        Parameters
        ----------
        Sbase: TopoDS_Shape
        Pbase: TopoDS_Shape
        Skface: TopoDS_Face
        Direction: gp_Dir
        Fuse: int
        Modify: bool

        Return
        -------
        None

        Description
        -----------
        Builds a prism by projecting a wire along the face of a shape. a face pbase is selected in the shape sbase to serve as the basis for the prism. the orientation of the prism will be defined by the vector direction. fuse offers a choice between: - removing matter with a boolean cut using the setting 0 - adding matter with boolean fusion using the setting 1. the sketch face skface serves to determine the type of operation. if it is inside the basis shape, a local operation such as glueing can be performed. exceptions standard_constructionerror if the face does not belong to the basis or the prism shape.

        """
        _BRepFeat.BRepFeat_MakePrism_swiginit(self, _BRepFeat.new_BRepFeat_MakePrism(*args))

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

        Parameters
        ----------
        E: TopoDS_Edge
        OnFace: TopoDS_Face

        Return
        -------
        None

        Description
        -----------
        Indicates that the edge <e> will slide on the face <onface>. raises constructionerror if the face does not belong to the basis shape, or the edge to the prismed shape.

        """
        return _BRepFeat.BRepFeat_MakePrism_Add(self, *args)

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

        Parameters
        ----------
        Sbase: TopoDS_Shape
        Pbase: TopoDS_Shape
        Skface: TopoDS_Face
        Direction: gp_Dir
        Fuse: int
        Modify: bool

        Return
        -------
        None

        Description
        -----------
        Initializes this algorithm for building prisms along surfaces. a face pbase is selected in the shape sbase to serve as the basis for the prism. the orientation of the prism will be defined by the vector direction. fuse offers a choice between: - removing matter with a boolean cut using the setting 0 - adding matter with boolean fusion using the setting 1. the sketch face skface serves to determine the type of operation. if it is inside the basis shape, a local operation such as glueing can be performed.

        """
        return _BRepFeat.BRepFeat_MakePrism_Init(self, *args)

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

        Parameters
        ----------
        Length: float

        Return
        -------
        None

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

        Parameters
        ----------
        Until: TopoDS_Shape

        Return
        -------
        None

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

        Parameters
        ----------
        From: TopoDS_Shape
        Until: TopoDS_Shape

        Return
        -------
        None

        Description
        -----------
        Assigns one of the following semantics - to a height length - to a face until - from a face from to a height until. reconstructs the feature topologically according to the semantic option chosen.

        """
        return _BRepFeat.BRepFeat_MakePrism_Perform(self, *args)

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

        Parameters
        ----------
        FUntil: TopoDS_Shape

        Return
        -------
        None

        Description
        -----------
        Realizes a semi-infinite prism, limited by the face funtil.

        """
        return _BRepFeat.BRepFeat_MakePrism_PerformFromEnd(self, *args)

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

        Description
        -----------
        Builds an infinite prism. the infinite descendants will not be kept in the result.

        """
        return _BRepFeat.BRepFeat_MakePrism_PerformThruAll(self, *args)

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

        Description
        -----------
        Realizes a semi-infinite prism, limited by the position of the prism base. all other faces extend infinitely.

        """
        return _BRepFeat.BRepFeat_MakePrism_PerformUntilEnd(self, *args)

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

        Parameters
        ----------
        Until: TopoDS_Shape
        Length: float

        Return
        -------
        None

        Description
        -----------
        Assigns both a limiting shape, until from topods_shape, and a height, length at which to stop generation of the prism feature.

        """
        return _BRepFeat.BRepFeat_MakePrism_PerformUntilHeight(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepFeat.delete_BRepFeat_MakePrism

# Register BRepFeat_MakePrism in _BRepFeat:
_BRepFeat.BRepFeat_MakePrism_swigregister(BRepFeat_MakePrism)
class BRepFeat_MakeRevol(BRepFeat_Form):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Initializes the revolved shell class.

        Parameters
        ----------
        Sbase: TopoDS_Shape
        Pbase: TopoDS_Shape
        Skface: TopoDS_Face
        Axis: gp_Ax1
        Fuse: int
        Modify: bool

        Return
        -------
        None

        Description
        -----------
        A face pbase is selected in the shape sbase to serve as the basis for the revolved shell. the revolution will be defined by the axis axis and fuse offers a choice between: - removing matter with a boolean cut using the setting 0 - adding matter with boolean fusion using the setting 1. the sketch face skface serves to determine the type of operation. if it is inside the basis shape, a local operation such as glueing can be performed.

        """
        _BRepFeat.BRepFeat_MakeRevol_swiginit(self, _BRepFeat.new_BRepFeat_MakeRevol(*args))

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

        Parameters
        ----------
        E: TopoDS_Edge
        OnFace: TopoDS_Face

        Return
        -------
        None

        Description
        -----------
        Indicates that the edge <e> will slide on the face <onface>. raises constructionerror if the face does not belong to the basis shape, or the edge to the prismed shape.

        """
        return _BRepFeat.BRepFeat_MakeRevol_Add(self, *args)

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

        Parameters
        ----------
        Sbase: TopoDS_Shape
        Pbase: TopoDS_Shape
        Skface: TopoDS_Face
        Axis: gp_Ax1
        Fuse: int
        Modify: bool

        Return
        -------
        None

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

        """
        return _BRepFeat.BRepFeat_MakeRevol_Init(self, *args)

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

        Parameters
        ----------
        Angle: float

        Return
        -------
        None

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

        Parameters
        ----------
        Until: TopoDS_Shape

        Return
        -------
        None

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

        Parameters
        ----------
        From: TopoDS_Shape
        Until: TopoDS_Shape

        Return
        -------
        None

        Description
        -----------
        Reconstructs the feature topologically.

        """
        return _BRepFeat.BRepFeat_MakeRevol_Perform(self, *args)

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

        Description
        -----------
        Builds an infinite shell. the infinite descendants will not be kept in the result.

        """
        return _BRepFeat.BRepFeat_MakeRevol_PerformThruAll(self, *args)

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

        Parameters
        ----------
        Until: TopoDS_Shape
        Angle: float

        Return
        -------
        None

        Description
        -----------
        Assigns both a limiting shape, until from topods_shape, and an angle, angle at which to stop generation of the revolved shell feature.

        """
        return _BRepFeat.BRepFeat_MakeRevol_PerformUntilAngle(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepFeat.delete_BRepFeat_MakeRevol

# Register BRepFeat_MakeRevol in _BRepFeat:
_BRepFeat.BRepFeat_MakeRevol_swigregister(BRepFeat_MakeRevol)
class BRepFeat_MakeRevolutionForm(BRepFeat_RibSlot):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Initializes the linear form class.

        Parameters
        ----------
        Sbase: TopoDS_Shape
        W: TopoDS_Wire
        Plane: Geom_Plane
        Axis: gp_Ax1
        Height1: float
        Height2: float
        Fuse: int

        Return
        -------
        Sliding: bool

        Description
        -----------
        A contour w, a shape sbase and a plane p are initialized to serve as the basic elements in the construction of the rib or groove. the axis axis of the revolved surface in the basis shape defines the feature's axis of revolution. height1 and height2 may be used as limits to the construction of the feature. fuse offers a choice between: - removing matter with a boolean cut using the setting 0 in case of the groove - adding matter with boolean fusion using the setting 1 in case of the rib.

        """
        _BRepFeat.BRepFeat_MakeRevolutionForm_swiginit(self, _BRepFeat.new_BRepFeat_MakeRevolutionForm(*args))

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

        Parameters
        ----------
        E: TopoDS_Edge
        OnFace: TopoDS_Face

        Return
        -------
        None

        Description
        -----------
        Indicates that the edge <e> will slide on the face <onface>. raises constructionerror if the face does not belong to the basis shape, or the edge to the prismed shape.

        """
        return _BRepFeat.BRepFeat_MakeRevolutionForm_Add(self, *args)

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

        Parameters
        ----------
        Sbase: TopoDS_Shape
        W: TopoDS_Wire
        Plane: Geom_Plane
        Axis: gp_Ax1
        Height1: float
        Height2: float
        Fuse: int

        Return
        -------
        Sliding: bool

        Description
        -----------
        Initializes this construction algorithm a contour w, a shape sbase and a plane p are initialized to serve as the basic elements in the construction of the rib or groove. the axis axis of the revolved surface in the basis shape defines the feature's axis of revolution. height1 and height2 may be used as limits to the construction of the feature. fuse offers a choice between: - removing matter with a boolean cut using the setting 0 in case of the groove - adding matter with boolean fusion using the setting 1 in case of the rib.

        """
        return _BRepFeat.BRepFeat_MakeRevolutionForm_Init(self, *args)

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

        Description
        -----------
        Performs a prism from the wire to the plane along the basis shape s. reconstructs the feature topologically.

        """
        return _BRepFeat.BRepFeat_MakeRevolutionForm_Perform(self, *args)

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

        Parameters
        ----------
        L: TopTools_ListOfShape
        F: TopoDS_Face
        FPoint: gp_Pnt
        LPoint: gp_Pnt

        Return
        -------
        falseside: bool

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

        """
        return _BRepFeat.BRepFeat_MakeRevolutionForm_Propagate(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepFeat.delete_BRepFeat_MakeRevolutionForm

# Register BRepFeat_MakeRevolutionForm in _BRepFeat:
_BRepFeat.BRepFeat_MakeRevolutionForm_swigregister(BRepFeat_MakeRevolutionForm)



@deprecated
def brepfeat_Barycenter(*args):
	return brepfeat.Barycenter(*args)

@deprecated
def brepfeat_FaceUntil(*args):
	return brepfeat.FaceUntil(*args)

@deprecated
def brepfeat_IsInside(*args):
	return brepfeat.IsInside(*args)

@deprecated
def brepfeat_ParametricBarycenter(*args):
	return brepfeat.ParametricBarycenter(*args)

@deprecated
def brepfeat_ParametricMinMax(*args):
	return brepfeat.ParametricMinMax(*args)

@deprecated
def brepfeat_SampleEdges(*args):
	return brepfeat.SampleEdges(*args)

@deprecated
def brepfeat_Tool(*args):
	return brepfeat.Tool(*args)

@deprecated
def BRepFeat_RibSlot_ChoiceOfFaces(*args):
	return BRepFeat_RibSlot.ChoiceOfFaces(*args)

@deprecated
def BRepFeat_RibSlot_IntPar(*args):
	return BRepFeat_RibSlot.IntPar(*args)



