# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.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.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__

_swig_new_instance_method = _BRepFeat.SWIG_PyInstanceMethod_New
_swig_new_static_method = _BRepFeat.SWIG_PyStaticMethod_New

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
    value = _swig_new_instance_method(_BRepFeat.SwigPyIterator_value)
    incr = _swig_new_instance_method(_BRepFeat.SwigPyIterator_incr)
    decr = _swig_new_instance_method(_BRepFeat.SwigPyIterator_decr)
    distance = _swig_new_instance_method(_BRepFeat.SwigPyIterator_distance)
    equal = _swig_new_instance_method(_BRepFeat.SwigPyIterator_equal)
    copy = _swig_new_instance_method(_BRepFeat.SwigPyIterator_copy)
    next = _swig_new_instance_method(_BRepFeat.SwigPyIterator_next)
    __next__ = _swig_new_instance_method(_BRepFeat.SwigPyIterator___next__)
    previous = _swig_new_instance_method(_BRepFeat.SwigPyIterator_previous)
    advance = _swig_new_instance_method(_BRepFeat.SwigPyIterator_advance)
    __eq__ = _swig_new_instance_method(_BRepFeat.SwigPyIterator___eq__)
    __ne__ = _swig_new_instance_method(_BRepFeat.SwigPyIterator___ne__)
    __iadd__ = _swig_new_instance_method(_BRepFeat.SwigPyIterator___iadd__)
    __isub__ = _swig_new_instance_method(_BRepFeat.SwigPyIterator___isub__)
    __add__ = _swig_new_instance_method(_BRepFeat.SwigPyIterator___add__)
    __sub__ = _swig_new_instance_method(_BRepFeat.SwigPyIterator___sub__)
    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


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.TopAbs
import OCC.Core.TopLoc
import OCC.Core.gp
import OCC.Core.Geom
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.TColStd
import OCC.Core.TCollection
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
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(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Barycenter = _swig_new_static_method(_BRepFeat.brepfeat_Barycenter)
    FaceUntil = _swig_new_static_method(_BRepFeat.brepfeat_FaceUntil)
    IsInside = _swig_new_static_method(_BRepFeat.brepfeat_IsInside)
    ParametricBarycenter = _swig_new_static_method(_BRepFeat.brepfeat_ParametricBarycenter)
    ParametricMinMax = _swig_new_static_method(_BRepFeat.brepfeat_ParametricMinMax)
    Print = _swig_new_static_method(_BRepFeat.brepfeat_Print)
    SampleEdges = _swig_new_static_method(_BRepFeat.brepfeat_SampleEdges)
    Tool = _swig_new_static_method(_BRepFeat.brepfeat_Tool)

    __repr__ = _dumps_object


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

# Register brepfeat in _BRepFeat:
_BRepFeat.brepfeat_swigregister(brepfeat)
brepfeat_Barycenter = _BRepFeat.brepfeat_Barycenter
brepfeat_FaceUntil = _BRepFeat.brepfeat_FaceUntil
brepfeat_IsInside = _BRepFeat.brepfeat_IsInside
brepfeat_ParametricBarycenter = _BRepFeat.brepfeat_ParametricBarycenter
brepfeat_ParametricMinMax = _BRepFeat.brepfeat_ParametricMinMax
brepfeat_Print = _BRepFeat.brepfeat_Print
brepfeat_SampleEdges = _BRepFeat.brepfeat_SampleEdges
brepfeat_Tool = _BRepFeat.brepfeat_Tool

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""":rtype: None"""
        _BRepFeat.BRepFeat_Builder_swiginit(self, _BRepFeat.new_BRepFeat_Builder(*args))
    CheckSolidImages = _swig_new_instance_method(_BRepFeat.BRepFeat_Builder_CheckSolidImages)
    FillRemoved = _swig_new_instance_method(_BRepFeat.BRepFeat_Builder_FillRemoved)
    Init = _swig_new_instance_method(_BRepFeat.BRepFeat_Builder_Init)
    KeepPart = _swig_new_instance_method(_BRepFeat.BRepFeat_Builder_KeepPart)
    KeepParts = _swig_new_instance_method(_BRepFeat.BRepFeat_Builder_KeepParts)
    PartsOfTool = _swig_new_instance_method(_BRepFeat.BRepFeat_Builder_PartsOfTool)
    PerformResult = _swig_new_instance_method(_BRepFeat.BRepFeat_Builder_PerformResult)
    RebuildEdge = _swig_new_instance_method(_BRepFeat.BRepFeat_Builder_RebuildEdge)
    RebuildFaces = _swig_new_instance_method(_BRepFeat.BRepFeat_Builder_RebuildFaces)
    SetOperation = _swig_new_instance_method(_BRepFeat.BRepFeat_Builder_SetOperation)

    __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
    BarycCurve = _swig_new_instance_method(_BRepFeat.BRepFeat_Form_BarycCurve)
    BasisShapeValid = _swig_new_instance_method(_BRepFeat.BRepFeat_Form_BasisShapeValid)
    CurrentStatusError = _swig_new_instance_method(_BRepFeat.BRepFeat_Form_CurrentStatusError)
    Curves = _swig_new_instance_method(_BRepFeat.BRepFeat_Form_Curves)
    FirstShape = _swig_new_instance_method(_BRepFeat.BRepFeat_Form_FirstShape)
    GeneratedShapeValid = _swig_new_instance_method(_BRepFeat.BRepFeat_Form_GeneratedShapeValid)
    GluedFacesValid = _swig_new_instance_method(_BRepFeat.BRepFeat_Form_GluedFacesValid)
    LastShape = _swig_new_instance_method(_BRepFeat.BRepFeat_Form_LastShape)
    NewEdges = _swig_new_instance_method(_BRepFeat.BRepFeat_Form_NewEdges)
    PerfSelectionValid = _swig_new_instance_method(_BRepFeat.BRepFeat_Form_PerfSelectionValid)
    ShapeFromValid = _swig_new_instance_method(_BRepFeat.BRepFeat_Form_ShapeFromValid)
    ShapeUntilValid = _swig_new_instance_method(_BRepFeat.BRepFeat_Form_ShapeUntilValid)
    SketchFaceValid = _swig_new_instance_method(_BRepFeat.BRepFeat_Form_SketchFaceValid)
    TgtEdges = _swig_new_instance_method(_BRepFeat.BRepFeat_Form_TgtEdges)

    __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
        	:rtype: None* Initializes the shapes to be glued, the new shape Snew and the basis shape Sbase.
        	:param Snew:
        	:type Snew: TopoDS_Shape
        	:param Sbase:
        	:type Sbase: TopoDS_Shape
        	:rtype: None
        """
        _BRepFeat.BRepFeat_Gluer_swiginit(self, _BRepFeat.new_BRepFeat_Gluer(*args))
    BasisShape = _swig_new_instance_method(_BRepFeat.BRepFeat_Gluer_BasisShape)
    Bind = _swig_new_instance_method(_BRepFeat.BRepFeat_Gluer_Bind)
    GluedShape = _swig_new_instance_method(_BRepFeat.BRepFeat_Gluer_GluedShape)
    Init = _swig_new_instance_method(_BRepFeat.BRepFeat_Gluer_Init)
    OpeType = _swig_new_instance_method(_BRepFeat.BRepFeat_Gluer_OpeType)

    __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
    ChoiceOfFaces = _swig_new_static_method(_BRepFeat.BRepFeat_RibSlot_ChoiceOfFaces)
    CurrentStatusError = _swig_new_instance_method(_BRepFeat.BRepFeat_RibSlot_CurrentStatusError)
    FacesForDraft = _swig_new_instance_method(_BRepFeat.BRepFeat_RibSlot_FacesForDraft)
    FirstShape = _swig_new_instance_method(_BRepFeat.BRepFeat_RibSlot_FirstShape)
    IntPar = _swig_new_static_method(_BRepFeat.BRepFeat_RibSlot_IntPar)
    LastShape = _swig_new_instance_method(_BRepFeat.BRepFeat_RibSlot_LastShape)
    NewEdges = _swig_new_instance_method(_BRepFeat.BRepFeat_RibSlot_NewEdges)
    TgtEdges = _swig_new_instance_method(_BRepFeat.BRepFeat_RibSlot_TgtEdges)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepFeat.delete_BRepFeat_RibSlot

# Register BRepFeat_RibSlot in _BRepFeat:
_BRepFeat.BRepFeat_RibSlot_swigregister(BRepFeat_RibSlot)
BRepFeat_RibSlot_ChoiceOfFaces = _BRepFeat.BRepFeat_RibSlot_ChoiceOfFaces
BRepFeat_RibSlot_IntPar = _BRepFeat.BRepFeat_RibSlot_IntPar

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
    Add = _swig_new_instance_method(_BRepFeat.BRepFeat_SplitShape_Add)

    def __init__(self, *args):
        r"""
        * Empty constructor
        	:rtype: None* Creates the process with the shape <S>.
        	:param S:
        	:type S: TopoDS_Shape
        	:rtype: None
        """
        _BRepFeat.BRepFeat_SplitShape_swiginit(self, _BRepFeat.new_BRepFeat_SplitShape(*args))
    DirectLeft = _swig_new_instance_method(_BRepFeat.BRepFeat_SplitShape_DirectLeft)
    Init = _swig_new_instance_method(_BRepFeat.BRepFeat_SplitShape_Init)
    Left = _swig_new_instance_method(_BRepFeat.BRepFeat_SplitShape_Left)
    SetCheckInterior = _swig_new_instance_method(_BRepFeat.BRepFeat_SplitShape_SetCheckInterior)

    __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.
        	:rtype: None
        """
        _BRepFeat.BRepFeat_MakeCylindricalHole_swiginit(self, _BRepFeat.new_BRepFeat_MakeCylindricalHole(*args))
    Build = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeCylindricalHole_Build)
    Init = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeCylindricalHole_Init)
    Perform = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeCylindricalHole_Perform)
    PerformBlind = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeCylindricalHole_PerformBlind)
    PerformThruNext = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeCylindricalHole_PerformThruNext)
    PerformUntilEnd = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeCylindricalHole_PerformUntilEnd)
    Status = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeCylindricalHole_Status)

    __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
    Add = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeDPrism_Add)

    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
        	:param Sbase:
        	:type Sbase: TopoDS_Shape
        	:param Pbase:
        	:type Pbase: TopoDS_Face
        	:param Skface:
        	:type Skface: TopoDS_Face
        	:param Angle:
        	:type Angle: float
        	:param Fuse:
        	:type Fuse: int
        	:param Modify:
        	:type Modify: bool
        	:rtype: None:rtype: None
        """
        _BRepFeat.BRepFeat_MakeDPrism_swiginit(self, _BRepFeat.new_BRepFeat_MakeDPrism(*args))
    BossEdges = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeDPrism_BossEdges)
    Init = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeDPrism_Init)
    LatEdges = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeDPrism_LatEdges)
    Perform = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeDPrism_Perform)
    PerformFromEnd = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeDPrism_PerformFromEnd)
    PerformThruAll = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeDPrism_PerformThruAll)
    PerformUntilEnd = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeDPrism_PerformUntilEnd)
    PerformUntilHeight = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeDPrism_PerformUntilHeight)
    TopEdges = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeDPrism_TopEdges)

    __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
    Add = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeLinearForm_Add)

    def __init__(self, *args):
        r"""
        * initializes the linear form class
        	:rtype: 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.
        	:param Sbase:
        	:type Sbase: TopoDS_Shape
        	:param W:
        	:type W: TopoDS_Wire
        	:param P:
        	:type P: Geom_Plane
        	:param Direction:
        	:type Direction: gp_Vec
        	:param Direction1:
        	:type Direction1: gp_Vec
        	:param Fuse:
        	:type Fuse: int
        	:param Modify:
        	:type Modify: bool
        	:rtype: None
        """
        _BRepFeat.BRepFeat_MakeLinearForm_swiginit(self, _BRepFeat.new_BRepFeat_MakeLinearForm(*args))
    Init = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeLinearForm_Init)
    Perform = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeLinearForm_Perform)
    Propagate = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeLinearForm_Propagate)

    __repr__ = _dumps_object

    __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
    Add = _swig_new_instance_method(_BRepFeat.BRepFeat_MakePipe_Add)

    def __init__(self, *args):
        r"""
        * initializes the pipe class.
        	:rtype: 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.
        	:param Sbase:
        	:type Sbase: TopoDS_Shape
        	:param Pbase:
        	:type Pbase: TopoDS_Shape
        	:param Skface:
        	:type Skface: TopoDS_Face
        	:param Spine:
        	:type Spine: TopoDS_Wire
        	:param Fuse:
        	:type Fuse: int
        	:param Modify:
        	:type Modify: bool
        	:rtype: None
        """
        _BRepFeat.BRepFeat_MakePipe_swiginit(self, _BRepFeat.new_BRepFeat_MakePipe(*args))
    Init = _swig_new_instance_method(_BRepFeat.BRepFeat_MakePipe_Init)
    Perform = _swig_new_instance_method(_BRepFeat.BRepFeat_MakePipe_Perform)

    __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
    Add = _swig_new_instance_method(_BRepFeat.BRepFeat_MakePrism_Add)

    def __init__(self, *args):
        r"""
        * Builds a prism by projecting a wire along the face of a shape. Initializes the prism class.
        	:rtype: 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.
        	:param Sbase:
        	:type Sbase: TopoDS_Shape
        	:param Pbase:
        	:type Pbase: TopoDS_Shape
        	:param Skface:
        	:type Skface: TopoDS_Face
        	:param Direction:
        	:type Direction: gp_Dir
        	:param Fuse:
        	:type Fuse: int
        	:param Modify:
        	:type Modify: bool
        	:rtype: None
        """
        _BRepFeat.BRepFeat_MakePrism_swiginit(self, _BRepFeat.new_BRepFeat_MakePrism(*args))
    Init = _swig_new_instance_method(_BRepFeat.BRepFeat_MakePrism_Init)
    Perform = _swig_new_instance_method(_BRepFeat.BRepFeat_MakePrism_Perform)
    PerformFromEnd = _swig_new_instance_method(_BRepFeat.BRepFeat_MakePrism_PerformFromEnd)
    PerformThruAll = _swig_new_instance_method(_BRepFeat.BRepFeat_MakePrism_PerformThruAll)
    PerformUntilEnd = _swig_new_instance_method(_BRepFeat.BRepFeat_MakePrism_PerformUntilEnd)
    PerformUntilHeight = _swig_new_instance_method(_BRepFeat.BRepFeat_MakePrism_PerformUntilHeight)

    __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
    Add = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeRevol_Add)

    def __init__(self, *args):
        r"""
        * initializes the revolved shell class.
        	:rtype: 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.
        	:param Sbase:
        	:type Sbase: TopoDS_Shape
        	:param Pbase:
        	:type Pbase: TopoDS_Shape
        	:param Skface:
        	:type Skface: TopoDS_Face
        	:param Axis:
        	:type Axis: gp_Ax1
        	:param Fuse:
        	:type Fuse: int
        	:param Modify:
        	:type Modify: bool
        	:rtype: None
        """
        _BRepFeat.BRepFeat_MakeRevol_swiginit(self, _BRepFeat.new_BRepFeat_MakeRevol(*args))
    Init = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeRevol_Init)
    Perform = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeRevol_Perform)
    PerformThruAll = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeRevol_PerformThruAll)
    PerformUntilAngle = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeRevol_PerformUntilAngle)

    __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
    Add = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeRevolutionForm_Add)

    def __init__(self, *args):
        r"""
        * initializes the linear form class.
        	:rtype: 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.
        	:param Sbase:
        	:type Sbase: TopoDS_Shape
        	:param W:
        	:type W: TopoDS_Wire
        	:param Plane:
        	:type Plane: Geom_Plane
        	:param Axis:
        	:type Axis: gp_Ax1
        	:param Height1:
        	:type Height1: float
        	:param Height2:
        	:type Height2: float
        	:param Fuse:
        	:type Fuse: int
        	:param Sliding:
        	:type Sliding: bool
        	:rtype: None
        """
        _BRepFeat.BRepFeat_MakeRevolutionForm_swiginit(self, _BRepFeat.new_BRepFeat_MakeRevolutionForm(*args))
    Init = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeRevolutionForm_Init)
    Perform = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeRevolutionForm_Perform)
    Propagate = _swig_new_instance_method(_BRepFeat.BRepFeat_MakeRevolutionForm_Propagate)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepFeat.delete_BRepFeat_MakeRevolutionForm

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



