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

"""
BRepFeat module, see official documentation at
https://www.opencascade.com/doc/occt-7.4.0/refman/html/package_brepfeat.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 _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 == "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__ = _BRepFeat.delete_SwigPyIterator

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    def __sub__(self, *args) -> "ptrdiff_t":
        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: "Standard_Failure", method_name: "std::string", class_name: "std::string") -> "void":
    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_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
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


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_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(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) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

        """
        return _BRepFeat.brepfeat_Barycenter(*args)

    @staticmethod
    def FaceUntil(*args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

        """
        return _BRepFeat.brepfeat_FaceUntil(*args)

    @staticmethod
    def IsInside(*args) -> "Standard_Boolean":
        r"""
        No available documentation.

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

        Returns
        -------
        bool

        """
        return _BRepFeat.brepfeat_IsInside(*args)

    @staticmethod
    def ParametricBarycenter(*args) -> "Standard_Real":
        r"""
        No available documentation.

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

        Returns
        -------
        float

        """
        return _BRepFeat.brepfeat_ParametricBarycenter(*args)

    @staticmethod
    def ParametricMinMax(*args) -> "Standard_Real &, Standard_Real &, Standard_Real &, Standard_Real &, Standard_Boolean &":
        r"""
        Ori = true taking account the orientation.

        Parameters
        ----------
        S: TopoDS_Shape
        C: Geom_Curve
        Ori: bool,optional
        	default value is Standard_False

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

        """
        return _BRepFeat.brepfeat_ParametricMinMax(*args)

    @staticmethod
    def SampleEdges(*args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

        """
        return _BRepFeat.brepfeat_SampleEdges(*args)

    @staticmethod
    def Tool(*args) -> "TopoDS_Solid":
        r"""
        No available documentation.

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

        Returns
        -------
        TopoDS_Solid

        """
        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)

def brepfeat_Barycenter(*args) -> "void":
    r"""
    No available documentation.

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

    Returns
    -------
    None

    """
    return _BRepFeat.brepfeat_Barycenter(*args)

def brepfeat_FaceUntil(*args) -> "void":
    r"""
    No available documentation.

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

    Returns
    -------
    None

    """
    return _BRepFeat.brepfeat_FaceUntil(*args)

def brepfeat_IsInside(*args) -> "Standard_Boolean":
    r"""
    No available documentation.

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

    Returns
    -------
    bool

    """
    return _BRepFeat.brepfeat_IsInside(*args)

def brepfeat_ParametricBarycenter(*args) -> "Standard_Real":
    r"""
    No available documentation.

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

    Returns
    -------
    float

    """
    return _BRepFeat.brepfeat_ParametricBarycenter(*args)

def brepfeat_ParametricMinMax(*args) -> "Standard_Real &, Standard_Real &, Standard_Real &, Standard_Real &, Standard_Boolean &":
    r"""
    Ori = true taking account the orientation.

    Parameters
    ----------
    S: TopoDS_Shape
    C: Geom_Curve
    Ori: bool,optional
    	default value is Standard_False

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

    """
    return _BRepFeat.brepfeat_ParametricMinMax(*args)

def brepfeat_SampleEdges(*args) -> "void":
    r"""
    No available documentation.

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

    Returns
    -------
    None

    """
    return _BRepFeat.brepfeat_SampleEdges(*args)

def brepfeat_Tool(*args) -> "TopoDS_Solid":
    r"""
    No available documentation.

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

    Returns
    -------
    TopoDS_Solid

    """
    return _BRepFeat.brepfeat_Tool(*args)

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"""
        No available documentation.

        Returns
        -------
        None

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

    def CheckSolidImages(self, *args) -> "void":
        r"""
        Collects the images of the object, that contains in the images of the tool.

        Returns
        -------
        None

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

    def FillRemoved(self, *args) -> "void":
        r"""
        Collects the removed parts of the tool into myremoved map.

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

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

        Returns
        -------
        None

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

    def Init(self, *args) -> "void":
        r"""
        Initialyzes the object of local boolean operation.

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

        Returns
        -------
        None
        Initialyzes the arguments of local boolean operation.

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

        Returns
        -------
        None

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

    def KeepPart(self, *args) -> "void":
        r"""
        Adds shape thes and all its sub-shapes into myshapes map.

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

        Returns
        -------
        None

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

    def KeepParts(self, *args) -> "void":
        r"""
        Initialyzes parts of the tool for second step of algorithm. collects shapes and all sub-shapes into myshapes map.

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

        Returns
        -------
        None

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

    def PartsOfTool(self, *args) -> "void":
        r"""
        Collects parts of the tool.

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

        Returns
        -------
        None

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

    def PerformResult(self, *args) -> "void":
        r"""
        Main function to build the result of the local operation required.

        Returns
        -------
        None

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

    def RebuildEdge(self, *args) -> "void":
        r"""
        Rebuilds edges in accordance with the kept parts of the tool.

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

        Returns
        -------
        None

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

    def RebuildFaces(self, *args) -> "void":
        r"""
        Rebuilds faces in accordance with the kept parts of the tool.

        Returns
        -------
        None

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

    def SetOperation(self, *args) -> "void":
        r"""
        Sets the operation of local boolean operation. if thefuse = 0 than the operation is cut, otherwise fuse.

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

        Returns
        -------
        None
        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.

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

        Returns
        -------
        None

        """
        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) -> "opencascade::handle< Geom_Curve >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Geom_Curve>

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

    def BasisShapeValid(self, *args) -> "void":
        r"""
        Initializes the topological construction if the basis shape is present.

        Returns
        -------
        None

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

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

        Returns
        -------
        BRepFeat_StatusError

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

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

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

        Returns
        -------
        None

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

    def FirstShape(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        Returns the list of shapes created at the bottom of the created form. it may be an empty list.

        Returns
        -------
        TopTools_ListOfShape

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

    def GeneratedShapeValid(self, *args) -> "void":
        r"""
        Initializes the topological construction if the generated shape s is present.

        Returns
        -------
        None

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

    def GluedFacesValid(self, *args) -> "void":
        r"""
        Initializes the topological construction if the glued face is present.

        Returns
        -------
        None

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

    def LastShape(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        Returns the list of shapes created at the top of the created form. it may be an empty list.

        Returns
        -------
        TopTools_ListOfShape

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

    def NewEdges(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        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.

        Returns
        -------
        TopTools_ListOfShape

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

    def PerfSelectionValid(self, *args) -> "void":
        r"""
        Initializes the topological construction if the selected face is present.

        Returns
        -------
        None

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

    def ShapeFromValid(self, *args) -> "void":
        r"""
        Initializes the topological construction if the shape is present from the specified integer on.

        Returns
        -------
        None

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

    def ShapeUntilValid(self, *args) -> "void":
        r"""
        Initializes the topological construction if the shape is present until the specified integer.

        Returns
        -------
        None

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

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

        Returns
        -------
        None

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

    def TgtEdges(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        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.

        Returns
        -------
        TopTools_ListOfShape

        """
        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"""
        Initializes an empty constructor.

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

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

        Returns
        -------
        None

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

    def BasisShape(self, *args) -> "TopoDS_Shape const":
        r"""
        Returns the basis shape of the compound shape.

        Returns
        -------
        TopoDS_Shape

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

    def Bind(self, *args) -> "void":
        r"""
        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
        ----------
        Fnew: TopoDS_Face
        Fbase: TopoDS_Face

        Returns
        -------
        None
        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.

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

        Returns
        -------
        None

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

    def GluedShape(self, *args) -> "TopoDS_Shape const":
        r"""
        Returns the resulting compound shape.

        Returns
        -------
        TopoDS_Shape

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

    def Init(self, *args) -> "void":
        r"""
        Initializes the new shape snew and the basis shape sbase for the local glueing operation.

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

        Returns
        -------
        None

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

    def OpeType(self, *args) -> "LocOpe_Operation":
        r"""
        Determine which operation type to use glueing or sliding.

        Returns
        -------
        LocOpe_Operation

        """
        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) -> "TopoDS_Face":
        r"""
        No available documentation.

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

        Returns
        -------
        TopoDS_Face

        """
        return _BRepFeat.BRepFeat_RibSlot_ChoiceOfFaces(*args)

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

        Returns
        -------
        BRepFeat_StatusError

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

    def FacesForDraft(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        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.

        Returns
        -------
        TopTools_ListOfShape

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

    def FirstShape(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        Returns the list of shapes created at the bottom of the created form. it may be an empty list.

        Returns
        -------
        TopTools_ListOfShape

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

    @staticmethod
    def IntPar(*args) -> "Standard_Real":
        r"""
        No available documentation.

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

        Returns
        -------
        float

        """
        return _BRepFeat.BRepFeat_RibSlot_IntPar(*args)

    def LastShape(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        Returns the list of shapes created at the top of the created form. it may be an empty list.

        Returns
        -------
        TopTools_ListOfShape

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

    def NewEdges(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        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.

        Returns
        -------
        TopTools_ListOfShape

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

    def TgtEdges(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        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.

        Returns
        -------
        TopTools_ListOfShape

        """
        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)

def BRepFeat_RibSlot_ChoiceOfFaces(*args) -> "TopoDS_Face":
    r"""
    No available documentation.

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

    Returns
    -------
    TopoDS_Face

    """
    return _BRepFeat.BRepFeat_RibSlot_ChoiceOfFaces(*args)

def BRepFeat_RibSlot_IntPar(*args) -> "Standard_Real":
    r"""
    No available documentation.

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

    Returns
    -------
    float

    """
    return _BRepFeat.BRepFeat_RibSlot_IntPar(*args)

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"""
        Empty constructor.

        Returns
        -------
        None
        Creates the process with the shape <s>.

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

        Returns
        -------
        None

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

    def Add(self, *args) -> "void":
        r"""
        Add splitting edges or wires for whole initial shape withot additional specification edge->face, edge->edge this method puts edge on the corresponding faces from initial shape.

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

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

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

        Returns
        -------
        None
        Adds the edge <e> on the face <f>.

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

        Returns
        -------
        None
        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
        ----------
        Comp: TopoDS_Compound
        F: TopoDS_Face

        Returns
        -------
        None
        Adds the edge <e> on the existing edge <eon>.

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

        Returns
        -------
        None

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

    def DirectLeft(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        Returns the faces which are the left of the projected wires.

        Returns
        -------
        TopTools_ListOfShape

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

    def Init(self, *args) -> "void":
        r"""
        Initializes the process on the shape <s>.

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

        Returns
        -------
        None

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

    def Left(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        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>.

        Returns
        -------
        TopTools_ListOfShape

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

    def Right(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        Returns the faces of the 'right' part on the shape.

        Returns
        -------
        TopTools_ListOfShape

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

    def SetCheckInterior(self, *args) -> "void":
        r"""
        Set the flag of check internal intersections default value is true (to check).

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

        Returns
        -------
        None

        """
        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"""
        Empty constructor.

        Returns
        -------
        None

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

    def Build(self, *args) -> "void":
        r"""
        Builds the resulting shape (redefined from makeshape). invalidates the given parts of tools if any, and performs the result of the local operation.

        Returns
        -------
        None

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

    def Init(self, *args) -> "void":
        r"""
        Sets the axis of the hole(s).

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

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

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

        Returns
        -------
        None

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

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

        Returns
        -------
        None
        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.

        Parameters
        ----------
        Radius: float
        PFrom: float
        PTo: float
        WithControl: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

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

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

        Parameters
        ----------
        Radius: float
        Length: float
        WithControl: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

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

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

        Parameters
        ----------
        Radius: float
        WithControl: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

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

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

        Parameters
        ----------
        Radius: float
        WithControl: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

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

    def Status(self, *args) -> "BRepFeat_Status":
        r"""
        Returns the status after a hole is performed.

        Returns
        -------
        BRepFeat_Status

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

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

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

        Returns
        -------
        None

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

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

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

        Returns
        -------
        None

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

    def BossEdges(self, *args) -> "void":
        r"""
        Determination of topedges and latedges. sig = 1 -> topedges = firstshape of the dprism sig = 2 -> topedges = lastshape of the dprism.

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

        Returns
        -------
        None

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

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

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

        Returns
        -------
        None

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

    def LatEdges(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        Returns the list of topods edges of the bottom of the boss.

        Returns
        -------
        TopTools_ListOfShape

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

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

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

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

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

        Returns
        -------
        None
        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.

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

        Returns
        -------
        None

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

    def PerformFromEnd(self, *args) -> "void":
        r"""
        Realizes a semi-infinite prism, limited by the face funtil.

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

        Returns
        -------
        None

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

    def PerformThruAll(self, *args) -> "void":
        r"""
        Builds an infinite prism. the infinite descendants will not be kept in the result.

        Returns
        -------
        None

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

    def PerformUntilEnd(self, *args) -> "void":
        r"""
        Realizes a semi-infinite prism, limited by the position of the prism base.

        Returns
        -------
        None

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

    def PerformUntilHeight(self, *args) -> "void":
        r"""
        Assigns both a limiting shape, until from topods_shape, and a height, height at which to stop generation of the prism feature.

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

        Returns
        -------
        None

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

    def TopEdges(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        Returns the list of topods edges of the top of the boss.

        Returns
        -------
        TopTools_ListOfShape

        """
        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"""
        Initializes the linear form class.

        Returns
        -------
        None
        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.

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

        Returns
        -------
        None

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

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

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

        Returns
        -------
        None

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

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

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

        Returns
        -------
        None

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

    def Perform(self, *args) -> "void":
        r"""
        Performs a prism from the wire to the plane along the basis shape sbase. reconstructs the feature topologically.

        Returns
        -------
        None

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

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

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

        Returns
        -------
        falseside: bool

        """
        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"""
        Initializes the pipe class.

        Returns
        -------
        None
        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.

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

        Returns
        -------
        None

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

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

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

        Returns
        -------
        None

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

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

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

        Returns
        -------
        None

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

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

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

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

        Returns
        -------
        None
        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.

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

        Returns
        -------
        None

        """
        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"""
        Builds a prism by projecting a wire along the face of a shape. initializes the prism class.

        Returns
        -------
        None
        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.

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

        Returns
        -------
        None

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

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

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

        Returns
        -------
        None

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

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

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

        Returns
        -------
        None

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

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

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

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

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

        Returns
        -------
        None
        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.

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

        Returns
        -------
        None

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

    def PerformFromEnd(self, *args) -> "void":
        r"""
        Realizes a semi-infinite prism, limited by the face funtil.

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

        Returns
        -------
        None

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

    def PerformThruAll(self, *args) -> "void":
        r"""
        Builds an infinite prism. the infinite descendants will not be kept in the result.

        Returns
        -------
        None

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

    def PerformUntilEnd(self, *args) -> "void":
        r"""
        Realizes a semi-infinite prism, limited by the position of the prism base. all other faces extend infinitely.

        Returns
        -------
        None

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

    def PerformUntilHeight(self, *args) -> "void":
        r"""
        Assigns both a limiting shape, until from topods_shape, and a height, length at which to stop generation of the prism feature.

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

        Returns
        -------
        None

        """
        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"""
        Initializes the revolved shell class.

        Returns
        -------
        None
        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.

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

        Returns
        -------
        None

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

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

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

        Returns
        -------
        None

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

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

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

        Returns
        -------
        None

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

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

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

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

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

        Returns
        -------
        None
        Reconstructs the feature topologically.

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

        Returns
        -------
        None

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

    def PerformThruAll(self, *args) -> "void":
        r"""
        Builds an infinite shell. the infinite descendants will not be kept in the result.

        Returns
        -------
        None

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

    def PerformUntilAngle(self, *args) -> "void":
        r"""
        Assigns both a limiting shape, until from topods_shape, and an angle, angle at which to stop generation of the revolved shell feature.

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

        Returns
        -------
        None

        """
        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"""
        Initializes the linear form class.

        Returns
        -------
        None
        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.

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

        Returns
        -------
        Sliding: bool

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

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

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

        Returns
        -------
        None

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

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

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

        Returns
        -------
        Sliding: bool

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

    def Perform(self, *args) -> "void":
        r"""
        Performs a prism from the wire to the plane along the basis shape s. reconstructs the feature topologically.

        Returns
        -------
        None

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

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

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

        Returns
        -------
        falseside: bool

        """
        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)





