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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    def __sub__(self, *args) -> "ptrdiff_t":
        return _NLPlate.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

# Register SwigPyIterator in _NLPlate:
_NLPlate.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 _NLPlate.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.gp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.Plate
import OCC.Core.TColgp
import OCC.Core.Message
import OCC.Core.OSD
import OCC.Core.Geom
import OCC.Core.GeomAbs

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




def Handle_NLPlate_HGPPConstraint_Create() -> "opencascade::handle< NLPlate_HGPPConstraint >":
    return _NLPlate.Handle_NLPlate_HGPPConstraint_Create()

def Handle_NLPlate_HGPPConstraint_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< NLPlate_HGPPConstraint >":
    return _NLPlate.Handle_NLPlate_HGPPConstraint_DownCast(t)

def Handle_NLPlate_HGPPConstraint_IsNull(t: "opencascade::handle< NLPlate_HGPPConstraint > const &") -> "bool":
    return _NLPlate.Handle_NLPlate_HGPPConstraint_IsNull(t)

def Handle_NLPlate_HPG0Constraint_Create() -> "opencascade::handle< NLPlate_HPG0Constraint >":
    return _NLPlate.Handle_NLPlate_HPG0Constraint_Create()

def Handle_NLPlate_HPG0Constraint_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< NLPlate_HPG0Constraint >":
    return _NLPlate.Handle_NLPlate_HPG0Constraint_DownCast(t)

def Handle_NLPlate_HPG0Constraint_IsNull(t: "opencascade::handle< NLPlate_HPG0Constraint > const &") -> "bool":
    return _NLPlate.Handle_NLPlate_HPG0Constraint_IsNull(t)

def Handle_NLPlate_HPG1Constraint_Create() -> "opencascade::handle< NLPlate_HPG1Constraint >":
    return _NLPlate.Handle_NLPlate_HPG1Constraint_Create()

def Handle_NLPlate_HPG1Constraint_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< NLPlate_HPG1Constraint >":
    return _NLPlate.Handle_NLPlate_HPG1Constraint_DownCast(t)

def Handle_NLPlate_HPG1Constraint_IsNull(t: "opencascade::handle< NLPlate_HPG1Constraint > const &") -> "bool":
    return _NLPlate.Handle_NLPlate_HPG1Constraint_IsNull(t)

def Handle_NLPlate_HPG0G1Constraint_Create() -> "opencascade::handle< NLPlate_HPG0G1Constraint >":
    return _NLPlate.Handle_NLPlate_HPG0G1Constraint_Create()

def Handle_NLPlate_HPG0G1Constraint_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< NLPlate_HPG0G1Constraint >":
    return _NLPlate.Handle_NLPlate_HPG0G1Constraint_DownCast(t)

def Handle_NLPlate_HPG0G1Constraint_IsNull(t: "opencascade::handle< NLPlate_HPG0G1Constraint > const &") -> "bool":
    return _NLPlate.Handle_NLPlate_HPG0G1Constraint_IsNull(t)

def Handle_NLPlate_HPG2Constraint_Create() -> "opencascade::handle< NLPlate_HPG2Constraint >":
    return _NLPlate.Handle_NLPlate_HPG2Constraint_Create()

def Handle_NLPlate_HPG2Constraint_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< NLPlate_HPG2Constraint >":
    return _NLPlate.Handle_NLPlate_HPG2Constraint_DownCast(t)

def Handle_NLPlate_HPG2Constraint_IsNull(t: "opencascade::handle< NLPlate_HPG2Constraint > const &") -> "bool":
    return _NLPlate.Handle_NLPlate_HPG2Constraint_IsNull(t)

def Handle_NLPlate_HPG0G2Constraint_Create() -> "opencascade::handle< NLPlate_HPG0G2Constraint >":
    return _NLPlate.Handle_NLPlate_HPG0G2Constraint_Create()

def Handle_NLPlate_HPG0G2Constraint_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< NLPlate_HPG0G2Constraint >":
    return _NLPlate.Handle_NLPlate_HPG0G2Constraint_DownCast(t)

def Handle_NLPlate_HPG0G2Constraint_IsNull(t: "opencascade::handle< NLPlate_HPG0G2Constraint > const &") -> "bool":
    return _NLPlate.Handle_NLPlate_HPG0G2Constraint_IsNull(t)

def Handle_NLPlate_HPG3Constraint_Create() -> "opencascade::handle< NLPlate_HPG3Constraint >":
    return _NLPlate.Handle_NLPlate_HPG3Constraint_Create()

def Handle_NLPlate_HPG3Constraint_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< NLPlate_HPG3Constraint >":
    return _NLPlate.Handle_NLPlate_HPG3Constraint_DownCast(t)

def Handle_NLPlate_HPG3Constraint_IsNull(t: "opencascade::handle< NLPlate_HPG3Constraint > const &") -> "bool":
    return _NLPlate.Handle_NLPlate_HPG3Constraint_IsNull(t)

def Handle_NLPlate_HPG0G3Constraint_Create() -> "opencascade::handle< NLPlate_HPG0G3Constraint >":
    return _NLPlate.Handle_NLPlate_HPG0G3Constraint_Create()

def Handle_NLPlate_HPG0G3Constraint_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< NLPlate_HPG0G3Constraint >":
    return _NLPlate.Handle_NLPlate_HPG0G3Constraint_DownCast(t)

def Handle_NLPlate_HPG0G3Constraint_IsNull(t: "opencascade::handle< NLPlate_HPG0G3Constraint > const &") -> "bool":
    return _NLPlate.Handle_NLPlate_HPG0G3Constraint_IsNull(t)
class NLPlate_ListIteratorOfStackOfPlate(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):
        _NLPlate.NLPlate_ListIteratorOfStackOfPlate_swiginit(self, _NLPlate.new_NLPlate_ListIteratorOfStackOfPlate(*args))

    def More(self) -> "Standard_Boolean":
        return _NLPlate.NLPlate_ListIteratorOfStackOfPlate_More(self)

    def Next(self) -> "void":
        return _NLPlate.NLPlate_ListIteratorOfStackOfPlate_Next(self)

    def Value(self) -> "Plate_Plate const &":
        return _NLPlate.NLPlate_ListIteratorOfStackOfPlate_Value(self)

    def ChangeValue(self) -> "Plate_Plate &":
        return _NLPlate.NLPlate_ListIteratorOfStackOfPlate_ChangeValue(self)
    __swig_destroy__ = _NLPlate.delete_NLPlate_ListIteratorOfStackOfPlate

# Register NLPlate_ListIteratorOfStackOfPlate in _NLPlate:
_NLPlate.NLPlate_ListIteratorOfStackOfPlate_swigregister(NLPlate_ListIteratorOfStackOfPlate)

class NLPlate_SequenceOfHGPPConstraint(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< NLPlate_HGPPConstraint > >::iterator":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_begin(self)

    def end(self) -> "NCollection_Sequence< opencascade::handle< NLPlate_HGPPConstraint > >::iterator":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_end(self)

    def cbegin(self) -> "NCollection_Sequence< opencascade::handle< NLPlate_HGPPConstraint > >::const_iterator":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_cbegin(self)

    def cend(self) -> "NCollection_Sequence< opencascade::handle< NLPlate_HGPPConstraint > >::const_iterator":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_cend(self)

    def __init__(self, *args):
        _NLPlate.NLPlate_SequenceOfHGPPConstraint_swiginit(self, _NLPlate.new_NLPlate_SequenceOfHGPPConstraint(*args))

    def Size(self) -> "Standard_Integer":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_Size(self)

    def Length(self) -> "Standard_Integer":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_Length(self)

    def Lower(self) -> "Standard_Integer":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_Lower(self)

    def Upper(self) -> "Standard_Integer":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_Upper(self)

    def IsEmpty(self) -> "Standard_Boolean":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_IsEmpty(self)

    def Reverse(self) -> "void":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_Reverse(self)

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

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

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

    def Assign(self, theOther: "NLPlate_SequenceOfHGPPConstraint") -> "NCollection_Sequence< opencascade::handle< NLPlate_HGPPConstraint > > &":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_Assign(self, theOther)

    def Set(self, theOther: "NLPlate_SequenceOfHGPPConstraint") -> "NCollection_Sequence< opencascade::handle< NLPlate_HGPPConstraint > > &":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_Set(self, theOther)

    def Remove(self, *args) -> "void":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_Remove(self, *args)

    def Append(self, *args) -> "void":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_Prepend(self, *args)

    def InsertBefore(self, *args) -> "void":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_InsertAfter(self, *args)

    def Split(self, theIndex: "Standard_Integer const", theSeq: "NLPlate_SequenceOfHGPPConstraint") -> "void":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_Split(self, theIndex, theSeq)

    def First(self) -> "opencascade::handle< NLPlate_HGPPConstraint > const &":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_First(self)

    def ChangeFirst(self) -> "opencascade::handle< NLPlate_HGPPConstraint > &":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_ChangeFirst(self)

    def Last(self) -> "opencascade::handle< NLPlate_HGPPConstraint > const &":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_Last(self)

    def ChangeLast(self) -> "opencascade::handle< NLPlate_HGPPConstraint > &":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_ChangeLast(self)

    def Value(self, theIndex: "Standard_Integer const") -> "opencascade::handle< NLPlate_HGPPConstraint > const &":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_Value(self, theIndex)

    def ChangeValue(self, theIndex: "Standard_Integer const") -> "opencascade::handle< NLPlate_HGPPConstraint > &":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_ChangeValue(self, theIndex)

    def __call__(self, *args) -> "opencascade::handle< NLPlate_HGPPConstraint > &":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint___call__(self, *args)

    def SetValue(self, theIndex: "Standard_Integer const", theItem: "opencascade::handle< NLPlate_HGPPConstraint > const &") -> "void":
        return _NLPlate.NLPlate_SequenceOfHGPPConstraint_SetValue(self, theIndex, theItem)
    __swig_destroy__ = _NLPlate.delete_NLPlate_SequenceOfHGPPConstraint

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


# Register NLPlate_SequenceOfHGPPConstraint in _NLPlate:
_NLPlate.NLPlate_SequenceOfHGPPConstraint_swigregister(NLPlate_SequenceOfHGPPConstraint)

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

class NLPlate_StackOfPlate(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_List< Plate_Plate >::iterator":
        return _NLPlate.NLPlate_StackOfPlate_begin(self)

    def end(self) -> "NCollection_List< Plate_Plate >::iterator":
        return _NLPlate.NLPlate_StackOfPlate_end(self)

    def cbegin(self) -> "NCollection_List< Plate_Plate >::const_iterator":
        return _NLPlate.NLPlate_StackOfPlate_cbegin(self)

    def cend(self) -> "NCollection_List< Plate_Plate >::const_iterator":
        return _NLPlate.NLPlate_StackOfPlate_cend(self)

    def __init__(self, *args):
        _NLPlate.NLPlate_StackOfPlate_swiginit(self, _NLPlate.new_NLPlate_StackOfPlate(*args))

    def Size(self) -> "Standard_Integer":
        return _NLPlate.NLPlate_StackOfPlate_Size(self)

    def Assign(self, theOther: "NLPlate_StackOfPlate") -> "NCollection_List< Plate_Plate > &":
        return _NLPlate.NLPlate_StackOfPlate_Assign(self, theOther)

    def Set(self, theOther: "NLPlate_StackOfPlate") -> "NCollection_List< Plate_Plate > &":
        return _NLPlate.NLPlate_StackOfPlate_Set(self, theOther)

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

    def First(self) -> "Plate_Plate const &":
        return _NLPlate.NLPlate_StackOfPlate_First(self)

    def Last(self) -> "Plate_Plate const &":
        return _NLPlate.NLPlate_StackOfPlate_Last(self)

    def Append(self, *args) -> "void":
        return _NLPlate.NLPlate_StackOfPlate_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _NLPlate.NLPlate_StackOfPlate_Prepend(self, *args)

    def RemoveFirst(self) -> "void":
        return _NLPlate.NLPlate_StackOfPlate_RemoveFirst(self)

    def Remove(self, theIter: "NLPlate_ListIteratorOfStackOfPlate") -> "void":
        return _NLPlate.NLPlate_StackOfPlate_Remove(self, theIter)

    def InsertBefore(self, *args) -> "void":
        return _NLPlate.NLPlate_StackOfPlate_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _NLPlate.NLPlate_StackOfPlate_InsertAfter(self, *args)

    def Reverse(self) -> "void":
        return _NLPlate.NLPlate_StackOfPlate_Reverse(self)
    __swig_destroy__ = _NLPlate.delete_NLPlate_StackOfPlate

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


# Register NLPlate_StackOfPlate in _NLPlate:
_NLPlate.NLPlate_StackOfPlate_swigregister(NLPlate_StackOfPlate)

class NLPlate_HGPPConstraint(OCC.Core.Standard.Standard_Transient):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined")
    __repr__ = _swig_repr

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

        Returns
        -------
        int

        """
        return _NLPlate.NLPlate_HGPPConstraint_ActiveOrder(self, *args)

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

        Returns
        -------
        float

        """
        return _NLPlate.NLPlate_HGPPConstraint_G0Criterion(self, *args)

    def G0Target(self, *args) -> "gp_XYZ const":
        r"""
        No available documentation.

        Returns
        -------
        gp_XYZ

        """
        return _NLPlate.NLPlate_HGPPConstraint_G0Target(self, *args)

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

        Returns
        -------
        float

        """
        return _NLPlate.NLPlate_HGPPConstraint_G1Criterion(self, *args)

    def G1Target(self, *args) -> "Plate_D1 const &":
        r"""
        No available documentation.

        Returns
        -------
        Plate_D1

        """
        return _NLPlate.NLPlate_HGPPConstraint_G1Target(self, *args)

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

        Returns
        -------
        float

        """
        return _NLPlate.NLPlate_HGPPConstraint_G2Criterion(self, *args)

    def G2Target(self, *args) -> "Plate_D2 const &":
        r"""
        No available documentation.

        Returns
        -------
        Plate_D2

        """
        return _NLPlate.NLPlate_HGPPConstraint_G2Target(self, *args)

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

        Returns
        -------
        float

        """
        return _NLPlate.NLPlate_HGPPConstraint_G3Criterion(self, *args)

    def G3Target(self, *args) -> "Plate_D3 const &":
        r"""
        No available documentation.

        Returns
        -------
        Plate_D3

        """
        return _NLPlate.NLPlate_HGPPConstraint_G3Target(self, *args)

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

        Returns
        -------
        bool

        """
        return _NLPlate.NLPlate_HGPPConstraint_IncrementalLoadAllowed(self, *args)

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

        Returns
        -------
        bool

        """
        return _NLPlate.NLPlate_HGPPConstraint_IsG0(self, *args)

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

        Returns
        -------
        int

        """
        return _NLPlate.NLPlate_HGPPConstraint_Orientation(self, *args)

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

        Parameters
        ----------
        ActiveOrder: int

        Returns
        -------
        None

        """
        return _NLPlate.NLPlate_HGPPConstraint_SetActiveOrder(self, *args)

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

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

        Returns
        -------
        None

        """
        return _NLPlate.NLPlate_HGPPConstraint_SetG0Criterion(self, *args)

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

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

        Returns
        -------
        None

        """
        return _NLPlate.NLPlate_HGPPConstraint_SetG1Criterion(self, *args)

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

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

        Returns
        -------
        None

        """
        return _NLPlate.NLPlate_HGPPConstraint_SetG2Criterion(self, *args)

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

        Parameters
        ----------
        TolG3: float

        Returns
        -------
        None

        """
        return _NLPlate.NLPlate_HGPPConstraint_SetG3Criterion(self, *args)

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

        Parameters
        ----------
        ILA: bool

        Returns
        -------
        None

        """
        return _NLPlate.NLPlate_HGPPConstraint_SetIncrementalLoadAllowed(self, *args)

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

        Parameters
        ----------
        Orient: int,optional
        	default value is 0

        Returns
        -------
        None

        """
        return _NLPlate.NLPlate_HGPPConstraint_SetOrientation(self, *args)

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

        Parameters
        ----------
        UV: gp_XY

        Returns
        -------
        None

        """
        return _NLPlate.NLPlate_HGPPConstraint_SetUV(self, *args)

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

        Parameters
        ----------
        UVFree: bool

        Returns
        -------
        None

        """
        return _NLPlate.NLPlate_HGPPConstraint_SetUVFreeSliding(self, *args)

    def UV(self, *args) -> "gp_XY const":
        r"""
        No available documentation.

        Returns
        -------
        gp_XY

        """
        return _NLPlate.NLPlate_HGPPConstraint_UV(self, *args)

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

        Returns
        -------
        bool

        """
        return _NLPlate.NLPlate_HGPPConstraint_UVFreeSliding(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _NLPlate.delete_NLPlate_HGPPConstraint

# Register NLPlate_HGPPConstraint in _NLPlate:
_NLPlate.NLPlate_HGPPConstraint_swigregister(NLPlate_HGPPConstraint)

class NLPlate_NLPlate(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.

        Parameters
        ----------
        InitialSurface: Geom_Surface

        Returns
        -------
        None

        """
        _NLPlate.NLPlate_NLPlate_swiginit(self, _NLPlate.new_NLPlate_NLPlate(*args))

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

        Parameters
        ----------
        NbIterations: int,optional
        	default value is 3

        Returns
        -------
        None

        """
        return _NLPlate.NLPlate_NLPlate_ConstraintsSliding(self, *args)

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

        Returns
        -------
        int

        """
        return _NLPlate.NLPlate_NLPlate_Continuity(self, *args)

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

        Parameters
        ----------
        point2d: gp_XY

        Returns
        -------
        gp_XYZ

        """
        return _NLPlate.NLPlate_NLPlate_Evaluate(self, *args)

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

        Parameters
        ----------
        point2d: gp_XY
        iu: int
        iv: int

        Returns
        -------
        gp_XYZ

        """
        return _NLPlate.NLPlate_NLPlate_EvaluateDerivative(self, *args)

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

        Parameters
        ----------
        ord: int,optional
        	default value is 2
        InitialConsraintOrder: int,optional
        	default value is 1
        NbIncrements: int,optional
        	default value is 4
        UVSliding: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        return _NLPlate.NLPlate_NLPlate_IncrementalSolve(self, *args)

    def Init(self, *args) -> "void":
        r"""
        Reset the plate in the initial state ( same as after create((surface)).

        Returns
        -------
        None

        """
        return _NLPlate.NLPlate_NLPlate_Init(self, *args)

    def IsDone(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if all has been correctly done.

        Returns
        -------
        bool

        """
        return _NLPlate.NLPlate_NLPlate_IsDone(self, *args)

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

        Parameters
        ----------
        GConst: NLPlate_HGPPConstraint

        Returns
        -------
        None

        """
        return _NLPlate.NLPlate_NLPlate_Load(self, *args)

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

        Returns
        -------
        int

        """
        return _NLPlate.NLPlate_NLPlate_MaxActiveConstraintOrder(self, *args)

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

        Parameters
        ----------
        ord: int,optional
        	default value is 2
        InitialConsraintOrder: int,optional
        	default value is 1

        Returns
        -------
        None

        """
        return _NLPlate.NLPlate_NLPlate_Solve(self, *args)

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

        Parameters
        ----------
        ord: int,optional
        	default value is 2
        InitialConsraintOrder: int,optional
        	default value is 1

        Returns
        -------
        None

        """
        return _NLPlate.NLPlate_NLPlate_Solve2(self, *args)

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

        Returns
        -------
        None

        """
        return _NLPlate.NLPlate_NLPlate_destroy(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _NLPlate.delete_NLPlate_NLPlate

# Register NLPlate_NLPlate in _NLPlate:
_NLPlate.NLPlate_NLPlate_swigregister(NLPlate_NLPlate)

class NLPlate_HPG0Constraint(NLPlate_HGPPConstraint):
    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
        ----------
        UV: gp_XY
        Value: gp_XYZ

        Returns
        -------
        None

        """
        _NLPlate.NLPlate_HPG0Constraint_swiginit(self, _NLPlate.new_NLPlate_HPG0Constraint(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _NLPlate.delete_NLPlate_HPG0Constraint

# Register NLPlate_HPG0Constraint in _NLPlate:
_NLPlate.NLPlate_HPG0Constraint_swigregister(NLPlate_HPG0Constraint)

class NLPlate_HPG1Constraint(NLPlate_HGPPConstraint):
    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
        ----------
        UV: gp_XY
        D1T: Plate_D1

        Returns
        -------
        None

        """
        _NLPlate.NLPlate_HPG1Constraint_swiginit(self, _NLPlate.new_NLPlate_HPG1Constraint(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _NLPlate.delete_NLPlate_HPG1Constraint

# Register NLPlate_HPG1Constraint in _NLPlate:
_NLPlate.NLPlate_HPG1Constraint_swigregister(NLPlate_HPG1Constraint)

class NLPlate_HPG0G1Constraint(NLPlate_HPG0Constraint):
    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
        ----------
        UV: gp_XY
        Value: gp_XYZ
        D1T: Plate_D1

        Returns
        -------
        None

        """
        _NLPlate.NLPlate_HPG0G1Constraint_swiginit(self, _NLPlate.new_NLPlate_HPG0G1Constraint(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _NLPlate.delete_NLPlate_HPG0G1Constraint

# Register NLPlate_HPG0G1Constraint in _NLPlate:
_NLPlate.NLPlate_HPG0G1Constraint_swigregister(NLPlate_HPG0G1Constraint)

class NLPlate_HPG2Constraint(NLPlate_HPG1Constraint):
    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
        ----------
        UV: gp_XY
        D1T: Plate_D1
        D2T: Plate_D2

        Returns
        -------
        None

        """
        _NLPlate.NLPlate_HPG2Constraint_swiginit(self, _NLPlate.new_NLPlate_HPG2Constraint(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _NLPlate.delete_NLPlate_HPG2Constraint

# Register NLPlate_HPG2Constraint in _NLPlate:
_NLPlate.NLPlate_HPG2Constraint_swigregister(NLPlate_HPG2Constraint)

class NLPlate_HPG0G2Constraint(NLPlate_HPG0G1Constraint):
    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
        ----------
        UV: gp_XY
        Value: gp_XYZ
        D1T: Plate_D1
        D2T: Plate_D2

        Returns
        -------
        None

        """
        _NLPlate.NLPlate_HPG0G2Constraint_swiginit(self, _NLPlate.new_NLPlate_HPG0G2Constraint(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _NLPlate.delete_NLPlate_HPG0G2Constraint

# Register NLPlate_HPG0G2Constraint in _NLPlate:
_NLPlate.NLPlate_HPG0G2Constraint_swigregister(NLPlate_HPG0G2Constraint)

class NLPlate_HPG3Constraint(NLPlate_HPG2Constraint):
    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
        ----------
        UV: gp_XY
        D1T: Plate_D1
        D2T: Plate_D2
        D3T: Plate_D3

        Returns
        -------
        None

        """
        _NLPlate.NLPlate_HPG3Constraint_swiginit(self, _NLPlate.new_NLPlate_HPG3Constraint(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _NLPlate.delete_NLPlate_HPG3Constraint

# Register NLPlate_HPG3Constraint in _NLPlate:
_NLPlate.NLPlate_HPG3Constraint_swigregister(NLPlate_HPG3Constraint)

class NLPlate_HPG0G3Constraint(NLPlate_HPG0G2Constraint):
    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
        ----------
        UV: gp_XY
        Value: gp_XYZ
        D1T: Plate_D1
        D2T: Plate_D2
        D3T: Plate_D3

        Returns
        -------
        None

        """
        _NLPlate.NLPlate_HPG0G3Constraint_swiginit(self, _NLPlate.new_NLPlate_HPG0G3Constraint(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _NLPlate.delete_NLPlate_HPG0G3Constraint

# Register NLPlate_HPG0G3Constraint in _NLPlate:
_NLPlate.NLPlate_HPG0G3Constraint_swigregister(NLPlate_HPG0G3Constraint)





