# This file was automatically generated by SWIG (http://www.swig.org).
# Version 4.0.2
#
# 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__

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

    def value(self) -> "PyObject *":
        return _GeomPlate.SwigPyIterator_value(self)

    def incr(self, n: "size_t"=1) -> "swig::SwigPyIterator *":
        return _GeomPlate.SwigPyIterator_incr(self, n)

    def decr(self, n: "size_t"=1) -> "swig::SwigPyIterator *":
        return _GeomPlate.SwigPyIterator_decr(self, n)

    def distance(self, x: "SwigPyIterator") -> "ptrdiff_t":
        return _GeomPlate.SwigPyIterator_distance(self, x)

    def equal(self, x: "SwigPyIterator") -> "bool":
        return _GeomPlate.SwigPyIterator_equal(self, x)

    def copy(self) -> "swig::SwigPyIterator *":
        return _GeomPlate.SwigPyIterator_copy(self)

    def next(self) -> "PyObject *":
        return _GeomPlate.SwigPyIterator_next(self)

    def __next__(self) -> "PyObject *":
        return _GeomPlate.SwigPyIterator___next__(self)

    def previous(self) -> "PyObject *":
        return _GeomPlate.SwigPyIterator_previous(self)

    def advance(self, n: "ptrdiff_t") -> "swig::SwigPyIterator *":
        return _GeomPlate.SwigPyIterator_advance(self, n)

    def __eq__(self, x: "SwigPyIterator") -> "bool":
        return _GeomPlate.SwigPyIterator___eq__(self, x)

    def __ne__(self, x: "SwigPyIterator") -> "bool":
        return _GeomPlate.SwigPyIterator___ne__(self, x)

    def __iadd__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator &":
        return _GeomPlate.SwigPyIterator___iadd__(self, n)

    def __isub__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator &":
        return _GeomPlate.SwigPyIterator___isub__(self, n)

    def __add__(self, n: "ptrdiff_t") -> "swig::SwigPyIterator *":
        return _GeomPlate.SwigPyIterator___add__(self, n)

    def __sub__(self, *args) -> "ptrdiff_t":
        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: "Standard_Failure", method_name: "std::string", class_name: "std::string") -> "void":
    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() -> "opencascade::handle< GeomPlate_CurveConstraint >":
    return _GeomPlate.Handle_GeomPlate_CurveConstraint_Create()

def Handle_GeomPlate_CurveConstraint_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< GeomPlate_CurveConstraint >":
    return _GeomPlate.Handle_GeomPlate_CurveConstraint_DownCast(t)

def Handle_GeomPlate_CurveConstraint_IsNull(t: "opencascade::handle< GeomPlate_CurveConstraint > const &") -> "bool":
    return _GeomPlate.Handle_GeomPlate_CurveConstraint_IsNull(t)

def Handle_GeomPlate_PointConstraint_Create() -> "opencascade::handle< GeomPlate_PointConstraint >":
    return _GeomPlate.Handle_GeomPlate_PointConstraint_Create()

def Handle_GeomPlate_PointConstraint_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< GeomPlate_PointConstraint >":
    return _GeomPlate.Handle_GeomPlate_PointConstraint_DownCast(t)

def Handle_GeomPlate_PointConstraint_IsNull(t: "opencascade::handle< GeomPlate_PointConstraint > const &") -> "bool":
    return _GeomPlate.Handle_GeomPlate_PointConstraint_IsNull(t)

def Handle_GeomPlate_Surface_Create() -> "opencascade::handle< GeomPlate_Surface >":
    return _GeomPlate.Handle_GeomPlate_Surface_Create()

def Handle_GeomPlate_Surface_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< GeomPlate_Surface >":
    return _GeomPlate.Handle_GeomPlate_Surface_DownCast(t)

def Handle_GeomPlate_Surface_IsNull(t: "opencascade::handle< GeomPlate_Surface > const &") -> "bool":
    return _GeomPlate.Handle_GeomPlate_Surface_IsNull(t)

def Handle_GeomPlate_HArray1OfSequenceOfReal_Create() -> "opencascade::handle< GeomPlate_HArray1OfSequenceOfReal >":
    return _GeomPlate.Handle_GeomPlate_HArray1OfSequenceOfReal_Create()

def Handle_GeomPlate_HArray1OfSequenceOfReal_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< GeomPlate_HArray1OfSequenceOfReal >":
    return _GeomPlate.Handle_GeomPlate_HArray1OfSequenceOfReal_DownCast(t)

def Handle_GeomPlate_HArray1OfSequenceOfReal_IsNull(t: "opencascade::handle< GeomPlate_HArray1OfSequenceOfReal > const &") -> "bool":
    return _GeomPlate.Handle_GeomPlate_HArray1OfSequenceOfReal_IsNull(t)

def Handle_GeomPlate_HArray1OfHCurve_Create() -> "opencascade::handle< GeomPlate_HArray1OfHCurve >":
    return _GeomPlate.Handle_GeomPlate_HArray1OfHCurve_Create()

def Handle_GeomPlate_HArray1OfHCurve_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< GeomPlate_HArray1OfHCurve >":
    return _GeomPlate.Handle_GeomPlate_HArray1OfHCurve_DownCast(t)

def Handle_GeomPlate_HArray1OfHCurve_IsNull(t: "opencascade::handle< GeomPlate_HArray1OfHCurve > const &") -> "bool":
    return _GeomPlate.Handle_GeomPlate_HArray1OfHCurve_IsNull(t)

def Handle_GeomPlate_HSequenceOfPointConstraint_Create() -> "opencascade::handle< GeomPlate_HSequenceOfPointConstraint >":
    return _GeomPlate.Handle_GeomPlate_HSequenceOfPointConstraint_Create()

def Handle_GeomPlate_HSequenceOfPointConstraint_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< GeomPlate_HSequenceOfPointConstraint >":
    return _GeomPlate.Handle_GeomPlate_HSequenceOfPointConstraint_DownCast(t)

def Handle_GeomPlate_HSequenceOfPointConstraint_IsNull(t: "opencascade::handle< GeomPlate_HSequenceOfPointConstraint > const &") -> "bool":
    return _GeomPlate.Handle_GeomPlate_HSequenceOfPointConstraint_IsNull(t)

def Handle_GeomPlate_HSequenceOfCurveConstraint_Create() -> "opencascade::handle< GeomPlate_HSequenceOfCurveConstraint >":
    return _GeomPlate.Handle_GeomPlate_HSequenceOfCurveConstraint_Create()

def Handle_GeomPlate_HSequenceOfCurveConstraint_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< GeomPlate_HSequenceOfCurveConstraint >":
    return _GeomPlate.Handle_GeomPlate_HSequenceOfCurveConstraint_DownCast(t)

def Handle_GeomPlate_HSequenceOfCurveConstraint_IsNull(t: "opencascade::handle< GeomPlate_HSequenceOfCurveConstraint > const &") -> "bool":
    return _GeomPlate.Handle_GeomPlate_HSequenceOfCurveConstraint_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) -> "NCollection_Array1< opencascade::handle< Adaptor3d_HCurve > >::iterator":
        return _GeomPlate.GeomPlate_Array1OfHCurve_begin(self)

    def end(self) -> "NCollection_Array1< opencascade::handle< Adaptor3d_HCurve > >::iterator":
        return _GeomPlate.GeomPlate_Array1OfHCurve_end(self)

    def cbegin(self) -> "NCollection_Array1< opencascade::handle< Adaptor3d_HCurve > >::const_iterator":
        return _GeomPlate.GeomPlate_Array1OfHCurve_cbegin(self)

    def cend(self) -> "NCollection_Array1< opencascade::handle< Adaptor3d_HCurve > >::const_iterator":
        return _GeomPlate.GeomPlate_Array1OfHCurve_cend(self)

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

    def Init(self, theValue: "opencascade::handle< Adaptor3d_HCurve > const &") -> "void":
        return _GeomPlate.GeomPlate_Array1OfHCurve_Init(self, theValue)

    def Size(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_Array1OfHCurve_Size(self)

    def Length(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_Array1OfHCurve_Length(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _GeomPlate.GeomPlate_Array1OfHCurve_IsEmpty(self)

    def Lower(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_Array1OfHCurve_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_Array1OfHCurve_Upper(self)

    def IsDeletable(self) -> "Standard_Boolean":
        return _GeomPlate.GeomPlate_Array1OfHCurve_IsDeletable(self)

    def IsAllocated(self) -> "Standard_Boolean":
        return _GeomPlate.GeomPlate_Array1OfHCurve_IsAllocated(self)

    def Assign(self, theOther: "GeomPlate_Array1OfHCurve") -> "NCollection_Array1< opencascade::handle< Adaptor3d_HCurve > > &":
        return _GeomPlate.GeomPlate_Array1OfHCurve_Assign(self, theOther)

    def Move(self, theOther: "GeomPlate_Array1OfHCurve") -> "NCollection_Array1< opencascade::handle< Adaptor3d_HCurve > > &":
        return _GeomPlate.GeomPlate_Array1OfHCurve_Move(self, theOther)

    def Set(self, *args) -> "NCollection_Array1< opencascade::handle< Adaptor3d_HCurve > > &":
        return _GeomPlate.GeomPlate_Array1OfHCurve_Set(self, *args)

    def First(self) -> "opencascade::handle< Adaptor3d_HCurve > const &":
        return _GeomPlate.GeomPlate_Array1OfHCurve_First(self)

    def ChangeFirst(self) -> "opencascade::handle< Adaptor3d_HCurve > &":
        return _GeomPlate.GeomPlate_Array1OfHCurve_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< Adaptor3d_HCurve > const &":
        return _GeomPlate.GeomPlate_Array1OfHCurve_Last(self)

    def ChangeLast(self) -> "opencascade::handle< Adaptor3d_HCurve > &":
        return _GeomPlate.GeomPlate_Array1OfHCurve_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< Adaptor3d_HCurve > const &":
        return _GeomPlate.GeomPlate_Array1OfHCurve_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< Adaptor3d_HCurve > &":
        return _GeomPlate.GeomPlate_Array1OfHCurve_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< Adaptor3d_HCurve > &":
        return _GeomPlate.GeomPlate_Array1OfHCurve___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< Adaptor3d_HCurve > const &") -> "void":
        return _GeomPlate.GeomPlate_Array1OfHCurve_SetValue(self, theIndex, theItem)

    def Resize(self, theLower: "Standard_Integer const", theUpper: "Standard_Integer const", theToCopyData: "Standard_Boolean const") -> "void":
        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) -> "NCollection_Array1< NCollection_Sequence< double > >::iterator":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_begin(self)

    def end(self) -> "NCollection_Array1< NCollection_Sequence< double > >::iterator":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_end(self)

    def cbegin(self) -> "NCollection_Array1< NCollection_Sequence< double > >::const_iterator":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_cbegin(self)

    def cend(self) -> "NCollection_Array1< NCollection_Sequence< double > >::const_iterator":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_cend(self)

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

    def Init(self, theValue: "TColStd_SequenceOfReal") -> "void":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Init(self, theValue)

    def Size(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Size(self)

    def Length(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Length(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_IsEmpty(self)

    def Lower(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Upper(self)

    def IsDeletable(self) -> "Standard_Boolean":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_IsDeletable(self)

    def IsAllocated(self) -> "Standard_Boolean":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_IsAllocated(self)

    def Assign(self, theOther: "GeomPlate_Array1OfSequenceOfReal") -> "NCollection_Array1< TColStd_SequenceOfReal > &":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Assign(self, theOther)

    def Move(self, theOther: "GeomPlate_Array1OfSequenceOfReal") -> "NCollection_Array1< TColStd_SequenceOfReal > &":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Move(self, theOther)

    def Set(self, *args) -> "NCollection_Array1< TColStd_SequenceOfReal > &":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Set(self, *args)

    def First(self) -> "NCollection_Sequence< double > const &":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_First(self)

    def ChangeFirst(self) -> "NCollection_Sequence< double > &":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_ChangeFirst(self)

    def Last(self) -> "NCollection_Sequence< double > const &":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Last(self)

    def ChangeLast(self) -> "NCollection_Sequence< double > &":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "NCollection_Sequence< double > const &":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "NCollection_Sequence< double > &":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "NCollection_Sequence< double > &":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "TColStd_SequenceOfReal") -> "void":
        return _GeomPlate.GeomPlate_Array1OfSequenceOfReal_SetValue(self, theIndex, theItem)

    def Resize(self, theLower: "Standard_Integer const", theUpper: "Standard_Integer const", theToCopyData: "Standard_Boolean const") -> "void":
        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) -> "NCollection_Sequence< GeomPlate_Aij >::iterator":
        return _GeomPlate.GeomPlate_SequenceOfAij_begin(self)

    def end(self) -> "NCollection_Sequence< GeomPlate_Aij >::iterator":
        return _GeomPlate.GeomPlate_SequenceOfAij_end(self)

    def cbegin(self) -> "NCollection_Sequence< GeomPlate_Aij >::const_iterator":
        return _GeomPlate.GeomPlate_SequenceOfAij_cbegin(self)

    def cend(self) -> "NCollection_Sequence< GeomPlate_Aij >::const_iterator":
        return _GeomPlate.GeomPlate_SequenceOfAij_cend(self)

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

    def Size(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_SequenceOfAij_Size(self)

    def Length(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_SequenceOfAij_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_SequenceOfAij_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_SequenceOfAij_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _GeomPlate.GeomPlate_SequenceOfAij_IsEmpty(self)

    def Reverse(self) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfAij_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _GeomPlate.GeomPlate_SequenceOfAij_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "opencascade::handle< NCollection_BaseAllocator > &") -> "void":
        return _GeomPlate.GeomPlate_SequenceOfAij_delNode(theNode, theAl)

    def Clear(self, theAllocator: "opencascade::handle< NCollection_BaseAllocator > const &"=0) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfAij_Clear(self, theAllocator)

    def Assign(self, theOther: "GeomPlate_SequenceOfAij") -> "NCollection_Sequence< GeomPlate_Aij > &":
        return _GeomPlate.GeomPlate_SequenceOfAij_Assign(self, theOther)

    def Set(self, theOther: "GeomPlate_SequenceOfAij") -> "NCollection_Sequence< GeomPlate_Aij > &":
        return _GeomPlate.GeomPlate_SequenceOfAij_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfAij_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfAij_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfAij_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfAij_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfAij_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "GeomPlate_SequenceOfAij") -> "void":
        return _GeomPlate.GeomPlate_SequenceOfAij_Split(self, theIndex, theSeq)

    def First(self) -> "GeomPlate_Aij const &":
        return _GeomPlate.GeomPlate_SequenceOfAij_First(self)

    def ChangeFirst(self) -> "GeomPlate_Aij &":
        return _GeomPlate.GeomPlate_SequenceOfAij_ChangeFirst(self)

    def Last(self) -> "GeomPlate_Aij const &":
        return _GeomPlate.GeomPlate_SequenceOfAij_Last(self)

    def ChangeLast(self) -> "GeomPlate_Aij &":
        return _GeomPlate.GeomPlate_SequenceOfAij_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "GeomPlate_Aij const &":
        return _GeomPlate.GeomPlate_SequenceOfAij_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "GeomPlate_Aij &":
        return _GeomPlate.GeomPlate_SequenceOfAij_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "GeomPlate_Aij &":
        return _GeomPlate.GeomPlate_SequenceOfAij___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "GeomPlate_Aij") -> "void":
        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)

def GeomPlate_SequenceOfAij_delNode(theNode: "NCollection_SeqNode *", theAl: "opencascade::handle< NCollection_BaseAllocator > &") -> "void":
    return _GeomPlate.GeomPlate_SequenceOfAij_delNode(theNode, theAl)

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) -> "NCollection_Sequence< opencascade::handle< GeomPlate_CurveConstraint > >::iterator":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< GeomPlate_CurveConstraint > >::iterator":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< GeomPlate_CurveConstraint > >::const_iterator":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< GeomPlate_CurveConstraint > >::const_iterator":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_cend(self)

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

    def Size(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Size(self)

    def Length(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_IsEmpty(self)

    def Reverse(self) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "opencascade::handle< NCollection_BaseAllocator > &") -> "void":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_delNode(theNode, theAl)

    def Clear(self, theAllocator: "opencascade::handle< NCollection_BaseAllocator > const &"=0) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Clear(self, theAllocator)

    def Assign(self, theOther: "GeomPlate_SequenceOfCurveConstraint") -> "NCollection_Sequence< opencascade::handle< GeomPlate_CurveConstraint > > &":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Assign(self, theOther)

    def Set(self, theOther: "GeomPlate_SequenceOfCurveConstraint") -> "NCollection_Sequence< opencascade::handle< GeomPlate_CurveConstraint > > &":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "GeomPlate_SequenceOfCurveConstraint") -> "void":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< GeomPlate_CurveConstraint > const &":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_First(self)

    def ChangeFirst(self) -> "opencascade::handle< GeomPlate_CurveConstraint > &":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< GeomPlate_CurveConstraint > const &":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Last(self)

    def ChangeLast(self) -> "opencascade::handle< GeomPlate_CurveConstraint > &":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< GeomPlate_CurveConstraint > const &":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< GeomPlate_CurveConstraint > &":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< GeomPlate_CurveConstraint > &":
        return _GeomPlate.GeomPlate_SequenceOfCurveConstraint___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< GeomPlate_CurveConstraint > const &") -> "void":
        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)

def GeomPlate_SequenceOfCurveConstraint_delNode(theNode: "NCollection_SeqNode *", theAl: "opencascade::handle< NCollection_BaseAllocator > &") -> "void":
    return _GeomPlate.GeomPlate_SequenceOfCurveConstraint_delNode(theNode, theAl)

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) -> "NCollection_Sequence< opencascade::handle< GeomPlate_PointConstraint > >::iterator":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< GeomPlate_PointConstraint > >::iterator":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< GeomPlate_PointConstraint > >::const_iterator":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< GeomPlate_PointConstraint > >::const_iterator":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_cend(self)

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

    def Size(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Size(self)

    def Length(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_IsEmpty(self)

    def Reverse(self) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Reverse(self)

    def Exchange(self, I: "Standard_Integer const", J: "Standard_Integer const") -> "void":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Exchange(self, I, J)

    @staticmethod
    def delNode(theNode: "NCollection_SeqNode *", theAl: "opencascade::handle< NCollection_BaseAllocator > &") -> "void":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_delNode(theNode, theAl)

    def Clear(self, theAllocator: "opencascade::handle< NCollection_BaseAllocator > const &"=0) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Clear(self, theAllocator)

    def Assign(self, theOther: "GeomPlate_SequenceOfPointConstraint") -> "NCollection_Sequence< opencascade::handle< GeomPlate_PointConstraint > > &":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Assign(self, theOther)

    def Set(self, theOther: "GeomPlate_SequenceOfPointConstraint") -> "NCollection_Sequence< opencascade::handle< GeomPlate_PointConstraint > > &":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "GeomPlate_SequenceOfPointConstraint") -> "void":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< GeomPlate_PointConstraint > const &":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_First(self)

    def ChangeFirst(self) -> "opencascade::handle< GeomPlate_PointConstraint > &":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< GeomPlate_PointConstraint > const &":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Last(self)

    def ChangeLast(self) -> "opencascade::handle< GeomPlate_PointConstraint > &":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< GeomPlate_PointConstraint > const &":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< GeomPlate_PointConstraint > &":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< GeomPlate_PointConstraint > &":
        return _GeomPlate.GeomPlate_SequenceOfPointConstraint___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< GeomPlate_PointConstraint > const &") -> "void":
        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)

def GeomPlate_SequenceOfPointConstraint_delNode(theNode: "NCollection_SeqNode *", theAl: "opencascade::handle< NCollection_BaseAllocator > &") -> "void":
    return _GeomPlate.GeomPlate_SequenceOfPointConstraint_delNode(theNode, theAl)

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"""
        No available documentation.

        Returns
        -------
        None
        No available documentation.

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

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

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

        Returns
        -------
        None
        Creates the plane from the 'best vector'.

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

        Returns
        -------
        None

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

    @staticmethod
    def HalfSpace(*args) -> "Standard_Boolean":
        r"""
        No available documentation.

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

        Returns
        -------
        bool

        """
        return _GeomPlate.GeomPlate_BuildAveragePlane_HalfSpace(*args)

    def IsLine(self, *args) -> "Standard_Boolean":
        r"""
        Return ok if is a line.

        Returns
        -------
        bool

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

    def IsPlane(self, *args) -> "Standard_Boolean":
        r"""
        Return ok if is a plane.

        Returns
        -------
        bool

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

    def Line(self, *args) -> "opencascade::handle< Geom_Line >":
        r"""
        Return a line when 2 eigenvalues are null.

        Returns
        -------
        opencascade::handle<Geom_Line>

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

    def MinMaxBox(self, *args) -> "void":
        r"""
        Computes the minimal box to include all normal projection points of the initial array on the plane.

        Parameters
        ----------

        Returns
        -------
        Umin: float
        Umax: float
        Vmin: float
        Vmax: float

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

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

        Returns
        -------
        opencascade::handle<Geom_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)

def GeomPlate_BuildAveragePlane_HalfSpace(*args) -> "Standard_Boolean":
    r"""
    No available documentation.

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

    Returns
    -------
    bool

    """
    return _GeomPlate.GeomPlate_BuildAveragePlane_HalfSpace(*args)

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"""
        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
        ----------
        NPoints: TColStd_HArray1OfInteger
        TabCurve: GeomPlate_HArray1OfHCurve
        Tang: TColStd_HArray1OfInteger
        Degree: int
        NbIter: int,optional
        	default value is 3
        Tol2d: float,optional
        	default value is 0.00001
        Tol3d: float,optional
        	default value is 0.0001
        TolAng: float,optional
        	default value is 0.01
        TolCurv: float,optional
        	default value is 0.1
        Anisotropie: bool,optional
        	default value is Standard_False

        Returns
        -------
        None
        No available documentation.

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

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

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

        Returns
        -------
        None

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

    def Add(self, *args) -> "void":
        r"""
        Adds the linear constraint cont.

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

        Returns
        -------
        None
        Adds the point constraint cont.

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

        Returns
        -------
        None

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

    def CurveConstraint(self, *args) -> "opencascade::handle< GeomPlate_CurveConstraint >":
        r"""
        Returns the curveconstraints of order order.

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

        Returns
        -------
        opencascade::handle<GeomPlate_CurveConstraint>

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

    def Curves2d(self, *args) -> "opencascade::handle< TColGeom2d_HArray1OfCurve >":
        r"""
        Extracts the array of curves on the plate surface which correspond to the curve constraints set in add.

        Returns
        -------
        opencascade::handle<TColGeom2d_HArray1OfCurve>

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

    def Disc2dContour(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def Disc3dContour(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def G0Error(self, *args) -> "Standard_Real":
        r"""
        Returns the max distance betwen the result and the constraints.

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

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

        Returns
        -------
        float

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

    def G1Error(self, *args) -> "Standard_Real":
        r"""
        Returns the max angle betwen the result and the constraints.

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

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

        Returns
        -------
        float

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

    def G2Error(self, *args) -> "Standard_Real":
        r"""
        Returns the max difference of curvature betwen the result and the constraints.

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

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

        Returns
        -------
        float

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

    def Init(self, *args) -> "void":
        r"""
        Resets all constraints.

        Returns
        -------
        None

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

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Tests whether computation of the plate has been completed.

        Returns
        -------
        bool

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

    def LoadInitSurface(self, *args) -> "void":
        r"""
        Loads the initial surface.

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

        Returns
        -------
        None

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

    def Order(self, *args) -> "opencascade::handle< TColStd_HArray1OfInteger >":
        r"""
        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.

        Returns
        -------
        opencascade::handle<TColStd_HArray1OfInteger>

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

    def Perform(self, *args) -> "void":
        r"""
        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.

        Parameters
        ----------
        theProgress: Message_ProgressRange,optional
        	default value is Message_ProgressRange()

        Returns
        -------
        None

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

    def PointConstraint(self, *args) -> "opencascade::handle< GeomPlate_PointConstraint >":
        r"""
        Returns the pointconstraint of order order.

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

        Returns
        -------
        opencascade::handle<GeomPlate_PointConstraint>

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

    def Sense(self, *args) -> "opencascade::handle< TColStd_HArray1OfInteger >":
        r"""
        Allows you to ensure that the array of curves returned by curves2d has the correct orientation. returns the orientation of the curves in the the array returned by curves2d. computation changes the orientation of these curves. consequently, this method returns the orientation prior to computation.

        Returns
        -------
        opencascade::handle<TColStd_HArray1OfInteger>

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

    def SetNbBounds(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def SurfInit(self, *args) -> "opencascade::handle< Geom_Surface >":
        r"""
        Returns the initial surface.

        Returns
        -------
        opencascade::handle<Geom_Surface>

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

    def Surface(self, *args) -> "opencascade::handle< GeomPlate_Surface >":
        r"""
        Returns the result of the computation. this surface can then be used by geomplate_makeapprox for converting the resulting surface into a bspline.

        Returns
        -------
        opencascade::handle<GeomPlate_Surface>

        """
        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"""
        Initializes an empty curve constraint object.

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

        Parameters
        ----------
        Boundary: Adaptor3d_HCurve
        Order: int
        NPt: int,optional
        	default value is 10
        TolDist: float,optional
        	default value is 0.0001
        TolAng: float,optional
        	default value is 0.01
        TolCurv: float,optional
        	default value is 0.1

        Returns
        -------
        None

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

    def Curve2dOnSurf(self, *args) -> "opencascade::handle< Geom2d_Curve >":
        r"""
        Returns a 2d curve associated the surface resulting of the constraints.

        Returns
        -------
        opencascade::handle<Geom2d_Curve>

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

    def Curve3d(self, *args) -> "opencascade::handle< Adaptor3d_HCurve >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Adaptor3d_HCurve>

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

    def D0(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def D1(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def D2(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def FirstParameter(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

        Returns
        -------
        float

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

    def G0Criterion(self, *args) -> "Standard_Real":
        r"""
        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.

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

        Returns
        -------
        float

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

    def G1Criterion(self, *args) -> "Standard_Real":
        r"""
        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.

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

        Returns
        -------
        float

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

    def G2Criterion(self, *args) -> "Standard_Real":
        r"""
        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.

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

        Returns
        -------
        float

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

    def LPropSurf(self, *args) -> "GeomLProp_SLProps &":
        r"""
        No available documentation.

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

        Returns
        -------
        GeomLProp_SLProps

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

    def LastParameter(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

        Returns
        -------
        float

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

    def Length(self, *args) -> "Standard_Real":
        r"""
        No available documentation.

        Returns
        -------
        float

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

    def NbPoints(self, *args) -> "Standard_Integer":
        r"""
        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.

        Returns
        -------
        int

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

    def Order(self, *args) -> "Standard_Integer":
        r"""
        Returns the order of constraint, one of g0, g1 or g2.

        Returns
        -------
        int

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

    def ProjectedCurve(self, *args) -> "opencascade::handle< Adaptor2d_HCurve2d >":
        r"""
        Returns the projected curve resulting from the normal projection of the curve on the initial surface.

        Returns
        -------
        opencascade::handle<Adaptor2d_HCurve2d>

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

    def SetCurve2dOnSurf(self, *args) -> "void":
        r"""
        Loads a 2d curve associated the surface resulting of the constraints.

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

        Returns
        -------
        None

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

    def SetG0Criterion(self, *args) -> "void":
        r"""
        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.

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

        Returns
        -------
        None

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

    def SetG1Criterion(self, *args) -> "void":
        r"""
        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.

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

        Returns
        -------
        None

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

    def SetG2Criterion(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def SetNbPoints(self, *args) -> "void":
        r"""
        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.

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

        Returns
        -------
        None

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

    def SetOrder(self, *args) -> "void":
        r"""
        Allows you to set the order of continuity required for the constraints: g0, g1, and g2, controlled respectively by g0criterion g1criterion and g2criterion.

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

        Returns
        -------
        None

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

    def SetProjectedCurve(self, *args) -> "void":
        r"""
        Loads a 2d curve resulting from the normal projection of the curve on the initial surface.

        Parameters
        ----------
        Curve2d: Adaptor2d_HCurve2d
        TolU: float
        TolV: float

        Returns
        -------
        None

        """
        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"""
        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
        PlateCrit: AdvApp2Var_Criterion
        Tol3d: float
        Nbmax: int
        dgmax: int
        Continuity: GeomAbs_Shape,optional
        	default value is GeomAbs_C1
        EnlargeCoeff: float,optional
        	default value is 1.1

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

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

        Returns
        -------
        None

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

    def ApproxError(self, *args) -> "Standard_Real":
        r"""
        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.

        Returns
        -------
        float

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

    def CriterionError(self, *args) -> "Standard_Real":
        r"""
        Returns the criterion error in computation of the approximation surface. this is estimated relative to the curve and point constraints only.

        Returns
        -------
        float

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

    def Surface(self, *args) -> "opencascade::handle< Geom_BSplineSurface >":
        r"""
        Returns the bspline surface extracted from the geomplate_makeapprox object.

        Returns
        -------
        opencascade::handle<Geom_BSplineSurface>

        """
        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"""
        No available documentation.

        Parameters
        ----------
        Data: TColgp_SequenceOfXY
        G0Data: TColgp_SequenceOfXYZ
        Maximum: float
        Type: AdvApp2Var_CriterionType,optional
        	default value is AdvApp2Var_Absolute
        Repart: AdvApp2Var_CriterionRepartition,optional
        	default value is AdvApp2Var_Regular

        Returns
        -------
        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"""
        No available documentation.

        Parameters
        ----------
        Data: TColgp_SequenceOfXY
        G1Data: TColgp_SequenceOfXYZ
        Maximum: float
        Type: AdvApp2Var_CriterionType,optional
        	default value is AdvApp2Var_Absolute
        Repart: AdvApp2Var_CriterionRepartition,optional
        	default value is AdvApp2Var_Regular

        Returns
        -------
        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

    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.

        Parameters
        ----------
        Pt: gp_Pnt
        Order: int
        TolDist: float,optional
        	default value is 0.0001

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

        Parameters
        ----------
        U: float
        V: float
        Surf: Geom_Surface
        Order: int
        TolDist: float,optional
        	default value is 0.0001
        TolAng: float,optional
        	default value is 0.01
        TolCurv: float,optional
        	default value is 0.1

        Returns
        -------
        None

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

    def D0(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def D1(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def D2(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def G0Criterion(self, *args) -> "Standard_Real":
        r"""
        Returns the g0 criterion. this is the greatest distance allowed between the constraint and the target surface.

        Returns
        -------
        float

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

    def G1Criterion(self, *args) -> "Standard_Real":
        r"""
        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.

        Returns
        -------
        float

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

    def G2Criterion(self, *args) -> "Standard_Real":
        r"""
        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.

        Returns
        -------
        float

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

    def HasPnt2dOnSurf(self, *args) -> "Standard_Boolean":
        r"""
        No available documentation.

        Returns
        -------
        bool

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

    def LPropSurf(self, *args) -> "GeomLProp_SLProps &":
        r"""
        No available documentation.

        Returns
        -------
        GeomLProp_SLProps

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

    def Order(self, *args) -> "Standard_Integer":
        r"""
        Returns the order of constraint: g0, g1, and g2, controlled respectively by g0criterion g1criterion and g2criterion.

        Returns
        -------
        int

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

    def Pnt2dOnSurf(self, *args) -> "gp_Pnt2d":
        r"""
        No available documentation.

        Returns
        -------
        gp_Pnt2d

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

    def SetG0Criterion(self, *args) -> "void":
        r"""
        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.

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

        Returns
        -------
        None

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

    def SetG1Criterion(self, *args) -> "void":
        r"""
        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.

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

        Returns
        -------
        None

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

    def SetG2Criterion(self, *args) -> "void":
        r"""
        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.

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

        Returns
        -------
        None

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

    def SetOrder(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def SetPnt2dOnSurf(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

        """
        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"""
        No available documentation.

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

        Returns
        -------
        None

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

    def CallSurfinit(self, *args) -> "opencascade::handle< Geom_Surface >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Geom_Surface>

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

    def Constraints(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

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

    def RealBounds(self, *args) -> "void":
        r"""
        No available documentation.

        Parameters
        ----------

        Returns
        -------
        U1: float
        U2: float
        V1: float
        V2: float

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

    def SetBounds(self, *args) -> "void":
        r"""
        No available documentation.

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

        Returns
        -------
        None

        """
        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_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) -> "GeomPlate_Array1OfSequenceOfReal const &":
        return _GeomPlate.GeomPlate_HArray1OfSequenceOfReal_Array1(self)

    def ChangeArray1(self) -> "GeomPlate_Array1OfSequenceOfReal &":
        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_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) -> "GeomPlate_Array1OfHCurve const &":
        return _GeomPlate.GeomPlate_HArray1OfHCurve_Array1(self)

    def ChangeArray1(self) -> "GeomPlate_Array1OfHCurve &":
        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_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) -> "GeomPlate_SequenceOfPointConstraint const &":
        return _GeomPlate.GeomPlate_HSequenceOfPointConstraint_Sequence(self)

    def Append(self, *args) -> "void":
        return _GeomPlate.GeomPlate_HSequenceOfPointConstraint_Append(self, *args)

    def ChangeSequence(self) -> "GeomPlate_SequenceOfPointConstraint &":
        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)

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) -> "GeomPlate_SequenceOfCurveConstraint const &":
        return _GeomPlate.GeomPlate_HSequenceOfCurveConstraint_Sequence(self)

    def Append(self, *args) -> "void":
        return _GeomPlate.GeomPlate_HSequenceOfCurveConstraint_Append(self, *args)

    def ChangeSequence(self) -> "GeomPlate_SequenceOfCurveConstraint &":
        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)





