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

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

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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

# Register SwigPyIterator in _GeomPlate:
_GeomPlate.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.TColGeom2d
import OCC.Core.GeomLProp
import OCC.Core.Law
import OCC.Core.AdvApp2Var
import OCC.Core.AdvApprox
import OCC.Core.PLib
import OCC.Core.Plate
Handle_GeomPlate_CurveConstraint_Create = _GeomPlate.Handle_GeomPlate_CurveConstraint_Create
Handle_GeomPlate_CurveConstraint_DownCast = _GeomPlate.Handle_GeomPlate_CurveConstraint_DownCast
Handle_GeomPlate_CurveConstraint_IsNull = _GeomPlate.Handle_GeomPlate_CurveConstraint_IsNull
Handle_GeomPlate_PointConstraint_Create = _GeomPlate.Handle_GeomPlate_PointConstraint_Create
Handle_GeomPlate_PointConstraint_DownCast = _GeomPlate.Handle_GeomPlate_PointConstraint_DownCast
Handle_GeomPlate_PointConstraint_IsNull = _GeomPlate.Handle_GeomPlate_PointConstraint_IsNull
Handle_GeomPlate_Surface_Create = _GeomPlate.Handle_GeomPlate_Surface_Create
Handle_GeomPlate_Surface_DownCast = _GeomPlate.Handle_GeomPlate_Surface_DownCast
Handle_GeomPlate_Surface_IsNull = _GeomPlate.Handle_GeomPlate_Surface_IsNull
Handle_GeomPlate_HArray1OfSequenceOfReal_Create = _GeomPlate.Handle_GeomPlate_HArray1OfSequenceOfReal_Create
Handle_GeomPlate_HArray1OfSequenceOfReal_DownCast = _GeomPlate.Handle_GeomPlate_HArray1OfSequenceOfReal_DownCast
Handle_GeomPlate_HArray1OfSequenceOfReal_IsNull = _GeomPlate.Handle_GeomPlate_HArray1OfSequenceOfReal_IsNull
Handle_GeomPlate_HArray1OfHCurve_Create = _GeomPlate.Handle_GeomPlate_HArray1OfHCurve_Create
Handle_GeomPlate_HArray1OfHCurve_DownCast = _GeomPlate.Handle_GeomPlate_HArray1OfHCurve_DownCast
Handle_GeomPlate_HArray1OfHCurve_IsNull = _GeomPlate.Handle_GeomPlate_HArray1OfHCurve_IsNull
Handle_GeomPlate_HSequenceOfPointConstraint_Create = _GeomPlate.Handle_GeomPlate_HSequenceOfPointConstraint_Create
Handle_GeomPlate_HSequenceOfPointConstraint_DownCast = _GeomPlate.Handle_GeomPlate_HSequenceOfPointConstraint_DownCast
Handle_GeomPlate_HSequenceOfPointConstraint_IsNull = _GeomPlate.Handle_GeomPlate_HSequenceOfPointConstraint_IsNull
Handle_GeomPlate_HSequenceOfCurveConstraint_Create = _GeomPlate.Handle_GeomPlate_HSequenceOfCurveConstraint_Create
Handle_GeomPlate_HSequenceOfCurveConstraint_DownCast = _GeomPlate.Handle_GeomPlate_HSequenceOfCurveConstraint_DownCast
Handle_GeomPlate_HSequenceOfCurveConstraint_IsNull = _GeomPlate.Handle_GeomPlate_HSequenceOfCurveConstraint_IsNull
class GeomPlate_SequenceOfAij(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(_GeomPlate.GeomPlate_SequenceOfAij_begin)
    end = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_end)
    cbegin = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_cbegin)
    cend = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_cend)

    def __init__(self, *args):
        _GeomPlate.GeomPlate_SequenceOfAij_swiginit(self, _GeomPlate.new_GeomPlate_SequenceOfAij(*args))
    Size = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_Size)
    Length = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_Length)
    Lower = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_Lower)
    Upper = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_Upper)
    IsEmpty = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_IsEmpty)
    Reverse = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_Reverse)
    Exchange = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_Exchange)
    delNode = _swig_new_static_method(_GeomPlate.GeomPlate_SequenceOfAij_delNode)
    Clear = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_Clear)
    Assign = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_Assign)
    Set = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_Set)
    Remove = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_Remove)
    Append = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_Append)
    Prepend = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_Prepend)
    InsertBefore = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_InsertBefore)
    InsertAfter = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_InsertAfter)
    Split = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_Split)
    First = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_First)
    ChangeFirst = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_ChangeFirst)
    Last = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_Last)
    ChangeLast = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_ChangeLast)
    Value = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_Value)
    ChangeValue = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_ChangeValue)
    __call__ = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij___call__)
    SetValue = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfAij_SetValue)
    __swig_destroy__ = _GeomPlate.delete_GeomPlate_SequenceOfAij

# Register GeomPlate_SequenceOfAij in _GeomPlate:
_GeomPlate.GeomPlate_SequenceOfAij_swigregister(GeomPlate_SequenceOfAij)
GeomPlate_SequenceOfAij_delNode = _GeomPlate.GeomPlate_SequenceOfAij_delNode

class GeomPlate_Array1OfHCurve(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(_GeomPlate.GeomPlate_Array1OfHCurve_begin)
    end = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_end)
    cbegin = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_cbegin)
    cend = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_cend)

    def __init__(self, *args):
        _GeomPlate.GeomPlate_Array1OfHCurve_swiginit(self, _GeomPlate.new_GeomPlate_Array1OfHCurve(*args))
    Init = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_Init)
    Size = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_Size)
    Length = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_Length)
    IsEmpty = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_IsEmpty)
    Lower = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_Lower)
    Upper = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_Upper)
    IsDeletable = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_IsDeletable)
    IsAllocated = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_IsAllocated)
    Assign = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_Assign)
    Move = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_Move)
    Set = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_Set)
    First = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_First)
    ChangeFirst = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_ChangeFirst)
    Last = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_Last)
    ChangeLast = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_ChangeLast)
    Value = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_Value)
    ChangeValue = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_ChangeValue)
    __call__ = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve___call__)
    SetValue = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_SetValue)
    Resize = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfHCurve_Resize)
    __swig_destroy__ = _GeomPlate.delete_GeomPlate_Array1OfHCurve

    def __getitem__(self, index):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            return self.Value(index + self.Lower())

    def __setitem__(self, index, value):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            self.SetValue(index + self.Lower(), value)

    def __len__(self):
        return self.Length()

    def __iter__(self):
        self.low = self.Lower()
        self.up = self.Upper()
        self.current = self.Lower() - 1
        return self

    def next(self):
        if self.current >= self.Upper():
            raise StopIteration
        else:
            self.current += 1
        return self.Value(self.current)

    __next__ = next


# Register GeomPlate_Array1OfHCurve in _GeomPlate:
_GeomPlate.GeomPlate_Array1OfHCurve_swigregister(GeomPlate_Array1OfHCurve)

class GeomPlate_Array1OfSequenceOfReal(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(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_begin)
    end = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_end)
    cbegin = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_cbegin)
    cend = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_cend)

    def __init__(self, *args):
        _GeomPlate.GeomPlate_Array1OfSequenceOfReal_swiginit(self, _GeomPlate.new_GeomPlate_Array1OfSequenceOfReal(*args))
    Init = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_Init)
    Size = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_Size)
    Length = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_Length)
    IsEmpty = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_IsEmpty)
    Lower = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_Lower)
    Upper = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_Upper)
    IsDeletable = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_IsDeletable)
    IsAllocated = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_IsAllocated)
    Assign = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_Assign)
    Move = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_Move)
    Set = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_Set)
    First = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_First)
    ChangeFirst = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_ChangeFirst)
    Last = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_Last)
    ChangeLast = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_ChangeLast)
    Value = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_Value)
    ChangeValue = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_ChangeValue)
    __call__ = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal___call__)
    SetValue = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_SetValue)
    Resize = _swig_new_instance_method(_GeomPlate.GeomPlate_Array1OfSequenceOfReal_Resize)
    __swig_destroy__ = _GeomPlate.delete_GeomPlate_Array1OfSequenceOfReal

    def __getitem__(self, index):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            return self.Value(index + self.Lower())

    def __setitem__(self, index, value):
        if index + self.Lower() > self.Upper():
            raise IndexError("index out of range")
        else:
            self.SetValue(index + self.Lower(), value)

    def __len__(self):
        return self.Length()

    def __iter__(self):
        self.low = self.Lower()
        self.up = self.Upper()
        self.current = self.Lower() - 1
        return self

    def next(self):
        if self.current >= self.Upper():
            raise StopIteration
        else:
            self.current += 1
        return self.Value(self.current)

    __next__ = next


# Register GeomPlate_Array1OfSequenceOfReal in _GeomPlate:
_GeomPlate.GeomPlate_Array1OfSequenceOfReal_swigregister(GeomPlate_Array1OfSequenceOfReal)

class GeomPlate_SequenceOfPointConstraint(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(_GeomPlate.GeomPlate_SequenceOfPointConstraint_begin)
    end = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_end)
    cbegin = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_cbegin)
    cend = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_cend)

    def __init__(self, *args):
        _GeomPlate.GeomPlate_SequenceOfPointConstraint_swiginit(self, _GeomPlate.new_GeomPlate_SequenceOfPointConstraint(*args))
    Size = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_Size)
    Length = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_Length)
    Lower = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_Lower)
    Upper = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_Upper)
    IsEmpty = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_IsEmpty)
    Reverse = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_Reverse)
    Exchange = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_Exchange)
    delNode = _swig_new_static_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_delNode)
    Clear = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_Clear)
    Assign = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_Assign)
    Set = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_Set)
    Remove = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_Remove)
    Append = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_Append)
    Prepend = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_Prepend)
    InsertBefore = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_InsertBefore)
    InsertAfter = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_InsertAfter)
    Split = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_Split)
    First = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_First)
    ChangeFirst = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_ChangeFirst)
    Last = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_Last)
    ChangeLast = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_ChangeLast)
    Value = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_Value)
    ChangeValue = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_ChangeValue)
    __call__ = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint___call__)
    SetValue = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfPointConstraint_SetValue)
    __swig_destroy__ = _GeomPlate.delete_GeomPlate_SequenceOfPointConstraint

# Register GeomPlate_SequenceOfPointConstraint in _GeomPlate:
_GeomPlate.GeomPlate_SequenceOfPointConstraint_swigregister(GeomPlate_SequenceOfPointConstraint)
GeomPlate_SequenceOfPointConstraint_delNode = _GeomPlate.GeomPlate_SequenceOfPointConstraint_delNode

class GeomPlate_SequenceOfCurveConstraint(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(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_begin)
    end = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_end)
    cbegin = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_cbegin)
    cend = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_cend)

    def __init__(self, *args):
        _GeomPlate.GeomPlate_SequenceOfCurveConstraint_swiginit(self, _GeomPlate.new_GeomPlate_SequenceOfCurveConstraint(*args))
    Size = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_Size)
    Length = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_Length)
    Lower = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_Lower)
    Upper = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_Upper)
    IsEmpty = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_IsEmpty)
    Reverse = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_Reverse)
    Exchange = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_Exchange)
    delNode = _swig_new_static_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_delNode)
    Clear = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_Clear)
    Assign = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_Assign)
    Set = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_Set)
    Remove = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_Remove)
    Append = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_Append)
    Prepend = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_Prepend)
    InsertBefore = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_InsertBefore)
    InsertAfter = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_InsertAfter)
    Split = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_Split)
    First = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_First)
    ChangeFirst = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_ChangeFirst)
    Last = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_Last)
    ChangeLast = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_ChangeLast)
    Value = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_Value)
    ChangeValue = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_ChangeValue)
    __call__ = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint___call__)
    SetValue = _swig_new_instance_method(_GeomPlate.GeomPlate_SequenceOfCurveConstraint_SetValue)
    __swig_destroy__ = _GeomPlate.delete_GeomPlate_SequenceOfCurveConstraint

# Register GeomPlate_SequenceOfCurveConstraint in _GeomPlate:
_GeomPlate.GeomPlate_SequenceOfCurveConstraint_swigregister(GeomPlate_SequenceOfCurveConstraint)
GeomPlate_SequenceOfCurveConstraint_delNode = _GeomPlate.GeomPlate_SequenceOfCurveConstraint_delNode

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

    def __init__(self, *args):
        r"""
        :rtype: None:param anInd1:
        	:type anInd1: int
        	:param anInd2:
        	:type anInd2: int
        	:param aVec:
        	:type aVec: gp_Vec
        	:rtype: None
        """
        _GeomPlate.GeomPlate_Aij_swiginit(self, _GeomPlate.new_GeomPlate_Aij(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomPlate.delete_GeomPlate_Aij

# Register GeomPlate_Aij in _GeomPlate:
_GeomPlate.GeomPlate_Aij_swigregister(GeomPlate_Aij)

class GeomPlate_BuildAveragePlane(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"""
        * Tol is a Tolerance to make the difference between the result plane and the result line. if POption = 1 : automatical parametrisation if POption = 2 : parametrisation by eigen vectors if NOption = 1 : the average plane is the inertial plane. if NOption = 2 : the average plane is the plane of max. flux.
        	:param Pts:
        	:type Pts: TColgp_HArray1OfPnt
        	:param NbBoundPoints:
        	:type NbBoundPoints: int
        	:param Tol:
        	:type Tol: float
        	:param POption:
        	:type POption: int
        	:param NOption:
        	:type NOption: int
        	:rtype: None* Creates the plane from the 'best vector'
        	:param Normals:
        	:type Normals: TColgp_SequenceOfVec
        	:param Pts:
        	:type Pts: TColgp_HArray1OfPnt
        	:rtype: None
        """
        _GeomPlate.GeomPlate_BuildAveragePlane_swiginit(self, _GeomPlate.new_GeomPlate_BuildAveragePlane(*args))
    HalfSpace = _swig_new_static_method(_GeomPlate.GeomPlate_BuildAveragePlane_HalfSpace)
    IsLine = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildAveragePlane_IsLine)
    IsPlane = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildAveragePlane_IsPlane)
    Line = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildAveragePlane_Line)
    MinMaxBox = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildAveragePlane_MinMaxBox)
    Plane = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildAveragePlane_Plane)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomPlate.delete_GeomPlate_BuildAveragePlane

# Register GeomPlate_BuildAveragePlane in _GeomPlate:
_GeomPlate.GeomPlate_BuildAveragePlane_swigregister(GeomPlate_BuildAveragePlane)
GeomPlate_BuildAveragePlane_HalfSpace = _GeomPlate.GeomPlate_BuildAveragePlane_HalfSpace

class GeomPlate_BuildPlateSurface(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(_GeomPlate.GeomPlate_BuildPlateSurface_Add)
    CurveConstraint = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildPlateSurface_CurveConstraint)
    Curves2d = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildPlateSurface_Curves2d)
    Disc2dContour = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildPlateSurface_Disc2dContour)
    Disc3dContour = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildPlateSurface_Disc3dContour)
    G0Error = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildPlateSurface_G0Error)
    G1Error = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildPlateSurface_G1Error)
    G2Error = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildPlateSurface_G2Error)

    def __init__(self, *args):
        r"""
        * Constructor compatible with the old version with this constructor the constraint are given in a Array of Curve on Surface The array NbPoints contains the number of points for each constraint. The Array Tang contains the order of constraint for each Constraint: The possible values for this order has to be -1 , 0 , 1 , 2 . Order i means constraint Gi. NbIter is the maximum number of iteration to optimise the number of points for resolution Degree is the degree of resolution for Plate Tol2d is the tolerance used to test if two points of different constraint are identical in the parametric space of the initial surface Tol3d is used to test if two identical points in the 2d space are identical in 3d space TolAng is used to compare the angle between normal of two identical points in the 2d space Raises ConstructionError;
        	:param NPoints:
        	:type NPoints: TColStd_HArray1OfInteger
        	:param TabCurve:
        	:type TabCurve: GeomPlate_HArray1OfHCurve
        	:param Tang:
        	:type Tang: TColStd_HArray1OfInteger
        	:param Degree:
        	:type Degree: int
        	:param NbIter: default value is 3
        	:type NbIter: int
        	:param Tol2d: default value is 0.00001
        	:type Tol2d: float
        	:param Tol3d: default value is 0.0001
        	:type Tol3d: float
        	:param TolAng: default value is 0.01
        	:type TolAng: float
        	:param TolCurv: default value is 0.1
        	:type TolCurv: float
        	:param Anisotropie: default value is Standard_False
        	:type Anisotropie: bool
        	:rtype: None:param Surf:
        	:type Surf: Geom_Surface
        	:param Degree: default value is 3
        	:type Degree: int
        	:param NbPtsOnCur: default value is 10
        	:type NbPtsOnCur: int
        	:param NbIter: default value is 3
        	:type NbIter: int
        	:param Tol2d: default value is 0.00001
        	:type Tol2d: float
        	:param Tol3d: default value is 0.0001
        	:type Tol3d: float
        	:param TolAng: default value is 0.01
        	:type TolAng: float
        	:param TolCurv: default value is 0.1
        	:type TolCurv: float
        	:param Anisotropie: default value is Standard_False
        	:type Anisotropie: bool
        	:rtype: None* Initializes the BuildPlateSurface framework for deforming plate surfaces using curve and point constraints. You use the first constructor if you have an initial surface to work with at construction time. If not, you use the second. You can add one later by using the method LoadInitSurface. If no initial surface is loaded, one will automatically be computed. The curve and point constraints will be defined by using the method Add. Before the call to the algorithm, the curve constraints will be transformed into sequences of discrete points. Each curve defined as a constraint will be given the value of NbPtsOnCur as the average number of points on it. Several arguments serve to improve performance of the algorithm. NbIter, for example, expresses the number of iterations allowed and is used to control the duration of computation. To optimize resolution, Degree will have the default value of 3. The surface generated must respect several tolerance values: - 2d tolerance given by Tol2d, with a default value of 0.00001 - 3d tolerance expressed by Tol3d, with a default value of 0.0001 - angular tolerance given by TolAng, with a default value of 0.01, defining the greatest angle allowed between the constraint and the target surface. Exceptions Standard_ConstructionError if NbIter is less than 1 or Degree is less than 3.
        	:param Degree: default value is 3
        	:type Degree: int
        	:param NbPtsOnCur: default value is 10
        	:type NbPtsOnCur: int
        	:param NbIter: default value is 3
        	:type NbIter: int
        	:param Tol2d: default value is 0.00001
        	:type Tol2d: float
        	:param Tol3d: default value is 0.0001
        	:type Tol3d: float
        	:param TolAng: default value is 0.01
        	:type TolAng: float
        	:param TolCurv: default value is 0.1
        	:type TolCurv: float
        	:param Anisotropie: default value is Standard_False
        	:type Anisotropie: bool
        	:rtype: None
        """
        _GeomPlate.GeomPlate_BuildPlateSurface_swiginit(self, _GeomPlate.new_GeomPlate_BuildPlateSurface(*args))
    Init = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildPlateSurface_Init)
    IsDone = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildPlateSurface_IsDone)
    LoadInitSurface = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildPlateSurface_LoadInitSurface)
    Order = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildPlateSurface_Order)
    Perform = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildPlateSurface_Perform)
    PointConstraint = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildPlateSurface_PointConstraint)
    Sense = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildPlateSurface_Sense)
    SetNbBounds = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildPlateSurface_SetNbBounds)
    SurfInit = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildPlateSurface_SurfInit)
    Surface = _swig_new_instance_method(_GeomPlate.GeomPlate_BuildPlateSurface_Surface)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomPlate.delete_GeomPlate_BuildPlateSurface

# Register GeomPlate_BuildPlateSurface in _GeomPlate:
_GeomPlate.GeomPlate_BuildPlateSurface_swigregister(GeomPlate_BuildPlateSurface)

class GeomPlate_CurveConstraint(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    Curve2dOnSurf = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_Curve2dOnSurf)
    Curve3d = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_Curve3d)
    D0 = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_D0)
    D1 = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_D1)
    D2 = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_D2)
    FirstParameter = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_FirstParameter)
    G0Criterion = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_G0Criterion)
    G1Criterion = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_G1Criterion)
    G2Criterion = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_G2Criterion)

    def __init__(self, *args):
        r"""
        * Initializes an empty curve constraint object.
        	:rtype: None* Create a constraint Order is the order of the constraint. The possible values for order are -1,0,1,2. Order i means constraints Gi Npt is the number of points associated with the constraint. TolDist is the maximum error to satisfy for G0 constraints TolAng is the maximum error to satisfy for G1 constraints TolCurv is the maximum error to satisfy for G2 constraints These errors can be replaced by laws of criterion. Raises ConstructionError if Order is not -1 , 0, 1, 2
        	:param Boundary:
        	:type Boundary: Adaptor3d_HCurve
        	:param Order:
        	:type Order: int
        	:param NPt: default value is 10
        	:type NPt: int
        	:param TolDist: default value is 0.0001
        	:type TolDist: float
        	:param TolAng: default value is 0.01
        	:type TolAng: float
        	:param TolCurv: default value is 0.1
        	:type TolCurv: float
        	:rtype: None
        """
        _GeomPlate.GeomPlate_CurveConstraint_swiginit(self, _GeomPlate.new_GeomPlate_CurveConstraint(*args))
    LPropSurf = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_LPropSurf)
    LastParameter = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_LastParameter)
    Length = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_Length)
    NbPoints = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_NbPoints)
    Order = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_Order)
    ProjectedCurve = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_ProjectedCurve)
    SetCurve2dOnSurf = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_SetCurve2dOnSurf)
    SetG0Criterion = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_SetG0Criterion)
    SetG1Criterion = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_SetG1Criterion)
    SetG2Criterion = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_SetG2Criterion)
    SetNbPoints = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_SetNbPoints)
    SetOrder = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_SetOrder)
    SetProjectedCurve = _swig_new_instance_method(_GeomPlate.GeomPlate_CurveConstraint_SetProjectedCurve)


    @staticmethod
    def DownCast(t):
      return Handle_GeomPlate_CurveConstraint_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _GeomPlate.delete_GeomPlate_CurveConstraint

# Register GeomPlate_CurveConstraint in _GeomPlate:
_GeomPlate.GeomPlate_CurveConstraint_swigregister(GeomPlate_CurveConstraint)

class GeomPlate_MakeApprox(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    ApproxError = _swig_new_instance_method(_GeomPlate.GeomPlate_MakeApprox_ApproxError)
    CriterionError = _swig_new_instance_method(_GeomPlate.GeomPlate_MakeApprox_CriterionError)

    def __init__(self, *args):
        r"""
        * Converts SurfPlate into a Geom_BSplineSurface with n Bezier pieces (n<=Nbmax) of degree <= dgmax and an approximation error < Tol3d if possible the criterion CritPlate is satisfied if possible
        	:param SurfPlate:
        	:type SurfPlate: GeomPlate_Surface
        	:param PlateCrit:
        	:type PlateCrit: AdvApp2Var_Criterion
        	:param Tol3d:
        	:type Tol3d: float
        	:param Nbmax:
        	:type Nbmax: int
        	:param dgmax:
        	:type dgmax: int
        	:param Continuity: default value is GeomAbs_C1
        	:type Continuity: GeomAbs_Shape
        	:param EnlargeCoeff: default value is 1.1
        	:type EnlargeCoeff: float
        	:rtype: None* Converts SurfPlate into a Geom_BSplineSurface with n Bezier pieces (n<=Nbmax) of degree <= dgmax and an approximation error < Tol3d if possible if CritOrder = -1 , no criterion is used if CritOrder = 0 , a PlateG0Criterion is used with max value > 10*dmax if CritOrder = 1 , a PlateG1Criterion is used with max value > 10*dmax WARNING : for CritOrder = 0 or 1, only the constraints points of SurfPlate are used to evaluate the value of the criterion
        	:param SurfPlate:
        	:type SurfPlate: GeomPlate_Surface
        	:param Tol3d:
        	:type Tol3d: float
        	:param Nbmax:
        	:type Nbmax: int
        	:param dgmax:
        	:type dgmax: int
        	:param dmax:
        	:type dmax: float
        	:param CritOrder: default value is 0
        	:type CritOrder: int
        	:param Continuity: default value is GeomAbs_C1
        	:type Continuity: GeomAbs_Shape
        	:param EnlargeCoeff: default value is 1.1
        	:type EnlargeCoeff: float
        	:rtype: None
        """
        _GeomPlate.GeomPlate_MakeApprox_swiginit(self, _GeomPlate.new_GeomPlate_MakeApprox(*args))
    Surface = _swig_new_instance_method(_GeomPlate.GeomPlate_MakeApprox_Surface)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomPlate.delete_GeomPlate_MakeApprox

# Register GeomPlate_MakeApprox in _GeomPlate:
_GeomPlate.GeomPlate_MakeApprox_swigregister(GeomPlate_MakeApprox)

class GeomPlate_PlateG0Criterion(OCC.Core.AdvApp2Var.AdvApp2Var_Criterion):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        :param Data:
        	:type Data: TColgp_SequenceOfXY
        	:param G0Data:
        	:type G0Data: TColgp_SequenceOfXYZ
        	:param Maximum:
        	:type Maximum: float
        	:param Type: default value is AdvApp2Var_Absolute
        	:type Type: AdvApp2Var_CriterionType
        	:param Repart: default value is AdvApp2Var_Regular
        	:type Repart: AdvApp2Var_CriterionRepartition
        	:rtype: None
        """
        _GeomPlate.GeomPlate_PlateG0Criterion_swiginit(self, _GeomPlate.new_GeomPlate_PlateG0Criterion(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomPlate.delete_GeomPlate_PlateG0Criterion

# Register GeomPlate_PlateG0Criterion in _GeomPlate:
_GeomPlate.GeomPlate_PlateG0Criterion_swigregister(GeomPlate_PlateG0Criterion)

class GeomPlate_PlateG1Criterion(OCC.Core.AdvApp2Var.AdvApp2Var_Criterion):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        :param Data:
        	:type Data: TColgp_SequenceOfXY
        	:param G1Data:
        	:type G1Data: TColgp_SequenceOfXYZ
        	:param Maximum:
        	:type Maximum: float
        	:param Type: default value is AdvApp2Var_Absolute
        	:type Type: AdvApp2Var_CriterionType
        	:param Repart: default value is AdvApp2Var_Regular
        	:type Repart: AdvApp2Var_CriterionRepartition
        	:rtype: None
        """
        _GeomPlate.GeomPlate_PlateG1Criterion_swiginit(self, _GeomPlate.new_GeomPlate_PlateG1Criterion(*args))

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomPlate.delete_GeomPlate_PlateG1Criterion

# Register GeomPlate_PlateG1Criterion in _GeomPlate:
_GeomPlate.GeomPlate_PlateG1Criterion_swigregister(GeomPlate_PlateG1Criterion)

class GeomPlate_PointConstraint(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    D0 = _swig_new_instance_method(_GeomPlate.GeomPlate_PointConstraint_D0)
    D1 = _swig_new_instance_method(_GeomPlate.GeomPlate_PointConstraint_D1)
    D2 = _swig_new_instance_method(_GeomPlate.GeomPlate_PointConstraint_D2)
    G0Criterion = _swig_new_instance_method(_GeomPlate.GeomPlate_PointConstraint_G0Criterion)
    G1Criterion = _swig_new_instance_method(_GeomPlate.GeomPlate_PointConstraint_G1Criterion)
    G2Criterion = _swig_new_instance_method(_GeomPlate.GeomPlate_PointConstraint_G2Criterion)

    def __init__(self, *args):
        r"""
        * Constructs a point constraint object defined by Pt, a 3D point Order gives the order of constraint, one of: - -1 i.e. none, or 0 i.e.G0 when assigned to Pt - -1 i.e. none, 0 i.e. G0, 1 i.e. G1, 2 i.e. G2 when assigned to U, V and Surf. In this constructor, only TolDist is given. Distance tolerance represents the greatest distance allowed between the constraint and the target surface. Angular tolerance represents the largest angle allowed between the constraint and the target surface. Curvature tolerance represents the greatest difference in curvature allowed between the constraint and the target surface. Raises ConstructionError if Order is not 0 or -1
        	:param Pt:
        	:type Pt: gp_Pnt
        	:param Order:
        	:type Order: int
        	:param TolDist: default value is 0.0001
        	:type TolDist: float
        	:rtype: None* Constructs a point constraint object defined by the intersection point of U and V on the surface Surf. Order gives the order of constraint, one of: - -1 i.e. none, or 0 i.e.G0 when assigned to Pt - -1 i.e. none, 0 i.e. G0, 1 i.e. G1, 2 i.e. G2 when assigned to U, V and Surf. In this constructor the surface to be generated must respect several tolerance values only: - the distance tolerance TolDist - the angular tolerance TolAng - the curvature tolerance, TolCurv. Distance tolerance represents the greatest distance allowed between the constraint and the target surface. Angular tolerance represents the largest angle allowed between the constraint and the target surface. Curvature tolerance represents the greatest difference in curvature allowed between the constraint and the target surface.Creates a punctual constraint.
        	:param U:
        	:type U: float
        	:param V:
        	:type V: float
        	:param Surf:
        	:type Surf: Geom_Surface
        	:param Order:
        	:type Order: int
        	:param TolDist: default value is 0.0001
        	:type TolDist: float
        	:param TolAng: default value is 0.01
        	:type TolAng: float
        	:param TolCurv: default value is 0.1
        	:type TolCurv: float
        	:rtype: None
        """
        _GeomPlate.GeomPlate_PointConstraint_swiginit(self, _GeomPlate.new_GeomPlate_PointConstraint(*args))
    HasPnt2dOnSurf = _swig_new_instance_method(_GeomPlate.GeomPlate_PointConstraint_HasPnt2dOnSurf)
    LPropSurf = _swig_new_instance_method(_GeomPlate.GeomPlate_PointConstraint_LPropSurf)
    Order = _swig_new_instance_method(_GeomPlate.GeomPlate_PointConstraint_Order)
    Pnt2dOnSurf = _swig_new_instance_method(_GeomPlate.GeomPlate_PointConstraint_Pnt2dOnSurf)
    SetG0Criterion = _swig_new_instance_method(_GeomPlate.GeomPlate_PointConstraint_SetG0Criterion)
    SetG1Criterion = _swig_new_instance_method(_GeomPlate.GeomPlate_PointConstraint_SetG1Criterion)
    SetG2Criterion = _swig_new_instance_method(_GeomPlate.GeomPlate_PointConstraint_SetG2Criterion)
    SetOrder = _swig_new_instance_method(_GeomPlate.GeomPlate_PointConstraint_SetOrder)
    SetPnt2dOnSurf = _swig_new_instance_method(_GeomPlate.GeomPlate_PointConstraint_SetPnt2dOnSurf)


    @staticmethod
    def DownCast(t):
      return Handle_GeomPlate_PointConstraint_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _GeomPlate.delete_GeomPlate_PointConstraint

# Register GeomPlate_PointConstraint in _GeomPlate:
_GeomPlate.GeomPlate_PointConstraint_swigregister(GeomPlate_PointConstraint)

class GeomPlate_Surface(OCC.Core.Geom.Geom_Surface):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr
    CallSurfinit = _swig_new_instance_method(_GeomPlate.GeomPlate_Surface_CallSurfinit)
    Constraints = _swig_new_instance_method(_GeomPlate.GeomPlate_Surface_Constraints)

    def __init__(self, *args):
        r"""
        :param Surfinit:
        	:type Surfinit: Geom_Surface
        	:param Surfinter:
        	:type Surfinter: Plate_Plate
        	:rtype: None
        """
        _GeomPlate.GeomPlate_Surface_swiginit(self, _GeomPlate.new_GeomPlate_Surface(*args))
    RealBounds = _swig_new_instance_method(_GeomPlate.GeomPlate_Surface_RealBounds)
    SetBounds = _swig_new_instance_method(_GeomPlate.GeomPlate_Surface_SetBounds)


    @staticmethod
    def DownCast(t):
      return Handle_GeomPlate_Surface_DownCast(t)


    __repr__ = _dumps_object

    __swig_destroy__ = _GeomPlate.delete_GeomPlate_Surface

# Register GeomPlate_Surface in _GeomPlate:
_GeomPlate.GeomPlate_Surface_swigregister(GeomPlate_Surface)

class GeomPlate_HArray1OfSequenceOfReal(GeomPlate_Array1OfSequenceOfReal, OCC.Core.Standard.Standard_Transient):
    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):
        _GeomPlate.GeomPlate_HArray1OfSequenceOfReal_swiginit(self, _GeomPlate.new_GeomPlate_HArray1OfSequenceOfReal(*args))
    Array1 = _swig_new_instance_method(_GeomPlate.GeomPlate_HArray1OfSequenceOfReal_Array1)
    ChangeArray1 = _swig_new_instance_method(_GeomPlate.GeomPlate_HArray1OfSequenceOfReal_ChangeArray1)


    @staticmethod
    def DownCast(t):
      return Handle_GeomPlate_HArray1OfSequenceOfReal_DownCast(t)

    __swig_destroy__ = _GeomPlate.delete_GeomPlate_HArray1OfSequenceOfReal

# Register GeomPlate_HArray1OfSequenceOfReal in _GeomPlate:
_GeomPlate.GeomPlate_HArray1OfSequenceOfReal_swigregister(GeomPlate_HArray1OfSequenceOfReal)

class GeomPlate_HArray1OfHCurve(GeomPlate_Array1OfHCurve, OCC.Core.Standard.Standard_Transient):
    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):
        _GeomPlate.GeomPlate_HArray1OfHCurve_swiginit(self, _GeomPlate.new_GeomPlate_HArray1OfHCurve(*args))
    Array1 = _swig_new_instance_method(_GeomPlate.GeomPlate_HArray1OfHCurve_Array1)
    ChangeArray1 = _swig_new_instance_method(_GeomPlate.GeomPlate_HArray1OfHCurve_ChangeArray1)


    @staticmethod
    def DownCast(t):
      return Handle_GeomPlate_HArray1OfHCurve_DownCast(t)

    __swig_destroy__ = _GeomPlate.delete_GeomPlate_HArray1OfHCurve

# Register GeomPlate_HArray1OfHCurve in _GeomPlate:
_GeomPlate.GeomPlate_HArray1OfHCurve_swigregister(GeomPlate_HArray1OfHCurve)

class GeomPlate_HSequenceOfPointConstraint(GeomPlate_SequenceOfPointConstraint, OCC.Core.Standard.Standard_Transient):
    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):
        _GeomPlate.GeomPlate_HSequenceOfPointConstraint_swiginit(self, _GeomPlate.new_GeomPlate_HSequenceOfPointConstraint(*args))
    Sequence = _swig_new_instance_method(_GeomPlate.GeomPlate_HSequenceOfPointConstraint_Sequence)
    Append = _swig_new_instance_method(_GeomPlate.GeomPlate_HSequenceOfPointConstraint_Append)
    ChangeSequence = _swig_new_instance_method(_GeomPlate.GeomPlate_HSequenceOfPointConstraint_ChangeSequence)


    @staticmethod
    def DownCast(t):
      return Handle_GeomPlate_HSequenceOfPointConstraint_DownCast(t)

    __swig_destroy__ = _GeomPlate.delete_GeomPlate_HSequenceOfPointConstraint

# Register GeomPlate_HSequenceOfPointConstraint in _GeomPlate:
_GeomPlate.GeomPlate_HSequenceOfPointConstraint_swigregister(GeomPlate_HSequenceOfPointConstraint)

class GeomPlate_HSequenceOfCurveConstraint(GeomPlate_SequenceOfCurveConstraint, OCC.Core.Standard.Standard_Transient):
    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):
        _GeomPlate.GeomPlate_HSequenceOfCurveConstraint_swiginit(self, _GeomPlate.new_GeomPlate_HSequenceOfCurveConstraint(*args))
    Sequence = _swig_new_instance_method(_GeomPlate.GeomPlate_HSequenceOfCurveConstraint_Sequence)
    Append = _swig_new_instance_method(_GeomPlate.GeomPlate_HSequenceOfCurveConstraint_Append)
    ChangeSequence = _swig_new_instance_method(_GeomPlate.GeomPlate_HSequenceOfCurveConstraint_ChangeSequence)


    @staticmethod
    def DownCast(t):
      return Handle_GeomPlate_HSequenceOfCurveConstraint_DownCast(t)

    __swig_destroy__ = _GeomPlate.delete_GeomPlate_HSequenceOfCurveConstraint

# Register GeomPlate_HSequenceOfCurveConstraint in _GeomPlate:
_GeomPlate.GeomPlate_HSequenceOfCurveConstraint_swigregister(GeomPlate_HSequenceOfCurveConstraint)



