# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.2.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.7.0/refman/html/package_geomplate.html
"""

from sys import version_info as _swig_python_version_info
# 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__

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__ = _GeomPlate.delete_SwigPyIterator

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    def __sub__(self, *args):
        return _GeomPlate.SwigPyIterator___sub__(self, *args)
    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


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

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.TColStd
import OCC.Core.TCollection
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.TopAbs
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d
import OCC.Core.math
import OCC.Core.Message
import OCC.Core.OSD
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

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




def Handle_GeomPlate_CurveConstraint_Create():
    return _GeomPlate.Handle_GeomPlate_CurveConstraint_Create()

def Handle_GeomPlate_CurveConstraint_DownCast(t):
    return _GeomPlate.Handle_GeomPlate_CurveConstraint_DownCast(t)

def Handle_GeomPlate_CurveConstraint_IsNull(t):
    return _GeomPlate.Handle_GeomPlate_CurveConstraint_IsNull(t)

def Handle_GeomPlate_PointConstraint_Create():
    return _GeomPlate.Handle_GeomPlate_PointConstraint_Create()

def Handle_GeomPlate_PointConstraint_DownCast(t):
    return _GeomPlate.Handle_GeomPlate_PointConstraint_DownCast(t)

def Handle_GeomPlate_PointConstraint_IsNull(t):
    return _GeomPlate.Handle_GeomPlate_PointConstraint_IsNull(t)

def Handle_GeomPlate_Surface_Create():
    return _GeomPlate.Handle_GeomPlate_Surface_Create()

def Handle_GeomPlate_Surface_DownCast(t):
    return _GeomPlate.Handle_GeomPlate_Surface_DownCast(t)

def Handle_GeomPlate_Surface_IsNull(t):
    return _GeomPlate.Handle_GeomPlate_Surface_IsNull(t)

def Handle_GeomPlate_HArray1OfHCurve_Create():
    return _GeomPlate.Handle_GeomPlate_HArray1OfHCurve_Create()

def Handle_GeomPlate_HArray1OfHCurve_DownCast(t):
    return _GeomPlate.Handle_GeomPlate_HArray1OfHCurve_DownCast(t)

def Handle_GeomPlate_HArray1OfHCurve_IsNull(t):
    return _GeomPlate.Handle_GeomPlate_HArray1OfHCurve_IsNull(t)

def Handle_GeomPlate_HArray1OfSequenceOfReal_Create():
    return _GeomPlate.Handle_GeomPlate_HArray1OfSequenceOfReal_Create()

def Handle_GeomPlate_HArray1OfSequenceOfReal_DownCast(t):
    return _GeomPlate.Handle_GeomPlate_HArray1OfSequenceOfReal_DownCast(t)

def Handle_GeomPlate_HArray1OfSequenceOfReal_IsNull(t):
    return _GeomPlate.Handle_GeomPlate_HArray1OfSequenceOfReal_IsNull(t)

def Handle_GeomPlate_HSequenceOfCurveConstraint_Create():
    return _GeomPlate.Handle_GeomPlate_HSequenceOfCurveConstraint_Create()

def Handle_GeomPlate_HSequenceOfCurveConstraint_DownCast(t):
    return _GeomPlate.Handle_GeomPlate_HSequenceOfCurveConstraint_DownCast(t)

def Handle_GeomPlate_HSequenceOfCurveConstraint_IsNull(t):
    return _GeomPlate.Handle_GeomPlate_HSequenceOfCurveConstraint_IsNull(t)

def Handle_GeomPlate_HSequenceOfPointConstraint_Create():
    return _GeomPlate.Handle_GeomPlate_HSequenceOfPointConstraint_Create()

def Handle_GeomPlate_HSequenceOfPointConstraint_DownCast(t):
    return _GeomPlate.Handle_GeomPlate_HSequenceOfPointConstraint_DownCast(t)

def Handle_GeomPlate_HSequenceOfPointConstraint_IsNull(t):
    return _GeomPlate.Handle_GeomPlate_HSequenceOfPointConstraint_IsNull(t)
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

    def begin(self):
        return _GeomPlate.GeomPlate_Array1OfHCurve_begin(self)

    def end(self):
        return _GeomPlate.GeomPlate_Array1OfHCurve_end(self)

    def cbegin(self):
        return _GeomPlate.GeomPlate_Array1OfHCurve_cbegin(self)

    def cend(self):
        return _GeomPlate.GeomPlate_Array1OfHCurve_cend(self)

    def __init__(self, *args):
        _GeomPlate.GeomPlate_Array1OfHCurve_swiginit(self, _GeomPlate.new_GeomPlate_Array1OfHCurve(*args))

    def Init(self, theValue):
        return _GeomPlate.GeomPlate_Array1OfHCurve_Init(self, theValue)

    def Size(self):
        return _GeomPlate.GeomPlate_Array1OfHCurve_Size(self)

    def Length(self):
        return _GeomPlate.GeomPlate_Array1OfHCurve_Length(self)

    def IsEmpty(self):
        return _GeomPlate.GeomPlate_Array1OfHCurve_IsEmpty(self)

    def Lower(self):
        return _GeomPlate.GeomPlate_Array1OfHCurve_Lower(self)

    def Upper(self):
        return _GeomPlate.GeomPlate_Array1OfHCurve_Upper(self)

    def IsDeletable(self):
        return _GeomPlate.GeomPlate_Array1OfHCurve_IsDeletable(self)

    def IsAllocated(self):
        return _GeomPlate.GeomPlate_Array1OfHCurve_IsAllocated(self)

    def Assign(self, theOther):
        return _GeomPlate.GeomPlate_Array1OfHCurve_Assign(self, theOther)

    def Move(self, theOther):
        return _GeomPlate.GeomPlate_Array1OfHCurve_Move(self, theOther)

    def Set(self, *args):
        return _GeomPlate.GeomPlate_Array1OfHCurve_Set(self, *args)

    def First(self):
        return _GeomPlate.GeomPlate_Array1OfHCurve_First(self)

    def ChangeFirst(self):
        return _GeomPlate.GeomPlate_Array1OfHCurve_ChangeFirst(self)

    def Last(self):
        return _GeomPlate.GeomPlate_Array1OfHCurve_Last(self)

    def ChangeLast(self):
        return _GeomPlate.GeomPlate_Array1OfHCurve_ChangeLast(self)

    def Value(self, theIndex):
        return _GeomPlate.GeomPlate_Array1OfHCurve_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _GeomPlate.GeomPlate_Array1OfHCurve_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _GeomPlate.GeomPlate_Array1OfHCurve___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _GeomPlate.GeomPlate_Array1OfHCurve_SetValue(self, theIndex, theItem)

    def Resize(self, theLower, theUpper, theToCopyData):
        return _GeomPlate.GeomPlate_Array1OfHCurve_Resize(self, theLower, theUpper, theToCopyData)
    __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

    def begin(self):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_begin(self)

    def end(self):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_end(self)

    def cbegin(self):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_cbegin(self)

    def cend(self):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_cend(self)

    def __init__(self, *args):
        _GeomPlate.GeomPlate_Array1OfSequenceOfReal_swiginit(self, _GeomPlate.new_GeomPlate_Array1OfSequenceOfReal(*args))

    def Init(self, theValue):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Init(self, theValue)

    def Size(self):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Size(self)

    def Length(self):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Length(self)

    def IsEmpty(self):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_IsEmpty(self)

    def Lower(self):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Lower(self)

    def Upper(self):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Upper(self)

    def IsDeletable(self):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_IsDeletable(self)

    def IsAllocated(self):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_IsAllocated(self)

    def Assign(self, theOther):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Assign(self, theOther)

    def Move(self, theOther):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Move(self, theOther)

    def Set(self, *args):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Set(self, *args)

    def First(self):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_First(self)

    def ChangeFirst(self):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_ChangeFirst(self)

    def Last(self):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Last(self)

    def ChangeLast(self):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_ChangeLast(self)

    def Value(self, theIndex):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_SetValue(self, theIndex, theItem)

    def Resize(self, theLower, theUpper, theToCopyData):
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Resize(self, theLower, theUpper, theToCopyData)
    __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_SequenceOfAij(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self):
        return _GeomPlate.GeomPlate_SequenceOfAij_begin(self)

    def end(self):
        return _GeomPlate.GeomPlate_SequenceOfAij_end(self)

    def cbegin(self):
        return _GeomPlate.GeomPlate_SequenceOfAij_cbegin(self)

    def cend(self):
        return _GeomPlate.GeomPlate_SequenceOfAij_cend(self)

    def __init__(self, *args):
        _GeomPlate.GeomPlate_SequenceOfAij_swiginit(self, _GeomPlate.new_GeomPlate_SequenceOfAij(*args))

    def Size(self):
        return _GeomPlate.GeomPlate_SequenceOfAij_Size(self)

    def Length(self):
        return _GeomPlate.GeomPlate_SequenceOfAij_Length(self)

    def Lower(self):
        return _GeomPlate.GeomPlate_SequenceOfAij_Lower(self)

    def Upper(self):
        return _GeomPlate.GeomPlate_SequenceOfAij_Upper(self)

    def IsEmpty(self):
        return _GeomPlate.GeomPlate_SequenceOfAij_IsEmpty(self)

    def Reverse(self):
        return _GeomPlate.GeomPlate_SequenceOfAij_Reverse(self)

    def Exchange(self, I, J):
        return _GeomPlate.GeomPlate_SequenceOfAij_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _GeomPlate.GeomPlate_SequenceOfAij_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _GeomPlate.GeomPlate_SequenceOfAij_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _GeomPlate.GeomPlate_SequenceOfAij_Assign(self, theOther)

    def Set(self, theOther):
        return _GeomPlate.GeomPlate_SequenceOfAij_Set(self, theOther)

    def Remove(self, *args):
        return _GeomPlate.GeomPlate_SequenceOfAij_Remove(self, *args)

    def Append(self, *args):
        return _GeomPlate.GeomPlate_SequenceOfAij_Append(self, *args)

    def Prepend(self, *args):
        return _GeomPlate.GeomPlate_SequenceOfAij_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _GeomPlate.GeomPlate_SequenceOfAij_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _GeomPlate.GeomPlate_SequenceOfAij_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _GeomPlate.GeomPlate_SequenceOfAij_Split(self, theIndex, theSeq)

    def First(self):
        return _GeomPlate.GeomPlate_SequenceOfAij_First(self)

    def ChangeFirst(self):
        return _GeomPlate.GeomPlate_SequenceOfAij_ChangeFirst(self)

    def Last(self):
        return _GeomPlate.GeomPlate_SequenceOfAij_Last(self)

    def ChangeLast(self):
        return _GeomPlate.GeomPlate_SequenceOfAij_ChangeLast(self)

    def Value(self, theIndex):
        return _GeomPlate.GeomPlate_SequenceOfAij_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _GeomPlate.GeomPlate_SequenceOfAij_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _GeomPlate.GeomPlate_SequenceOfAij___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _GeomPlate.GeomPlate_SequenceOfAij_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _GeomPlate.delete_GeomPlate_SequenceOfAij

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


# Register GeomPlate_SequenceOfAij in _GeomPlate:
_GeomPlate.GeomPlate_SequenceOfAij_swigregister(GeomPlate_SequenceOfAij)
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

    def begin(self):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_begin(self)

    def end(self):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_end(self)

    def cbegin(self):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_cbegin(self)

    def cend(self):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_cend(self)

    def __init__(self, *args):
        _GeomPlate.GeomPlate_SequenceOfCurveConstraint_swiginit(self, _GeomPlate.new_GeomPlate_SequenceOfCurveConstraint(*args))

    def Size(self):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Size(self)

    def Length(self):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Length(self)

    def Lower(self):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Lower(self)

    def Upper(self):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Upper(self)

    def IsEmpty(self):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_IsEmpty(self)

    def Reverse(self):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Reverse(self)

    def Exchange(self, I, J):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Assign(self, theOther)

    def Set(self, theOther):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Set(self, theOther)

    def Remove(self, *args):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Remove(self, *args)

    def Append(self, *args):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Append(self, *args)

    def Prepend(self, *args):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Split(self, theIndex, theSeq)

    def First(self):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_First(self)

    def ChangeFirst(self):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_ChangeFirst(self)

    def Last(self):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Last(self)

    def ChangeLast(self):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_ChangeLast(self)

    def Value(self, theIndex):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _GeomPlate.delete_GeomPlate_SequenceOfCurveConstraint

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


# Register GeomPlate_SequenceOfCurveConstraint in _GeomPlate:
_GeomPlate.GeomPlate_SequenceOfCurveConstraint_swigregister(GeomPlate_SequenceOfCurveConstraint)
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

    def begin(self):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_begin(self)

    def end(self):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_end(self)

    def cbegin(self):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_cbegin(self)

    def cend(self):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_cend(self)

    def __init__(self, *args):
        _GeomPlate.GeomPlate_SequenceOfPointConstraint_swiginit(self, _GeomPlate.new_GeomPlate_SequenceOfPointConstraint(*args))

    def Size(self):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Size(self)

    def Length(self):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Length(self)

    def Lower(self):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Lower(self)

    def Upper(self):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Upper(self)

    def IsEmpty(self):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_IsEmpty(self)

    def Reverse(self):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Reverse(self)

    def Exchange(self, I, J):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode, theAl):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_delNode(theNode, theAl)

    def Clear(self, theAllocator=0):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Clear(self, theAllocator)

    def Assign(self, theOther):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Assign(self, theOther)

    def Set(self, theOther):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Set(self, theOther)

    def Remove(self, *args):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Remove(self, *args)

    def Append(self, *args):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Append(self, *args)

    def Prepend(self, *args):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Prepend(self, *args)

    def InsertBefore(self, *args):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_InsertBefore(self, *args)

    def InsertAfter(self, *args):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_InsertAfter(self, *args)

    def Split(self, theIndex, theSeq):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Split(self, theIndex, theSeq)

    def First(self):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_First(self)

    def ChangeFirst(self):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_ChangeFirst(self)

    def Last(self):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Last(self)

    def ChangeLast(self):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_ChangeLast(self)

    def Value(self, theIndex):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Value(self, theIndex)

    def ChangeValue(self, theIndex):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_ChangeValue(self, theIndex)

    def __call__(self, *args):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint___call__(self, *args)

    def SetValue(self, theIndex, theItem):
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _GeomPlate.delete_GeomPlate_SequenceOfPointConstraint

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


# Register GeomPlate_SequenceOfPointConstraint in _GeomPlate:
_GeomPlate.GeomPlate_SequenceOfPointConstraint_swigregister(GeomPlate_SequenceOfPointConstraint)
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"""
        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        anInd1: int
        anInd2: int
        aVec: gp_Vec

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _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"""

        Parameters
        ----------
        Pts: TColgp_HArray1OfPnt
        NbBoundPoints: int
        Tol: float
        POption: int
        NOption: int

        Return
        -------
        None

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

        Parameters
        ----------
        Normals: TColgp_SequenceOfVec
        Pts: TColgp_HArray1OfPnt

        Return
        -------
        None

        Description
        -----------
        Creates the plane from the 'best vector'.

        """
        _GeomPlate.GeomPlate_BuildAveragePlane_swiginit(self, _GeomPlate.new_GeomPlate_BuildAveragePlane(*args))

    @staticmethod
    def HalfSpace(*args):
        r"""

        Parameters
        ----------
        NewNormals: TColgp_SequenceOfVec
        Normals: TColgp_SequenceOfVec
        Bset: GeomPlate_SequenceOfAij
        LinTol: float
        AngTol: float

        Return
        -------
        bool

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_BuildAveragePlane_HalfSpace(*args)

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

        Description
        -----------
        Return ok if is a line.

        """
        return _GeomPlate.GeomPlate_BuildAveragePlane_IsLine(self, *args)

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

        Description
        -----------
        Return ok if is a plane.

        """
        return _GeomPlate.GeomPlate_BuildAveragePlane_IsPlane(self, *args)

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

        Description
        -----------
        Return a line when 2 eigenvalues are null.

        """
        return _GeomPlate.GeomPlate_BuildAveragePlane_Line(self, *args)

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

        Parameters
        ----------

        Return
        -------
        Umin: float
        Umax: float
        Vmin: float
        Vmax: float

        Description
        -----------
        Computes the minimal box to include all normal projection points of the initial array on the plane.

        """
        return _GeomPlate.GeomPlate_BuildAveragePlane_MinMaxBox(self, *args)

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

        Description
        -----------
        Return the average plane.

        """
        return _GeomPlate.GeomPlate_BuildAveragePlane_Plane(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _GeomPlate.delete_GeomPlate_BuildAveragePlane

# Register GeomPlate_BuildAveragePlane in _GeomPlate:
_GeomPlate.GeomPlate_BuildAveragePlane_swigregister(GeomPlate_BuildAveragePlane)
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

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

        Parameters
        ----------
        NPoints: TColStd_HArray1OfInteger
        TabCurve: GeomPlate_HArray1OfHCurve
        Tang: TColStd_HArray1OfInteger
        Degree: int
        NbIter: int (optional, default to 3)
        Tol2d: float (optional, default to 0.00001)
        Tol3d: float (optional, default to 0.0001)
        TolAng: float (optional, default to 0.01)
        TolCurv: float (optional, default to 0.1)
        Anisotropie: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        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;.

        Parameters
        ----------
        Surf: Geom_Surface
        Degree: int (optional, default to 3)
        NbPtsOnCur: int (optional, default to 10)
        NbIter: int (optional, default to 3)
        Tol2d: float (optional, default to 0.00001)
        Tol3d: float (optional, default to 0.0001)
        TolAng: float (optional, default to 0.01)
        TolCurv: float (optional, default to 0.1)
        Anisotropie: bool (optional, default to Standard_False)

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        Parameters
        ----------
        Degree: int (optional, default to 3)
        NbPtsOnCur: int (optional, default to 10)
        NbIter: int (optional, default to 3)
        Tol2d: float (optional, default to 0.00001)
        Tol3d: float (optional, default to 0.0001)
        TolAng: float (optional, default to 0.01)
        TolCurv: float (optional, default to 0.1)
        Anisotropie: bool (optional, default to Standard_False)

        Return
        -------
        None

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

        """
        _GeomPlate.GeomPlate_BuildPlateSurface_swiginit(self, _GeomPlate.new_GeomPlate_BuildPlateSurface(*args))

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

        Parameters
        ----------
        Cont: GeomPlate_CurveConstraint

        Return
        -------
        None

        Description
        -----------
        Adds the linear constraint cont.

        Parameters
        ----------
        Cont: GeomPlate_PointConstraint

        Return
        -------
        None

        Description
        -----------
        Adds the point constraint cont.

        """
        return _GeomPlate.GeomPlate_BuildPlateSurface_Add(self, *args)

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

        Parameters
        ----------
        order: int

        Return
        -------
        opencascade::handle<GeomPlate_CurveConstraint>

        Description
        -----------
        Returns the curveconstraints of order order.

        """
        return _GeomPlate.GeomPlate_BuildPlateSurface_CurveConstraint(self, *args)

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

        Description
        -----------
        Extracts the array of curves on the plate surface which correspond to the curve constraints set in add.

        """
        return _GeomPlate.GeomPlate_BuildPlateSurface_Curves2d(self, *args)

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

        Parameters
        ----------
        nbp: int
        Seq2d: TColgp_SequenceOfXY

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_BuildPlateSurface_Disc2dContour(self, *args)

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

        Parameters
        ----------
        nbp: int
        iordre: int
        Seq3d: TColgp_SequenceOfXYZ

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_BuildPlateSurface_Disc3dContour(self, *args)

    def G0Error(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the max distance between the result and the constraints.

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

        Return
        -------
        float

        Description
        -----------
        Returns the max distance between the result and the constraint index.

        """
        return _GeomPlate.GeomPlate_BuildPlateSurface_G0Error(self, *args)

    def G1Error(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the max angle between the result and the constraints.

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

        Return
        -------
        float

        Description
        -----------
        Returns the max angle between the result and the constraint index.

        """
        return _GeomPlate.GeomPlate_BuildPlateSurface_G1Error(self, *args)

    def G2Error(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the max difference of curvature between the result and the constraints.

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

        Return
        -------
        float

        Description
        -----------
        Returns the max difference of curvature between the result and the constraint index.

        """
        return _GeomPlate.GeomPlate_BuildPlateSurface_G2Error(self, *args)

    def Init(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        Resets all constraints.

        """
        return _GeomPlate.GeomPlate_BuildPlateSurface_Init(self, *args)

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

        Description
        -----------
        Tests whether computation of the plate has been completed.

        """
        return _GeomPlate.GeomPlate_BuildPlateSurface_IsDone(self, *args)

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

        Parameters
        ----------
        Surf: Geom_Surface

        Return
        -------
        None

        Description
        -----------
        Loads the initial surface.

        """
        return _GeomPlate.GeomPlate_BuildPlateSurface_LoadInitSurface(self, *args)

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

        Description
        -----------
        Returns the order of the curves in the array returned by curves2d. computation changes this order. consequently, this method returns the order of the curves prior to computation.

        """
        return _GeomPlate.GeomPlate_BuildPlateSurface_Order(self, *args)

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

        Parameters
        ----------
        theProgress: Message_ProgressRange (optional, default to Message_ProgressRange())

        Return
        -------
        None

        Description
        -----------
        Calls the algorithm and computes the plate surface using the loaded constraints. if no initial surface is given, the algorithm automatically computes one. exceptions standard_rangeerror if the value of the constraint is null or if plate is not done.

        """
        return _GeomPlate.GeomPlate_BuildPlateSurface_Perform(self, *args)

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

        Parameters
        ----------
        order: int

        Return
        -------
        opencascade::handle<GeomPlate_PointConstraint>

        Description
        -----------
        Returns the pointconstraint of order order.

        """
        return _GeomPlate.GeomPlate_BuildPlateSurface_PointConstraint(self, *args)

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

        Description
        -----------
        Allows you to ensure that the array of curves returned by curves2d has the correct orientation. returns the orientation of the curves in the array returned by curves2d. computation changes the orientation of these curves. consequently, this method returns the orientation prior to computation.

        """
        return _GeomPlate.GeomPlate_BuildPlateSurface_Sense(self, *args)

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

        Parameters
        ----------
        NbBounds: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_BuildPlateSurface_SetNbBounds(self, *args)

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

        Description
        -----------
        Returns the initial surface.

        """
        return _GeomPlate.GeomPlate_BuildPlateSurface_SurfInit(self, *args)

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

        Description
        -----------
        Returns the result of the computation. this surface can then be used by geomplate_makeapprox for converting the resulting surface into a bspline.

        """
        return _GeomPlate.GeomPlate_BuildPlateSurface_Surface(self, *args)

    __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

    def __init__(self, *args):
        r"""
        Return
        -------
        None

        Description
        -----------
        Initializes an empty curve constraint object.

        Parameters
        ----------
        Boundary: Adaptor3d_Curve
        Order: int
        NPt: int (optional, default to 10)
        TolDist: float (optional, default to 0.0001)
        TolAng: float (optional, default to 0.01)
        TolCurv: float (optional, default to 0.1)

        Return
        -------
        None

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

        """
        _GeomPlate.GeomPlate_CurveConstraint_swiginit(self, _GeomPlate.new_GeomPlate_CurveConstraint(*args))

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

        Description
        -----------
        Returns a 2d curve associated the surface resulting of the constraints.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_Curve2dOnSurf(self, *args)

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

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_Curve3d(self, *args)

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

        Parameters
        ----------
        U: float
        P: gp_Pnt

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_D0(self, *args)

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

        Parameters
        ----------
        U: float
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_D1(self, *args)

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

        Parameters
        ----------
        U: float
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec
        V3: gp_Vec
        V4: gp_Vec
        V5: gp_Vec

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_D2(self, *args)

    def FirstParameter(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_FirstParameter(self, *args)

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

        Parameters
        ----------
        U: float

        Return
        -------
        float

        Description
        -----------
        Returns the g0 criterion at the parametric point u on the curve. this is the greatest distance allowed between the constraint and the target surface at u.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_G0Criterion(self, *args)

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

        Parameters
        ----------
        U: float

        Return
        -------
        float

        Description
        -----------
        Returns the g1 criterion at the parametric point u on the curve. this is the greatest angle allowed between the constraint and the target surface at u. raises constructionerror if the curve is not on a surface.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_G1Criterion(self, *args)

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

        Parameters
        ----------
        U: float

        Return
        -------
        float

        Description
        -----------
        Returns the g2 criterion at the parametric point u on the curve. this is the greatest difference in curvature allowed between the constraint and the target surface at u. raises constructionerror if the curve is not on a surface.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_G2Criterion(self, *args)

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

        Parameters
        ----------
        U: float

        Return
        -------
        GeomLProp_SLProps

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_LPropSurf(self, *args)

    def LastParameter(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_LastParameter(self, *args)

    def Length(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_Length(self, *args)

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

        Description
        -----------
        Returns the number of points on the curve used as a constraint. the default setting is 10. this parameter affects computation time, which increases by the cube of the number of points.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_NbPoints(self, *args)

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

        Description
        -----------
        Returns the order of constraint, one of g0, g1 or g2.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_Order(self, *args)

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

        Description
        -----------
        Returns the projected curve resulting from the normal projection of the curve on the initial surface.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_ProjectedCurve(self, *args)

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

        Parameters
        ----------
        Curve2d: Geom2d_Curve

        Return
        -------
        None

        Description
        -----------
        Loads a 2d curve associated the surface resulting of the constraints.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_SetCurve2dOnSurf(self, *args)

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

        Parameters
        ----------
        G0Crit: Law_Function

        Return
        -------
        None

        Description
        -----------
        Allows you to set the g0 criterion. this is the law defining the greatest distance allowed between the constraint and the target surface for each point of the constraint. if this criterion is not set, toldist, the distance tolerance from the constructor, is used.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_SetG0Criterion(self, *args)

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

        Parameters
        ----------
        G1Crit: Law_Function

        Return
        -------
        None

        Description
        -----------
        Allows you to set the g1 criterion. this is the law defining the greatest angle allowed between the constraint and the target surface. if this criterion is not set, tolang, the angular tolerance from the constructor, is used. raises constructionerror if the curve is not on a surface.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_SetG1Criterion(self, *args)

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

        Parameters
        ----------
        G2Crit: Law_Function

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_SetG2Criterion(self, *args)

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

        Parameters
        ----------
        NewNb: int

        Return
        -------
        None

        Description
        -----------
        Allows you to set the number of points on the curve constraint. the default setting is 10. this parameter affects computation time, which increases by the cube of the number of points.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_SetNbPoints(self, *args)

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

        Parameters
        ----------
        Order: int

        Return
        -------
        None

        Description
        -----------
        Allows you to set the order of continuity required for the constraints: g0, g1, and g2, controlled respectively by g0criterion g1criterion and g2criterion.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_SetOrder(self, *args)

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

        Parameters
        ----------
        Curve2d: Adaptor2d_Curve2d
        TolU: float
        TolV: float

        Return
        -------
        None

        Description
        -----------
        Loads a 2d curve resulting from the normal projection of the curve on the initial surface.

        """
        return _GeomPlate.GeomPlate_CurveConstraint_SetProjectedCurve(self, *args)


    @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

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

        Parameters
        ----------
        SurfPlate: GeomPlate_Surface
        PlateCrit: AdvApp2Var_Criterion
        Tol3d: float
        Nbmax: int
        dgmax: int
        Continuity: GeomAbs_Shape (optional, default to GeomAbs_C1)
        EnlargeCoeff: float (optional, default to 1.1)

        Return
        -------
        None

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

        Parameters
        ----------
        SurfPlate: GeomPlate_Surface
        Tol3d: float
        Nbmax: int
        dgmax: int
        dmax: float
        CritOrder: int (optional, default to 0)
        Continuity: GeomAbs_Shape (optional, default to GeomAbs_C1)
        EnlargeCoeff: float (optional, default to 1.1)

        Return
        -------
        None

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

        """
        _GeomPlate.GeomPlate_MakeApprox_swiginit(self, _GeomPlate.new_GeomPlate_MakeApprox(*args))

    def ApproxError(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the error in computation of the approximation surface. this is the distance between the entire target bspline surface and the entire original surface generated by buildplatesurface and converted by geomplate_surface.

        """
        return _GeomPlate.GeomPlate_MakeApprox_ApproxError(self, *args)

    def CriterionError(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the criterion error in computation of the approximation surface. this is estimated relative to the curve and point constraints only.

        """
        return _GeomPlate.GeomPlate_MakeApprox_CriterionError(self, *args)

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

        Description
        -----------
        Returns the bspline surface extracted from the geomplate_makeapprox object.

        """
        return _GeomPlate.GeomPlate_MakeApprox_Surface(self, *args)

    __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"""

        Parameters
        ----------
        Data: TColgp_SequenceOfXY
        G0Data: TColgp_SequenceOfXYZ
        Maximum: float
        Type: AdvApp2Var_CriterionType (optional, default to AdvApp2Var_Absolute)
        Repart: AdvApp2Var_CriterionRepartition (optional, default to AdvApp2Var_Regular)

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _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"""

        Parameters
        ----------
        Data: TColgp_SequenceOfXY
        G1Data: TColgp_SequenceOfXYZ
        Maximum: float
        Type: AdvApp2Var_CriterionType (optional, default to AdvApp2Var_Absolute)
        Repart: AdvApp2Var_CriterionRepartition (optional, default to AdvApp2Var_Regular)

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _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

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

        Parameters
        ----------
        Pt: gp_Pnt
        Order: int
        TolDist: float (optional, default to 0.0001)

        Return
        -------
        None

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

        Parameters
        ----------
        U: float
        V: float
        Surf: Geom_Surface
        Order: int
        TolDist: float (optional, default to 0.0001)
        TolAng: float (optional, default to 0.01)
        TolCurv: float (optional, default to 0.1)

        Return
        -------
        None

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

        """
        _GeomPlate.GeomPlate_PointConstraint_swiginit(self, _GeomPlate.new_GeomPlate_PointConstraint(*args))

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

        Parameters
        ----------
        P: gp_Pnt

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_PointConstraint_D0(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_PointConstraint_D1(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt
        V1: gp_Vec
        V2: gp_Vec
        V3: gp_Vec
        V4: gp_Vec
        V5: gp_Vec

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_PointConstraint_D2(self, *args)

    def G0Criterion(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the g0 criterion. this is the greatest distance allowed between the constraint and the target surface.

        """
        return _GeomPlate.GeomPlate_PointConstraint_G0Criterion(self, *args)

    def G1Criterion(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the g1 criterion. this is the greatest angle allowed between the constraint and the target surface. raises constructionerror if the point is not on the surface.

        """
        return _GeomPlate.GeomPlate_PointConstraint_G1Criterion(self, *args)

    def G2Criterion(self, *args):
        r"""
        Return
        -------
        float

        Description
        -----------
        Returns the g2 criterion. this is the greatest difference in curvature allowed between the constraint and the target surface. raises constructionerror if the point is not on the surface.

        """
        return _GeomPlate.GeomPlate_PointConstraint_G2Criterion(self, *args)

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

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_PointConstraint_HasPnt2dOnSurf(self, *args)

    def LPropSurf(self, *args):
        r"""
        Return
        -------
        GeomLProp_SLProps

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_PointConstraint_LPropSurf(self, *args)

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

        Description
        -----------
        Returns the order of constraint: g0, g1, and g2, controlled respectively by g0criterion g1criterion and g2criterion.

        """
        return _GeomPlate.GeomPlate_PointConstraint_Order(self, *args)

    def Pnt2dOnSurf(self, *args):
        r"""
        Return
        -------
        gp_Pnt2d

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_PointConstraint_Pnt2dOnSurf(self, *args)

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

        Parameters
        ----------
        TolDist: float

        Return
        -------
        None

        Description
        -----------
        Allows you to set the g0 criterion. this is the law defining the greatest distance allowed between the constraint and the target surface. if this criterion is not set, {toldist, the distance tolerance from the constructor, is used.

        """
        return _GeomPlate.GeomPlate_PointConstraint_SetG0Criterion(self, *args)

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

        Parameters
        ----------
        TolAng: float

        Return
        -------
        None

        Description
        -----------
        Allows you to set the g1 criterion. this is the law defining the greatest angle allowed between the constraint and the target surface. if this criterion is not set, tolang, the angular tolerance from the constructor, is used. raises constructionerror if the point is not on the surface.

        """
        return _GeomPlate.GeomPlate_PointConstraint_SetG1Criterion(self, *args)

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

        Parameters
        ----------
        TolCurv: float

        Return
        -------
        None

        Description
        -----------
        Allows you to set the g2 criterion. this is the law defining the greatest difference in curvature allowed between the constraint and the target surface. if this criterion is not set, tolcurv, the curvature tolerance from the constructor, is used. raises constructionerror if the point is not on the surface.

        """
        return _GeomPlate.GeomPlate_PointConstraint_SetG2Criterion(self, *args)

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

        Parameters
        ----------
        Order: int

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_PointConstraint_SetOrder(self, *args)

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

        Parameters
        ----------
        Pnt: gp_Pnt2d

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_PointConstraint_SetPnt2dOnSurf(self, *args)


    @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

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

        Parameters
        ----------
        Surfinit: Geom_Surface
        Surfinter: Plate_Plate

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        _GeomPlate.GeomPlate_Surface_swiginit(self, _GeomPlate.new_GeomPlate_Surface(*args))

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

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_Surface_CallSurfinit(self, *args)

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

        Parameters
        ----------
        Seq: TColgp_SequenceOfXY

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_Surface_Constraints(self, *args)

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

        Parameters
        ----------

        Return
        -------
        U1: float
        U2: float
        V1: float
        V2: float

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_Surface_RealBounds(self, *args)

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

        Parameters
        ----------
        Umin: float
        Umax: float
        Vmin: float
        Vmax: float

        Return
        -------
        None

        Description
        -----------
        No available documentation.

        """
        return _GeomPlate.GeomPlate_Surface_SetBounds(self, *args)


    @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_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))

    def Array1(self):
        return _GeomPlate.GeomPlate_HArray1OfHCurve_Array1(self)

    def ChangeArray1(self):
        return _GeomPlate.GeomPlate_HArray1OfHCurve_ChangeArray1(self)


    @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_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))

    def Array1(self):
        return _GeomPlate.GeomPlate_HArray1OfSequenceOfReal_Array1(self)

    def ChangeArray1(self):
        return _GeomPlate.GeomPlate_HArray1OfSequenceOfReal_ChangeArray1(self)


    @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_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))

    def Sequence(self):
        return _GeomPlate.GeomPlate_HSequenceOfCurveConstraint_Sequence(self)

    def Append(self, *args):
        return _GeomPlate.GeomPlate_HSequenceOfCurveConstraint_Append(self, *args)

    def ChangeSequence(self):
        return _GeomPlate.GeomPlate_HSequenceOfCurveConstraint_ChangeSequence(self)


    @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)
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))

    def Sequence(self):
        return _GeomPlate.GeomPlate_HSequenceOfPointConstraint_Sequence(self)

    def Append(self, *args):
        return _GeomPlate.GeomPlate_HSequenceOfPointConstraint_Append(self, *args)

    def ChangeSequence(self):
        return _GeomPlate.GeomPlate_HSequenceOfPointConstraint_ChangeSequence(self)


    @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)



@deprecated
def GeomPlate_BuildAveragePlane_HalfSpace(*args):
	return GeomPlate_BuildAveragePlane.HalfSpace(*args)



