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

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

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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

# Register SwigPyIterator in _GCE2d:
_GCE2d.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.gp
import OCC.Core.Geom2d
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.gce
class GCE2d_MakeMirror(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"""
        :param Point:
        	:type Point: gp_Pnt2d
        	:rtype: None:param Axis:
        	:type Axis: gp_Ax2d
        	:rtype: None:param Line:
        	:type Line: gp_Lin2d
        	:rtype: None* Make a symetry transformation af axis defined by <Point> and <Direc>.
        	:param Point:
        	:type Point: gp_Pnt2d
        	:param Direc:
        	:type Direc: gp_Dir2d
        	:rtype: None
        """
        _GCE2d.GCE2d_MakeMirror_swiginit(self, _GCE2d.new_GCE2d_MakeMirror(*args))
    Value = _swig_new_instance_method(_GCE2d.GCE2d_MakeMirror_Value)

    __repr__ = _dumps_object

    __swig_destroy__ = _GCE2d.delete_GCE2d_MakeMirror

# Register GCE2d_MakeMirror in _GCE2d:
_GCE2d.GCE2d_MakeMirror_swigregister(GCE2d_MakeMirror)

class GCE2d_MakeRotation(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"""
        * Constructs a rotation through angle Angle about the center Point.
        	:param Point:
        	:type Point: gp_Pnt2d
        	:param Angle:
        	:type Angle: float
        	:rtype: None
        """
        _GCE2d.GCE2d_MakeRotation_swiginit(self, _GCE2d.new_GCE2d_MakeRotation(*args))
    Value = _swig_new_instance_method(_GCE2d.GCE2d_MakeRotation_Value)

    __repr__ = _dumps_object

    __swig_destroy__ = _GCE2d.delete_GCE2d_MakeRotation

# Register GCE2d_MakeRotation in _GCE2d:
_GCE2d.GCE2d_MakeRotation_swigregister(GCE2d_MakeRotation)

class GCE2d_MakeScale(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"""
        * Constructs a scaling transformation with - Point as the center of the transformation, and - Scale as the scale factor.
        	:param Point:
        	:type Point: gp_Pnt2d
        	:param Scale:
        	:type Scale: float
        	:rtype: None
        """
        _GCE2d.GCE2d_MakeScale_swiginit(self, _GCE2d.new_GCE2d_MakeScale(*args))
    Value = _swig_new_instance_method(_GCE2d.GCE2d_MakeScale_Value)

    __repr__ = _dumps_object

    __swig_destroy__ = _GCE2d.delete_GCE2d_MakeScale

# Register GCE2d_MakeScale in _GCE2d:
_GCE2d.GCE2d_MakeScale_swigregister(GCE2d_MakeScale)

class GCE2d_MakeTranslation(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"""
        * Constructs a translation along the vector Vect.
        	:param Vect:
        	:type Vect: gp_Vec2d
        	:rtype: None* Constructs a translation along the vector (Point1,Point2) defined from the point Point1 to the point Point2.
        	:param Point1:
        	:type Point1: gp_Pnt2d
        	:param Point2:
        	:type Point2: gp_Pnt2d
        	:rtype: None
        """
        _GCE2d.GCE2d_MakeTranslation_swiginit(self, _GCE2d.new_GCE2d_MakeTranslation(*args))
    Value = _swig_new_instance_method(_GCE2d.GCE2d_MakeTranslation_Value)

    __repr__ = _dumps_object

    __swig_destroy__ = _GCE2d.delete_GCE2d_MakeTranslation

# Register GCE2d_MakeTranslation in _GCE2d:
_GCE2d.GCE2d_MakeTranslation_swigregister(GCE2d_MakeTranslation)

class GCE2d_Root(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    IsDone = _swig_new_instance_method(_GCE2d.GCE2d_Root_IsDone)
    Status = _swig_new_instance_method(_GCE2d.GCE2d_Root_Status)

    __repr__ = _dumps_object


    def __init__(self):
        _GCE2d.GCE2d_Root_swiginit(self, _GCE2d.new_GCE2d_Root())
    __swig_destroy__ = _GCE2d.delete_GCE2d_Root

# Register GCE2d_Root in _GCE2d:
_GCE2d.GCE2d_Root_swigregister(GCE2d_Root)

class GCE2d_MakeArcOfCircle(GCE2d_Root):
    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"""
        * Makes an arc of circle (TrimmedCurve from Geom2d) from a circle between two parameters Alpha1 and Alpha2. The two parameters are angles. The parameters are in radians.
        	:param Circ:
        	:type Circ: gp_Circ2d
        	:param Alpha1:
        	:type Alpha1: float
        	:param Alpha2:
        	:type Alpha2: float
        	:param Sense: default value is Standard_True
        	:type Sense: bool
        	:rtype: None* Makes an arc of circle (TrimmedCurve from Geom2d) from a circle between point <P> and the parameter Alpha. Alpha is given in radians.
        	:param Circ:
        	:type Circ: gp_Circ2d
        	:param P:
        	:type P: gp_Pnt2d
        	:param Alpha:
        	:type Alpha: float
        	:param Sense: default value is Standard_True
        	:type Sense: bool
        	:rtype: None* Makes an arc of circle (TrimmedCurve from Geom2d) from a circle between two points P1 and P2.
        	:param Circ:
        	:type Circ: gp_Circ2d
        	:param P1:
        	:type P1: gp_Pnt2d
        	:param P2:
        	:type P2: gp_Pnt2d
        	:param Sense: default value is Standard_True
        	:type Sense: bool
        	:rtype: None* Makes an arc of circle (TrimmedCurve from Geom2d) from three points P1,P2,P3 between two points P1 and P3, and passing through the point P2.
        	:param P1:
        	:type P1: gp_Pnt2d
        	:param P2:
        	:type P2: gp_Pnt2d
        	:param P3:
        	:type P3: gp_Pnt2d
        	:rtype: None* Makes an arc of circle (TrimmedCurve from Geom2d) from two points P1,P2 and the tangente to the solution at the point P1.
        	:param P1:
        	:type P1: gp_Pnt2d
        	:param V:
        	:type V: gp_Vec2d
        	:param P2:
        	:type P2: gp_Pnt2d
        	:rtype: None
        """
        _GCE2d.GCE2d_MakeArcOfCircle_swiginit(self, _GCE2d.new_GCE2d_MakeArcOfCircle(*args))
    Value = _swig_new_instance_method(_GCE2d.GCE2d_MakeArcOfCircle_Value)

    __repr__ = _dumps_object

    __swig_destroy__ = _GCE2d.delete_GCE2d_MakeArcOfCircle

# Register GCE2d_MakeArcOfCircle in _GCE2d:
_GCE2d.GCE2d_MakeArcOfCircle_swigregister(GCE2d_MakeArcOfCircle)

class GCE2d_MakeArcOfEllipse(GCE2d_Root):
    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"""
        * Make an arc of Ellipse (TrimmedCurve from Geom2d) from a Ellipse between two parameters Alpha1 and Alpha2.
        	:param Elips:
        	:type Elips: gp_Elips2d
        	:param Alpha1:
        	:type Alpha1: float
        	:param Alpha2:
        	:type Alpha2: float
        	:param Sense: default value is Standard_True
        	:type Sense: bool
        	:rtype: None* Make an arc of Ellipse (TrimmedCurve from Geom2d) from a Ellipse between point <P> and the parameter Alpha.
        	:param Elips:
        	:type Elips: gp_Elips2d
        	:param P:
        	:type P: gp_Pnt2d
        	:param Alpha:
        	:type Alpha: float
        	:param Sense: default value is Standard_True
        	:type Sense: bool
        	:rtype: None* Make an arc of Ellipse (TrimmedCurve from Geom2d) from a Ellipse between two points P1 and P2. Please, note: The orientation of the arc is: - the trigonometric sense if Sense is not defined or is true (default value), or - the opposite sense if Sense is false. - Alpha1, Alpha2 and Alpha are angle values, given in radians. - IsDone always returns true.
        	:param Elips:
        	:type Elips: gp_Elips2d
        	:param P1:
        	:type P1: gp_Pnt2d
        	:param P2:
        	:type P2: gp_Pnt2d
        	:param Sense: default value is Standard_True
        	:type Sense: bool
        	:rtype: None
        """
        _GCE2d.GCE2d_MakeArcOfEllipse_swiginit(self, _GCE2d.new_GCE2d_MakeArcOfEllipse(*args))
    Value = _swig_new_instance_method(_GCE2d.GCE2d_MakeArcOfEllipse_Value)

    __repr__ = _dumps_object

    __swig_destroy__ = _GCE2d.delete_GCE2d_MakeArcOfEllipse

# Register GCE2d_MakeArcOfEllipse in _GCE2d:
_GCE2d.GCE2d_MakeArcOfEllipse_swigregister(GCE2d_MakeArcOfEllipse)

class GCE2d_MakeArcOfHyperbola(GCE2d_Root):
    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"""
        * Makes an arc of Hyperbola (TrimmedCurve from Geom2d) from a Hyperbola between two parameters Alpha1 and Alpha2.
        	:param Hypr:
        	:type Hypr: gp_Hypr2d
        	:param Alpha1:
        	:type Alpha1: float
        	:param Alpha2:
        	:type Alpha2: float
        	:param Sense: default value is Standard_True
        	:type Sense: bool
        	:rtype: None* Makes an arc of Hyperbola (TrimmedCurve from Geom2d) from a Hyperbola between point <P> and the parameter Alpha.
        	:param Hypr:
        	:type Hypr: gp_Hypr2d
        	:param P:
        	:type P: gp_Pnt2d
        	:param Alpha:
        	:type Alpha: float
        	:param Sense: default value is Standard_True
        	:type Sense: bool
        	:rtype: None* Makes an arc of Hyperbola (TrimmedCurve from Geom2d) from a Hyperbola between two points P1 and P2. Note: the orientation of the arc of hyperbola is: - the trigonometric sense if Sense is not defined or is true (default value), or - the opposite sense if Sense is false. - IsDone always returns true.
        	:param Hypr:
        	:type Hypr: gp_Hypr2d
        	:param P1:
        	:type P1: gp_Pnt2d
        	:param P2:
        	:type P2: gp_Pnt2d
        	:param Sense: default value is Standard_True
        	:type Sense: bool
        	:rtype: None
        """
        _GCE2d.GCE2d_MakeArcOfHyperbola_swiginit(self, _GCE2d.new_GCE2d_MakeArcOfHyperbola(*args))
    Value = _swig_new_instance_method(_GCE2d.GCE2d_MakeArcOfHyperbola_Value)

    __repr__ = _dumps_object

    __swig_destroy__ = _GCE2d.delete_GCE2d_MakeArcOfHyperbola

# Register GCE2d_MakeArcOfHyperbola in _GCE2d:
_GCE2d.GCE2d_MakeArcOfHyperbola_swigregister(GCE2d_MakeArcOfHyperbola)

class GCE2d_MakeArcOfParabola(GCE2d_Root):
    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"""
        * Make an arc of Parabola (TrimmedCurve from Geom2d) from a Parabola between two parameters Alpha1 and Alpha2.
        	:param Parab:
        	:type Parab: gp_Parab2d
        	:param Alpha1:
        	:type Alpha1: float
        	:param Alpha2:
        	:type Alpha2: float
        	:param Sense: default value is Standard_True
        	:type Sense: bool
        	:rtype: None* Make an arc of Parabola (TrimmedCurve from Geom2d) from a Parabola between point <P> and the parameter Alpha.
        	:param Parab:
        	:type Parab: gp_Parab2d
        	:param P:
        	:type P: gp_Pnt2d
        	:param Alpha:
        	:type Alpha: float
        	:param Sense: default value is Standard_True
        	:type Sense: bool
        	:rtype: None* Make an arc of Parabola (TrimmedCurve from Geom2d) from a Parabola between two points P1 and P2. Please, note: the orientation of the arc of parabola is: - the trigonometric sense if Sense is not defined or is true (default value), or - the opposite sense if Sense is false. - IsDone always returns true.
        	:param Parab:
        	:type Parab: gp_Parab2d
        	:param P1:
        	:type P1: gp_Pnt2d
        	:param P2:
        	:type P2: gp_Pnt2d
        	:param Sense: default value is Standard_True
        	:type Sense: bool
        	:rtype: None
        """
        _GCE2d.GCE2d_MakeArcOfParabola_swiginit(self, _GCE2d.new_GCE2d_MakeArcOfParabola(*args))
    Value = _swig_new_instance_method(_GCE2d.GCE2d_MakeArcOfParabola_Value)

    __repr__ = _dumps_object

    __swig_destroy__ = _GCE2d.delete_GCE2d_MakeArcOfParabola

# Register GCE2d_MakeArcOfParabola in _GCE2d:
_GCE2d.GCE2d_MakeArcOfParabola_swigregister(GCE2d_MakeArcOfParabola)

class GCE2d_MakeCircle(GCE2d_Root):
    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 circle from a non persistent one.
        	:param C:
        	:type C: gp_Circ2d
        	:rtype: None* A is the 'XAxis' of the circle which defines the origin of parametrization. It is not forbidden to create a circle with Radius = 0.0 The status is 'NegativeRadius' if Radius < 0.
        	:param A:
        	:type A: gp_Ax2d
        	:param Radius:
        	:type Radius: float
        	:param Sense: default value is Standard_True
        	:type Sense: bool
        	:rtype: None* A is the local coordinate system of the circle which defines the origin of parametrization. It is not forbidden to create a circle with Radius = 0.0 The status is 'NegativeRadius' if Radius < 0.
        	:param A:
        	:type A: gp_Ax22d
        	:param Radius:
        	:type Radius: float
        	:rtype: None* Make a Circle from Geom2d <TheCirc> parallel to another Circ <Circ> with a distance <Dist>. If Dist is greater than zero the result is enclosing the circle <Circ>, else the result is enclosed by the circle <Circ>.
        	:param Circ:
        	:type Circ: gp_Circ2d
        	:param Dist:
        	:type Dist: float
        	:rtype: None* Make a Circle from Geom2d <TheCirc> parallel to another Circ <Circ> and passing through a Pnt <Point>.
        	:param Circ:
        	:type Circ: gp_Circ2d
        	:param Point:
        	:type Point: gp_Pnt2d
        	:rtype: None* Make a Circ from gp <TheCirc> passing through 3 Pnt2d <P1>,<P2>,<P3>.
        	:param P1:
        	:type P1: gp_Pnt2d
        	:param P2:
        	:type P2: gp_Pnt2d
        	:param P3:
        	:type P3: gp_Pnt2d
        	:rtype: None* Make a Circ from geom2d <TheCirc> by its center an radius.
        	:param P:
        	:type P: gp_Pnt2d
        	:param Radius:
        	:type Radius: float
        	:param Sense: default value is Standard_True
        	:type Sense: bool
        	:rtype: None* Makes a Circle from geom2d <TheCirc> with its center <Center> and a point giving the radius. If Sense is true the local coordinate system of the solution is direct and non direct in the other case. Warning The MakeCircle class does not prevent the construction of a circle with a null radius. If an error occurs (that is, when IsDone returns false), the Status function returns: - gce_NegativeRadius if Radius is less than 0.0, or - gce_IntersectionError if points P1, P2 and P3 are collinear and the three are not coincident.
        	:param Center:
        	:type Center: gp_Pnt2d
        	:param Point:
        	:type Point: gp_Pnt2d
        	:param Sense: default value is Standard_True
        	:type Sense: bool
        	:rtype: None
        """
        _GCE2d.GCE2d_MakeCircle_swiginit(self, _GCE2d.new_GCE2d_MakeCircle(*args))
    Value = _swig_new_instance_method(_GCE2d.GCE2d_MakeCircle_Value)

    __repr__ = _dumps_object

    __swig_destroy__ = _GCE2d.delete_GCE2d_MakeCircle

# Register GCE2d_MakeCircle in _GCE2d:
_GCE2d.GCE2d_MakeCircle_swigregister(GCE2d_MakeCircle)

class GCE2d_MakeEllipse(GCE2d_Root):
    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 an ellipse from a non persistent one from package gp
        	:param E:
        	:type E: gp_Elips2d
        	:rtype: None* MajorAxis is the local coordinate system of the ellipse. It is the 'XAxis'. The minor axis is the YAxis of the ellipse. Sense give the sense of parametrization of the Ellipse. It is not forbidden to create an ellipse with MajorRadius = MinorRadius. The status is 'InvertRadius' if MajorRadius < MinorRadius or 'NegativeRadius' if MinorRadius < 0.
        	:param MajorAxis:
        	:type MajorAxis: gp_Ax2d
        	:param MajorRadius:
        	:type MajorRadius: float
        	:param MinorRadius:
        	:type MinorRadius: float
        	:param Sense: default value is Standard_True
        	:type Sense: bool
        	:rtype: None* Axis is the local coordinate system of the ellipse. It is not forbidden to create an ellipse with MajorRadius = MinorRadius. The status is 'InvertRadius' if MajorRadius < MinorRadius or 'NegativeRadius' if MinorRadius < 0.
        	:param Axis:
        	:type Axis: gp_Ax22d
        	:param MajorRadius:
        	:type MajorRadius: float
        	:param MinorRadius:
        	:type MinorRadius: float
        	:rtype: None* Make an Ellipse centered on the point Center, where - the major axis of the ellipse is defined by Center and S1, - its major radius is the distance between Center and S1, and - its minor radius is the distance between S2 and the major axis. The implicit orientation of the ellipse is: - the sense defined by Axis or E, - the sense defined by points Center, S1 and S2, - the trigonometric sense if Sense is not given or is true, or - the opposite sense if Sense is false.
        	:param S1:
        	:type S1: gp_Pnt2d
        	:param S2:
        	:type S2: gp_Pnt2d
        	:param Center:
        	:type Center: gp_Pnt2d
        	:rtype: None
        """
        _GCE2d.GCE2d_MakeEllipse_swiginit(self, _GCE2d.new_GCE2d_MakeEllipse(*args))
    Value = _swig_new_instance_method(_GCE2d.GCE2d_MakeEllipse_Value)

    __repr__ = _dumps_object

    __swig_destroy__ = _GCE2d.delete_GCE2d_MakeEllipse

# Register GCE2d_MakeEllipse in _GCE2d:
_GCE2d.GCE2d_MakeEllipse_swigregister(GCE2d_MakeEllipse)

class GCE2d_MakeHyperbola(GCE2d_Root):
    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 an Hyperbola from a non persistent one from package gp
        	:param H:
        	:type H: gp_Hypr2d
        	:rtype: None* MajorAxis is the 'XAxis' of the hyperbola. The major radius of the hyperbola is on this 'XAxis' and the minor radius is on the 'YAxis' of the hyperbola. The status is 'NegativeRadius' if MajorRadius < 0.0 or if MinorRadius < 0.0
        	:param MajorAxis:
        	:type MajorAxis: gp_Ax2d
        	:param MajorRadius:
        	:type MajorRadius: float
        	:param MinorRadius:
        	:type MinorRadius: float
        	:param Sense:
        	:type Sense: bool
        	:rtype: None* Axis is the local coordinate system of the hyperbola. The major radius of the hyperbola is on this 'XAxis' and the minor radius is on the 'YAxis' of the hyperbola. The status is 'NegativeRadius' if MajorRadius < 0.0 or if MinorRadius < 0.0
        	:param Axis:
        	:type Axis: gp_Ax22d
        	:param MajorRadius:
        	:type MajorRadius: float
        	:param MinorRadius:
        	:type MinorRadius: float
        	:rtype: None* Creates a hyperbol centered on the origin of the coordinate system Axis, with major and minor radii MajorRadius and MinorRadius, where the major axis is the 'X Axis' of Axis (Axis is the local coordinate system of the hyperbola). The implicit orientation of the ellipse is: - the sense defined by Axis or H, - the sense defined by points Center, S1 and S2, - the trigonometric sense if Sense is not given or is true, or - the opposite sense if Sense is false. Warning If an error occurs (that is, when IsDone returns false), the Status function returns: - gce_NegativeRadius if MajorRadius or MinorRadius is less than 0.0, or - gce_InvertAxis if the major radius defined by Center and S1 is less than the minor radius defined by Center, S1 and S2.Make an Hyperbola with its center and two apexes.
        	:param S1:
        	:type S1: gp_Pnt2d
        	:param S2:
        	:type S2: gp_Pnt2d
        	:param Center:
        	:type Center: gp_Pnt2d
        	:rtype: None
        """
        _GCE2d.GCE2d_MakeHyperbola_swiginit(self, _GCE2d.new_GCE2d_MakeHyperbola(*args))
    Value = _swig_new_instance_method(_GCE2d.GCE2d_MakeHyperbola_Value)

    __repr__ = _dumps_object

    __swig_destroy__ = _GCE2d.delete_GCE2d_MakeHyperbola

# Register GCE2d_MakeHyperbola in _GCE2d:
_GCE2d.GCE2d_MakeHyperbola_swigregister(GCE2d_MakeHyperbola)

class GCE2d_MakeLine(GCE2d_Root):
    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 line located in 2D space with the axis placement A. The Location of A is the origin of the line.
        	:param A:
        	:type A: gp_Ax2d
        	:rtype: None* Creates a line from a non persistent line from package gp.
        	:param L:
        	:type L: gp_Lin2d
        	:rtype: None* P is the origin and V is the direction of the line.
        	:param P:
        	:type P: gp_Pnt2d
        	:param V:
        	:type V: gp_Dir2d
        	:rtype: None* Make a Line from Geom2d <TheLin> parallel to another Lin <Lin> and passing through a Pnt <Point>.
        	:param Lin:
        	:type Lin: gp_Lin2d
        	:param Point:
        	:type Point: gp_Pnt2d
        	:rtype: None* Make a Line from Geom2d <TheLin> parallel to another Lin <Lin> at a distance <Dist>.
        	:param Lin:
        	:type Lin: gp_Lin2d
        	:param Dist:
        	:type Dist: float
        	:rtype: None* Make a Line from Geom2d <TheLin> passing through 2 Pnt <P1>,<P2>. It returns false if <p1> and <P2> are confused. Warning If points P1 and P2 coincident (that is, when IsDone returns false), the Status function returns gce_ConfusedPoints.
        	:param P1:
        	:type P1: gp_Pnt2d
        	:param P2:
        	:type P2: gp_Pnt2d
        	:rtype: None
        """
        _GCE2d.GCE2d_MakeLine_swiginit(self, _GCE2d.new_GCE2d_MakeLine(*args))
    Value = _swig_new_instance_method(_GCE2d.GCE2d_MakeLine_Value)

    __repr__ = _dumps_object

    __swig_destroy__ = _GCE2d.delete_GCE2d_MakeLine

# Register GCE2d_MakeLine in _GCE2d:
_GCE2d.GCE2d_MakeLine_swigregister(GCE2d_MakeLine)

class GCE2d_MakeParabola(GCE2d_Root):
    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 parabola from a non persistent one.
        	:param Prb:
        	:type Prb: gp_Parab2d
        	:rtype: None* Creates a parabola with its local coordinate system and it's focal length 'Focal'. The 'Location' point of 'Axis' is the vertex of the parabola Status is 'NegativeFocusLength' if Focal < 0.0
        	:param Axis:
        	:type Axis: gp_Ax22d
        	:param Focal:
        	:type Focal: float
        	:rtype: None* Creates a parabola with its 'MirrorAxis' and it's focal length 'Focal'. MirrorAxis is the axis of symmetry of the curve, it is the 'XAxis'. The 'YAxis' is parallel to the directrix of the parabola. The 'Location' point of 'MirrorAxis' is the vertex of the parabola Status is 'NegativeFocusLength' if Focal < 0.0
        	:param MirrorAxis:
        	:type MirrorAxis: gp_Ax2d
        	:param Focal:
        	:type Focal: float
        	:param Sense:
        	:type Sense: bool
        	:rtype: None* D is the directrix of the parabola and F the focus point. The symmetry axis 'XAxis' of the parabola is normal to the directrix and pass through the focus point F, but its 'Location' point is the vertex of the parabola. The 'YAxis' of the parabola is parallel to D and its 'Location' point is the vertex of the parabola.
        	:param D:
        	:type D: gp_Ax2d
        	:param F:
        	:type F: gp_Pnt2d
        	:param Sense: default value is Standard_True
        	:type Sense: bool
        	:rtype: None* Make a parabola with focal point S1 and center O The branch of the parabola returned will have <S1> as focal point The implicit orientation of the parabola is: - the same one as the parabola Prb, - the sense defined by the coordinate system Axis or the directrix D, - the trigonometric sense if Sense is not given or is true, or - the opposite sense if Sense is false. Warning The MakeParabola class does not prevent the construction of a parabola with a null focal distance. If an error occurs (that is, when IsDone returns false), the Status function returns: - gce_NullFocusLength if Focal is less than 0.0, or - gce_NullAxis if points S1 and O are coincident.
        	:param S1:
        	:type S1: gp_Pnt2d
        	:param O:
        	:type O: gp_Pnt2d
        	:rtype: None
        """
        _GCE2d.GCE2d_MakeParabola_swiginit(self, _GCE2d.new_GCE2d_MakeParabola(*args))
    Value = _swig_new_instance_method(_GCE2d.GCE2d_MakeParabola_Value)

    __repr__ = _dumps_object

    __swig_destroy__ = _GCE2d.delete_GCE2d_MakeParabola

# Register GCE2d_MakeParabola in _GCE2d:
_GCE2d.GCE2d_MakeParabola_swigregister(GCE2d_MakeParabola)

class GCE2d_MakeSegment(GCE2d_Root):
    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"""
        * Make a segment of Line from the 2 points <P1> and <P2>. Status is 'ConfusedPoints' if <P1> and <P2> are confused.
        	:param P1:
        	:type P1: gp_Pnt2d
        	:param P2:
        	:type P2: gp_Pnt2d
        	:rtype: None* Make a segment of Line from the point <P1> with the direction <P> and ended by the projection of <P2> on the line <P1,V>. Status is 'ConfusedPoints' if <P1> and <P2> are confused.
        	:param P1:
        	:type P1: gp_Pnt2d
        	:param V:
        	:type V: gp_Dir2d
        	:param P2:
        	:type P2: gp_Pnt2d
        	:rtype: None* Make a segment of Line from the line <Line> between the two parameters U1 and U2. Status is 'SameParamters' if <U1> is equal <U2>.
        	:param Line:
        	:type Line: gp_Lin2d
        	:param U1:
        	:type U1: float
        	:param U2:
        	:type U2: float
        	:rtype: None* Make a segment of Line from the line <Line> between the point <Point> and the parameter Ulast. It returns NullObject if <U1> is equal <U2>.
        	:param Line:
        	:type Line: gp_Lin2d
        	:param Point:
        	:type Point: gp_Pnt2d
        	:param Ulast:
        	:type Ulast: float
        	:rtype: None* Make a segment of Line from the line <Line> between the two points <P1> and <P2>. It returns NullObject if <P1> and <P2> are confused. Warning If the points which limit the segment are coincident for given points or for the projection of given points on the line which supports the line segment (that is, when IsDone returns false), the Status function returns gce_ConfusedPoints. This warning only concerns the first two constructors.
        	:param Line:
        	:type Line: gp_Lin2d
        	:param P1:
        	:type P1: gp_Pnt2d
        	:param P2:
        	:type P2: gp_Pnt2d
        	:rtype: None
        """
        _GCE2d.GCE2d_MakeSegment_swiginit(self, _GCE2d.new_GCE2d_MakeSegment(*args))
    Value = _swig_new_instance_method(_GCE2d.GCE2d_MakeSegment_Value)

    __repr__ = _dumps_object

    __swig_destroy__ = _GCE2d.delete_GCE2d_MakeSegment

# Register GCE2d_MakeSegment in _GCE2d:
_GCE2d.GCE2d_MakeSegment_swigregister(GCE2d_MakeSegment)



