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

"""
BRepPrim module, see official documentation at
https://www.opencascade.com/doc/occt-7.4.0/refman/html/package_brepprim.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 _BRepPrim
else:
    import _BRepPrim

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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

# Register SwigPyIterator in _BRepPrim:
_BRepPrim.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.BRep
import OCC.Core.GeomAbs
import OCC.Core.Geom
import OCC.Core.TColgp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.Poly
import OCC.Core.TShort
import OCC.Core.Geom2d
BRepPrim_XMin = _BRepPrim.BRepPrim_XMin
BRepPrim_XMax = _BRepPrim.BRepPrim_XMax
BRepPrim_YMin = _BRepPrim.BRepPrim_YMin
BRepPrim_YMax = _BRepPrim.BRepPrim_YMax
BRepPrim_ZMin = _BRepPrim.BRepPrim_ZMin
BRepPrim_ZMax = _BRepPrim.BRepPrim_ZMax
class BRepPrim_Builder(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    AddEdgeVertex = _swig_new_instance_method(_BRepPrim.BRepPrim_Builder_AddEdgeVertex)
    AddFaceWire = _swig_new_instance_method(_BRepPrim.BRepPrim_Builder_AddFaceWire)
    AddShellFace = _swig_new_instance_method(_BRepPrim.BRepPrim_Builder_AddShellFace)
    AddWireEdge = _swig_new_instance_method(_BRepPrim.BRepPrim_Builder_AddWireEdge)

    def __init__(self, *args):
        r"""
        * Creates an empty, useless Builder. Necesseray for compilation.
        	:rtype: None* Creates from a Builder.
        	:param B:
        	:type B: BRep_Builder
        	:rtype: None
        """
        _BRepPrim.BRepPrim_Builder_swiginit(self, _BRepPrim.new_BRepPrim_Builder(*args))
    Builder = _swig_new_instance_method(_BRepPrim.BRepPrim_Builder_Builder)
    CompleteEdge = _swig_new_instance_method(_BRepPrim.BRepPrim_Builder_CompleteEdge)
    CompleteFace = _swig_new_instance_method(_BRepPrim.BRepPrim_Builder_CompleteFace)
    CompleteShell = _swig_new_instance_method(_BRepPrim.BRepPrim_Builder_CompleteShell)
    CompleteWire = _swig_new_instance_method(_BRepPrim.BRepPrim_Builder_CompleteWire)
    MakeDegeneratedEdge = _swig_new_instance_method(_BRepPrim.BRepPrim_Builder_MakeDegeneratedEdge)
    MakeEdge = _swig_new_instance_method(_BRepPrim.BRepPrim_Builder_MakeEdge)
    MakeFace = _swig_new_instance_method(_BRepPrim.BRepPrim_Builder_MakeFace)
    MakeShell = _swig_new_instance_method(_BRepPrim.BRepPrim_Builder_MakeShell)
    MakeVertex = _swig_new_instance_method(_BRepPrim.BRepPrim_Builder_MakeVertex)
    MakeWire = _swig_new_instance_method(_BRepPrim.BRepPrim_Builder_MakeWire)
    ReverseFace = _swig_new_instance_method(_BRepPrim.BRepPrim_Builder_ReverseFace)
    SetPCurve = _swig_new_instance_method(_BRepPrim.BRepPrim_Builder_SetPCurve)
    SetParameters = _swig_new_instance_method(_BRepPrim.BRepPrim_Builder_SetParameters)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepPrim.delete_BRepPrim_Builder

# Register BRepPrim_Builder in _BRepPrim:
_BRepPrim.BRepPrim_Builder_swigregister(BRepPrim_Builder)

class BRepPrim_FaceBuilder(object):
    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:param B:
        	:type B: BRep_Builder
        	:param S:
        	:type S: Geom_Surface
        	:rtype: None:param B:
        	:type B: BRep_Builder
        	:param S:
        	:type S: Geom_Surface
        	:param UMin:
        	:type UMin: float
        	:param UMax:
        	:type UMax: float
        	:param VMin:
        	:type VMin: float
        	:param VMax:
        	:type VMax: float
        	:rtype: None
        """
        _BRepPrim.BRepPrim_FaceBuilder_swiginit(self, _BRepPrim.new_BRepPrim_FaceBuilder(*args))
    Edge = _swig_new_instance_method(_BRepPrim.BRepPrim_FaceBuilder_Edge)
    Face = _swig_new_instance_method(_BRepPrim.BRepPrim_FaceBuilder_Face)
    Init = _swig_new_instance_method(_BRepPrim.BRepPrim_FaceBuilder_Init)
    Vertex = _swig_new_instance_method(_BRepPrim.BRepPrim_FaceBuilder_Vertex)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepPrim.delete_BRepPrim_FaceBuilder

# Register BRepPrim_FaceBuilder in _BRepPrim:
_BRepPrim.BRepPrim_FaceBuilder_swigregister(BRepPrim_FaceBuilder)

class BRepPrim_GWedge(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Axes = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_Axes)

    def __init__(self, *args):
        r"""
        * Creates a GWedge algorithm. <Axes> is the axis system for the primitive. //! XMin, YMin, ZMin are set to 0 XMax, YMax, ZMax are set to dx, dy, dz Z2Min = ZMin Z2Max = ZMax X2Min = XMin X2Max = XMax The result is a box dx,dy,dz should be positive
        	:param B:
        	:type B: BRepPrim_Builder
        	:param Axes:
        	:type Axes: gp_Ax2
        	:param dx:
        	:type dx: float
        	:param dy:
        	:type dy: float
        	:param dz:
        	:type dz: float
        	:rtype: None* Creates a GWedge primitive. <Axes> is the axis system for the primitive. //! XMin, YMin, ZMin are set to 0 XMax, YMax, ZMax are set to dx, dy, dz Z2Min = ZMin Z2Max = ZMax X2Min = ltx X2Max = ltx The result is a STEP right angular wedge dx,dy,dz should be positive ltx should not be negative
        	:param B:
        	:type B: BRepPrim_Builder
        	:param Axes:
        	:type Axes: gp_Ax2
        	:param dx:
        	:type dx: float
        	:param dy:
        	:type dy: float
        	:param dz:
        	:type dz: float
        	:param ltx:
        	:type ltx: float
        	:rtype: None* Create a GWedge primitive. <Axes> is the axis system for the primitive. //! all the fields are set to the corresponding value XYZMax - XYZMin should be positive ZX2Max - ZX2Min should not be negative
        	:param B:
        	:type B: BRepPrim_Builder
        	:param Axes:
        	:type Axes: gp_Ax2
        	:param xmin:
        	:type xmin: float
        	:param ymin:
        	:type ymin: float
        	:param zmin:
        	:type zmin: float
        	:param z2min:
        	:type z2min: float
        	:param x2min:
        	:type x2min: float
        	:param xmax:
        	:type xmax: float
        	:param ymax:
        	:type ymax: float
        	:param zmax:
        	:type zmax: float
        	:param z2max:
        	:type z2max: float
        	:param x2max:
        	:type x2max: float
        	:rtype: None
        """
        _BRepPrim.BRepPrim_GWedge_swiginit(self, _BRepPrim.new_BRepPrim_GWedge(*args))
    Close = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_Close)
    Edge = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_Edge)
    Face = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_Face)
    GetX2Max = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_GetX2Max)
    GetX2Min = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_GetX2Min)
    GetXMax = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_GetXMax)
    GetXMin = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_GetXMin)
    GetYMax = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_GetYMax)
    GetYMin = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_GetYMin)
    GetZ2Max = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_GetZ2Max)
    GetZ2Min = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_GetZ2Min)
    GetZMax = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_GetZMax)
    GetZMin = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_GetZMin)
    HasEdge = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_HasEdge)
    HasFace = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_HasFace)
    HasVertex = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_HasVertex)
    HasWire = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_HasWire)
    IsInfinite = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_IsInfinite)
    Line = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_Line)
    Open = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_Open)
    Plane = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_Plane)
    Point = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_Point)
    Shell = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_Shell)
    Vertex = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_Vertex)
    Wire = _swig_new_instance_method(_BRepPrim.BRepPrim_GWedge_Wire)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepPrim.delete_BRepPrim_GWedge

# Register BRepPrim_GWedge in _BRepPrim:
_BRepPrim.BRepPrim_GWedge_swigregister(BRepPrim_GWedge)

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

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr
    Angle = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_Angle)
    Axes = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_Axes)
    AxisBottomVertex = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_AxisBottomVertex)
    AxisEdge = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_AxisEdge)
    AxisEndWire = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_AxisEndWire)
    AxisStartWire = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_AxisStartWire)
    AxisTopVertex = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_AxisTopVertex)
    BottomEdge = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_BottomEdge)
    BottomEndVertex = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_BottomEndVertex)
    BottomFace = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_BottomFace)
    BottomStartVertex = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_BottomStartVertex)
    BottomWire = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_BottomWire)
    EndBottomEdge = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_EndBottomEdge)
    EndEdge = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_EndEdge)
    EndFace = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_EndFace)
    EndTopEdge = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_EndTopEdge)
    EndWire = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_EndWire)
    HasBottom = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_HasBottom)
    HasSides = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_HasSides)
    HasTop = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_HasTop)
    LateralEndWire = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_LateralEndWire)
    LateralFace = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_LateralFace)
    LateralStartWire = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_LateralStartWire)
    LateralWire = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_LateralWire)
    MakeEmptyLateralFace = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_MakeEmptyLateralFace)
    MakeEmptyMeridianEdge = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_MakeEmptyMeridianEdge)
    MeridianClosed = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_MeridianClosed)
    MeridianOnAxis = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_MeridianOnAxis)
    MeridianValue = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_MeridianValue)
    SetMeridianOffset = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_SetMeridianOffset)
    SetMeridianPCurve = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_SetMeridianPCurve)
    Shell = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_Shell)
    StartBottomEdge = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_StartBottomEdge)
    StartEdge = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_StartEdge)
    StartFace = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_StartFace)
    StartTopEdge = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_StartTopEdge)
    StartWire = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_StartWire)
    TopEdge = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_TopEdge)
    TopEndVertex = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_TopEndVertex)
    TopFace = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_TopFace)
    TopStartVertex = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_TopStartVertex)
    TopWire = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_TopWire)
    VMax = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_VMax)
    VMaxInfinite = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_VMaxInfinite)
    VMin = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_VMin)
    VMinInfinite = _swig_new_instance_method(_BRepPrim.BRepPrim_OneAxis_VMinInfinite)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepPrim.delete_BRepPrim_OneAxis

# Register BRepPrim_OneAxis in _BRepPrim:
_BRepPrim.BRepPrim_OneAxis_swigregister(BRepPrim_OneAxis)

class BRepPrim_Revolution(BRepPrim_OneAxis):
    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"""
        * Create a revolution body <M> is the meridian nd must be in the XZ plane of <A>. <PM> is the meridian in the XZ plane.
        	:param A:
        	:type A: gp_Ax2
        	:param VMin:
        	:type VMin: float
        	:param VMax:
        	:type VMax: float
        	:param M:
        	:type M: Geom_Curve
        	:param PM:
        	:type PM: Geom2d_Curve
        	:rtype: None
        """
        _BRepPrim.BRepPrim_Revolution_swiginit(self, _BRepPrim.new_BRepPrim_Revolution(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepPrim.delete_BRepPrim_Revolution

# Register BRepPrim_Revolution in _BRepPrim:
_BRepPrim.BRepPrim_Revolution_swigregister(BRepPrim_Revolution)

class BRepPrim_Wedge(BRepPrim_GWedge):
    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"""
        * Creates a Wedge algorithm. <Axes> is the axis system for the primitive. //! XMin, YMin, ZMin are set to 0 XMax, YMax, ZMax are set to dx, dy, dz Z2Min = ZMin Z2Max = ZMax X2Min = XMin X2Max = XMax The result is a box dx,dy,dz should be positive
        	:param Axes:
        	:type Axes: gp_Ax2
        	:param dx:
        	:type dx: float
        	:param dy:
        	:type dy: float
        	:param dz:
        	:type dz: float
        	:rtype: None* Creates a Wedge primitive. <Axes> is the axis system for the primitive. //! XMin, YMin, ZMin are set to 0 XMax, YMax, ZMax are set to dx, dy, dz Z2Min = ZMin Z2Max = ZMax X2Min = ltx X2Max = ltx The result is a STEP right angular wedge dx,dy,dz should be positive ltx should not be negative
        	:param Axes:
        	:type Axes: gp_Ax2
        	:param dx:
        	:type dx: float
        	:param dy:
        	:type dy: float
        	:param dz:
        	:type dz: float
        	:param ltx:
        	:type ltx: float
        	:rtype: None* Create a Wedge primitive. <Axes> is the axis system for the primitive. //! all the fields are set to the corresponding value XYZMax - XYZMin should be positive ZX2Max - ZX2Min should not be negative
        	:param Axes:
        	:type Axes: gp_Ax2
        	:param xmin:
        	:type xmin: float
        	:param ymin:
        	:type ymin: float
        	:param zmin:
        	:type zmin: float
        	:param z2min:
        	:type z2min: float
        	:param x2min:
        	:type x2min: float
        	:param xmax:
        	:type xmax: float
        	:param ymax:
        	:type ymax: float
        	:param zmax:
        	:type zmax: float
        	:param z2max:
        	:type z2max: float
        	:param x2max:
        	:type x2max: float
        	:rtype: None
        """
        _BRepPrim.BRepPrim_Wedge_swiginit(self, _BRepPrim.new_BRepPrim_Wedge(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepPrim.delete_BRepPrim_Wedge

# Register BRepPrim_Wedge in _BRepPrim:
_BRepPrim.BRepPrim_Wedge_swigregister(BRepPrim_Wedge)

class BRepPrim_Cone(BRepPrim_Revolution):
    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"""
        * the STEP definition Angle = semi-angle of the cone Position : the coordinate system Height : height of the cone. Radius : radius of truncated face at z = 0 //! The apex is on z < 0 //! Errors : Height < Resolution Angle < Resolution / Height Angle > PI/2 - Resolution / Height
        	:param Angle:
        	:type Angle: float
        	:param Position:
        	:type Position: gp_Ax2
        	:param Height:
        	:type Height: float
        	:param Radius: default value is 0
        	:type Radius: float
        	:rtype: None* infinite cone at origin on Z negative
        	:param Angle:
        	:type Angle: float
        	:rtype: None* infinite cone at Apex on Z negative
        	:param Angle:
        	:type Angle: float
        	:param Apex:
        	:type Apex: gp_Pnt
        	:rtype: None* infinite cone with Axes
        	:param Angle:
        	:type Angle: float
        	:param Axes:
        	:type Axes: gp_Ax2
        	:rtype: None* create a Cone at origin on Z axis, of height H, radius R1 at Z = 0, R2 at Z = H, X is the origin of angles. If R1 or R2 is 0 there is an apex. Otherwise, it is a truncated cone. //! Error : R1 and R2 < Resolution R1 or R2 negative Abs(R1-R2) < Resolution H < Resolution H negative
        	:param R1:
        	:type R1: float
        	:param R2:
        	:type R2: float
        	:param H:
        	:type H: float
        	:rtype: None* same as above but at a given point
        	:param Center:
        	:type Center: gp_Pnt
        	:param R1:
        	:type R1: float
        	:param R2:
        	:type R2: float
        	:param H:
        	:type H: float
        	:rtype: None* same as above with given axes system.
        	:param Axes:
        	:type Axes: gp_Ax2
        	:param R1:
        	:type R1: float
        	:param R2:
        	:type R2: float
        	:param H:
        	:type H: float
        	:rtype: None
        """
        _BRepPrim.BRepPrim_Cone_swiginit(self, _BRepPrim.new_BRepPrim_Cone(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepPrim.delete_BRepPrim_Cone

# Register BRepPrim_Cone in _BRepPrim:
_BRepPrim.BRepPrim_Cone_swigregister(BRepPrim_Cone)

class BRepPrim_Cylinder(BRepPrim_Revolution):
    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"""
        * the STEP definition Position : center of a Face and Axis Radius : radius of cylinder Height : distance between faces on positive side //! Errors : Height < Resolution Radius < Resolution
        	:param Position:
        	:type Position: gp_Ax2
        	:param Radius:
        	:type Radius: float
        	:param Height:
        	:type Height: float
        	:rtype: None* infinite Cylinder at origin on Z negative
        	:param Radius:
        	:type Radius: float
        	:rtype: None* infinite Cylinder at Center on Z negative
        	:param Center:
        	:type Center: gp_Pnt
        	:param Radius:
        	:type Radius: float
        	:rtype: None* infinite Cylinder at Axes on Z negative
        	:param Axes:
        	:type Axes: gp_Ax2
        	:param Radius:
        	:type Radius: float
        	:rtype: None* create a Cylinder at origin on Z axis, of height H and radius R Error : Radius < Resolution H < Resolution H negative
        	:param R:
        	:type R: float
        	:param H:
        	:type H: float
        	:rtype: None* same as above but at a given point
        	:param Center:
        	:type Center: gp_Pnt
        	:param R:
        	:type R: float
        	:param H:
        	:type H: float
        	:rtype: None
        """
        _BRepPrim.BRepPrim_Cylinder_swiginit(self, _BRepPrim.new_BRepPrim_Cylinder(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepPrim.delete_BRepPrim_Cylinder

# Register BRepPrim_Cylinder in _BRepPrim:
_BRepPrim.BRepPrim_Cylinder_swigregister(BRepPrim_Cylinder)

class BRepPrim_Sphere(BRepPrim_Revolution):
    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"""
        * Creates a Sphere at origin with Radius. The axes of the sphere are the reference axes. An error is raised if the radius is < Resolution.
        	:param Radius:
        	:type Radius: float
        	:rtype: None* Creates a Sphere with Center and Radius. Axes are the referrence axes. This is the STEP constructor.
        	:param Center:
        	:type Center: gp_Pnt
        	:param Radius:
        	:type Radius: float
        	:rtype: None* Creates a sphere with given axes system.
        	:param Axes:
        	:type Axes: gp_Ax2
        	:param Radius:
        	:type Radius: float
        	:rtype: None
        """
        _BRepPrim.BRepPrim_Sphere_swiginit(self, _BRepPrim.new_BRepPrim_Sphere(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepPrim.delete_BRepPrim_Sphere

# Register BRepPrim_Sphere in _BRepPrim:
_BRepPrim.BRepPrim_Sphere_swigregister(BRepPrim_Sphere)

class BRepPrim_Torus(BRepPrim_Revolution):
    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"""
        * the STEP definition Position : center and axes Major, Minor : Radii //! Errors : Major < Resolution Minor < Resolution
        	:param Position:
        	:type Position: gp_Ax2
        	:param Major:
        	:type Major: float
        	:param Minor:
        	:type Minor: float
        	:rtype: None* Torus centered at origin
        	:param Major:
        	:type Major: float
        	:param Minor:
        	:type Minor: float
        	:rtype: None* Torus at Center
        	:param Center:
        	:type Center: gp_Pnt
        	:param Major:
        	:type Major: float
        	:param Minor:
        	:type Minor: float
        	:rtype: None
        """
        _BRepPrim.BRepPrim_Torus_swiginit(self, _BRepPrim.new_BRepPrim_Torus(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepPrim.delete_BRepPrim_Torus

# Register BRepPrim_Torus in _BRepPrim:
_BRepPrim.BRepPrim_Torus_swigregister(BRepPrim_Torus)



