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

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

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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

# Register SwigPyIterator in _IntPolyh:
_IntPolyh.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.Adaptor3d
import OCC.Core.Geom
import OCC.Core.gp
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.TopAbs
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d
import OCC.Core.math
import OCC.Core.Message
import OCC.Core.Bnd
import OCC.Core.BVH
class IntPolyh_SeqOfStartPoints(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    begin = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_begin)
    end = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_end)
    cbegin = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_cbegin)
    cend = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_cend)

    def __init__(self, *args):
        _IntPolyh.IntPolyh_SeqOfStartPoints_swiginit(self, _IntPolyh.new_IntPolyh_SeqOfStartPoints(*args))
    Size = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_Size)
    Length = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_Length)
    Lower = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_Lower)
    Upper = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_Upper)
    IsEmpty = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_IsEmpty)
    Reverse = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_Reverse)
    Exchange = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_Exchange)
    delNode = _swig_new_static_method(_IntPolyh.IntPolyh_SeqOfStartPoints_delNode)
    Clear = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_Clear)
    Assign = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_Assign)
    Set = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_Set)
    Remove = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_Remove)
    Append = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_Append)
    Prepend = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_Prepend)
    InsertBefore = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_InsertBefore)
    InsertAfter = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_InsertAfter)
    Split = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_Split)
    First = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_First)
    ChangeFirst = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_ChangeFirst)
    Last = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_Last)
    ChangeLast = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_ChangeLast)
    Value = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_Value)
    ChangeValue = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_ChangeValue)
    __call__ = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints___call__)
    SetValue = _swig_new_instance_method(_IntPolyh.IntPolyh_SeqOfStartPoints_SetValue)
    __swig_destroy__ = _IntPolyh.delete_IntPolyh_SeqOfStartPoints

# Register IntPolyh_SeqOfStartPoints in _IntPolyh:
_IntPolyh.IntPolyh_SeqOfStartPoints_swigregister(IntPolyh_SeqOfStartPoints)
IntPolyh_SeqOfStartPoints_delNode = _IntPolyh.IntPolyh_SeqOfStartPoints_delNode

class IntPolyh_ListOfCouples(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    begin = _swig_new_instance_method(_IntPolyh.IntPolyh_ListOfCouples_begin)
    end = _swig_new_instance_method(_IntPolyh.IntPolyh_ListOfCouples_end)
    cbegin = _swig_new_instance_method(_IntPolyh.IntPolyh_ListOfCouples_cbegin)
    cend = _swig_new_instance_method(_IntPolyh.IntPolyh_ListOfCouples_cend)

    def __init__(self, *args):
        _IntPolyh.IntPolyh_ListOfCouples_swiginit(self, _IntPolyh.new_IntPolyh_ListOfCouples(*args))
    Size = _swig_new_instance_method(_IntPolyh.IntPolyh_ListOfCouples_Size)
    Assign = _swig_new_instance_method(_IntPolyh.IntPolyh_ListOfCouples_Assign)
    Set = _swig_new_instance_method(_IntPolyh.IntPolyh_ListOfCouples_Set)
    Clear = _swig_new_instance_method(_IntPolyh.IntPolyh_ListOfCouples_Clear)
    First = _swig_new_instance_method(_IntPolyh.IntPolyh_ListOfCouples_First)
    Last = _swig_new_instance_method(_IntPolyh.IntPolyh_ListOfCouples_Last)
    Append = _swig_new_instance_method(_IntPolyh.IntPolyh_ListOfCouples_Append)
    Prepend = _swig_new_instance_method(_IntPolyh.IntPolyh_ListOfCouples_Prepend)
    RemoveFirst = _swig_new_instance_method(_IntPolyh.IntPolyh_ListOfCouples_RemoveFirst)
    Remove = _swig_new_instance_method(_IntPolyh.IntPolyh_ListOfCouples_Remove)
    InsertBefore = _swig_new_instance_method(_IntPolyh.IntPolyh_ListOfCouples_InsertBefore)
    InsertAfter = _swig_new_instance_method(_IntPolyh.IntPolyh_ListOfCouples_InsertAfter)
    Reverse = _swig_new_instance_method(_IntPolyh.IntPolyh_ListOfCouples_Reverse)
    __swig_destroy__ = _IntPolyh.delete_IntPolyh_ListOfCouples

# Register IntPolyh_ListOfCouples in _IntPolyh:
_IntPolyh.IntPolyh_ListOfCouples_swigregister(IntPolyh_ListOfCouples)

class IntPolyh_Couple(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Angle = _swig_new_instance_method(_IntPolyh.IntPolyh_Couple_Angle)
    Dump = _swig_new_instance_method(_IntPolyh.IntPolyh_Couple_Dump)
    FirstValue = _swig_new_instance_method(_IntPolyh.IntPolyh_Couple_FirstValue)
    HashCode = _swig_new_instance_method(_IntPolyh.IntPolyh_Couple_HashCode)
    __hash__ = _swig_new_instance_method(_IntPolyh.IntPolyh_Couple___hash__)

    def __init__(self, *args):
        r"""
        * Constructor
        	:rtype: None* Constructor
        	:param theTriangle1:
        	:type theTriangle1: int
        	:param theTriangle2:
        	:type theTriangle2: int
        	:param theAngle: default value is -2.0
        	:type theAngle: float
        	:rtype: None
        """
        _IntPolyh.IntPolyh_Couple_swiginit(self, _IntPolyh.new_IntPolyh_Couple(*args))
    IsAnalyzed = _swig_new_instance_method(_IntPolyh.IntPolyh_Couple_IsAnalyzed)
    IsEqual = _swig_new_instance_method(_IntPolyh.IntPolyh_Couple_IsEqual)
    SecondValue = _swig_new_instance_method(_IntPolyh.IntPolyh_Couple_SecondValue)
    SetAnalyzed = _swig_new_instance_method(_IntPolyh.IntPolyh_Couple_SetAnalyzed)
    SetAngle = _swig_new_instance_method(_IntPolyh.IntPolyh_Couple_SetAngle)
    SetCoupleValue = _swig_new_instance_method(_IntPolyh.IntPolyh_Couple_SetCoupleValue)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPolyh.delete_IntPolyh_Couple

# Register IntPolyh_Couple in _IntPolyh:
_IntPolyh.IntPolyh_Couple_swigregister(IntPolyh_Couple)

class IntPolyh_CoupleMapHasher(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    HashCode = _swig_new_static_method(_IntPolyh.IntPolyh_CoupleMapHasher_HashCode)
    IsEqual = _swig_new_static_method(_IntPolyh.IntPolyh_CoupleMapHasher_IsEqual)

    __repr__ = _dumps_object


    def __init__(self):
        _IntPolyh.IntPolyh_CoupleMapHasher_swiginit(self, _IntPolyh.new_IntPolyh_CoupleMapHasher())
    __swig_destroy__ = _IntPolyh.delete_IntPolyh_CoupleMapHasher

# Register IntPolyh_CoupleMapHasher in _IntPolyh:
_IntPolyh.IntPolyh_CoupleMapHasher_swigregister(IntPolyh_CoupleMapHasher)
IntPolyh_CoupleMapHasher_HashCode = _IntPolyh.IntPolyh_CoupleMapHasher_HashCode
IntPolyh_CoupleMapHasher_IsEqual = _IntPolyh.IntPolyh_CoupleMapHasher_IsEqual

class IntPolyh_Edge(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Dump = _swig_new_instance_method(_IntPolyh.IntPolyh_Edge_Dump)
    FirstPoint = _swig_new_instance_method(_IntPolyh.IntPolyh_Edge_FirstPoint)
    FirstTriangle = _swig_new_instance_method(_IntPolyh.IntPolyh_Edge_FirstTriangle)

    def __init__(self, *args):
        r"""
        * Constructor
        	:rtype: None* Constructor
        	:param thePoint1:
        	:type thePoint1: int
        	:param thePoint2:
        	:type thePoint2: int
        	:param theTriangle1:
        	:type theTriangle1: int
        	:param theTriangle2:
        	:type theTriangle2: int
        	:rtype: None
        """
        _IntPolyh.IntPolyh_Edge_swiginit(self, _IntPolyh.new_IntPolyh_Edge(*args))
    SecondPoint = _swig_new_instance_method(_IntPolyh.IntPolyh_Edge_SecondPoint)
    SecondTriangle = _swig_new_instance_method(_IntPolyh.IntPolyh_Edge_SecondTriangle)
    SetFirstPoint = _swig_new_instance_method(_IntPolyh.IntPolyh_Edge_SetFirstPoint)
    SetFirstTriangle = _swig_new_instance_method(_IntPolyh.IntPolyh_Edge_SetFirstTriangle)
    SetSecondPoint = _swig_new_instance_method(_IntPolyh.IntPolyh_Edge_SetSecondPoint)
    SetSecondTriangle = _swig_new_instance_method(_IntPolyh.IntPolyh_Edge_SetSecondTriangle)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPolyh.delete_IntPolyh_Edge

# Register IntPolyh_Edge in _IntPolyh:
_IntPolyh.IntPolyh_Edge_swigregister(IntPolyh_Edge)

class IntPolyh_Intersection(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    GetLinePoint = _swig_new_instance_method(_IntPolyh.IntPolyh_Intersection_GetLinePoint)
    GetTangentZonePoint = _swig_new_instance_method(_IntPolyh.IntPolyh_Intersection_GetTangentZonePoint)

    def __init__(self, *args):
        r"""
        * @name Constructors Constructor for intersection of two surfaces with default parameters. Performs intersection.
        	:param theS1:
        	:type theS1: Adaptor3d_HSurface
        	:param theS2:
        	:type theS2: Adaptor3d_HSurface
        	:rtype: None* Constructor for intersection of two surfaces with the given size of the sampling nets: - <theNbSU1> x <theNbSV1> - for the first surface <theS1>; - <theNbSU2> x <theNbSV2> - for the second surface <theS2>. Performs intersection.
        	:param theS1:
        	:type theS1: Adaptor3d_HSurface
        	:param theNbSU1:
        	:type theNbSU1: int
        	:param theNbSV1:
        	:type theNbSV1: int
        	:param theS2:
        	:type theS2: Adaptor3d_HSurface
        	:param theNbSU2:
        	:type theNbSU2: int
        	:param theNbSV2:
        	:type theNbSV2: int
        	:rtype: None* Constructor for intersection of two surfaces with the precomputed sampling. Performs intersection.
        	:param theS1:
        	:type theS1: Adaptor3d_HSurface
        	:param theUPars1:
        	:type theUPars1: TColStd_Array1OfReal
        	:param theVPars1:
        	:type theVPars1: TColStd_Array1OfReal
        	:param theS2:
        	:type theS2: Adaptor3d_HSurface
        	:param theUPars2:
        	:type theUPars2: TColStd_Array1OfReal
        	:param theVPars2:
        	:type theVPars2: TColStd_Array1OfReal
        	:rtype: None
        """
        _IntPolyh.IntPolyh_Intersection_swiginit(self, _IntPolyh.new_IntPolyh_Intersection(*args))
    IsDone = _swig_new_instance_method(_IntPolyh.IntPolyh_Intersection_IsDone)
    NbPointsInLine = _swig_new_instance_method(_IntPolyh.IntPolyh_Intersection_NbPointsInLine)
    NbPointsInTangentZone = _swig_new_instance_method(_IntPolyh.IntPolyh_Intersection_NbPointsInTangentZone)
    NbSectionLines = _swig_new_instance_method(_IntPolyh.IntPolyh_Intersection_NbSectionLines)
    NbTangentZones = _swig_new_instance_method(_IntPolyh.IntPolyh_Intersection_NbTangentZones)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPolyh.delete_IntPolyh_Intersection

# Register IntPolyh_Intersection in _IntPolyh:
_IntPolyh.IntPolyh_Intersection_swigregister(IntPolyh_Intersection)

class IntPolyh_Point(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Add = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_Add)
    Cross = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_Cross)
    Degenerated = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_Degenerated)
    Divide = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_Divide)
    Dot = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_Dot)
    Dump = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_Dump)
    Equal = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_Equal)

    def __init__(self, *args):
        r"""
        * Constructor
        	:rtype: None* Constructor
        	:param x:
        	:type x: float
        	:param y:
        	:type y: float
        	:param z:
        	:type z: float
        	:param u:
        	:type u: float
        	:param v:
        	:type v: float
        	:rtype: None
        """
        _IntPolyh.IntPolyh_Point_swiginit(self, _IntPolyh.new_IntPolyh_Point(*args))
    Middle = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_Middle)
    Multiplication = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_Multiplication)
    PartOfCommon = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_PartOfCommon)
    SetDegenerated = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_SetDegenerated)
    SetPartOfCommon = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_SetPartOfCommon)
    SetU = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_SetU)
    SetV = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_SetV)
    SetX = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_SetX)
    SetY = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_SetY)
    SetZ = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_SetZ)
    SquareDistance = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_SquareDistance)
    SquareModulus = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_SquareModulus)
    Sub = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_Sub)
    U = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_U)
    V = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_V)
    X = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_X)
    Y = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_Y)
    Z = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_Z)
    __mul__ = _swig_new_instance_method(_IntPolyh.IntPolyh_Point___mul__)
    __add__ = _swig_new_instance_method(_IntPolyh.IntPolyh_Point___add__)
    __sub__ = _swig_new_instance_method(_IntPolyh.IntPolyh_Point___sub__)

    def __truediv__(self, *args):
        return _IntPolyh.IntPolyh_Point___truediv__(self, *args)
    __div__ = __truediv__


    Set = _swig_new_instance_method(_IntPolyh.IntPolyh_Point_Set)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPolyh.delete_IntPolyh_Point

# Register IntPolyh_Point in _IntPolyh:
_IntPolyh.IntPolyh_Point_swigregister(IntPolyh_Point)

class IntPolyh_PointNormal(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Point = property(_IntPolyh.IntPolyh_PointNormal_Point_get, _IntPolyh.IntPolyh_PointNormal_Point_set)
    Normal = property(_IntPolyh.IntPolyh_PointNormal_Normal_get, _IntPolyh.IntPolyh_PointNormal_Normal_set)

    __repr__ = _dumps_object


    def __init__(self):
        _IntPolyh.IntPolyh_PointNormal_swiginit(self, _IntPolyh.new_IntPolyh_PointNormal())
    __swig_destroy__ = _IntPolyh.delete_IntPolyh_PointNormal

# Register IntPolyh_PointNormal in _IntPolyh:
_IntPolyh.IntPolyh_PointNormal_swigregister(IntPolyh_PointNormal)

class IntPolyh_SectionLine(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    ChangeValue = _swig_new_instance_method(_IntPolyh.IntPolyh_SectionLine_ChangeValue)
    Copy = _swig_new_instance_method(_IntPolyh.IntPolyh_SectionLine_Copy)
    Destroy = _swig_new_instance_method(_IntPolyh.IntPolyh_SectionLine_Destroy)
    Dump = _swig_new_instance_method(_IntPolyh.IntPolyh_SectionLine_Dump)
    GetN = _swig_new_instance_method(_IntPolyh.IntPolyh_SectionLine_GetN)
    IncrementNbStartPoints = _swig_new_instance_method(_IntPolyh.IntPolyh_SectionLine_IncrementNbStartPoints)
    Init = _swig_new_instance_method(_IntPolyh.IntPolyh_SectionLine_Init)

    def __init__(self, *args):
        r"""
        :rtype: None:param nn:
        	:type nn: int
        	:rtype: None
        """
        _IntPolyh.IntPolyh_SectionLine_swiginit(self, _IntPolyh.new_IntPolyh_SectionLine(*args))
    NbStartPoints = _swig_new_instance_method(_IntPolyh.IntPolyh_SectionLine_NbStartPoints)
    Prepend = _swig_new_instance_method(_IntPolyh.IntPolyh_SectionLine_Prepend)
    Value = _swig_new_instance_method(_IntPolyh.IntPolyh_SectionLine_Value)
    Set = _swig_new_instance_method(_IntPolyh.IntPolyh_SectionLine_Set)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPolyh.delete_IntPolyh_SectionLine

# Register IntPolyh_SectionLine in _IntPolyh:
_IntPolyh.IntPolyh_SectionLine_swigregister(IntPolyh_SectionLine)

class IntPolyh_StartPoint(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    ChainList = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_ChainList)
    CheckSameSP = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_CheckSameSP)
    Dump = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_Dump)
    E1 = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_E1)
    E2 = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_E2)
    GetAngle = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_GetAngle)
    GetEdgePoints = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_GetEdgePoints)

    def __init__(self, *args):
        r"""
        :rtype: None:param xx:
        	:type xx: float
        	:param yy:
        	:type yy: float
        	:param zz:
        	:type zz: float
        	:param uu1:
        	:type uu1: float
        	:param vv1:
        	:type vv1: float
        	:param uu2:
        	:type uu2: float
        	:param vv2:
        	:type vv2: float
        	:param T1:
        	:type T1: int
        	:param E1:
        	:type E1: int
        	:param LAM1:
        	:type LAM1: float
        	:param T2:
        	:type T2: int
        	:param E2:
        	:type E2: int
        	:param LAM2:
        	:type LAM2: float
        	:param List:
        	:type List: int
        	:rtype: None
        """
        _IntPolyh.IntPolyh_StartPoint_swiginit(self, _IntPolyh.new_IntPolyh_StartPoint(*args))
    Lambda1 = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_Lambda1)
    Lambda2 = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_Lambda2)
    SetAngle = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_SetAngle)
    SetChainList = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_SetChainList)
    SetCoupleValue = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_SetCoupleValue)
    SetEdge1 = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_SetEdge1)
    SetEdge2 = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_SetEdge2)
    SetLambda1 = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_SetLambda1)
    SetLambda2 = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_SetLambda2)
    SetUV1 = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_SetUV1)
    SetUV2 = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_SetUV2)
    SetXYZ = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_SetXYZ)
    T1 = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_T1)
    T2 = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_T2)
    U1 = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_U1)
    U2 = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_U2)
    V1 = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_V1)
    V2 = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_V2)
    X = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_X)
    Y = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_Y)
    Z = _swig_new_instance_method(_IntPolyh.IntPolyh_StartPoint_Z)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPolyh.delete_IntPolyh_StartPoint

# Register IntPolyh_StartPoint in _IntPolyh:
_IntPolyh.IntPolyh_StartPoint_swigregister(IntPolyh_StartPoint)

class IntPolyh_Tools(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    ComputeDeflection = _swig_new_static_method(_IntPolyh.IntPolyh_Tools_ComputeDeflection)
    FillArrayOfPointNormal = _swig_new_static_method(_IntPolyh.IntPolyh_Tools_FillArrayOfPointNormal)
    IsEnlargePossible = _swig_new_static_method(_IntPolyh.IntPolyh_Tools_IsEnlargePossible)
    MakeSampling = _swig_new_static_method(_IntPolyh.IntPolyh_Tools_MakeSampling)

    __repr__ = _dumps_object


    def __init__(self):
        _IntPolyh.IntPolyh_Tools_swiginit(self, _IntPolyh.new_IntPolyh_Tools())
    __swig_destroy__ = _IntPolyh.delete_IntPolyh_Tools

# Register IntPolyh_Tools in _IntPolyh:
_IntPolyh.IntPolyh_Tools_swigregister(IntPolyh_Tools)
IntPolyh_Tools_ComputeDeflection = _IntPolyh.IntPolyh_Tools_ComputeDeflection
IntPolyh_Tools_FillArrayOfPointNormal = _IntPolyh.IntPolyh_Tools_FillArrayOfPointNormal
IntPolyh_Tools_IsEnlargePossible = _IntPolyh.IntPolyh_Tools_IsEnlargePossible
IntPolyh_Tools_MakeSampling = _IntPolyh.IntPolyh_Tools_MakeSampling

class IntPolyh_Triangle(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    BoundingBox = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_BoundingBox)
    ComputeDeflection = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_ComputeDeflection)
    Deflection = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_Deflection)
    Dump = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_Dump)
    FirstEdge = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_FirstEdge)
    FirstEdgeOrientation = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_FirstEdgeOrientation)
    FirstPoint = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_FirstPoint)
    GetEdgeNumber = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_GetEdgeNumber)
    GetEdgeOrientation = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_GetEdgeOrientation)
    GetNextTriangle = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_GetNextTriangle)
    HasIntersection = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_HasIntersection)

    def __init__(self, *args):
        r"""
        * Constructor
        	:rtype: None* Constructor
        	:param thePoint1:
        	:type thePoint1: int
        	:param thePoint2:
        	:type thePoint2: int
        	:param thePoint3:
        	:type thePoint3: int
        	:rtype: None
        """
        _IntPolyh.IntPolyh_Triangle_swiginit(self, _IntPolyh.new_IntPolyh_Triangle(*args))
    IsDegenerated = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_IsDegenerated)
    IsIntersectionPossible = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_IsIntersectionPossible)
    LinkEdges2Triangle = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_LinkEdges2Triangle)
    MiddleRefinement = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_MiddleRefinement)
    MultipleMiddleRefinement = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_MultipleMiddleRefinement)
    SecondEdge = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_SecondEdge)
    SecondEdgeOrientation = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_SecondEdgeOrientation)
    SecondPoint = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_SecondPoint)
    SetDeflection = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_SetDeflection)
    SetDegenerated = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_SetDegenerated)
    SetEdge = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_SetEdge)
    SetEdgeAndOrientation = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_SetEdgeAndOrientation)
    SetEdgeOrientation = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_SetEdgeOrientation)
    SetFirstEdge = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_SetFirstEdge)
    SetFirstPoint = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_SetFirstPoint)
    SetIntersection = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_SetIntersection)
    SetIntersectionPossible = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_SetIntersectionPossible)
    SetSecondEdge = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_SetSecondEdge)
    SetSecondPoint = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_SetSecondPoint)
    SetThirdEdge = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_SetThirdEdge)
    SetThirdPoint = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_SetThirdPoint)
    ThirdEdge = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_ThirdEdge)
    ThirdEdgeOrientation = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_ThirdEdgeOrientation)
    ThirdPoint = _swig_new_instance_method(_IntPolyh.IntPolyh_Triangle_ThirdPoint)

    __repr__ = _dumps_object

    __swig_destroy__ = _IntPolyh.delete_IntPolyh_Triangle

# Register IntPolyh_Triangle in _IntPolyh:
_IntPolyh.IntPolyh_Triangle_swigregister(IntPolyh_Triangle)



