# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.4.1
#
# Do not make changes to this file unless you know what you are doing - modify
# the SWIG interface file instead.

"""
GccAna module, see official documentation at
https://dev.opencascade.org/doc/occt-7.9.0/refman/html/package_gccana.html
"""

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if getattr(globals().get("__spec__"), "parent", None) or __package__ or "." in __name__:
    from . import _GccAna
else:
    import _GccAna

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "this":
            set(self, name, value)
        elif name == "thisown":
            self.this.own(value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


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

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _GccAna.delete_SwigPyIterator

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _GccAna:
_GccAna.SwigPyIterator_swigregister(SwigPyIterator)

def _dumps_object(klass):
    """ Overwrite default string output for any wrapped object.
    By default, __repr__ method returns something like:
    <OCC.Core.TopoDS.TopoDS_Shape; proxy of <Swig Object of type 'TopoDS_Shape *' at 0x02BB0758> >
    This is too much verbose.
    We prefer :
    <class 'gp_Pnt'>
    or
    <class 'TopoDS_Shape'>
    """
    klass_name = str(klass.__class__).split(".")[3].split("'")[0]
    repr_string = "<class '" + klass_name + "'"
# for TopoDS_Shape, we also look for the base type
    if klass_name == "TopoDS_Shape":
        if klass.IsNull():
            repr_string += ": Null>"
            return repr_string
        st = klass.ShapeType()
        types = {OCC.Core.TopAbs.TopAbs_VERTEX: "Vertex",
                 OCC.Core.TopAbs.TopAbs_SOLID: "Solid",
                 OCC.Core.TopAbs.TopAbs_EDGE: "Edge",
                 OCC.Core.TopAbs.TopAbs_FACE: "Face",
                 OCC.Core.TopAbs.TopAbs_SHELL: "Shell",
                 OCC.Core.TopAbs.TopAbs_WIRE: "Wire",
                 OCC.Core.TopAbs.TopAbs_COMPOUND: "Compound",
                 OCC.Core.TopAbs.TopAbs_COMPSOLID: "Compsolid"}
        repr_string += "; Type:%s" % types[st]        
    elif hasattr(klass, "IsNull"):
        if klass.IsNull():
            repr_string += "; Null"
    repr_string += ">"
    return repr_string


def process_exception(error, method_name, class_name):
    return _GccAna.process_exception(error, method_name, class_name)

import warnings
from OCC.Wrapper.wrapper_utils import Proxy, deprecated

class ios_base(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
    erase_event = _GccAna.ios_base_erase_event
    imbue_event = _GccAna.ios_base_imbue_event
    copyfmt_event = _GccAna.ios_base_copyfmt_event

    def register_callback(self, __fn, __index):
        return _GccAna.ios_base_register_callback(self, __fn, __index)

    def flags(self, *args):
        return _GccAna.ios_base_flags(self, *args)

    def setf(self, *args):
        return _GccAna.ios_base_setf(self, *args)

    def unsetf(self, __mask):
        return _GccAna.ios_base_unsetf(self, __mask)

    def precision(self, *args):
        return _GccAna.ios_base_precision(self, *args)

    def width(self, *args):
        return _GccAna.ios_base_width(self, *args)

    @staticmethod
    def sync_with_stdio(__sync=True):
        return _GccAna.ios_base_sync_with_stdio(__sync)

    def imbue(self, __loc):
        return _GccAna.ios_base_imbue(self, __loc)

    def getloc(self):
        return _GccAna.ios_base_getloc(self)

    @staticmethod
    def xalloc():
        return _GccAna.ios_base_xalloc()

    def iword(self, __ix):
        return _GccAna.ios_base_iword(self, __ix)

    def pword(self, __ix):
        return _GccAna.ios_base_pword(self, __ix)
    __swig_destroy__ = _GccAna.delete_ios_base

# Register ios_base in _GccAna:
_GccAna.ios_base_swigregister(ios_base)
cvar = _GccAna.cvar
ios_base.boolalpha = _GccAna.cvar.ios_base_boolalpha
ios_base.dec = _GccAna.cvar.ios_base_dec
ios_base.fixed = _GccAna.cvar.ios_base_fixed
ios_base.hex = _GccAna.cvar.ios_base_hex
ios_base.internal = _GccAna.cvar.ios_base_internal
ios_base.left = _GccAna.cvar.ios_base_left
ios_base.oct = _GccAna.cvar.ios_base_oct
ios_base.right = _GccAna.cvar.ios_base_right
ios_base.scientific = _GccAna.cvar.ios_base_scientific
ios_base.showbase = _GccAna.cvar.ios_base_showbase
ios_base.showpoint = _GccAna.cvar.ios_base_showpoint
ios_base.showpos = _GccAna.cvar.ios_base_showpos
ios_base.skipws = _GccAna.cvar.ios_base_skipws
ios_base.unitbuf = _GccAna.cvar.ios_base_unitbuf
ios_base.uppercase = _GccAna.cvar.ios_base_uppercase
ios_base.adjustfield = _GccAna.cvar.ios_base_adjustfield
ios_base.basefield = _GccAna.cvar.ios_base_basefield
ios_base.floatfield = _GccAna.cvar.ios_base_floatfield
ios_base.badbit = _GccAna.cvar.ios_base_badbit
ios_base.eofbit = _GccAna.cvar.ios_base_eofbit
ios_base.failbit = _GccAna.cvar.ios_base_failbit
ios_base.goodbit = _GccAna.cvar.ios_base_goodbit
ios_base.app = _GccAna.cvar.ios_base_app
ios_base.ate = _GccAna.cvar.ios_base_ate
ios_base.binary = _GccAna.cvar.ios_base_binary
ios_base.ios_base_in = _GccAna.cvar.ios_base_ios_base_in
ios_base.out = _GccAna.cvar.ios_base_out
ios_base.trunc = _GccAna.cvar.ios_base_trunc
ios_base.beg = _GccAna.cvar.ios_base_beg
ios_base.cur = _GccAna.cvar.ios_base_cur
ios_base.end = _GccAna.cvar.ios_base_end

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

    def rdstate(self):
        return _GccAna.ios_rdstate(self)

    def clear(self, *args):
        return _GccAna.ios_clear(self, *args)

    def setstate(self, __state):
        return _GccAna.ios_setstate(self, __state)

    def good(self):
        return _GccAna.ios_good(self)

    def eof(self):
        return _GccAna.ios_eof(self)

    def fail(self):
        return _GccAna.ios_fail(self)

    def bad(self):
        return _GccAna.ios_bad(self)

    def exceptions(self, *args):
        return _GccAna.ios_exceptions(self, *args)

    def __init__(self, __sb):
        _GccAna.ios_swiginit(self, _GccAna.new_ios(__sb))
    __swig_destroy__ = _GccAna.delete_ios

    def tie(self, *args):
        return _GccAna.ios_tie(self, *args)

    def rdbuf(self, *args):
        return _GccAna.ios_rdbuf(self, *args)

    def copyfmt(self, __rhs):
        return _GccAna.ios_copyfmt(self, __rhs)

    def fill(self, *args):
        return _GccAna.ios_fill(self, *args)

    def imbue(self, __loc):
        return _GccAna.ios_imbue(self, __loc)

    def narrow(self, __c, __dfault):
        return _GccAna.ios_narrow(self, __c, __dfault)

    def widen(self, __c):
        return _GccAna.ios_widen(self, __c)

# Register ios in _GccAna:
_GccAna.ios_swigregister(ios)
class ostream(ios):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _GccAna.ostream_swiginit(self, _GccAna.new_ostream(__sb))
    __swig_destroy__ = _GccAna.delete_ostream

    def __lshift__(self, *args):
        return _GccAna.ostream___lshift__(self, *args)

    def put(self, __c):
        return _GccAna.ostream_put(self, __c)

    def write(self, __s, __n):
        return _GccAna.ostream_write(self, __s, __n)

    def flush(self):
        return _GccAna.ostream_flush(self)

    def tellp(self):
        return _GccAna.ostream_tellp(self)

    def seekp(self, *args):
        return _GccAna.ostream_seekp(self, *args)

# Register ostream in _GccAna:
_GccAna.ostream_swigregister(ostream)
class istream(ios):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _GccAna.istream_swiginit(self, _GccAna.new_istream(__sb))
    __swig_destroy__ = _GccAna.delete_istream

    def __rshift__(self, *args):
        return _GccAna.istream___rshift__(self, *args)

    def gcount(self):
        return _GccAna.istream_gcount(self)

    def get(self, *args):
        return _GccAna.istream_get(self, *args)

    def getline(self, *args):
        return _GccAna.istream_getline(self, *args)

    def ignore(self, *args):
        return _GccAna.istream_ignore(self, *args)

    def peek(self):
        return _GccAna.istream_peek(self)

    def read(self, __s, __n):
        return _GccAna.istream_read(self, __s, __n)

    def readsome(self, __s, __n):
        return _GccAna.istream_readsome(self, __s, __n)

    def putback(self, __c):
        return _GccAna.istream_putback(self, __c)

    def unget(self):
        return _GccAna.istream_unget(self)

    def sync(self):
        return _GccAna.istream_sync(self)

    def tellg(self):
        return _GccAna.istream_tellg(self)

    def seekg(self, *args):
        return _GccAna.istream_seekg(self, *args)

# Register istream in _GccAna:
_GccAna.istream_swigregister(istream)
class iostream(istream, ostream):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, __sb):
        _GccAna.iostream_swiginit(self, _GccAna.new_iostream(__sb))
    __swig_destroy__ = _GccAna.delete_iostream

# Register iostream in _GccAna:
_GccAna.iostream_swigregister(iostream)
cin = cvar.cin
cout = cvar.cout
cerr = cvar.cerr
clog = cvar.clog

endl_cb_ptr = _GccAna.endl_cb_ptr
endl = _GccAna.endl
ends_cb_ptr = _GccAna.ends_cb_ptr
ends = _GccAna.ends
flush_cb_ptr = _GccAna.flush_cb_ptr
flush = _GccAna.flush
import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.GccEnt
import OCC.Core.gp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.GccInt

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



class GccAna_Circ2d2TanOn(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"""

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        Qualified2: GccEnt_QualifiedCirc
        OnLine: gp_Lin2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles TANgent to two 2d circles and having the center ON a 2d line.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        Qualified2: GccEnt_QualifiedLin
        OnLine: gp_Lin2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles TANgent to a 2d circle and a 2d line having the center ON a 2d line.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedLin
        Qualified2: GccEnt_QualifiedLin
        OnLine: gp_Lin2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles TANgent to two 2d lines having the center ON a 2d line.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        Point2: gp_Pnt2d
        OnLine: gp_Lin2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles TANgent to a 2d circle and a point having the center ON a 2d line.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedLin
        Point2: gp_Pnt2d
        OnLine: gp_Lin2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles TANgent to a 2d line and a point having the center ON a 2d line.

        Parameters
        ----------
        Point1: gp_Pnt2d
        Point2: gp_Pnt2d
        OnLine: gp_Lin2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles TANgent to two points having the center ON a 2d line.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        Qualified2: GccEnt_QualifiedCirc
        OnCirc: gp_Circ2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles TANgent to two 2d circles and having the center ON a 2d circle.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        Qualified2: GccEnt_QualifiedLin
        OnCirc: gp_Circ2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles TANgent to a circle and a line having the center ON a 2d circle.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        Point2: gp_Pnt2d
        OnCirc: gp_Circ2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles TANgent to a circle and a point having the center ON a 2d circle.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedLin
        Qualified2: GccEnt_QualifiedLin
        OnCirc: gp_Circ2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles TANgent to two 2d lines having the center ON a 2d circle.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedLin
        Point2: gp_Pnt2d
        OnCirc: gp_Circ2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles TANgent to a line and a point having the center ON a 2d circle.

        Parameters
        ----------
        Point1: gp_Pnt2d
        Point2: gp_Pnt2d
        OnCirc: gp_Circ2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles TANgent to two points having the center ON a 2d circle.

        """
        _GccAna.GccAna_Circ2d2TanOn_swiginit(self, _GccAna.new_GccAna_Circ2d2TanOn(*args))

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

        Parameters
        ----------
        Index: int
        PntArg: gp_Pnt2d

        Return
        -------
        ParArg: float

        Description
        -----------
        Returns the information about the center (on the curv) of the result number Index and the third argument. ParArg is the intrinsic parameter of the point PntArg on the third argument. Exceptions Standard_OutOfRange if Index is less than zero or greater than the number of solutions computed by this algorithm. StdFail_NotDone if the construction fails.

        """
        return _GccAna.GccAna_Circ2d2TanOn_CenterOn3(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if the construction algorithm does not fail (even if it finds no solution). Note: IsDone protects against a failure arising from a more internal intersection algorithm, which has reached its numeric limits.

        """
        return _GccAna.GccAna_Circ2d2TanOn_IsDone(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        bool

        Description
        -----------
        True if the solution and the first argument are the same (2 circles). If R1 is the radius of the first argument and Rsol the radius of the solution and dist the distance between the two centers, we consider the two circles are identical if R1+dist-Rsol is less than Tolerance. False in the other cases. Raises OutOfRange if Index is greater than the number of solutions and NotDone if IsDone returns false.

        """
        return _GccAna.GccAna_Circ2d2TanOn_IsTheSame1(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        bool

        Description
        -----------
        True if the solution and the second argument are the same (2 circles). If R2 is the radius of the second argument and Rsol the radius of the solution and dist the distance between the two centers, we consider the two circles are identical if R2+dist-Rsol is less than Tolerance. False in the other cases. Raises OutOfRange if Index is greater than the number of solutions and NotDone if IsDone returns false.

        """
        return _GccAna.GccAna_Circ2d2TanOn_IsTheSame2(self, *args)

    def NbSolutions(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of circles, representing solutions computed by this algorithm. Exceptions StdFail_NotDone if the construction fails.

        """
        return _GccAna.GccAna_Circ2d2TanOn_NbSolutions(self, *args)

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

        Parameters
        ----------
        Index: int
        PntSol: gp_Pnt2d

        Return
        -------
        ParSol: float
        ParArg: float

        Description
        -----------
        Returns the information about the tangency point between the result number Index and the first argument. ParSol is the intrinsic parameter of the point PntSol on the solution ParArg is the intrinsic parameter of the point PntSol on the first argument. Raises OutOfRange if Index is greater than the number of solutions and NotDone if IsDone returns false.

        """
        return _GccAna.GccAna_Circ2d2TanOn_Tangency1(self, *args)

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

        Parameters
        ----------
        Index: int
        PntSol: gp_Pnt2d

        Return
        -------
        ParSol: float
        ParArg: float

        Description
        -----------
        Returns the information about the tangency point between the result number Index and the second argument. ParSol is the intrinsic parameter of the point PntSol on the solution. ParArg is the intrinsic parameter of the point PntSol on the second argument. Raises OutOfRange if Index is greater than the number of solutions and NotDone if IsDone returns false.

        """
        return _GccAna.GccAna_Circ2d2TanOn_Tangency2(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        gp_Circ2d

        Description
        -----------
        Returns the solution number Index and raises OutOfRange exception if Index is greater than the number of solutions. Be careful: the Index is only a way to get all the solutions, but is not associated to those outside the context of the algorithm-object. Exceptions Standard_OutOfRange if Index is less than zero or greater than the number of solutions computed by this algorithm. StdFail_NotDone if the construction fails.

        """
        return _GccAna.GccAna_Circ2d2TanOn_ThisSolution(self, *args)

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

        Parameters
        ----------
        Index: int
        Qualif1: GccEnt_Position
        Qualif2: GccEnt_Position

        Return
        -------
        None

        Description
        -----------
        Returns the qualifiers Qualif1 and Qualif2 of the tangency arguments for the solution of index Index computed by this algorithm. The returned qualifiers are: - those specified at the start of construction when the solutions are defined as enclosed, enclosing or outside with respect to the arguments, or - those computed during construction (i.e. enclosed, enclosing or outside) when the solutions are defined as unqualified with respect to the arguments, or - GccEnt_noqualifier if the tangency argument is a point. Exceptions Standard_OutOfRange if Index is less than zero or greater than the number of solutions computed by this algorithm. StdFail_NotDone if the construction fails.

        """
        return _GccAna.GccAna_Circ2d2TanOn_WhichQualifier(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GccAna.delete_GccAna_Circ2d2TanOn

# Register GccAna_Circ2d2TanOn in _GccAna:
_GccAna.GccAna_Circ2d2TanOn_swigregister(GccAna_Circ2d2TanOn)
class GccAna_Circ2d2TanRad(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"""

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        Qualified2: GccEnt_QualifiedCirc
        Radius: float
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles TANgent to two 2d circle with a radius of Radius. It raises NegativeValue if Radius is lower than zero.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        Qualified2: GccEnt_QualifiedLin
        Radius: float
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles TANgent to a 2d circle and a 2d line with a radius of Radius. It raises NegativeValue if Radius is lower than zero.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        Point2: gp_Pnt2d
        Radius: float
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles TANgent to a 2d circle and a point with a radius of Radius. It raises NegativeValue if Radius is lower than zero.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedLin
        Point2: gp_Pnt2d
        Radius: float
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles TANgent to a 2d line and a point with a radius of Radius. It raises NegativeValue if Radius is lower than zero.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedLin
        Qualified2: GccEnt_QualifiedLin
        Radius: float
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles TANgent to two 2d lines with a radius of Radius. It raises NegativeValue if Radius is lower than zero.

        Parameters
        ----------
        Point1: gp_Pnt2d
        Point2: gp_Pnt2d
        Radius: float
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles passing through two points with a radius of Radius. It raises NegativeValue if Radius is lower than zero.

        """
        _GccAna.GccAna_Circ2d2TanRad_swiginit(self, _GccAna.new_GccAna_Circ2d2TanRad(*args))

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        This method returns True if the algorithm succeeded. Note: IsDone protects against a failure arising from a more internal intersection algorithm, which has reached its numeric limits.

        """
        return _GccAna.GccAna_Circ2d2TanRad_IsDone(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        bool

        Description
        -----------
        Returns True if the solution number Index is equal to the first argument. Raises OutOfRange if Index is greater than the number of solutions. It raises NotDone if the construction algorithm did not succeed.

        """
        return _GccAna.GccAna_Circ2d2TanRad_IsTheSame1(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        bool

        Description
        -----------
        Returns True if the solution number Index is equal to the second argument. Raises OutOfRange if Index is greater than the number of solutions. It raises NotDone if the construction algorithm did not succeed.

        """
        return _GccAna.GccAna_Circ2d2TanRad_IsTheSame2(self, *args)

    def NbSolutions(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        This method returns the number of circles, representing solutions computed by this algorithm. Exceptions StdFail_NotDone if the construction fails. of solutions.

        """
        return _GccAna.GccAna_Circ2d2TanRad_NbSolutions(self, *args)

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

        Parameters
        ----------
        Index: int
        PntSol: gp_Pnt2d

        Return
        -------
        ParSol: float
        ParArg: float

        Description
        -----------
        Returns information about the tangency point between the result number Index and the first argument. ParSol is the intrinsic parameter of the point PntSol on the solution. ParArg is the intrinsic parameter of the point PntSol on the first argument. Raises OutOfRange if Index is greater than the number of solutions. It raises NotDone if the construction algorithm did not succeed.

        """
        return _GccAna.GccAna_Circ2d2TanRad_Tangency1(self, *args)

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

        Parameters
        ----------
        Index: int
        PntSol: gp_Pnt2d

        Return
        -------
        ParSol: float
        ParArg: float

        Description
        -----------
        Returns information about the tangency point between the result number Index and the second argument. ParSol is the intrinsic parameter of the point PntSol on the solution. ParArg is the intrinsic parameter of the point PntArg on the second argument. Raises OutOfRange if Index is greater than the number of solutions. It raises NotDone if the construction algorithm did not succeed.

        """
        return _GccAna.GccAna_Circ2d2TanRad_Tangency2(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        gp_Circ2d

        Description
        -----------
        Returns the solution number Index. Be careful: the Index is only a way to get all the solutions, but is not associated to those outside the context of the algorithm-object. Raises OutOfRange exception if Index is greater than the number of solutions. It raises NotDone if the construction algorithm did not succeed.

        """
        return _GccAna.GccAna_Circ2d2TanRad_ThisSolution(self, *args)

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

        Parameters
        ----------
        Index: int
        Qualif1: GccEnt_Position
        Qualif2: GccEnt_Position

        Return
        -------
        None

        Description
        -----------
        Returns the information about the qualifiers of the tangency arguments concerning the solution number Index. It returns the real qualifiers (the qualifiers given to the constructor method in case of enclosed, enclosing and outside and the qualifiers computedin case of unqualified).

        """
        return _GccAna.GccAna_Circ2d2TanRad_WhichQualifier(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GccAna.delete_GccAna_Circ2d2TanRad

# Register GccAna_Circ2d2TanRad in _GccAna:
_GccAna.GccAna_Circ2d2TanRad_swigregister(GccAna_Circ2d2TanRad)
class GccAna_Circ2d3Tan(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"""

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        Qualified2: GccEnt_QualifiedCirc
        Qualified3: GccEnt_QualifiedCirc
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles tangent to 3 circles. ConstructionError is raised if there is a problem during the computation.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        Qualified2: GccEnt_QualifiedCirc
        Qualified3: GccEnt_QualifiedLin
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles tangent to 2 circles and 1 line. ConstructionError is raised if there is a problem during the computation.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        Qualified2: GccEnt_QualifiedLin
        Qualified3: GccEnt_QualifiedLin
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles tangent to 1 circle and 2 lines. ConstructionError is raised if there is a problem during the computation.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedLin
        Qualified2: GccEnt_QualifiedLin
        Qualified3: GccEnt_QualifiedLin
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles tangent to 3 lines. ConstructionError is raised if there is a problem during the computation.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        Qualified2: GccEnt_QualifiedCirc
        Point3: gp_Pnt2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles tangent to 2 circles and 1 Point. ConstructionError is raised if there is a problem during the computation.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        Qualified2: GccEnt_QualifiedLin
        Point3: gp_Pnt2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles tangent to a circle and a line and 1 Point. ConstructionError is raised if there is a problem during the computation.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedLin
        Qualified2: GccEnt_QualifiedLin
        Point3: gp_Pnt2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles tangent to 2 lines and 1 Point. ConstructionError is raised if there is a problem during the computation.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        Point2: gp_Pnt2d
        Point3: gp_Pnt2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles tangent to a circle and passing through 2 Points. ConstructionError is raised if there is a problem during the computation.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedLin
        Point2: gp_Pnt2d
        Point3: gp_Pnt2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles tangent to a line and passing through 2 Points. ConstructionError is raised if there is a problem during the computation.

        Parameters
        ----------
        Point1: gp_Pnt2d
        Point2: gp_Pnt2d
        Point3: gp_Pnt2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles passing through 3 Points. ConstructionError is raised if there is a problem during the computation.

        """
        _GccAna.GccAna_Circ2d3Tan_swiginit(self, _GccAna.new_GccAna_Circ2d3Tan(*args))

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        This method returns True if the construction algorithm succeeded. Note: IsDone protects against a failure arising from a more internal intersection algorithm, which has reached its numeric limits.

        """
        return _GccAna.GccAna_Circ2d3Tan_IsDone(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        bool

        Description
        -----------
        Returns True if the solution number Index is equal to the first argument. Raises OutOfRange if Index is greater than the number of solutions. It raises NotDone if the algorithm failed.

        """
        return _GccAna.GccAna_Circ2d3Tan_IsTheSame1(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        bool

        Description
        -----------
        Returns True if the solution number Index is equal to the second argument. Raises OutOfRange Index is greater than the number of solutions. It raises NotDone if the algorithm failed.

        """
        return _GccAna.GccAna_Circ2d3Tan_IsTheSame2(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        bool

        Description
        -----------
        Returns True if the solution number Index is equal to the third argument. Raises OutOfRange if Index is greater than the number of solutions. It raises NotDone if the algorithm failed.

        """
        return _GccAna.GccAna_Circ2d3Tan_IsTheSame3(self, *args)

    def NbSolutions(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        This method returns the number of solutions. Raises NotDone if the construction algorithm didn't succeed.

        """
        return _GccAna.GccAna_Circ2d3Tan_NbSolutions(self, *args)

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

        Parameters
        ----------
        Index: int
        PntSol: gp_Pnt2d

        Return
        -------
        ParSol: float
        ParArg: float

        Description
        -----------
        Returns information about the tangency point between the result number Index and the first argument. ParSol is the intrinsic parameter of the point PntSol on the solution curv. ParArg is the intrinsic parameter of the point PntArg on the argument curv. Raises OutOfRange if Index is greater than the number of solutions. It raises NotDone if the algorithm failed.

        """
        return _GccAna.GccAna_Circ2d3Tan_Tangency1(self, *args)

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

        Parameters
        ----------
        Index: int
        PntSol: gp_Pnt2d

        Return
        -------
        ParSol: float
        ParArg: float

        Description
        -----------
        Returns information about the tangency point between the result number Index and the first argument. ParSol is the intrinsic parameter of the point PntSol on the solution curv. ParArg is the intrinsic parameter of the point Pntsol on the argument curv. Raises OutOfRange if Index is greater than the number of solutions. It raises NotDone if the algorithm failed.

        """
        return _GccAna.GccAna_Circ2d3Tan_Tangency2(self, *args)

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

        Parameters
        ----------
        Index: int
        PntSol: gp_Pnt2d

        Return
        -------
        ParSol: float
        ParArg: float

        Description
        -----------
        Returns information about the tangency point between the result number Index and the first argument. ParSol is the intrinsic parameter of the point PntSol on the solution curv. ParArg is the intrinsic parameter of the point Pntsol on the argument curv. Raises OutOfRange if Index is greater than the number of solutions. It raises NotDone if the algorithm failed.

        """
        return _GccAna.GccAna_Circ2d3Tan_Tangency3(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        gp_Circ2d

        Description
        -----------
        Returns the solution number Index and raises OutOfRange exception if Index is greater than the number of solutions. Be careful: the Index is only a way to get all the solutions, but is not associated to those outside the context of the algorithm-object. Raises OutOfRange if Index is greater than the number of solutions. It raises NotDone if the algorithm failed.

        """
        return _GccAna.GccAna_Circ2d3Tan_ThisSolution(self, *args)

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

        Parameters
        ----------
        Index: int
        Qualif1: GccEnt_Position
        Qualif2: GccEnt_Position
        Qualif3: GccEnt_Position

        Return
        -------
        None

        Description
        -----------
        Returns the information about the qualifiers of the tangency arguments concerning the solution number Index. It returns the real qualifiers (the qualifiers given to the constructor method in case of enclosed, enclosing and outside and the qualifiers computedin case of unqualified).

        """
        return _GccAna.GccAna_Circ2d3Tan_WhichQualifier(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GccAna.delete_GccAna_Circ2d3Tan

# Register GccAna_Circ2d3Tan in _GccAna:
_GccAna.GccAna_Circ2d3Tan_swigregister(GccAna_Circ2d3Tan)
class GccAna_Circ2dBisec(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"""

        Parameters
        ----------
        Circ1: gp_Circ2d
        Circ2: gp_Circ2d

        Return
        -------
        None

        Description
        -----------
        Constructs bisecting curves between the two circles Circ1 and Circ2.

        """
        _GccAna.GccAna_Circ2dBisec_swiginit(self, _GccAna.new_GccAna_Circ2dBisec(*args))

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        This method returns True if the construction algorithm succeeded.

        """
        return _GccAna.GccAna_Circ2dBisec_IsDone(self, *args)

    def NbSolutions(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        This method returns the number of solutions. Raises NotDone if the construction algorithm didn't succeed.

        """
        return _GccAna.GccAna_Circ2dBisec_NbSolutions(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        opencascade::handle<GccInt_Bisec>

        Description
        -----------
        Returns the solution number Index Raises OutOfRange exception if Index is greater than the number of solutions. It raises NotDone if the construction algorithm didn't succeed.

        """
        return _GccAna.GccAna_Circ2dBisec_ThisSolution(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GccAna.delete_GccAna_Circ2dBisec

# Register GccAna_Circ2dBisec in _GccAna:
_GccAna.GccAna_Circ2dBisec_swigregister(GccAna_Circ2dBisec)
class GccAna_Circ2dTanCen(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"""

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        Pcenter: gp_Pnt2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles tangent to a circle and centered on a point.

        Parameters
        ----------
        Linetan: gp_Lin2d
        Pcenter: gp_Pnt2d

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles tangent to a line and centered on a point.

        Parameters
        ----------
        Point1: gp_Pnt2d
        Pcenter: gp_Pnt2d

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d circles passing through a point and centered on a point. Tolerance is a tolerance criterion used by the algorithm to find a solution when, mathematically, the problem posed does not have a solution, but where there is numeric uncertainty attached to the arguments. In these algorithms Tolerance is only used in very specific cases where the center of the solution is very close to the circle to which it is tangential, and where the solution is therefore a very small circle. Exceptions GccEnt_BadQualifier if a qualifier is inconsistent with the argument it qualifies (for example, enclosing for a line).

        """
        _GccAna.GccAna_Circ2dTanCen_swiginit(self, _GccAna.new_GccAna_Circ2dTanCen(*args))

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        This method returns True if the construction algorithm succeeded. Note: IsDone protects against a failure arising from a more internal intersection algorithm, which has reached its numeric limits.

        """
        return _GccAna.GccAna_Circ2dTanCen_IsDone(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        bool

        Description
        -----------
        Returns True if the solution number Index is equal to the first argument. It raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions or less than zero.

        """
        return _GccAna.GccAna_Circ2dTanCen_IsTheSame1(self, *args)

    def NbSolutions(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of circles, representing solutions computed by this algorithm and raises NotDone exception if the algorithm didn't succeed.

        """
        return _GccAna.GccAna_Circ2dTanCen_NbSolutions(self, *args)

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

        Parameters
        ----------
        Index: int
        PntSol: gp_Pnt2d

        Return
        -------
        ParSol: float
        ParArg: float

        Description
        -----------
        Returns information about the tangency point between the result number Index and the first argument. ParSol is the intrinsic parameter of the point PntSol on the solution curv. ParArg is the intrinsic parameter of the point PntArg on the argument curv. It raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions or less than zero.

        """
        return _GccAna.GccAna_Circ2dTanCen_Tangency1(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        gp_Circ2d

        Description
        -----------
        Returns the circle, representing the solution number Index and raises OutOfRange exception if Index is greater than the number of solutions. Be careful: the Index is only a way to get all the solutions, but is not associated to these outside the context of the algorithm-object. Raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions or less than zer.

        """
        return _GccAna.GccAna_Circ2dTanCen_ThisSolution(self, *args)

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

        Parameters
        ----------
        Index: int
        Qualif1: GccEnt_Position

        Return
        -------
        None

        Description
        -----------
        Returns the qualifier Qualif1 of the tangency argument for the solution of index Index computed by this algorithm. The returned qualifier is: - that specified at the start of construction when the solutions are defined as enclosed, enclosing or It returns the real qualifiers (the qualifiers given to the constructor method in case of enclosed, enclosing and outside and the qualifiers computedin case of unqualified).

        """
        return _GccAna.GccAna_Circ2dTanCen_WhichQualifier(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GccAna.delete_GccAna_Circ2dTanCen

# Register GccAna_Circ2dTanCen in _GccAna:
_GccAna.GccAna_Circ2dTanCen_swigregister(GccAna_Circ2dTanCen)
class GccAna_Circ2dTanOnRad(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"""

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        OnLine: gp_Lin2d
        Radius: float
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This methods implements the algorithms used to create 2d Circles tangent to a circle and centered on a 2d Line with a given radius. Tolerance is used to find solution in every limit cases. For example Tolerance is used in the case of EnclosedCirc when Radius-R1+dist is greater Tolerance (dist is the distance between the line and the location of the circ, R1 is the radius of the circ) because there is no solution. raises NegativeValue in case of NegativeRadius.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedLin
        OnLine: gp_Lin2d
        Radius: float
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This methods implements the algorithms used to create 2d Circles tangent to a 2d Line and centered on a 2d Line with a given radius. Tolerance is used to find solution in every limit cases. raises NegativeValue in case of NegativeRadius.

        Parameters
        ----------
        Point1: gp_Pnt2d
        OnLine: gp_Lin2d
        Radius: float
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This methods implements the algorithms used to create 2d Circles passing through a 2d Point and centered on a 2d Line with a given radius. Tolerance is used to find solution in every limit cases.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        OnCirc: gp_Circ2d
        Radius: float
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This methods implements the algorithms used to create 2d Circles tangent to a circle and centered on a 2d Circle with a given radius. Tolerance is used to find solution in every limit cases. raises NegativeValue in case of NegativeRadius.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedLin
        OnCirc: gp_Circ2d
        Radius: float
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This methods implements the algorithms used to create 2d Circles tangent to a 2d Line and centered on a 2d Line with a given radius. Tolerance is used to find solution in every limit cases. raises NegativeValue in case of NegativeRadius.

        Parameters
        ----------
        Point1: gp_Pnt2d
        OnCirc: gp_Circ2d
        Radius: float
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This methods implements the algorithms used to create 2d Circles passing through a 2d Point and centered on a 2d Line with a given radius. Tolerance is used to find solution in every limit cases. raises NegativeValue in case of NegativeRadius.

        """
        _GccAna.GccAna_Circ2dTanOnRad_swiginit(self, _GccAna.new_GccAna_Circ2dTanOnRad(*args))

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

        Parameters
        ----------
        Index: int
        PntSol: gp_Pnt2d

        Return
        -------
        ParArg: float

        Description
        -----------
        Returns information about the center (on the curv) of the result. ParArg is the intrinsic parameter of the point on the argument curv. PntSol is the center point of the solution curv. Raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions.

        """
        return _GccAna.GccAna_Circ2dTanOnRad_CenterOn3(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if the construction algorithm does not fail (even if it finds no solution). Note: IsDone protects against a failure arising from a more internal intersection algorithm, which has reached its numeric limits.

        """
        return _GccAna.GccAna_Circ2dTanOnRad_IsDone(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        bool

        Description
        -----------
        Returns True if the solution number Index is equal to the first argument and False in the other cases. Raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions.

        """
        return _GccAna.GccAna_Circ2dTanOnRad_IsTheSame1(self, *args)

    def NbSolutions(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        This method returns the number of circles, representing solutions. Raises NotDone if the construction algorithm didn't succeed.

        """
        return _GccAna.GccAna_Circ2dTanOnRad_NbSolutions(self, *args)

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

        Parameters
        ----------
        Index: int
        PntSol: gp_Pnt2d

        Return
        -------
        ParSol: float
        ParArg: float

        Description
        -----------
        Returns information about the tangency point between the result number Index and the first argument. ParSol is the intrinsic parameter of the point on the solution curv. ParArg is the intrinsic parameter of the point on the argument curv. PntSol is the tangency point on the solution curv. PntArg is the tangency point on the argument curv. Raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions.

        """
        return _GccAna.GccAna_Circ2dTanOnRad_Tangency1(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        gp_Circ2d

        Description
        -----------
        Returns the solution number Index and raises OutOfRange exception if Index is greater than the number of solutions. Be careful: the Index is only a way to get all the solutions, but is not associated to these outside the context of the algorithm-object. Raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions.

        """
        return _GccAna.GccAna_Circ2dTanOnRad_ThisSolution(self, *args)

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

        Parameters
        ----------
        Index: int
        Qualif1: GccEnt_Position

        Return
        -------
        None

        Description
        -----------
        Returns the qualifier Qualif1 of the tangency argument for the solution of index Index computed by this algorithm. The returned qualifier is: - that specified at the start of construction when the solutions are defined as enclosed, enclosing or outside with respect to the argument, or - that computed during construction (i.e. enclosed, enclosing or outside) when the solutions are defined as unqualified with respect to the argument, or - GccEnt_noqualifier if the tangency argument is a point. Exceptions Standard_OutOfRange if Index is less than zero or greater than the number of solutions computed by this algorithm. StdFail_NotDone if the construction fails.

        """
        return _GccAna.GccAna_Circ2dTanOnRad_WhichQualifier(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GccAna.delete_GccAna_Circ2dTanOnRad

# Register GccAna_Circ2dTanOnRad in _GccAna:
_GccAna.GccAna_Circ2dTanOnRad_swigregister(GccAna_Circ2dTanOnRad)
class GccAna_CircLin2dBisec(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"""

        Parameters
        ----------
        Circle: gp_Circ2d
        Line: gp_Lin2d

        Return
        -------
        None

        Description
        -----------
        Constructs bisecting curves between the circle Circle and the line Line.

        """
        _GccAna.GccAna_CircLin2dBisec_swiginit(self, _GccAna.new_GccAna_CircLin2dBisec(*args))

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true (this construction algorithm never fails).

        """
        return _GccAna.GccAna_CircLin2dBisec_IsDone(self, *args)

    def NbSolutions(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of curves, representing solutions computed by this algorithm.

        """
        return _GccAna.GccAna_CircLin2dBisec_NbSolutions(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        opencascade::handle<GccInt_Bisec>

        Description
        -----------
        Returns the solution number Index and raises OutOfRange exception if Index is greater than the number of solutions Exceptions Standard_OutOfRange if Index is less than zero or greater than the number of solutions computed by this algorithm.

        """
        return _GccAna.GccAna_CircLin2dBisec_ThisSolution(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GccAna.delete_GccAna_CircLin2dBisec

# Register GccAna_CircLin2dBisec in _GccAna:
_GccAna.GccAna_CircLin2dBisec_swigregister(GccAna_CircLin2dBisec)
class GccAna_CircPnt2dBisec(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"""

        Parameters
        ----------
        Circle1: gp_Circ2d
        Point2: gp_Pnt2d

        Return
        -------
        None

        Description
        -----------
        Constructs bisecting curves between the circle Circle1 and the point Point2.

        Parameters
        ----------
        Circle1: gp_Circ2d
        Point2: gp_Pnt2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        Constructs bisecting curves between the circle Circle1 and the point Point2. Tolerance is used.

        """
        _GccAna.GccAna_CircPnt2dBisec_swiginit(self, _GccAna.new_GccAna_CircPnt2dBisec(*args))

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true (this construction algorithm never fails).

        """
        return _GccAna.GccAna_CircPnt2dBisec_IsDone(self, *args)

    def NbSolutions(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of curves, representing solutions computed by this algorithm.

        """
        return _GccAna.GccAna_CircPnt2dBisec_NbSolutions(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        opencascade::handle<GccInt_Bisec>

        Description
        -----------
        Returns the solution number Index and raises OutOfRange exception if Index is greater than the number of solutions. Exceptions Standard_OutOfRange if Index is less than zero or greater than the number of solutions computed by this algorithm.

        """
        return _GccAna.GccAna_CircPnt2dBisec_ThisSolution(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GccAna.delete_GccAna_CircPnt2dBisec

# Register GccAna_CircPnt2dBisec in _GccAna:
_GccAna.GccAna_CircPnt2dBisec_swigregister(GccAna_CircPnt2dBisec)
class GccAna_Lin2d2Tan(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"""

        Parameters
        ----------
        ThePoint1: gp_Pnt2d
        ThePoint2: gp_Pnt2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This methods implements the algorithms used to create 2d lines passing through 2 points. Tolerance is used because we can't create a line when the distance between the two points is too small.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        ThePoint: gp_Pnt2d
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This methods implements the algorithms used to create 2d lines tangent to one circle and passing through a point. Exception BadQualifier is raised in the case of EnclosedCirc Tolerance is used because there is no solution when the point is inside the solution according to the tolerance.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        Qualified2: GccEnt_QualifiedCirc
        Tolerance: float

        Return
        -------
        None

        Description
        -----------
        This methods implements the algorithms used to create 2d lines tangent to 2 circles. Exception BadQualifier is raised in the case of EnclosedCirc.

        """
        _GccAna.GccAna_Lin2d2Tan_swiginit(self, _GccAna.new_GccAna_Lin2d2Tan(*args))

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        This method returns true when there is a solution and false in the other cases.

        """
        return _GccAna.GccAna_Lin2d2Tan_IsDone(self, *args)

    def NbSolutions(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        This method returns the number of solutions. Raises NotDone if the construction algorithm didn't succeed.

        """
        return _GccAna.GccAna_Lin2d2Tan_NbSolutions(self, *args)

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

        Parameters
        ----------
        Index: int
        PntSol: gp_Pnt2d

        Return
        -------
        ParSol: float
        ParArg: float

        Description
        -----------
        Returns information about the tangency point between the result number Index and the first argument. ParSol is the intrinsic parameter of the point PntSol on the solution curv. ParArg is the intrinsic parameter of the point PntSol on the argument curv. Raises OutOfRange is raised if Index is greater than the number of solutions. It raises NotDone if the algorithm failed.

        """
        return _GccAna.GccAna_Lin2d2Tan_Tangency1(self, *args)

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

        Parameters
        ----------
        Index: int
        PntSol: gp_Pnt2d

        Return
        -------
        ParSol: float
        ParArg: float

        Description
        -----------
        Returns information about the tangency point between the result number Index and the second argument. ParSol is the intrinsic parameter of the point ParSol on the solution curv. ParArg is the intrinsic parameter of the point PntSol on the argument curv. Raises OutOfRange is raised if Index is greater than the number of solutions. It raises NotDone if the algorithm failed.

        """
        return _GccAna.GccAna_Lin2d2Tan_Tangency2(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        gp_Lin2d

        Description
        -----------
        Returns the solution number Index and raises OutOfRange exception if Index is greater than the number of solutions. Be careful: the Index is only a way to get all the solutions, but is not associated to these outside the context of the algorithm-object. Raises OutOfRange is raised if Index is greater than the number of solutions. It raises NotDone if the algorithm failed.

        """
        return _GccAna.GccAna_Lin2d2Tan_ThisSolution(self, *args)

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

        Parameters
        ----------
        Index: int
        Qualif1: GccEnt_Position
        Qualif2: GccEnt_Position

        Return
        -------
        None

        Description
        -----------
        Returns the qualifiers Qualif1 and Qualif2 of the tangency arguments for the solution of index Index computed by this algorithm. The returned qualifiers are: - those specified at the start of construction when the solutions are defined as enclosing or outside with respect to the arguments, or - those computed during construction (i.e. enclosing or outside) when the solutions are defined as unqualified with respect to the arguments, or - GccEnt_noqualifier if the tangency argument is a point. Exceptions Standard_OutOfRange if Index is less than zero or greater than the number of solutions computed by this algorithm. StdFail_NotDone if the construction fails.

        """
        return _GccAna.GccAna_Lin2d2Tan_WhichQualifier(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GccAna.delete_GccAna_Lin2d2Tan

# Register GccAna_Lin2d2Tan in _GccAna:
_GccAna.GccAna_Lin2d2Tan_swigregister(GccAna_Lin2d2Tan)
class GccAna_Lin2dBisec(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"""

        Parameters
        ----------
        Lin1: gp_Lin2d
        Lin2: gp_Lin2d

        Return
        -------
        None

        Description
        -----------
        Constructs bisecting lines between the two lines Lin1 and Lin2.

        """
        _GccAna.GccAna_Lin2dBisec_swiginit(self, _GccAna.new_GccAna_Lin2dBisec(*args))

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

        Parameters
        ----------
        Index: int
        PntSol: gp_Pnt2d

        Return
        -------
        ParSol: float
        ParArg: float

        Description
        -----------
        Returns information about the intersection point between the result number Index and the first argument. Raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions.

        """
        return _GccAna.GccAna_Lin2dBisec_Intersection1(self, *args)

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

        Parameters
        ----------
        Index: int
        PntSol: gp_Pnt2d

        Return
        -------
        ParSol: float
        ParArg: float

        Description
        -----------
        Returns information about the intersection point between the result number Index and the second argument. Raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions.

        """
        return _GccAna.GccAna_Lin2dBisec_Intersection2(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True when the algorithm succeeded.

        """
        return _GccAna.GccAna_Lin2dBisec_IsDone(self, *args)

    def NbSolutions(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of solutions and raise NotDone if the constructor wasn't called before.

        """
        return _GccAna.GccAna_Lin2dBisec_NbSolutions(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        gp_Lin2d

        Description
        -----------
        Returns the solution number Index . The first solution is the inside one and the second is the outside one. For the first solution the direction is D1+D2 (D1 is the direction of the first argument and D2 the direction of the second argument). For the second solution the direction is D1-D2. Raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions.

        """
        return _GccAna.GccAna_Lin2dBisec_ThisSolution(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GccAna.delete_GccAna_Lin2dBisec

# Register GccAna_Lin2dBisec in _GccAna:
_GccAna.GccAna_Lin2dBisec_swigregister(GccAna_Lin2dBisec)
class GccAna_Lin2dTanObl(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"""

        Parameters
        ----------
        ThePoint: gp_Pnt2d
        TheLine: gp_Lin2d
        TheAngle: float

        Return
        -------
        None

        Description
        -----------
        This class implements the algorithms used to create 2d line passing through a point and making an angle with a line.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        TheLine: gp_Lin2d
        TheAngle: float

        Return
        -------
        None

        Description
        -----------
        This class implements the algorithms used to create 2d line tangent to a circle and making an angle with a line. Exceptions GccEnt_BadQualifier if a qualifier is inconsistent with the argument it qualifies (for example, enclosed for a circle).

        """
        _GccAna.GccAna_Lin2dTanObl_swiginit(self, _GccAna.new_GccAna_Lin2dTanObl(*args))

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

        Parameters
        ----------
        Index: int
        PntSol: gp_Pnt2d

        Return
        -------
        ParSol: float
        ParArg: float

        Description
        -----------
        Returns information about the intersection between the result number Index and the third argument. Raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions.

        """
        return _GccAna.GccAna_Lin2dTanObl_Intersection2(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the algorithm succeeded. Note: IsDone protects against a failure arising from a more internal intersection algorithm, which has reached its numeric limits.

        """
        return _GccAna.GccAna_Lin2dTanObl_IsDone(self, *args)

    def NbSolutions(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of of lines, representing solutions computed by this algorithm. Raises NotDone if the construction algorithm didn't succeed.

        """
        return _GccAna.GccAna_Lin2dTanObl_NbSolutions(self, *args)

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

        Parameters
        ----------
        Index: int
        PntSol: gp_Pnt2d

        Return
        -------
        ParSol: float
        ParArg: float

        Description
        -----------
        Returns information about the tangency point between the result number Index and the first argument. ParSol is the intrinsic parameter of the point ParSol on the solution curv. ParArg is the intrinsic parameter of the point ParArg on the argument curv. Raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions.

        """
        return _GccAna.GccAna_Lin2dTanObl_Tangency1(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        gp_Lin2d

        Description
        -----------
        Returns the solution number Index. Be careful: the Index is only a way to get all the solutions, but is not associated to these outside the context of the algorithm-object. raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions.

        """
        return _GccAna.GccAna_Lin2dTanObl_ThisSolution(self, *args)

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

        Parameters
        ----------
        Index: int
        Qualif1: GccEnt_Position

        Return
        -------
        None

        Description
        -----------
        Returns the qualifier Qualif1 of the tangency argument for the solution of index Index computed by this algorithm. The returned qualifier is: - that specified at the start of construction when the solutions are defined as enclosing or outside with respect to the argument, or - that computed during construction (i.e. enclosing or outside) when the solutions are defined as unqualified with respect to the argument, or - GccEnt_noqualifier if the tangency argument is a point. Exceptions Standard_OutOfRange if Index is less than zero or greater than the number of solutions computed by this algorithm. StdFail_NotDone if the construction fails.

        """
        return _GccAna.GccAna_Lin2dTanObl_WhichQualifier(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GccAna.delete_GccAna_Lin2dTanObl

# Register GccAna_Lin2dTanObl in _GccAna:
_GccAna.GccAna_Lin2dTanObl_swigregister(GccAna_Lin2dTanObl)
class GccAna_Lin2dTanPar(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"""

        Parameters
        ----------
        ThePoint: gp_Pnt2d
        Lin1: gp_Lin2d

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create a 2d line passing through a point and parallel to another line.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        Lin1: gp_Lin2d

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create a 2d line tangent to a circle and parallel to another line. It raises BadQualifier in case of EnclosedCirc. Exceptions GccEnt_BadQualifier if a qualifier is inconsistent with the argument it qualifies (for example, enclosed for a circle).

        """
        _GccAna.GccAna_Lin2dTanPar_swiginit(self, _GccAna.new_GccAna_Lin2dTanPar(*args))

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the algorithm succeeded.

        """
        return _GccAna.GccAna_Lin2dTanPar_IsDone(self, *args)

    def NbSolutions(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of solutions. Raises NotDone if the construction algorithm didn't succeed.

        """
        return _GccAna.GccAna_Lin2dTanPar_NbSolutions(self, *args)

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

        Parameters
        ----------
        Index: int
        Pnt: gp_Pnt2d

        Return
        -------
        ParSol: float
        ParArg: float

        Description
        -----------
        Returns information about the tangency point between the result number Index and the first argument. ParSol is the intrinsic parameter of the point on the solution curv. ParArg is the intrinsic parameter of the point on the argument curv. ParArg is equal 0 when the solution is passing through a point. Raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions.

        """
        return _GccAna.GccAna_Lin2dTanPar_Tangency1(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        gp_Lin2d

        Description
        -----------
        Returns the solution number Index and raises OutOfRange exception if Index is greater than the number of solutions. Be careful: the Index is only a way to get all the solutions, but is not associated to those outside the context of the algorithm-object. raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions.

        """
        return _GccAna.GccAna_Lin2dTanPar_ThisSolution(self, *args)

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

        Parameters
        ----------
        Index: int
        Qualif1: GccEnt_Position

        Return
        -------
        None

        Description
        -----------
        Returns the information about the qualifiers of the tangency arguments concerning the solution number Index. It returns the real qualifiers (the qualifiers given to the constructor method in case of enclosed, enclosing and outside and the qualifiers computed in case of unqualified). Raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions.

        """
        return _GccAna.GccAna_Lin2dTanPar_WhichQualifier(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GccAna.delete_GccAna_Lin2dTanPar

# Register GccAna_Lin2dTanPar in _GccAna:
_GccAna.GccAna_Lin2dTanPar_swigregister(GccAna_Lin2dTanPar)
class GccAna_Lin2dTanPer(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"""

        Parameters
        ----------
        ThePnt: gp_Pnt2d
        TheLin: gp_Lin2d

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d lines passing through a point and perpendicular to a line.

        Parameters
        ----------
        ThePnt: gp_Pnt2d
        TheCircle: gp_Circ2d

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d lines passing through a point and perpendicular to a circle.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        TheLin: gp_Lin2d

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d lines tangent to a circle and perpendicular to a line.

        Parameters
        ----------
        Qualified1: GccEnt_QualifiedCirc
        TheCircle: gp_Circ2d

        Return
        -------
        None

        Description
        -----------
        This method implements the algorithms used to create 2d lines tangent to a circle and perpendicular to a circle.

        """
        _GccAna.GccAna_Lin2dTanPer_swiginit(self, _GccAna.new_GccAna_Lin2dTanPer(*args))

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

        Parameters
        ----------
        Index: int
        PntSol: gp_Pnt2d

        Return
        -------
        ParSol: float
        ParArg: float

        Description
        -----------
        Returns information about the intersection between the solution number Index and the second argument. It returns the first intersection in a case of Lin2dTanPer which is perpendicular to a circle . ParSol is the intrinsic parameter of the point on the solution curv. ParArg is the intrinsic parameter of the point on the argument curv. Raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions.

        """
        return _GccAna.GccAna_Lin2dTanPer_Intersection2(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the algorithm succeeded.

        """
        return _GccAna.GccAna_Lin2dTanPer_IsDone(self, *args)

    def NbSolutions(self, *args):
        r"""
        Return
        -------
        int

        Description
        -----------
        Returns the number of solutions. Raises NotDone if the construction algorithm didn't succeed.

        """
        return _GccAna.GccAna_Lin2dTanPer_NbSolutions(self, *args)

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

        Parameters
        ----------
        Index: int
        Pnt: gp_Pnt2d

        Return
        -------
        ParSol: float
        ParArg: float

        Description
        -----------
        Returns information about the tangency point between the result number Index and the first argument. ParSol is the intrinsic parameter of the point on the solution curv. ParArg is the intrinsic parameter of the point on the argument curv. If the first argument is a point ParArg is equal zero. raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions.

        """
        return _GccAna.GccAna_Lin2dTanPer_Tangency1(self, *args)

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

        Parameters
        ----------
        Index: int

        Return
        -------
        gp_Lin2d

        Description
        -----------
        Returns the solution number Index and raises OutOfRange exception if Index is greater than the number of solutions. Be careful: the Index is only a way to get all the solutions, but is not associated to those outside the context of the algorithm-object. Raises NotDone if the construction algorithm didn't succeed. It raises OutOfRange if Index is greater than the number of solutions.

        """
        return _GccAna.GccAna_Lin2dTanPer_ThisSolution(self, *args)

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

        Parameters
        ----------
        Index: int
        Qualif1: GccEnt_Position

        Return
        -------
        None

        Description
        -----------
        Returns the qualifier Qualif1 of the tangency argument for the solution of index Index computed by this algorithm. The returned qualifier is: - that specified at the start of construction when the solutions are defined as enclosing or outside with respect to the argument, or - that computed during construction (i.e. enclosing or outside) when the solutions are defined as unqualified with respect to the argument, or - GccEnt_noqualifier if the tangency argument is a point. Exceptions Standard_OutOfRange if Index is less than zero or greater than the number of solutions computed by this algorithm. StdFail_NotDone if the construction fails.

        """
        return _GccAna.GccAna_Lin2dTanPer_WhichQualifier(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GccAna.delete_GccAna_Lin2dTanPer

# Register GccAna_Lin2dTanPer in _GccAna:
_GccAna.GccAna_Lin2dTanPer_swigregister(GccAna_Lin2dTanPer)
class GccAna_LinPnt2dBisec(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"""

        Parameters
        ----------
        Line1: gp_Lin2d
        Point2: gp_Pnt2d

        Return
        -------
        None

        Description
        -----------
        Constructs a bisecting curve between the line Line1 and the point Point2.

        """
        _GccAna.GccAna_LinPnt2dBisec_swiginit(self, _GccAna.new_GccAna_LinPnt2dBisec(*args))

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns True if the algorithm succeeded.

        """
        return _GccAna.GccAna_LinPnt2dBisec_IsDone(self, *args)

    def ThisSolution(self, *args):
        r"""
        Return
        -------
        opencascade::handle<GccInt_Bisec>

        Description
        -----------
        Returns the number of solutions. It raises NotDone if the construction algorithm didn't succeed.

        """
        return _GccAna.GccAna_LinPnt2dBisec_ThisSolution(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GccAna.delete_GccAna_LinPnt2dBisec

# Register GccAna_LinPnt2dBisec in _GccAna:
_GccAna.GccAna_LinPnt2dBisec_swigregister(GccAna_LinPnt2dBisec)
class GccAna_Pnt2dBisec(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"""

        Parameters
        ----------
        Point1: gp_Pnt2d
        Point2: gp_Pnt2d

        Return
        -------
        None

        Description
        -----------
        Constructs a bisecting line between the points Point1 and Point2.

        """
        _GccAna.GccAna_Pnt2dBisec_swiginit(self, _GccAna.new_GccAna_Pnt2dBisec(*args))

    def HasSolution(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true if this algorithm has a solution, i.e. if the two points are not coincident.

        """
        return _GccAna.GccAna_Pnt2dBisec_HasSolution(self, *args)

    def IsDone(self, *args):
        r"""
        Return
        -------
        bool

        Description
        -----------
        Returns true (this construction algorithm never fails).

        """
        return _GccAna.GccAna_Pnt2dBisec_IsDone(self, *args)

    def ThisSolution(self, *args):
        r"""
        Return
        -------
        gp_Lin2d

        Description
        -----------
        Returns a line, representing the solution computed by this algorithm.

        """
        return _GccAna.GccAna_Pnt2dBisec_ThisSolution(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GccAna.delete_GccAna_Pnt2dBisec

# Register GccAna_Pnt2dBisec in _GccAna:
_GccAna.GccAna_Pnt2dBisec_swigregister(GccAna_Pnt2dBisec)



