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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _BRep:
_BRep.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 _BRep.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.TopoDS
import OCC.Core.Message
import OCC.Core.TCollection
import OCC.Core.OSD
import OCC.Core.TColStd
import OCC.Core.TopAbs
import OCC.Core.TopLoc
import OCC.Core.gp
import OCC.Core.GeomAbs
import OCC.Core.Geom
import OCC.Core.TColgp
import OCC.Core.Poly
import OCC.Core.TShort
import OCC.Core.Geom2d

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




def Handle_BRep_CurveRepresentation_Create() -> "opencascade::handle< BRep_CurveRepresentation >":
    return _BRep.Handle_BRep_CurveRepresentation_Create()

def Handle_BRep_CurveRepresentation_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_CurveRepresentation >":
    return _BRep.Handle_BRep_CurveRepresentation_DownCast(t)

def Handle_BRep_CurveRepresentation_IsNull(t: "opencascade::handle< BRep_CurveRepresentation > const &") -> "bool":
    return _BRep.Handle_BRep_CurveRepresentation_IsNull(t)

def Handle_BRep_PointRepresentation_Create() -> "opencascade::handle< BRep_PointRepresentation >":
    return _BRep.Handle_BRep_PointRepresentation_Create()

def Handle_BRep_PointRepresentation_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_PointRepresentation >":
    return _BRep.Handle_BRep_PointRepresentation_DownCast(t)

def Handle_BRep_PointRepresentation_IsNull(t: "opencascade::handle< BRep_PointRepresentation > const &") -> "bool":
    return _BRep.Handle_BRep_PointRepresentation_IsNull(t)

def Handle_BRep_TEdge_Create() -> "opencascade::handle< BRep_TEdge >":
    return _BRep.Handle_BRep_TEdge_Create()

def Handle_BRep_TEdge_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_TEdge >":
    return _BRep.Handle_BRep_TEdge_DownCast(t)

def Handle_BRep_TEdge_IsNull(t: "opencascade::handle< BRep_TEdge > const &") -> "bool":
    return _BRep.Handle_BRep_TEdge_IsNull(t)

def Handle_BRep_TFace_Create() -> "opencascade::handle< BRep_TFace >":
    return _BRep.Handle_BRep_TFace_Create()

def Handle_BRep_TFace_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_TFace >":
    return _BRep.Handle_BRep_TFace_DownCast(t)

def Handle_BRep_TFace_IsNull(t: "opencascade::handle< BRep_TFace > const &") -> "bool":
    return _BRep.Handle_BRep_TFace_IsNull(t)

def Handle_BRep_TVertex_Create() -> "opencascade::handle< BRep_TVertex >":
    return _BRep.Handle_BRep_TVertex_Create()

def Handle_BRep_TVertex_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_TVertex >":
    return _BRep.Handle_BRep_TVertex_DownCast(t)

def Handle_BRep_TVertex_IsNull(t: "opencascade::handle< BRep_TVertex > const &") -> "bool":
    return _BRep.Handle_BRep_TVertex_IsNull(t)

def Handle_BRep_CurveOn2Surfaces_Create() -> "opencascade::handle< BRep_CurveOn2Surfaces >":
    return _BRep.Handle_BRep_CurveOn2Surfaces_Create()

def Handle_BRep_CurveOn2Surfaces_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_CurveOn2Surfaces >":
    return _BRep.Handle_BRep_CurveOn2Surfaces_DownCast(t)

def Handle_BRep_CurveOn2Surfaces_IsNull(t: "opencascade::handle< BRep_CurveOn2Surfaces > const &") -> "bool":
    return _BRep.Handle_BRep_CurveOn2Surfaces_IsNull(t)

def Handle_BRep_GCurve_Create() -> "opencascade::handle< BRep_GCurve >":
    return _BRep.Handle_BRep_GCurve_Create()

def Handle_BRep_GCurve_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_GCurve >":
    return _BRep.Handle_BRep_GCurve_DownCast(t)

def Handle_BRep_GCurve_IsNull(t: "opencascade::handle< BRep_GCurve > const &") -> "bool":
    return _BRep.Handle_BRep_GCurve_IsNull(t)

def Handle_BRep_PointOnCurve_Create() -> "opencascade::handle< BRep_PointOnCurve >":
    return _BRep.Handle_BRep_PointOnCurve_Create()

def Handle_BRep_PointOnCurve_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_PointOnCurve >":
    return _BRep.Handle_BRep_PointOnCurve_DownCast(t)

def Handle_BRep_PointOnCurve_IsNull(t: "opencascade::handle< BRep_PointOnCurve > const &") -> "bool":
    return _BRep.Handle_BRep_PointOnCurve_IsNull(t)

def Handle_BRep_PointsOnSurface_Create() -> "opencascade::handle< BRep_PointsOnSurface >":
    return _BRep.Handle_BRep_PointsOnSurface_Create()

def Handle_BRep_PointsOnSurface_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_PointsOnSurface >":
    return _BRep.Handle_BRep_PointsOnSurface_DownCast(t)

def Handle_BRep_PointsOnSurface_IsNull(t: "opencascade::handle< BRep_PointsOnSurface > const &") -> "bool":
    return _BRep.Handle_BRep_PointsOnSurface_IsNull(t)

def Handle_BRep_Polygon3D_Create() -> "opencascade::handle< BRep_Polygon3D >":
    return _BRep.Handle_BRep_Polygon3D_Create()

def Handle_BRep_Polygon3D_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_Polygon3D >":
    return _BRep.Handle_BRep_Polygon3D_DownCast(t)

def Handle_BRep_Polygon3D_IsNull(t: "opencascade::handle< BRep_Polygon3D > const &") -> "bool":
    return _BRep.Handle_BRep_Polygon3D_IsNull(t)

def Handle_BRep_PolygonOnSurface_Create() -> "opencascade::handle< BRep_PolygonOnSurface >":
    return _BRep.Handle_BRep_PolygonOnSurface_Create()

def Handle_BRep_PolygonOnSurface_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_PolygonOnSurface >":
    return _BRep.Handle_BRep_PolygonOnSurface_DownCast(t)

def Handle_BRep_PolygonOnSurface_IsNull(t: "opencascade::handle< BRep_PolygonOnSurface > const &") -> "bool":
    return _BRep.Handle_BRep_PolygonOnSurface_IsNull(t)

def Handle_BRep_PolygonOnTriangulation_Create() -> "opencascade::handle< BRep_PolygonOnTriangulation >":
    return _BRep.Handle_BRep_PolygonOnTriangulation_Create()

def Handle_BRep_PolygonOnTriangulation_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_PolygonOnTriangulation >":
    return _BRep.Handle_BRep_PolygonOnTriangulation_DownCast(t)

def Handle_BRep_PolygonOnTriangulation_IsNull(t: "opencascade::handle< BRep_PolygonOnTriangulation > const &") -> "bool":
    return _BRep.Handle_BRep_PolygonOnTriangulation_IsNull(t)

def Handle_BRep_Curve3D_Create() -> "opencascade::handle< BRep_Curve3D >":
    return _BRep.Handle_BRep_Curve3D_Create()

def Handle_BRep_Curve3D_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_Curve3D >":
    return _BRep.Handle_BRep_Curve3D_DownCast(t)

def Handle_BRep_Curve3D_IsNull(t: "opencascade::handle< BRep_Curve3D > const &") -> "bool":
    return _BRep.Handle_BRep_Curve3D_IsNull(t)

def Handle_BRep_CurveOnSurface_Create() -> "opencascade::handle< BRep_CurveOnSurface >":
    return _BRep.Handle_BRep_CurveOnSurface_Create()

def Handle_BRep_CurveOnSurface_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_CurveOnSurface >":
    return _BRep.Handle_BRep_CurveOnSurface_DownCast(t)

def Handle_BRep_CurveOnSurface_IsNull(t: "opencascade::handle< BRep_CurveOnSurface > const &") -> "bool":
    return _BRep.Handle_BRep_CurveOnSurface_IsNull(t)

def Handle_BRep_PointOnCurveOnSurface_Create() -> "opencascade::handle< BRep_PointOnCurveOnSurface >":
    return _BRep.Handle_BRep_PointOnCurveOnSurface_Create()

def Handle_BRep_PointOnCurveOnSurface_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_PointOnCurveOnSurface >":
    return _BRep.Handle_BRep_PointOnCurveOnSurface_DownCast(t)

def Handle_BRep_PointOnCurveOnSurface_IsNull(t: "opencascade::handle< BRep_PointOnCurveOnSurface > const &") -> "bool":
    return _BRep.Handle_BRep_PointOnCurveOnSurface_IsNull(t)

def Handle_BRep_PointOnSurface_Create() -> "opencascade::handle< BRep_PointOnSurface >":
    return _BRep.Handle_BRep_PointOnSurface_Create()

def Handle_BRep_PointOnSurface_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_PointOnSurface >":
    return _BRep.Handle_BRep_PointOnSurface_DownCast(t)

def Handle_BRep_PointOnSurface_IsNull(t: "opencascade::handle< BRep_PointOnSurface > const &") -> "bool":
    return _BRep.Handle_BRep_PointOnSurface_IsNull(t)

def Handle_BRep_PolygonOnClosedSurface_Create() -> "opencascade::handle< BRep_PolygonOnClosedSurface >":
    return _BRep.Handle_BRep_PolygonOnClosedSurface_Create()

def Handle_BRep_PolygonOnClosedSurface_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_PolygonOnClosedSurface >":
    return _BRep.Handle_BRep_PolygonOnClosedSurface_DownCast(t)

def Handle_BRep_PolygonOnClosedSurface_IsNull(t: "opencascade::handle< BRep_PolygonOnClosedSurface > const &") -> "bool":
    return _BRep.Handle_BRep_PolygonOnClosedSurface_IsNull(t)

def Handle_BRep_PolygonOnClosedTriangulation_Create() -> "opencascade::handle< BRep_PolygonOnClosedTriangulation >":
    return _BRep.Handle_BRep_PolygonOnClosedTriangulation_Create()

def Handle_BRep_PolygonOnClosedTriangulation_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_PolygonOnClosedTriangulation >":
    return _BRep.Handle_BRep_PolygonOnClosedTriangulation_DownCast(t)

def Handle_BRep_PolygonOnClosedTriangulation_IsNull(t: "opencascade::handle< BRep_PolygonOnClosedTriangulation > const &") -> "bool":
    return _BRep.Handle_BRep_PolygonOnClosedTriangulation_IsNull(t)

def Handle_BRep_CurveOnClosedSurface_Create() -> "opencascade::handle< BRep_CurveOnClosedSurface >":
    return _BRep.Handle_BRep_CurveOnClosedSurface_Create()

def Handle_BRep_CurveOnClosedSurface_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< BRep_CurveOnClosedSurface >":
    return _BRep.Handle_BRep_CurveOnClosedSurface_DownCast(t)

def Handle_BRep_CurveOnClosedSurface_IsNull(t: "opencascade::handle< BRep_CurveOnClosedSurface > const &") -> "bool":
    return _BRep.Handle_BRep_CurveOnClosedSurface_IsNull(t)
class BRep_ListIteratorOfListOfCurveRepresentation(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):
        _BRep.BRep_ListIteratorOfListOfCurveRepresentation_swiginit(self, _BRep.new_BRep_ListIteratorOfListOfCurveRepresentation(*args))

    def More(self) -> "Standard_Boolean":
        return _BRep.BRep_ListIteratorOfListOfCurveRepresentation_More(self)

    def Next(self) -> "void":
        return _BRep.BRep_ListIteratorOfListOfCurveRepresentation_Next(self)

    def Value(self) -> "opencascade::handle< BRep_CurveRepresentation > const &":
        return _BRep.BRep_ListIteratorOfListOfCurveRepresentation_Value(self)

    def ChangeValue(self) -> "opencascade::handle< BRep_CurveRepresentation > &":
        return _BRep.BRep_ListIteratorOfListOfCurveRepresentation_ChangeValue(self)
    __swig_destroy__ = _BRep.delete_BRep_ListIteratorOfListOfCurveRepresentation

# Register BRep_ListIteratorOfListOfCurveRepresentation in _BRep:
_BRep.BRep_ListIteratorOfListOfCurveRepresentation_swigregister(BRep_ListIteratorOfListOfCurveRepresentation)

class BRep_ListIteratorOfListOfPointRepresentation(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):
        _BRep.BRep_ListIteratorOfListOfPointRepresentation_swiginit(self, _BRep.new_BRep_ListIteratorOfListOfPointRepresentation(*args))

    def More(self) -> "Standard_Boolean":
        return _BRep.BRep_ListIteratorOfListOfPointRepresentation_More(self)

    def Next(self) -> "void":
        return _BRep.BRep_ListIteratorOfListOfPointRepresentation_Next(self)

    def Value(self) -> "opencascade::handle< BRep_PointRepresentation > const &":
        return _BRep.BRep_ListIteratorOfListOfPointRepresentation_Value(self)

    def ChangeValue(self) -> "opencascade::handle< BRep_PointRepresentation > &":
        return _BRep.BRep_ListIteratorOfListOfPointRepresentation_ChangeValue(self)
    __swig_destroy__ = _BRep.delete_BRep_ListIteratorOfListOfPointRepresentation

# Register BRep_ListIteratorOfListOfPointRepresentation in _BRep:
_BRep.BRep_ListIteratorOfListOfPointRepresentation_swigregister(BRep_ListIteratorOfListOfPointRepresentation)

class BRep_ListOfCurveRepresentation(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< opencascade::handle< BRep_CurveRepresentation > >::iterator":
        return _BRep.BRep_ListOfCurveRepresentation_begin(self)

    def end(self) -> "NCollection_List< opencascade::handle< BRep_CurveRepresentation > >::iterator":
        return _BRep.BRep_ListOfCurveRepresentation_end(self)

    def cbegin(self) -> "NCollection_List< opencascade::handle< BRep_CurveRepresentation > >::const_iterator":
        return _BRep.BRep_ListOfCurveRepresentation_cbegin(self)

    def cend(self) -> "NCollection_List< opencascade::handle< BRep_CurveRepresentation > >::const_iterator":
        return _BRep.BRep_ListOfCurveRepresentation_cend(self)

    def __init__(self, *args):
        _BRep.BRep_ListOfCurveRepresentation_swiginit(self, _BRep.new_BRep_ListOfCurveRepresentation(*args))

    def Size(self) -> "Standard_Integer":
        return _BRep.BRep_ListOfCurveRepresentation_Size(self)

    def Assign(self, theOther: "BRep_ListOfCurveRepresentation") -> "NCollection_List< opencascade::handle< BRep_CurveRepresentation > > &":
        return _BRep.BRep_ListOfCurveRepresentation_Assign(self, theOther)

    def Set(self, theOther: "BRep_ListOfCurveRepresentation") -> "NCollection_List< opencascade::handle< BRep_CurveRepresentation > > &":
        return _BRep.BRep_ListOfCurveRepresentation_Set(self, theOther)

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

    def First(self) -> "opencascade::handle< BRep_CurveRepresentation > const &":
        return _BRep.BRep_ListOfCurveRepresentation_First(self)

    def Last(self) -> "opencascade::handle< BRep_CurveRepresentation > const &":
        return _BRep.BRep_ListOfCurveRepresentation_Last(self)

    def Append(self, *args) -> "void":
        return _BRep.BRep_ListOfCurveRepresentation_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _BRep.BRep_ListOfCurveRepresentation_Prepend(self, *args)

    def RemoveFirst(self) -> "void":
        return _BRep.BRep_ListOfCurveRepresentation_RemoveFirst(self)

    def Remove(self, theIter: "BRep_ListIteratorOfListOfCurveRepresentation") -> "void":
        return _BRep.BRep_ListOfCurveRepresentation_Remove(self, theIter)

    def InsertBefore(self, *args) -> "void":
        return _BRep.BRep_ListOfCurveRepresentation_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _BRep.BRep_ListOfCurveRepresentation_InsertAfter(self, *args)

    def Reverse(self) -> "void":
        return _BRep.BRep_ListOfCurveRepresentation_Reverse(self)
    __swig_destroy__ = _BRep.delete_BRep_ListOfCurveRepresentation

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


# Register BRep_ListOfCurveRepresentation in _BRep:
_BRep.BRep_ListOfCurveRepresentation_swigregister(BRep_ListOfCurveRepresentation)

class BRep_ListOfPointRepresentation(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< opencascade::handle< BRep_PointRepresentation > >::iterator":
        return _BRep.BRep_ListOfPointRepresentation_begin(self)

    def end(self) -> "NCollection_List< opencascade::handle< BRep_PointRepresentation > >::iterator":
        return _BRep.BRep_ListOfPointRepresentation_end(self)

    def cbegin(self) -> "NCollection_List< opencascade::handle< BRep_PointRepresentation > >::const_iterator":
        return _BRep.BRep_ListOfPointRepresentation_cbegin(self)

    def cend(self) -> "NCollection_List< opencascade::handle< BRep_PointRepresentation > >::const_iterator":
        return _BRep.BRep_ListOfPointRepresentation_cend(self)

    def __init__(self, *args):
        _BRep.BRep_ListOfPointRepresentation_swiginit(self, _BRep.new_BRep_ListOfPointRepresentation(*args))

    def Size(self) -> "Standard_Integer":
        return _BRep.BRep_ListOfPointRepresentation_Size(self)

    def Assign(self, theOther: "BRep_ListOfPointRepresentation") -> "NCollection_List< opencascade::handle< BRep_PointRepresentation > > &":
        return _BRep.BRep_ListOfPointRepresentation_Assign(self, theOther)

    def Set(self, theOther: "BRep_ListOfPointRepresentation") -> "NCollection_List< opencascade::handle< BRep_PointRepresentation > > &":
        return _BRep.BRep_ListOfPointRepresentation_Set(self, theOther)

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

    def First(self) -> "opencascade::handle< BRep_PointRepresentation > const &":
        return _BRep.BRep_ListOfPointRepresentation_First(self)

    def Last(self) -> "opencascade::handle< BRep_PointRepresentation > const &":
        return _BRep.BRep_ListOfPointRepresentation_Last(self)

    def Append(self, *args) -> "void":
        return _BRep.BRep_ListOfPointRepresentation_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _BRep.BRep_ListOfPointRepresentation_Prepend(self, *args)

    def RemoveFirst(self) -> "void":
        return _BRep.BRep_ListOfPointRepresentation_RemoveFirst(self)

    def Remove(self, theIter: "BRep_ListIteratorOfListOfPointRepresentation") -> "void":
        return _BRep.BRep_ListOfPointRepresentation_Remove(self, theIter)

    def InsertBefore(self, *args) -> "void":
        return _BRep.BRep_ListOfPointRepresentation_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _BRep.BRep_ListOfPointRepresentation_InsertAfter(self, *args)

    def Reverse(self) -> "void":
        return _BRep.BRep_ListOfPointRepresentation_Reverse(self)
    __swig_destroy__ = _BRep.delete_BRep_ListOfPointRepresentation

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


# Register BRep_ListOfPointRepresentation in _BRep:
_BRep.BRep_ListOfPointRepresentation_swigregister(BRep_ListOfPointRepresentation)

class BRep_Builder(OCC.Core.TopoDS.TopoDS_Builder):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def Continuity(self, *args) -> "void":
        r"""
        Sets the geometric continuity on the edge.

        Parameters
        ----------
        E: TopoDS_Edge
        F1: TopoDS_Face
        F2: TopoDS_Face
        C: GeomAbs_Shape

        Returns
        -------
        None
        Sets the geometric continuity on the edge.

        Parameters
        ----------
        E: TopoDS_Edge
        S1: Geom_Surface
        S2: Geom_Surface
        L1: TopLoc_Location
        L2: TopLoc_Location
        C: GeomAbs_Shape

        Returns
        -------
        None

        """
        return _BRep.BRep_Builder_Continuity(self, *args)

    def Degenerated(self, *args) -> "void":
        r"""
        Sets the degenerated flag for the edge <e>.

        Parameters
        ----------
        E: TopoDS_Edge
        D: bool

        Returns
        -------
        None

        """
        return _BRep.BRep_Builder_Degenerated(self, *args)

    def MakeEdge(self, *args) -> "void":
        r"""
        Makes an undefined edge (no geometry).

        Parameters
        ----------
        E: TopoDS_Edge

        Returns
        -------
        None
        Makes an edge with a curve.

        Parameters
        ----------
        E: TopoDS_Edge
        C: Geom_Curve
        Tol: float

        Returns
        -------
        None
        Makes an edge with a curve and a location.

        Parameters
        ----------
        E: TopoDS_Edge
        C: Geom_Curve
        L: TopLoc_Location
        Tol: float

        Returns
        -------
        None
        Makes an edge with a polygon 3d.

        Parameters
        ----------
        E: TopoDS_Edge
        P: Poly_Polygon3D

        Returns
        -------
        None
        Makes an edge polygon on triangulation.

        Parameters
        ----------
        E: TopoDS_Edge
        N: Poly_PolygonOnTriangulation
        T: Poly_Triangulation

        Returns
        -------
        None
        Makes an edge polygon on triangulation.

        Parameters
        ----------
        E: TopoDS_Edge
        N: Poly_PolygonOnTriangulation
        T: Poly_Triangulation
        L: TopLoc_Location

        Returns
        -------
        None

        """
        return _BRep.BRep_Builder_MakeEdge(self, *args)

    def MakeFace(self, *args) -> "void":
        r"""
        Makes an undefined face.

        Parameters
        ----------
        F: TopoDS_Face

        Returns
        -------
        None
        Makes a face with a surface.

        Parameters
        ----------
        F: TopoDS_Face
        S: Geom_Surface
        Tol: float

        Returns
        -------
        None
        Makes a face with a surface and a location.

        Parameters
        ----------
        F: TopoDS_Face
        S: Geom_Surface
        L: TopLoc_Location
        Tol: float

        Returns
        -------
        None
        Makes a face with a triangulation. the triangulation is in the same reference system than the tface.

        Parameters
        ----------
        F: TopoDS_Face
        T: Poly_Triangulation

        Returns
        -------
        None

        """
        return _BRep.BRep_Builder_MakeFace(self, *args)

    def MakeVertex(self, *args) -> "void":
        r"""
        Makes an udefined vertex without geometry.

        Parameters
        ----------
        V: TopoDS_Vertex

        Returns
        -------
        None
        Makes a vertex from a 3d point.

        Parameters
        ----------
        V: TopoDS_Vertex
        P: gp_Pnt
        Tol: float

        Returns
        -------
        None

        """
        return _BRep.BRep_Builder_MakeVertex(self, *args)

    def NaturalRestriction(self, *args) -> "void":
        r"""
        Sets the naturalrestriction flag of the face.

        Parameters
        ----------
        F: TopoDS_Face
        N: bool

        Returns
        -------
        None

        """
        return _BRep.BRep_Builder_NaturalRestriction(self, *args)

    def Range(self, *args) -> "void":
        r"""
        Sets the range of the 3d curve if only3d=true, otherwise sets the range to all the representations.

        Parameters
        ----------
        E: TopoDS_Edge
        First: float
        Last: float
        Only3d: bool,optional
        	default value is Standard_False

        Returns
        -------
        None
        Sets the range of the edge on the pcurve on the surface.

        Parameters
        ----------
        E: TopoDS_Edge
        S: Geom_Surface
        L: TopLoc_Location
        First: float
        Last: float

        Returns
        -------
        None
        Sets the range of the edge on the pcurve on the face.

        Parameters
        ----------
        E: TopoDS_Edge
        F: TopoDS_Face
        First: float
        Last: float

        Returns
        -------
        None

        """
        return _BRep.BRep_Builder_Range(self, *args)

    def SameParameter(self, *args) -> "void":
        r"""
        Sets the same parameter flag for the edge <e>.

        Parameters
        ----------
        E: TopoDS_Edge
        S: bool

        Returns
        -------
        None

        """
        return _BRep.BRep_Builder_SameParameter(self, *args)

    def SameRange(self, *args) -> "void":
        r"""
        Sets the same range flag for the edge <e>.

        Parameters
        ----------
        E: TopoDS_Edge
        S: bool

        Returns
        -------
        None

        """
        return _BRep.BRep_Builder_SameRange(self, *args)

    def Transfert(self, *args) -> "void":
        r"""
        Add to <eout> the geometric representations of <ein>.

        Parameters
        ----------
        Ein: TopoDS_Edge
        Eout: TopoDS_Edge

        Returns
        -------
        None
        Transfert the parameters of vin on ein as the parameter of vout on eout.

        Parameters
        ----------
        Ein: TopoDS_Edge
        Eout: TopoDS_Edge
        Vin: TopoDS_Vertex
        Vout: TopoDS_Vertex

        Returns
        -------
        None

        """
        return _BRep.BRep_Builder_Transfert(self, *args)

    def UpdateEdge(self, *args) -> "void":
        r"""
        Sets a 3d curve for the edge. if <c> is a null handle, remove any existing 3d curve.

        Parameters
        ----------
        E: TopoDS_Edge
        C: Geom_Curve
        Tol: float

        Returns
        -------
        None
        Sets a 3d curve for the edge. if <c> is a null handle, remove any existing 3d curve.

        Parameters
        ----------
        E: TopoDS_Edge
        C: Geom_Curve
        L: TopLoc_Location
        Tol: float

        Returns
        -------
        None
        Sets a pcurve for the edge on the face. if <c> is a null handle, remove any existing pcurve.

        Parameters
        ----------
        E: TopoDS_Edge
        C: Geom2d_Curve
        F: TopoDS_Face
        Tol: float

        Returns
        -------
        None
        Sets pcurves for the edge on the closed face. if <c1> or <c2> is a null handle, remove any existing pcurve.

        Parameters
        ----------
        E: TopoDS_Edge
        C1: Geom2d_Curve
        C2: Geom2d_Curve
        F: TopoDS_Face
        Tol: float

        Returns
        -------
        None
        Sets a pcurve for the edge on the face. if <c> is a null handle, remove any existing pcurve.

        Parameters
        ----------
        E: TopoDS_Edge
        C: Geom2d_Curve
        S: Geom_Surface
        L: TopLoc_Location
        Tol: float

        Returns
        -------
        None
        Sets a pcurve for the edge on the face. if <c> is a null handle, remove any existing pcurve. sets uv bounds for curve repsentation.

        Parameters
        ----------
        E: TopoDS_Edge
        C: Geom2d_Curve
        S: Geom_Surface
        L: TopLoc_Location
        Tol: float
        Pf: gp_Pnt2d
        Pl: gp_Pnt2d

        Returns
        -------
        None
        Sets pcurves for the edge on the closed surface. <c1> or <c2> is a null handle, remove any existing pcurve.

        Parameters
        ----------
        E: TopoDS_Edge
        C1: Geom2d_Curve
        C2: Geom2d_Curve
        S: Geom_Surface
        L: TopLoc_Location
        Tol: float

        Returns
        -------
        None
        Sets pcurves for the edge on the closed surface. <c1> or <c2> is a null handle, remove any existing pcurve. sets uv bounds for curve repsentation.

        Parameters
        ----------
        E: TopoDS_Edge
        C1: Geom2d_Curve
        C2: Geom2d_Curve
        S: Geom_Surface
        L: TopLoc_Location
        Tol: float
        Pf: gp_Pnt2d
        Pl: gp_Pnt2d

        Returns
        -------
        None
        Changes an edge 3d polygon. a null polygon removes the 3d polygon.

        Parameters
        ----------
        E: TopoDS_Edge
        P: Poly_Polygon3D

        Returns
        -------
        None
        Changes an edge 3d polygon. a null polygon removes the 3d polygon.

        Parameters
        ----------
        E: TopoDS_Edge
        P: Poly_Polygon3D
        L: TopLoc_Location

        Returns
        -------
        None
        Changes an edge polygon on triangulation.

        Parameters
        ----------
        E: TopoDS_Edge
        N: Poly_PolygonOnTriangulation
        T: Poly_Triangulation

        Returns
        -------
        None
        Changes an edge polygon on triangulation.

        Parameters
        ----------
        E: TopoDS_Edge
        N: Poly_PolygonOnTriangulation
        T: Poly_Triangulation
        L: TopLoc_Location

        Returns
        -------
        None
        Changes an edge polygon on triangulation.

        Parameters
        ----------
        E: TopoDS_Edge
        N1: Poly_PolygonOnTriangulation
        N2: Poly_PolygonOnTriangulation
        T: Poly_Triangulation

        Returns
        -------
        None
        Changes an edge polygon on triangulation.

        Parameters
        ----------
        E: TopoDS_Edge
        N1: Poly_PolygonOnTriangulation
        N2: Poly_PolygonOnTriangulation
        T: Poly_Triangulation
        L: TopLoc_Location

        Returns
        -------
        None
        Changes edge polygon on a face.

        Parameters
        ----------
        E: TopoDS_Edge
        P: Poly_Polygon2D
        S: TopoDS_Face

        Returns
        -------
        None
        Changes edge polygon on a face.

        Parameters
        ----------
        E: TopoDS_Edge
        P: Poly_Polygon2D
        S: Geom_Surface
        T: TopLoc_Location

        Returns
        -------
        None
        Changes edge polygons on a face. //! a null polygon removes the 2d polygon.

        Parameters
        ----------
        E: TopoDS_Edge
        P1: Poly_Polygon2D
        P2: Poly_Polygon2D
        S: TopoDS_Face

        Returns
        -------
        None
        Changes edge polygons on a face. //! a null polygon removes the 2d polygon.

        Parameters
        ----------
        E: TopoDS_Edge
        P1: Poly_Polygon2D
        P2: Poly_Polygon2D
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        None
        Updates the edge tolerance.

        Parameters
        ----------
        E: TopoDS_Edge
        Tol: float

        Returns
        -------
        None

        """
        return _BRep.BRep_Builder_UpdateEdge(self, *args)

    def UpdateFace(self, *args) -> "void":
        r"""
        Updates the face f using the tolerance value tol, surface s and location location.

        Parameters
        ----------
        F: TopoDS_Face
        S: Geom_Surface
        L: TopLoc_Location
        Tol: float

        Returns
        -------
        None
        Changes a face triangulation. //! a null triangulation removes the triangulation.

        Parameters
        ----------
        F: TopoDS_Face
        T: Poly_Triangulation

        Returns
        -------
        None
        Updates the face tolerance.

        Parameters
        ----------
        F: TopoDS_Face
        Tol: float

        Returns
        -------
        None

        """
        return _BRep.BRep_Builder_UpdateFace(self, *args)

    def UpdateVertex(self, *args) -> "void":
        r"""
        Sets a 3d point on the vertex.

        Parameters
        ----------
        V: TopoDS_Vertex
        P: gp_Pnt
        Tol: float

        Returns
        -------
        None
        Sets the parameter for the vertex on the edge curves.

        Parameters
        ----------
        V: TopoDS_Vertex
        P: float
        E: TopoDS_Edge
        Tol: float

        Returns
        -------
        None
        Sets the parameter for the vertex on the edge pcurve on the face.

        Parameters
        ----------
        V: TopoDS_Vertex
        P: float
        E: TopoDS_Edge
        F: TopoDS_Face
        Tol: float

        Returns
        -------
        None
        Sets the parameter for the vertex on the edge pcurve on the surface.

        Parameters
        ----------
        V: TopoDS_Vertex
        P: float
        E: TopoDS_Edge
        S: Geom_Surface
        L: TopLoc_Location
        Tol: float

        Returns
        -------
        None
        Sets the parameters for the vertex on the face.

        Parameters
        ----------
        Ve: TopoDS_Vertex
        U: float
        V: float
        F: TopoDS_Face
        Tol: float

        Returns
        -------
        None
        Updates the vertex tolerance.

        Parameters
        ----------
        V: TopoDS_Vertex
        Tol: float

        Returns
        -------
        None

        """
        return _BRep.BRep_Builder_UpdateVertex(self, *args)

    __repr__ = _dumps_object


    def __init__(self):
        _BRep.BRep_Builder_swiginit(self, _BRep.new_BRep_Builder())
    __swig_destroy__ = _BRep.delete_BRep_Builder

# Register BRep_Builder in _BRep:
_BRep.BRep_Builder_swigregister(BRep_Builder)

class BRep_CurveRepresentation(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 Continuity(self, *args) -> "void":
        r"""
        No available documentation.

        Returns
        -------
        GeomAbs_Shape
        No available documentation.

        Parameters
        ----------
        C: GeomAbs_Shape

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveRepresentation_Continuity(self, *args)

    def Copy(self, *args) -> "opencascade::handle< BRep_CurveRepresentation >":
        r"""
        Return a copy of this representation.

        Returns
        -------
        opencascade::handle<BRep_CurveRepresentation>

        """
        return _BRep.BRep_CurveRepresentation_Copy(self, *args)

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

        Returns
        -------
        opencascade::handle<Geom_Curve>
        No available documentation.

        Parameters
        ----------
        C: Geom_Curve

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveRepresentation_Curve3D(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(BRep_CurveRepresentation self, int depth=-1) -> std::string"""
        return _BRep.BRep_CurveRepresentation_DumpJsonToString(self, depth)

    def IsCurve3D(self, *args) -> "Standard_Boolean":
        r"""
        A 3d curve representation.

        Returns
        -------
        bool

        """
        return _BRep.BRep_CurveRepresentation_IsCurve3D(self, *args)

    def IsCurveOnClosedSurface(self, *args) -> "Standard_Boolean":
        r"""
        A curve with two parametric curves on the same surface.

        Returns
        -------
        bool

        """
        return _BRep.BRep_CurveRepresentation_IsCurveOnClosedSurface(self, *args)

    def IsCurveOnSurface(self, *args) -> "Standard_Boolean":
        r"""
        A curve in the parametric space of a surface.

        Returns
        -------
        bool
        Is it a curve in the parametric space of <s> with location <l>.

        Parameters
        ----------
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        bool

        """
        return _BRep.BRep_CurveRepresentation_IsCurveOnSurface(self, *args)

    def IsPolygon3D(self, *args) -> "Standard_Boolean":
        r"""
        A 3d polygon representation.

        Returns
        -------
        bool

        """
        return _BRep.BRep_CurveRepresentation_IsPolygon3D(self, *args)

    def IsPolygonOnClosedSurface(self, *args) -> "Standard_Boolean":
        r"""
        Two 2d polygon representations in the parametric space of a surface.

        Returns
        -------
        bool

        """
        return _BRep.BRep_CurveRepresentation_IsPolygonOnClosedSurface(self, *args)

    def IsPolygonOnClosedTriangulation(self, *args) -> "Standard_Boolean":
        r"""
        A representation by two arrays of nodes on a triangulation.

        Returns
        -------
        bool

        """
        return _BRep.BRep_CurveRepresentation_IsPolygonOnClosedTriangulation(self, *args)

    def IsPolygonOnSurface(self, *args) -> "Standard_Boolean":
        r"""
        A polygon in the parametric space of a surface.

        Returns
        -------
        bool
        Is it a polygon in the parametric space of <s> with location <l>.

        Parameters
        ----------
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        bool

        """
        return _BRep.BRep_CurveRepresentation_IsPolygonOnSurface(self, *args)

    def IsPolygonOnTriangulation(self, *args) -> "Standard_Boolean":
        r"""
        A representation by an array of nodes on a triangulation.

        Returns
        -------
        bool
        Is it a polygon in the definition of <t> with location <l>.

        Parameters
        ----------
        T: Poly_Triangulation
        L: TopLoc_Location

        Returns
        -------
        bool

        """
        return _BRep.BRep_CurveRepresentation_IsPolygonOnTriangulation(self, *args)

    def IsRegularity(self, *args) -> "Standard_Boolean":
        r"""
        A continuity between two surfaces.

        Returns
        -------
        bool
        Is it a regularity between <s1> and <s2> with location <l1> and <l2>.

        Parameters
        ----------
        S1: Geom_Surface
        S2: Geom_Surface
        L1: TopLoc_Location
        L2: TopLoc_Location

        Returns
        -------
        bool

        """
        return _BRep.BRep_CurveRepresentation_IsRegularity(self, *args)

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

        Returns
        -------
        TopLoc_Location
        No available documentation.

        Parameters
        ----------
        L: TopLoc_Location

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveRepresentation_Location(self, *args)

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

        Returns
        -------
        TopLoc_Location

        """
        return _BRep.BRep_CurveRepresentation_Location2(self, *args)

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

        Returns
        -------
        opencascade::handle<Geom2d_Curve>
        No available documentation.

        Parameters
        ----------
        C: Geom2d_Curve

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveRepresentation_PCurve(self, *args)

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

        Returns
        -------
        opencascade::handle<Geom2d_Curve>
        No available documentation.

        Parameters
        ----------
        C: Geom2d_Curve

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveRepresentation_PCurve2(self, *args)

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

        Returns
        -------
        opencascade::handle<Poly_Polygon2D>
        No available documentation.

        Parameters
        ----------
        P: Poly_Polygon2D

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveRepresentation_Polygon(self, *args)

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

        Returns
        -------
        opencascade::handle<Poly_Polygon2D>
        No available documentation.

        Parameters
        ----------
        P: Poly_Polygon2D

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveRepresentation_Polygon2(self, *args)

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

        Returns
        -------
        opencascade::handle<Poly_Polygon3D>
        No available documentation.

        Parameters
        ----------
        P: Poly_Polygon3D

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveRepresentation_Polygon3D(self, *args)

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

        Returns
        -------
        opencascade::handle<Poly_PolygonOnTriangulation>
        No available documentation.

        Parameters
        ----------
        P: Poly_PolygonOnTriangulation

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveRepresentation_PolygonOnTriangulation(self, *args)

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

        Returns
        -------
        opencascade::handle<Poly_PolygonOnTriangulation>
        No available documentation.

        Parameters
        ----------
        P2: Poly_PolygonOnTriangulation

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveRepresentation_PolygonOnTriangulation2(self, *args)

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

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

        """
        return _BRep.BRep_CurveRepresentation_Surface(self, *args)

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

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

        """
        return _BRep.BRep_CurveRepresentation_Surface2(self, *args)

    def Triangulation(self, *args) -> "opencascade::handle< Poly_Triangulation > const &":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Poly_Triangulation>

        """
        return _BRep.BRep_CurveRepresentation_Triangulation(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_CurveRepresentation

# Register BRep_CurveRepresentation in _BRep:
_BRep.BRep_CurveRepresentation_swigregister(BRep_CurveRepresentation)

class BRep_PointRepresentation(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 Curve(self, *args) -> "void":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<Geom_Curve>
        No available documentation.

        Parameters
        ----------
        C: Geom_Curve

        Returns
        -------
        None

        """
        return _BRep.BRep_PointRepresentation_Curve(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(BRep_PointRepresentation self, int depth=-1) -> std::string"""
        return _BRep.BRep_PointRepresentation_DumpJsonToString(self, depth)

    def IsPointOnCurve(self, *args) -> "Standard_Boolean":
        r"""
        A point on a 3d curve.

        Returns
        -------
        bool
        A point on the curve <c>.

        Parameters
        ----------
        C: Geom_Curve
        L: TopLoc_Location

        Returns
        -------
        bool

        """
        return _BRep.BRep_PointRepresentation_IsPointOnCurve(self, *args)

    def IsPointOnCurveOnSurface(self, *args) -> "Standard_Boolean":
        r"""
        A point on a 2d curve on a surface.

        Returns
        -------
        bool
        A point on the 2d curve <pc> on the surface <s>.

        Parameters
        ----------
        PC: Geom2d_Curve
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        bool

        """
        return _BRep.BRep_PointRepresentation_IsPointOnCurveOnSurface(self, *args)

    def IsPointOnSurface(self, *args) -> "Standard_Boolean":
        r"""
        A point on a surface.

        Returns
        -------
        bool
        A point on the surface <s>.

        Parameters
        ----------
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        bool

        """
        return _BRep.BRep_PointRepresentation_IsPointOnSurface(self, *args)

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

        Returns
        -------
        TopLoc_Location
        No available documentation.

        Parameters
        ----------
        L: TopLoc_Location

        Returns
        -------
        None

        """
        return _BRep.BRep_PointRepresentation_Location(self, *args)

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

        Returns
        -------
        opencascade::handle<Geom2d_Curve>
        No available documentation.

        Parameters
        ----------
        C: Geom2d_Curve

        Returns
        -------
        None

        """
        return _BRep.BRep_PointRepresentation_PCurve(self, *args)

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

        Returns
        -------
        float
        No available documentation.

        Parameters
        ----------
        P: float

        Returns
        -------
        None

        """
        return _BRep.BRep_PointRepresentation_Parameter(self, *args)

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

        Returns
        -------
        float
        No available documentation.

        Parameters
        ----------
        P: float

        Returns
        -------
        None

        """
        return _BRep.BRep_PointRepresentation_Parameter2(self, *args)

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

        Returns
        -------
        opencascade::handle<Geom_Surface>
        No available documentation.

        Parameters
        ----------
        S: Geom_Surface

        Returns
        -------
        None

        """
        return _BRep.BRep_PointRepresentation_Surface(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_PointRepresentation

# Register BRep_PointRepresentation in _BRep:
_BRep.BRep_PointRepresentation_swigregister(BRep_PointRepresentation)

class BRep_TEdge(OCC.Core.TopoDS.TopoDS_TEdge):
    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"""
        Creates an empty tedge.

        Returns
        -------
        None

        """
        _BRep.BRep_TEdge_swiginit(self, _BRep.new_BRep_TEdge(*args))

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

        Returns
        -------
        BRep_ListOfCurveRepresentation

        """
        return _BRep.BRep_TEdge_ChangeCurves(self, *args)

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

        Returns
        -------
        BRep_ListOfCurveRepresentation

        """
        return _BRep.BRep_TEdge_Curves(self, *args)

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

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        S: bool

        Returns
        -------
        None

        """
        return _BRep.BRep_TEdge_Degenerated(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(BRep_TEdge self, int depth=-1) -> std::string"""
        return _BRep.BRep_TEdge_DumpJsonToString(self, depth)

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

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        S: bool

        Returns
        -------
        None

        """
        return _BRep.BRep_TEdge_SameParameter(self, *args)

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

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        S: bool

        Returns
        -------
        None

        """
        return _BRep.BRep_TEdge_SameRange(self, *args)

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

        Returns
        -------
        float
        No available documentation.

        Parameters
        ----------
        T: float

        Returns
        -------
        None

        """
        return _BRep.BRep_TEdge_Tolerance(self, *args)

    def UpdateTolerance(self, *args) -> "void":
        r"""
        Sets the tolerance to the max of <t> and the current tolerance.

        Parameters
        ----------
        T: float

        Returns
        -------
        None

        """
        return _BRep.BRep_TEdge_UpdateTolerance(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_TEdge

# Register BRep_TEdge in _BRep:
_BRep.BRep_TEdge_swigregister(BRep_TEdge)

class BRep_TFace(OCC.Core.TopoDS.TopoDS_TFace):
    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"""
        Creates an empty tface.

        Returns
        -------
        None

        """
        _BRep.BRep_TFace_swiginit(self, _BRep.new_BRep_TFace(*args))

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(BRep_TFace self, int depth=-1) -> std::string"""
        return _BRep.BRep_TFace_DumpJsonToString(self, depth)

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

        Returns
        -------
        TopLoc_Location
        No available documentation.

        Parameters
        ----------
        L: TopLoc_Location

        Returns
        -------
        None

        """
        return _BRep.BRep_TFace_Location(self, *args)

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

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        N: bool

        Returns
        -------
        None

        """
        return _BRep.BRep_TFace_NaturalRestriction(self, *args)

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

        Returns
        -------
        opencascade::handle<Geom_Surface>
        No available documentation.

        Parameters
        ----------
        S: Geom_Surface

        Returns
        -------
        None

        """
        return _BRep.BRep_TFace_Surface(self, *args)

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

        Returns
        -------
        float
        No available documentation.

        Parameters
        ----------
        T: float

        Returns
        -------
        None

        """
        return _BRep.BRep_TFace_Tolerance(self, *args)

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

        Returns
        -------
        opencascade::handle<Poly_Triangulation>
        No available documentation.

        Parameters
        ----------
        T: Poly_Triangulation

        Returns
        -------
        None

        """
        return _BRep.BRep_TFace_Triangulation(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_TFace

# Register BRep_TFace in _BRep:
_BRep.BRep_TFace_swigregister(BRep_TFace)

class BRep_TVertex(OCC.Core.TopoDS.TopoDS_TVertex):
    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

        """
        _BRep.BRep_TVertex_swiginit(self, _BRep.new_BRep_TVertex(*args))

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

        Returns
        -------
        BRep_ListOfPointRepresentation

        """
        return _BRep.BRep_TVertex_ChangePoints(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(BRep_TVertex self, int depth=-1) -> std::string"""
        return _BRep.BRep_TVertex_DumpJsonToString(self, depth)

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

        Returns
        -------
        gp_Pnt
        No available documentation.

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

        Returns
        -------
        None

        """
        return _BRep.BRep_TVertex_Pnt(self, *args)

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

        Returns
        -------
        BRep_ListOfPointRepresentation

        """
        return _BRep.BRep_TVertex_Points(self, *args)

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

        Returns
        -------
        float
        No available documentation.

        Parameters
        ----------
        T: float

        Returns
        -------
        None

        """
        return _BRep.BRep_TVertex_Tolerance(self, *args)

    def UpdateTolerance(self, *args) -> "void":
        r"""
        Sets the tolerance to the max of <t> and the current tolerance.

        Parameters
        ----------
        T: float

        Returns
        -------
        None

        """
        return _BRep.BRep_TVertex_UpdateTolerance(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_TVertex

# Register BRep_TVertex in _BRep:
_BRep.BRep_TVertex_swigregister(BRep_TVertex)

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

    @staticmethod
    def Continuity(*args) -> "GeomAbs_Shape":
        r"""
        Returns the continuity.

        Parameters
        ----------
        E: TopoDS_Edge
        F1: TopoDS_Face
        F2: TopoDS_Face

        Returns
        -------
        GeomAbs_Shape
        Returns the continuity.

        Parameters
        ----------
        E: TopoDS_Edge
        S1: Geom_Surface
        S2: Geom_Surface
        L1: TopLoc_Location
        L2: TopLoc_Location

        Returns
        -------
        GeomAbs_Shape

        """
        return _BRep.BRep_Tool_Continuity(*args)

    @staticmethod
    def Curve(*args) -> "Standard_Real &, Standard_Real &":
        r"""
        Returns the 3d curve of the edge. may be a null handle. returns in <l> the location for the curve. in <first> and <last> the parameter range.

        Parameters
        ----------
        E: TopoDS_Edge
        L: TopLoc_Location

        Returns
        -------
        First: float
        Last: float
        Returns the 3d curve of the edge. may be a null handle. in <first> and <last> the parameter range. it can be a copy if there is a location.

        Parameters
        ----------
        E: TopoDS_Edge

        Returns
        -------
        First: float
        Last: float

        """
        return _BRep.BRep_Tool_Curve(*args)

    @staticmethod
    def CurveOnPlane(*args) -> "Standard_Real &, Standard_Real &":
        r"""
        For the planar surface builds the 2d curve for the edge by projection of the edge on plane. returns a null handle if the surface is not planar or the projection failed.

        Parameters
        ----------
        E: TopoDS_Edge
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        First: float
        Last: float

        """
        return _BRep.BRep_Tool_CurveOnPlane(*args)

    @staticmethod
    def CurveOnSurface(*args) -> "Standard_Real &, Standard_Real &":
        r"""
        Returns the curve associated to the edge in the parametric space of the face. returns a null handle if this curve does not exist. returns in <first> and <last> the parameter range. if the surface is a plane the curve can be not stored but created a new each time. the flag pointed by <theisstored> serves to indicate storage status. it is valued if the pointer is non-null.

        Parameters
        ----------
        E: TopoDS_Edge
        F: TopoDS_Face
        theIsStored: bool *,optional
        	default value is NULL

        Returns
        -------
        First: float
        Last: float
        Returns the curve associated to the edge in the parametric space of the surface. returns a null handle if this curve does not exist. returns in <first> and <last> the parameter range. if the surface is a plane the curve can be not stored but created a new each time. the flag pointed by <theisstored> serves to indicate storage status. it is valued if the pointer is non-null.

        Parameters
        ----------
        E: TopoDS_Edge
        S: Geom_Surface
        L: TopLoc_Location
        theIsStored: bool *,optional
        	default value is NULL

        Returns
        -------
        First: float
        Last: float
        Returns in <c>, <s>, <l> a 2d curve, a surface and a location for the edge <e>. <c> and <s> are null if the edge has no curve on surface. returns in <first> and <last> the parameter range.

        Parameters
        ----------
        E: TopoDS_Edge
        C: Geom2d_Curve
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        First: float
        Last: float
        Returns in <c>, <s>, <l> the 2d curve, the surface and the location for the edge <e> of rank <index>. <c> and <s> are null if the index is out of range. returns in <first> and <last> the parameter range.

        Parameters
        ----------
        E: TopoDS_Edge
        C: Geom2d_Curve
        S: Geom_Surface
        L: TopLoc_Location
        Index: int

        Returns
        -------
        First: float
        Last: float

        """
        return _BRep.BRep_Tool_CurveOnSurface(*args)

    @staticmethod
    def Degenerated(*args) -> "Standard_Boolean":
        r"""
        Returns true if the edge is degenerated.

        Parameters
        ----------
        E: TopoDS_Edge

        Returns
        -------
        bool

        """
        return _BRep.BRep_Tool_Degenerated(*args)

    @staticmethod
    def HasContinuity(*args) -> "Standard_Boolean":
        r"""
        Returns true if the edge is on the surfaces of the two faces.

        Parameters
        ----------
        E: TopoDS_Edge
        F1: TopoDS_Face
        F2: TopoDS_Face

        Returns
        -------
        bool
        Returns true if the edge is on the surfaces.

        Parameters
        ----------
        E: TopoDS_Edge
        S1: Geom_Surface
        S2: Geom_Surface
        L1: TopLoc_Location
        L2: TopLoc_Location

        Returns
        -------
        bool
        Returns true if the edge has regularity on some two surfaces.

        Parameters
        ----------
        E: TopoDS_Edge

        Returns
        -------
        bool

        """
        return _BRep.BRep_Tool_HasContinuity(*args)

    @staticmethod
    def IsClosed(*args) -> "Standard_Boolean":
        r"""
        If s is shell, returns true if it has no free boundaries (edges). if s is wire, returns true if it has no free ends (vertices). (internal and external sub-shepes are ignored in these checks) if s is edge, returns true if its vertices are the same. for other shape types returns s.closed().

        Parameters
        ----------
        S: TopoDS_Shape

        Returns
        -------
        bool
        Returns true if <e> has two pcurves in the parametric space of <f>. i.e. <f> is on a closed surface and <e> is on the closing curve.

        Parameters
        ----------
        E: TopoDS_Edge
        F: TopoDS_Face

        Returns
        -------
        bool
        Returns true if <e> has two pcurves in the parametric space of <s>. i.e. <s> is a closed surface and <e> is on the closing curve.

        Parameters
        ----------
        E: TopoDS_Edge
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        bool
        Returns true if <e> has two arrays of indices in the triangulation <t>.

        Parameters
        ----------
        E: TopoDS_Edge
        T: Poly_Triangulation
        L: TopLoc_Location

        Returns
        -------
        bool

        """
        return _BRep.BRep_Tool_IsClosed(*args)

    @staticmethod
    def IsGeometric(*args) -> "Standard_Boolean":
        r"""
        Returns true if <f> has a surface, false otherwise.

        Parameters
        ----------
        F: TopoDS_Face

        Returns
        -------
        bool
        Returns true if <e> is a 3d curve or a curve on surface.

        Parameters
        ----------
        E: TopoDS_Edge

        Returns
        -------
        bool

        """
        return _BRep.BRep_Tool_IsGeometric(*args)

    @staticmethod
    def MaxContinuity(*args) -> "GeomAbs_Shape":
        r"""
        Returns the max continuity of edge between some surfaces or geomabs_c0 if there no such surfaces.

        Parameters
        ----------
        theEdge: TopoDS_Edge

        Returns
        -------
        GeomAbs_Shape

        """
        return _BRep.BRep_Tool_MaxContinuity(*args)

    @staticmethod
    def MaxTolerance(*args) -> "Standard_Real":
        r"""
        Returns the maximum tolerance of input shape subshapes.

        Parameters
        ----------
        theShape: TopoDS_Shape
        theSubShape: TopAbs_ShapeEnum

        Returns
        -------
        float

        """
        return _BRep.BRep_Tool_MaxTolerance(*args)

    @staticmethod
    def NaturalRestriction(*args) -> "Standard_Boolean":
        r"""
        Returns the naturalrestriction flag of the face.

        Parameters
        ----------
        F: TopoDS_Face

        Returns
        -------
        bool

        """
        return _BRep.BRep_Tool_NaturalRestriction(*args)

    @staticmethod
    def Parameter(*args) -> "Standard_Real":
        r"""
        Finds the parameter of <thev> on <thee>. @param thev [in] input vertex @param thee [in] input edge @param theparam [out] calculated parameter on the curve returns true if done.

        Parameters
        ----------
        theV: TopoDS_Vertex
        theE: TopoDS_Edge

        Returns
        -------
        theParam: float
        Returns the parameter of <v> on <e>. throws standard_nosuchobject if no parameter on edge.

        Parameters
        ----------
        V: TopoDS_Vertex
        E: TopoDS_Edge

        Returns
        -------
        float
        Returns the parameters of the vertex on the pcurve of the edge on the face.

        Parameters
        ----------
        V: TopoDS_Vertex
        E: TopoDS_Edge
        F: TopoDS_Face

        Returns
        -------
        float
        Returns the parameters of the vertex on the pcurve of the edge on the surface.

        Parameters
        ----------
        V: TopoDS_Vertex
        E: TopoDS_Edge
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        float

        """
        return _BRep.BRep_Tool_Parameter(*args)

    @staticmethod
    def Parameters(*args) -> "gp_Pnt2d":
        r"""
        Returns the parameters of the vertex on the face.

        Parameters
        ----------
        V: TopoDS_Vertex
        F: TopoDS_Face

        Returns
        -------
        gp_Pnt2d

        """
        return _BRep.BRep_Tool_Parameters(*args)

    @staticmethod
    def Pnt(*args) -> "gp_Pnt":
        r"""
        Returns the 3d point.

        Parameters
        ----------
        V: TopoDS_Vertex

        Returns
        -------
        gp_Pnt

        """
        return _BRep.BRep_Tool_Pnt(*args)

    @staticmethod
    def Polygon3D(*args) -> "opencascade::handle< Poly_Polygon3D > const &":
        r"""
        Returns the 3d polygon of the edge. may be a null handle. returns in <l> the location for the polygon.

        Parameters
        ----------
        E: TopoDS_Edge
        L: TopLoc_Location

        Returns
        -------
        opencascade::handle<Poly_Polygon3D>

        """
        return _BRep.BRep_Tool_Polygon3D(*args)

    @staticmethod
    def PolygonOnSurface(*args) -> "void":
        r"""
        Returns the polygon associated to the edge in the parametric space of the face. returns a null handle if this polygon does not exist.

        Parameters
        ----------
        E: TopoDS_Edge
        F: TopoDS_Face

        Returns
        -------
        opencascade::handle<Poly_Polygon2D>
        Returns the polygon associated to the edge in the parametric space of the surface. returns a null handle if this polygon does not exist.

        Parameters
        ----------
        E: TopoDS_Edge
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        opencascade::handle<Poly_Polygon2D>
        Returns in <c>, <s>, <l> a 2d curve, a surface and a location for the edge <e>. <c> and <s> are null if the edge has no polygon on surface.

        Parameters
        ----------
        E: TopoDS_Edge
        C: Poly_Polygon2D
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        None
        Returns in <c>, <s>, <l> the 2d curve, the surface and the location for the edge <e> of rank <index>. <c> and <s> are null if the index is out of range.

        Parameters
        ----------
        E: TopoDS_Edge
        C: Poly_Polygon2D
        S: Geom_Surface
        L: TopLoc_Location
        Index: int

        Returns
        -------
        None

        """
        return _BRep.BRep_Tool_PolygonOnSurface(*args)

    @staticmethod
    def PolygonOnTriangulation(*args) -> "void":
        r"""
        Returns the polygon associated to the edge in the parametric space of the face. returns a null handle if this polygon does not exist.

        Parameters
        ----------
        E: TopoDS_Edge
        T: Poly_Triangulation
        L: TopLoc_Location

        Returns
        -------
        opencascade::handle<Poly_PolygonOnTriangulation>
        Returns in <p>, <t>, <l> a polygon on triangulation, a triangulation and a location for the edge <e>. <p> and <t> are null if the edge has no polygon on triangulation.

        Parameters
        ----------
        E: TopoDS_Edge
        P: Poly_PolygonOnTriangulation
        T: Poly_Triangulation
        L: TopLoc_Location

        Returns
        -------
        None
        Returns in <p>, <t>, <l> a polygon on triangulation, a triangulation and a location for the edge <e> for the range index. <c> and <s> are null if the edge has no polygon on triangulation.

        Parameters
        ----------
        E: TopoDS_Edge
        P: Poly_PolygonOnTriangulation
        T: Poly_Triangulation
        L: TopLoc_Location
        Index: int

        Returns
        -------
        None

        """
        return _BRep.BRep_Tool_PolygonOnTriangulation(*args)

    @staticmethod
    def Range(*args) -> "Standard_Real &, Standard_Real &":
        r"""
        Gets the range of the 3d curve.

        Parameters
        ----------
        E: TopoDS_Edge

        Returns
        -------
        First: float
        Last: float
        Gets the range of the edge on the pcurve on the surface.

        Parameters
        ----------
        E: TopoDS_Edge
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        First: float
        Last: float
        Gets the range of the edge on the pcurve on the face.

        Parameters
        ----------
        E: TopoDS_Edge
        F: TopoDS_Face

        Returns
        -------
        First: float
        Last: float

        """
        return _BRep.BRep_Tool_Range(*args)

    @staticmethod
    def SameParameter(*args) -> "Standard_Boolean":
        r"""
        Returns the sameparameter flag for the edge.

        Parameters
        ----------
        E: TopoDS_Edge

        Returns
        -------
        bool

        """
        return _BRep.BRep_Tool_SameParameter(*args)

    @staticmethod
    def SameRange(*args) -> "Standard_Boolean":
        r"""
        Returns the samerange flag for the edge.

        Parameters
        ----------
        E: TopoDS_Edge

        Returns
        -------
        bool

        """
        return _BRep.BRep_Tool_SameRange(*args)

    @staticmethod
    def SetUVPoints(*args) -> "void":
        r"""
        Sets the uv locations of the extremities of the edge.

        Parameters
        ----------
        E: TopoDS_Edge
        S: Geom_Surface
        L: TopLoc_Location
        PFirst: gp_Pnt2d
        PLast: gp_Pnt2d

        Returns
        -------
        None
        Sets the uv locations of the extremities of the edge.

        Parameters
        ----------
        E: TopoDS_Edge
        F: TopoDS_Face
        PFirst: gp_Pnt2d
        PLast: gp_Pnt2d

        Returns
        -------
        None

        """
        return _BRep.BRep_Tool_SetUVPoints(*args)

    @staticmethod
    def Surface(*args) -> "opencascade::handle< Geom_Surface >":
        r"""
        Returns the geometric surface of the face. returns in <l> the location for the surface.

        Parameters
        ----------
        F: TopoDS_Face
        L: TopLoc_Location

        Returns
        -------
        opencascade::handle<Geom_Surface>
        Returns the geometric surface of the face. it can be a copy if there is a location.

        Parameters
        ----------
        F: TopoDS_Face

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

        """
        return _BRep.BRep_Tool_Surface(*args)

    @staticmethod
    def Tolerance(*args) -> "Standard_Real":
        r"""
        Returns the tolerance of the face.

        Parameters
        ----------
        F: TopoDS_Face

        Returns
        -------
        float
        Returns the tolerance for <e>.

        Parameters
        ----------
        E: TopoDS_Edge

        Returns
        -------
        float
        Returns the tolerance.

        Parameters
        ----------
        V: TopoDS_Vertex

        Returns
        -------
        float

        """
        return _BRep.BRep_Tool_Tolerance(*args)

    @staticmethod
    def Triangulation(*args) -> "opencascade::handle< Poly_Triangulation > const &":
        r"""
        Returns the triangulation of the face. it is a null handle if there is no triangulation.

        Parameters
        ----------
        F: TopoDS_Face
        L: TopLoc_Location

        Returns
        -------
        opencascade::handle<Poly_Triangulation>

        """
        return _BRep.BRep_Tool_Triangulation(*args)

    @staticmethod
    def UVPoints(*args) -> "void":
        r"""
        Gets the uv locations of the extremities of the edge.

        Parameters
        ----------
        E: TopoDS_Edge
        S: Geom_Surface
        L: TopLoc_Location
        PFirst: gp_Pnt2d
        PLast: gp_Pnt2d

        Returns
        -------
        None
        Gets the uv locations of the extremities of the edge.

        Parameters
        ----------
        E: TopoDS_Edge
        F: TopoDS_Face
        PFirst: gp_Pnt2d
        PLast: gp_Pnt2d

        Returns
        -------
        None

        """
        return _BRep.BRep_Tool_UVPoints(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _BRep.BRep_Tool_swiginit(self, _BRep.new_BRep_Tool())
    __swig_destroy__ = _BRep.delete_BRep_Tool

# Register BRep_Tool in _BRep:
_BRep.BRep_Tool_swigregister(BRep_Tool)

def BRep_Tool_Continuity(*args) -> "GeomAbs_Shape":
    r"""
    Returns the continuity.

    Parameters
    ----------
    E: TopoDS_Edge
    F1: TopoDS_Face
    F2: TopoDS_Face

    Returns
    -------
    GeomAbs_Shape
    Returns the continuity.

    Parameters
    ----------
    E: TopoDS_Edge
    S1: Geom_Surface
    S2: Geom_Surface
    L1: TopLoc_Location
    L2: TopLoc_Location

    Returns
    -------
    GeomAbs_Shape

    """
    return _BRep.BRep_Tool_Continuity(*args)

def BRep_Tool_Curve(*args) -> "Standard_Real &, Standard_Real &":
    r"""
    Returns the 3d curve of the edge. may be a null handle. returns in <l> the location for the curve. in <first> and <last> the parameter range.

    Parameters
    ----------
    E: TopoDS_Edge
    L: TopLoc_Location

    Returns
    -------
    First: float
    Last: float
    Returns the 3d curve of the edge. may be a null handle. in <first> and <last> the parameter range. it can be a copy if there is a location.

    Parameters
    ----------
    E: TopoDS_Edge

    Returns
    -------
    First: float
    Last: float

    """
    return _BRep.BRep_Tool_Curve(*args)

def BRep_Tool_CurveOnPlane(*args) -> "Standard_Real &, Standard_Real &":
    r"""
    For the planar surface builds the 2d curve for the edge by projection of the edge on plane. returns a null handle if the surface is not planar or the projection failed.

    Parameters
    ----------
    E: TopoDS_Edge
    S: Geom_Surface
    L: TopLoc_Location

    Returns
    -------
    First: float
    Last: float

    """
    return _BRep.BRep_Tool_CurveOnPlane(*args)

def BRep_Tool_CurveOnSurface(*args) -> "Standard_Real &, Standard_Real &":
    r"""
    Returns the curve associated to the edge in the parametric space of the face. returns a null handle if this curve does not exist. returns in <first> and <last> the parameter range. if the surface is a plane the curve can be not stored but created a new each time. the flag pointed by <theisstored> serves to indicate storage status. it is valued if the pointer is non-null.

    Parameters
    ----------
    E: TopoDS_Edge
    F: TopoDS_Face
    theIsStored: bool *,optional
    	default value is NULL

    Returns
    -------
    First: float
    Last: float
    Returns the curve associated to the edge in the parametric space of the surface. returns a null handle if this curve does not exist. returns in <first> and <last> the parameter range. if the surface is a plane the curve can be not stored but created a new each time. the flag pointed by <theisstored> serves to indicate storage status. it is valued if the pointer is non-null.

    Parameters
    ----------
    E: TopoDS_Edge
    S: Geom_Surface
    L: TopLoc_Location
    theIsStored: bool *,optional
    	default value is NULL

    Returns
    -------
    First: float
    Last: float
    Returns in <c>, <s>, <l> a 2d curve, a surface and a location for the edge <e>. <c> and <s> are null if the edge has no curve on surface. returns in <first> and <last> the parameter range.

    Parameters
    ----------
    E: TopoDS_Edge
    C: Geom2d_Curve
    S: Geom_Surface
    L: TopLoc_Location

    Returns
    -------
    First: float
    Last: float
    Returns in <c>, <s>, <l> the 2d curve, the surface and the location for the edge <e> of rank <index>. <c> and <s> are null if the index is out of range. returns in <first> and <last> the parameter range.

    Parameters
    ----------
    E: TopoDS_Edge
    C: Geom2d_Curve
    S: Geom_Surface
    L: TopLoc_Location
    Index: int

    Returns
    -------
    First: float
    Last: float

    """
    return _BRep.BRep_Tool_CurveOnSurface(*args)

def BRep_Tool_Degenerated(*args) -> "Standard_Boolean":
    r"""
    Returns true if the edge is degenerated.

    Parameters
    ----------
    E: TopoDS_Edge

    Returns
    -------
    bool

    """
    return _BRep.BRep_Tool_Degenerated(*args)

def BRep_Tool_HasContinuity(*args) -> "Standard_Boolean":
    r"""
    Returns true if the edge is on the surfaces of the two faces.

    Parameters
    ----------
    E: TopoDS_Edge
    F1: TopoDS_Face
    F2: TopoDS_Face

    Returns
    -------
    bool
    Returns true if the edge is on the surfaces.

    Parameters
    ----------
    E: TopoDS_Edge
    S1: Geom_Surface
    S2: Geom_Surface
    L1: TopLoc_Location
    L2: TopLoc_Location

    Returns
    -------
    bool
    Returns true if the edge has regularity on some two surfaces.

    Parameters
    ----------
    E: TopoDS_Edge

    Returns
    -------
    bool

    """
    return _BRep.BRep_Tool_HasContinuity(*args)

def BRep_Tool_IsClosed(*args) -> "Standard_Boolean":
    r"""
    If s is shell, returns true if it has no free boundaries (edges). if s is wire, returns true if it has no free ends (vertices). (internal and external sub-shepes are ignored in these checks) if s is edge, returns true if its vertices are the same. for other shape types returns s.closed().

    Parameters
    ----------
    S: TopoDS_Shape

    Returns
    -------
    bool
    Returns true if <e> has two pcurves in the parametric space of <f>. i.e. <f> is on a closed surface and <e> is on the closing curve.

    Parameters
    ----------
    E: TopoDS_Edge
    F: TopoDS_Face

    Returns
    -------
    bool
    Returns true if <e> has two pcurves in the parametric space of <s>. i.e. <s> is a closed surface and <e> is on the closing curve.

    Parameters
    ----------
    E: TopoDS_Edge
    S: Geom_Surface
    L: TopLoc_Location

    Returns
    -------
    bool
    Returns true if <e> has two arrays of indices in the triangulation <t>.

    Parameters
    ----------
    E: TopoDS_Edge
    T: Poly_Triangulation
    L: TopLoc_Location

    Returns
    -------
    bool

    """
    return _BRep.BRep_Tool_IsClosed(*args)

def BRep_Tool_IsGeometric(*args) -> "Standard_Boolean":
    r"""
    Returns true if <f> has a surface, false otherwise.

    Parameters
    ----------
    F: TopoDS_Face

    Returns
    -------
    bool
    Returns true if <e> is a 3d curve or a curve on surface.

    Parameters
    ----------
    E: TopoDS_Edge

    Returns
    -------
    bool

    """
    return _BRep.BRep_Tool_IsGeometric(*args)

def BRep_Tool_MaxContinuity(*args) -> "GeomAbs_Shape":
    r"""
    Returns the max continuity of edge between some surfaces or geomabs_c0 if there no such surfaces.

    Parameters
    ----------
    theEdge: TopoDS_Edge

    Returns
    -------
    GeomAbs_Shape

    """
    return _BRep.BRep_Tool_MaxContinuity(*args)

def BRep_Tool_MaxTolerance(*args) -> "Standard_Real":
    r"""
    Returns the maximum tolerance of input shape subshapes.

    Parameters
    ----------
    theShape: TopoDS_Shape
    theSubShape: TopAbs_ShapeEnum

    Returns
    -------
    float

    """
    return _BRep.BRep_Tool_MaxTolerance(*args)

def BRep_Tool_NaturalRestriction(*args) -> "Standard_Boolean":
    r"""
    Returns the naturalrestriction flag of the face.

    Parameters
    ----------
    F: TopoDS_Face

    Returns
    -------
    bool

    """
    return _BRep.BRep_Tool_NaturalRestriction(*args)

def BRep_Tool_Parameter(*args) -> "Standard_Real":
    r"""
    Finds the parameter of <thev> on <thee>. @param thev [in] input vertex @param thee [in] input edge @param theparam [out] calculated parameter on the curve returns true if done.

    Parameters
    ----------
    theV: TopoDS_Vertex
    theE: TopoDS_Edge

    Returns
    -------
    theParam: float
    Returns the parameter of <v> on <e>. throws standard_nosuchobject if no parameter on edge.

    Parameters
    ----------
    V: TopoDS_Vertex
    E: TopoDS_Edge

    Returns
    -------
    float
    Returns the parameters of the vertex on the pcurve of the edge on the face.

    Parameters
    ----------
    V: TopoDS_Vertex
    E: TopoDS_Edge
    F: TopoDS_Face

    Returns
    -------
    float
    Returns the parameters of the vertex on the pcurve of the edge on the surface.

    Parameters
    ----------
    V: TopoDS_Vertex
    E: TopoDS_Edge
    S: Geom_Surface
    L: TopLoc_Location

    Returns
    -------
    float

    """
    return _BRep.BRep_Tool_Parameter(*args)

def BRep_Tool_Parameters(*args) -> "gp_Pnt2d":
    r"""
    Returns the parameters of the vertex on the face.

    Parameters
    ----------
    V: TopoDS_Vertex
    F: TopoDS_Face

    Returns
    -------
    gp_Pnt2d

    """
    return _BRep.BRep_Tool_Parameters(*args)

def BRep_Tool_Pnt(*args) -> "gp_Pnt":
    r"""
    Returns the 3d point.

    Parameters
    ----------
    V: TopoDS_Vertex

    Returns
    -------
    gp_Pnt

    """
    return _BRep.BRep_Tool_Pnt(*args)

def BRep_Tool_Polygon3D(*args) -> "opencascade::handle< Poly_Polygon3D > const &":
    r"""
    Returns the 3d polygon of the edge. may be a null handle. returns in <l> the location for the polygon.

    Parameters
    ----------
    E: TopoDS_Edge
    L: TopLoc_Location

    Returns
    -------
    opencascade::handle<Poly_Polygon3D>

    """
    return _BRep.BRep_Tool_Polygon3D(*args)

def BRep_Tool_PolygonOnSurface(*args) -> "void":
    r"""
    Returns the polygon associated to the edge in the parametric space of the face. returns a null handle if this polygon does not exist.

    Parameters
    ----------
    E: TopoDS_Edge
    F: TopoDS_Face

    Returns
    -------
    opencascade::handle<Poly_Polygon2D>
    Returns the polygon associated to the edge in the parametric space of the surface. returns a null handle if this polygon does not exist.

    Parameters
    ----------
    E: TopoDS_Edge
    S: Geom_Surface
    L: TopLoc_Location

    Returns
    -------
    opencascade::handle<Poly_Polygon2D>
    Returns in <c>, <s>, <l> a 2d curve, a surface and a location for the edge <e>. <c> and <s> are null if the edge has no polygon on surface.

    Parameters
    ----------
    E: TopoDS_Edge
    C: Poly_Polygon2D
    S: Geom_Surface
    L: TopLoc_Location

    Returns
    -------
    None
    Returns in <c>, <s>, <l> the 2d curve, the surface and the location for the edge <e> of rank <index>. <c> and <s> are null if the index is out of range.

    Parameters
    ----------
    E: TopoDS_Edge
    C: Poly_Polygon2D
    S: Geom_Surface
    L: TopLoc_Location
    Index: int

    Returns
    -------
    None

    """
    return _BRep.BRep_Tool_PolygonOnSurface(*args)

def BRep_Tool_PolygonOnTriangulation(*args) -> "void":
    r"""
    Returns the polygon associated to the edge in the parametric space of the face. returns a null handle if this polygon does not exist.

    Parameters
    ----------
    E: TopoDS_Edge
    T: Poly_Triangulation
    L: TopLoc_Location

    Returns
    -------
    opencascade::handle<Poly_PolygonOnTriangulation>
    Returns in <p>, <t>, <l> a polygon on triangulation, a triangulation and a location for the edge <e>. <p> and <t> are null if the edge has no polygon on triangulation.

    Parameters
    ----------
    E: TopoDS_Edge
    P: Poly_PolygonOnTriangulation
    T: Poly_Triangulation
    L: TopLoc_Location

    Returns
    -------
    None
    Returns in <p>, <t>, <l> a polygon on triangulation, a triangulation and a location for the edge <e> for the range index. <c> and <s> are null if the edge has no polygon on triangulation.

    Parameters
    ----------
    E: TopoDS_Edge
    P: Poly_PolygonOnTriangulation
    T: Poly_Triangulation
    L: TopLoc_Location
    Index: int

    Returns
    -------
    None

    """
    return _BRep.BRep_Tool_PolygonOnTriangulation(*args)

def BRep_Tool_Range(*args) -> "Standard_Real &, Standard_Real &":
    r"""
    Gets the range of the 3d curve.

    Parameters
    ----------
    E: TopoDS_Edge

    Returns
    -------
    First: float
    Last: float
    Gets the range of the edge on the pcurve on the surface.

    Parameters
    ----------
    E: TopoDS_Edge
    S: Geom_Surface
    L: TopLoc_Location

    Returns
    -------
    First: float
    Last: float
    Gets the range of the edge on the pcurve on the face.

    Parameters
    ----------
    E: TopoDS_Edge
    F: TopoDS_Face

    Returns
    -------
    First: float
    Last: float

    """
    return _BRep.BRep_Tool_Range(*args)

def BRep_Tool_SameParameter(*args) -> "Standard_Boolean":
    r"""
    Returns the sameparameter flag for the edge.

    Parameters
    ----------
    E: TopoDS_Edge

    Returns
    -------
    bool

    """
    return _BRep.BRep_Tool_SameParameter(*args)

def BRep_Tool_SameRange(*args) -> "Standard_Boolean":
    r"""
    Returns the samerange flag for the edge.

    Parameters
    ----------
    E: TopoDS_Edge

    Returns
    -------
    bool

    """
    return _BRep.BRep_Tool_SameRange(*args)

def BRep_Tool_SetUVPoints(*args) -> "void":
    r"""
    Sets the uv locations of the extremities of the edge.

    Parameters
    ----------
    E: TopoDS_Edge
    S: Geom_Surface
    L: TopLoc_Location
    PFirst: gp_Pnt2d
    PLast: gp_Pnt2d

    Returns
    -------
    None
    Sets the uv locations of the extremities of the edge.

    Parameters
    ----------
    E: TopoDS_Edge
    F: TopoDS_Face
    PFirst: gp_Pnt2d
    PLast: gp_Pnt2d

    Returns
    -------
    None

    """
    return _BRep.BRep_Tool_SetUVPoints(*args)

def BRep_Tool_Surface(*args) -> "opencascade::handle< Geom_Surface >":
    r"""
    Returns the geometric surface of the face. returns in <l> the location for the surface.

    Parameters
    ----------
    F: TopoDS_Face
    L: TopLoc_Location

    Returns
    -------
    opencascade::handle<Geom_Surface>
    Returns the geometric surface of the face. it can be a copy if there is a location.

    Parameters
    ----------
    F: TopoDS_Face

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

    """
    return _BRep.BRep_Tool_Surface(*args)

def BRep_Tool_Tolerance(*args) -> "Standard_Real":
    r"""
    Returns the tolerance of the face.

    Parameters
    ----------
    F: TopoDS_Face

    Returns
    -------
    float
    Returns the tolerance for <e>.

    Parameters
    ----------
    E: TopoDS_Edge

    Returns
    -------
    float
    Returns the tolerance.

    Parameters
    ----------
    V: TopoDS_Vertex

    Returns
    -------
    float

    """
    return _BRep.BRep_Tool_Tolerance(*args)

def BRep_Tool_Triangulation(*args) -> "opencascade::handle< Poly_Triangulation > const &":
    r"""
    Returns the triangulation of the face. it is a null handle if there is no triangulation.

    Parameters
    ----------
    F: TopoDS_Face
    L: TopLoc_Location

    Returns
    -------
    opencascade::handle<Poly_Triangulation>

    """
    return _BRep.BRep_Tool_Triangulation(*args)

def BRep_Tool_UVPoints(*args) -> "void":
    r"""
    Gets the uv locations of the extremities of the edge.

    Parameters
    ----------
    E: TopoDS_Edge
    S: Geom_Surface
    L: TopLoc_Location
    PFirst: gp_Pnt2d
    PLast: gp_Pnt2d

    Returns
    -------
    None
    Gets the uv locations of the extremities of the edge.

    Parameters
    ----------
    E: TopoDS_Edge
    F: TopoDS_Face
    PFirst: gp_Pnt2d
    PLast: gp_Pnt2d

    Returns
    -------
    None

    """
    return _BRep.BRep_Tool_UVPoints(*args)

class BRep_CurveOn2Surfaces(BRep_CurveRepresentation):
    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
        ----------
        S1: Geom_Surface
        S2: Geom_Surface
        L1: TopLoc_Location
        L2: TopLoc_Location
        C: GeomAbs_Shape

        Returns
        -------
        None

        """
        _BRep.BRep_CurveOn2Surfaces_swiginit(self, _BRep.new_BRep_CurveOn2Surfaces(*args))

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

        Returns
        -------
        GeomAbs_Shape
        No available documentation.

        Parameters
        ----------
        C: GeomAbs_Shape

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveOn2Surfaces_Continuity(self, *args)

    def D0(self, *args) -> "void":
        r"""
        Raises an error.

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

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveOn2Surfaces_D0(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(BRep_CurveOn2Surfaces self, int depth=-1) -> std::string"""
        return _BRep.BRep_CurveOn2Surfaces_DumpJsonToString(self, depth)

    def IsRegularity(self, *args) -> "Standard_Boolean":
        r"""
        Returns true.

        Returns
        -------
        bool
        A curve on two surfaces (continuity).

        Parameters
        ----------
        S1: Geom_Surface
        S2: Geom_Surface
        L1: TopLoc_Location
        L2: TopLoc_Location

        Returns
        -------
        bool

        """
        return _BRep.BRep_CurveOn2Surfaces_IsRegularity(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_CurveOn2Surfaces

# Register BRep_CurveOn2Surfaces in _BRep:
_BRep.BRep_CurveOn2Surfaces_swigregister(BRep_CurveOn2Surfaces)

class BRep_GCurve(BRep_CurveRepresentation):
    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 D0(self, *args) -> "void":
        r"""
        Computes the point at parameter u.

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

        Returns
        -------
        None

        """
        return _BRep.BRep_GCurve_D0(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(BRep_GCurve self, int depth=-1) -> std::string"""
        return _BRep.BRep_GCurve_DumpJsonToString(self, depth)

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

        Returns
        -------
        float
        No available documentation.

        Parameters
        ----------
        F: float

        Returns
        -------
        None

        """
        return _BRep.BRep_GCurve_First(self, *args)

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

        Returns
        -------
        float
        No available documentation.

        Parameters
        ----------
        L: float

        Returns
        -------
        None

        """
        return _BRep.BRep_GCurve_Last(self, *args)

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

        Parameters
        ----------

        Returns
        -------
        First: float
        Last: float

        """
        return _BRep.BRep_GCurve_Range(self, *args)

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

        Parameters
        ----------
        First: float
        Last: float

        Returns
        -------
        None

        """
        return _BRep.BRep_GCurve_SetRange(self, *args)

    def Update(self, *args) -> "void":
        r"""
        Recomputes any derived data after a modification. this is called when the range is modified.

        Returns
        -------
        None

        """
        return _BRep.BRep_GCurve_Update(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_GCurve

# Register BRep_GCurve in _BRep:
_BRep.BRep_GCurve_swigregister(BRep_GCurve)

class BRep_PointOnCurve(BRep_PointRepresentation):
    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
        ----------
        P: float
        C: Geom_Curve
        L: TopLoc_Location

        Returns
        -------
        None

        """
        _BRep.BRep_PointOnCurve_swiginit(self, _BRep.new_BRep_PointOnCurve(*args))

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

        Returns
        -------
        opencascade::handle<Geom_Curve>
        No available documentation.

        Parameters
        ----------
        C: Geom_Curve

        Returns
        -------
        None

        """
        return _BRep.BRep_PointOnCurve_Curve(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(BRep_PointOnCurve self, int depth=-1) -> std::string"""
        return _BRep.BRep_PointOnCurve_DumpJsonToString(self, depth)

    def IsPointOnCurve(self, *args) -> "Standard_Boolean":
        r"""
        Returns true.

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        C: Geom_Curve
        L: TopLoc_Location

        Returns
        -------
        bool

        """
        return _BRep.BRep_PointOnCurve_IsPointOnCurve(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_PointOnCurve

# Register BRep_PointOnCurve in _BRep:
_BRep.BRep_PointOnCurve_swigregister(BRep_PointOnCurve)

class BRep_PointsOnSurface(BRep_PointRepresentation):
    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 DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(BRep_PointsOnSurface self, int depth=-1) -> std::string"""
        return _BRep.BRep_PointsOnSurface_DumpJsonToString(self, depth)

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

        Returns
        -------
        opencascade::handle<Geom_Surface>
        No available documentation.

        Parameters
        ----------
        S: Geom_Surface

        Returns
        -------
        None

        """
        return _BRep.BRep_PointsOnSurface_Surface(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_PointsOnSurface

# Register BRep_PointsOnSurface in _BRep:
_BRep.BRep_PointsOnSurface_swigregister(BRep_PointsOnSurface)

class BRep_Polygon3D(BRep_CurveRepresentation):
    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
        ----------
        P: Poly_Polygon3D
        L: TopLoc_Location

        Returns
        -------
        None

        """
        _BRep.BRep_Polygon3D_swiginit(self, _BRep.new_BRep_Polygon3D(*args))

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(BRep_Polygon3D self, int depth=-1) -> std::string"""
        return _BRep.BRep_Polygon3D_DumpJsonToString(self, depth)

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

        Returns
        -------
        opencascade::handle<Poly_Polygon3D>
        No available documentation.

        Parameters
        ----------
        P: Poly_Polygon3D

        Returns
        -------
        None

        """
        return _BRep.BRep_Polygon3D_Polygon3D(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_Polygon3D

# Register BRep_Polygon3D in _BRep:
_BRep.BRep_Polygon3D_swigregister(BRep_Polygon3D)

class BRep_PolygonOnSurface(BRep_CurveRepresentation):
    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
        ----------
        P: Poly_Polygon2D
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        None

        """
        _BRep.BRep_PolygonOnSurface_swiginit(self, _BRep.new_BRep_PolygonOnSurface(*args))

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(BRep_PolygonOnSurface self, int depth=-1) -> std::string"""
        return _BRep.BRep_PolygonOnSurface_DumpJsonToString(self, depth)

    def IsPolygonOnSurface(self, *args) -> "Standard_Boolean":
        r"""
        A 2d polygon representation in the parametric space of a surface.

        Returns
        -------
        bool
        A 2d polygon representation in the parametric space of a surface.

        Parameters
        ----------
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        bool

        """
        return _BRep.BRep_PolygonOnSurface_IsPolygonOnSurface(self, *args)

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

        Returns
        -------
        opencascade::handle<Poly_Polygon2D>
        No available documentation.

        Parameters
        ----------
        P: Poly_Polygon2D

        Returns
        -------
        None

        """
        return _BRep.BRep_PolygonOnSurface_Polygon(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_PolygonOnSurface

# Register BRep_PolygonOnSurface in _BRep:
_BRep.BRep_PolygonOnSurface_swigregister(BRep_PolygonOnSurface)

class BRep_PolygonOnTriangulation(BRep_CurveRepresentation):
    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
        ----------
        P: Poly_PolygonOnTriangulation
        T: Poly_Triangulation
        L: TopLoc_Location

        Returns
        -------
        None

        """
        _BRep.BRep_PolygonOnTriangulation_swiginit(self, _BRep.new_BRep_PolygonOnTriangulation(*args))

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(BRep_PolygonOnTriangulation self, int depth=-1) -> std::string"""
        return _BRep.BRep_PolygonOnTriangulation_DumpJsonToString(self, depth)

    def IsPolygonOnTriangulation(self, *args) -> "Standard_Boolean":
        r"""
        Returns true.

        Returns
        -------
        bool
        Is it a polygon in the definition of <t> with location <l>.

        Parameters
        ----------
        T: Poly_Triangulation
        L: TopLoc_Location

        Returns
        -------
        bool

        """
        return _BRep.BRep_PolygonOnTriangulation_IsPolygonOnTriangulation(self, *args)

    def PolygonOnTriangulation(self, *args) -> "opencascade::handle< Poly_PolygonOnTriangulation > const &":
        r"""
        Returns true.

        Parameters
        ----------
        P: Poly_PolygonOnTriangulation

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

        Returns
        -------
        opencascade::handle<Poly_PolygonOnTriangulation>

        """
        return _BRep.BRep_PolygonOnTriangulation_PolygonOnTriangulation(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_PolygonOnTriangulation

# Register BRep_PolygonOnTriangulation in _BRep:
_BRep.BRep_PolygonOnTriangulation_swigregister(BRep_PolygonOnTriangulation)

class BRep_Curve3D(BRep_GCurve):
    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
        ----------
        C: Geom_Curve
        L: TopLoc_Location

        Returns
        -------
        None

        """
        _BRep.BRep_Curve3D_swiginit(self, _BRep.new_BRep_Curve3D(*args))

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

        Returns
        -------
        opencascade::handle<Geom_Curve>
        No available documentation.

        Parameters
        ----------
        C: Geom_Curve

        Returns
        -------
        None

        """
        return _BRep.BRep_Curve3D_Curve3D(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(BRep_Curve3D self, int depth=-1) -> std::string"""
        return _BRep.BRep_Curve3D_DumpJsonToString(self, depth)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_Curve3D

# Register BRep_Curve3D in _BRep:
_BRep.BRep_Curve3D_swigregister(BRep_Curve3D)

class BRep_CurveOnSurface(BRep_GCurve):
    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
        ----------
        PC: Geom2d_Curve
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        None

        """
        _BRep.BRep_CurveOnSurface_swiginit(self, _BRep.new_BRep_CurveOnSurface(*args))

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(BRep_CurveOnSurface self, int depth=-1) -> std::string"""
        return _BRep.BRep_CurveOnSurface_DumpJsonToString(self, depth)

    def IsCurveOnSurface(self, *args) -> "Standard_Boolean":
        r"""
        Returns true.

        Returns
        -------
        bool
        A curve in the parametric space of a surface.

        Parameters
        ----------
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        bool

        """
        return _BRep.BRep_CurveOnSurface_IsCurveOnSurface(self, *args)

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

        Returns
        -------
        opencascade::handle<Geom2d_Curve>
        No available documentation.

        Parameters
        ----------
        C: Geom2d_Curve

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveOnSurface_PCurve(self, *args)

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

        Parameters
        ----------
        P1: gp_Pnt2d
        P2: gp_Pnt2d

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveOnSurface_SetUVPoints(self, *args)

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

        Parameters
        ----------
        P1: gp_Pnt2d
        P2: gp_Pnt2d

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveOnSurface_UVPoints(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_CurveOnSurface

# Register BRep_CurveOnSurface in _BRep:
_BRep.BRep_CurveOnSurface_swigregister(BRep_CurveOnSurface)

class BRep_PointOnCurveOnSurface(BRep_PointsOnSurface):
    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
        ----------
        P: float
        C: Geom2d_Curve
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        None

        """
        _BRep.BRep_PointOnCurveOnSurface_swiginit(self, _BRep.new_BRep_PointOnCurveOnSurface(*args))

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(BRep_PointOnCurveOnSurface self, int depth=-1) -> std::string"""
        return _BRep.BRep_PointOnCurveOnSurface_DumpJsonToString(self, depth)

    def IsPointOnCurveOnSurface(self, *args) -> "Standard_Boolean":
        r"""
        Returns true.

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        PC: Geom2d_Curve
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        bool

        """
        return _BRep.BRep_PointOnCurveOnSurface_IsPointOnCurveOnSurface(self, *args)

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

        Returns
        -------
        opencascade::handle<Geom2d_Curve>
        No available documentation.

        Parameters
        ----------
        C: Geom2d_Curve

        Returns
        -------
        None

        """
        return _BRep.BRep_PointOnCurveOnSurface_PCurve(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_PointOnCurveOnSurface

# Register BRep_PointOnCurveOnSurface in _BRep:
_BRep.BRep_PointOnCurveOnSurface_swigregister(BRep_PointOnCurveOnSurface)

class BRep_PointOnSurface(BRep_PointsOnSurface):
    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
        ----------
        P1: float
        P2: float
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        None

        """
        _BRep.BRep_PointOnSurface_swiginit(self, _BRep.new_BRep_PointOnSurface(*args))

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

        Returns
        -------
        bool
        No available documentation.

        Parameters
        ----------
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        bool

        """
        return _BRep.BRep_PointOnSurface_IsPointOnSurface(self, *args)

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

        Returns
        -------
        float
        No available documentation.

        Parameters
        ----------
        P: float

        Returns
        -------
        None

        """
        return _BRep.BRep_PointOnSurface_Parameter2(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_PointOnSurface

# Register BRep_PointOnSurface in _BRep:
_BRep.BRep_PointOnSurface_swigregister(BRep_PointOnSurface)

class BRep_PolygonOnClosedSurface(BRep_PolygonOnSurface):
    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
        ----------
        P1: Poly_Polygon2D
        P2: Poly_Polygon2D
        S: Geom_Surface
        L: TopLoc_Location

        Returns
        -------
        None

        """
        _BRep.BRep_PolygonOnClosedSurface_swiginit(self, _BRep.new_BRep_PolygonOnClosedSurface(*args))

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(BRep_PolygonOnClosedSurface self, int depth=-1) -> std::string"""
        return _BRep.BRep_PolygonOnClosedSurface_DumpJsonToString(self, depth)

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

        Returns
        -------
        opencascade::handle<Poly_Polygon2D>
        No available documentation.

        Parameters
        ----------
        P: Poly_Polygon2D

        Returns
        -------
        None

        """
        return _BRep.BRep_PolygonOnClosedSurface_Polygon2(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_PolygonOnClosedSurface

# Register BRep_PolygonOnClosedSurface in _BRep:
_BRep.BRep_PolygonOnClosedSurface_swigregister(BRep_PolygonOnClosedSurface)

class BRep_PolygonOnClosedTriangulation(BRep_PolygonOnTriangulation):
    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
        ----------
        P1: Poly_PolygonOnTriangulation
        P2: Poly_PolygonOnTriangulation
        Tr: Poly_Triangulation
        L: TopLoc_Location

        Returns
        -------
        None

        """
        _BRep.BRep_PolygonOnClosedTriangulation_swiginit(self, _BRep.new_BRep_PolygonOnClosedTriangulation(*args))

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(BRep_PolygonOnClosedTriangulation self, int depth=-1) -> std::string"""
        return _BRep.BRep_PolygonOnClosedTriangulation_DumpJsonToString(self, depth)

    def PolygonOnTriangulation2(self, *args) -> "opencascade::handle< Poly_PolygonOnTriangulation > const &":
        r"""
        No available documentation.

        Parameters
        ----------
        P2: Poly_PolygonOnTriangulation

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

        Returns
        -------
        opencascade::handle<Poly_PolygonOnTriangulation>

        """
        return _BRep.BRep_PolygonOnClosedTriangulation_PolygonOnTriangulation2(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_PolygonOnClosedTriangulation

# Register BRep_PolygonOnClosedTriangulation in _BRep:
_BRep.BRep_PolygonOnClosedTriangulation_swigregister(BRep_PolygonOnClosedTriangulation)

class BRep_CurveOnClosedSurface(BRep_CurveOnSurface):
    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
        ----------
        PC1: Geom2d_Curve
        PC2: Geom2d_Curve
        S: Geom_Surface
        L: TopLoc_Location
        C: GeomAbs_Shape

        Returns
        -------
        None

        """
        _BRep.BRep_CurveOnClosedSurface_swiginit(self, _BRep.new_BRep_CurveOnClosedSurface(*args))

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

        Returns
        -------
        GeomAbs_Shape
        No available documentation.

        Parameters
        ----------
        C: GeomAbs_Shape

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveOnClosedSurface_Continuity(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(BRep_CurveOnClosedSurface self, int depth=-1) -> std::string"""
        return _BRep.BRep_CurveOnClosedSurface_DumpJsonToString(self, depth)

    def IsRegularity(self, *args) -> "Standard_Boolean":
        r"""
        Returns true.

        Returns
        -------
        bool
        A curve on two surfaces (continuity).

        Parameters
        ----------
        S1: Geom_Surface
        S2: Geom_Surface
        L1: TopLoc_Location
        L2: TopLoc_Location

        Returns
        -------
        bool

        """
        return _BRep.BRep_CurveOnClosedSurface_IsRegularity(self, *args)

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

        Returns
        -------
        opencascade::handle<Geom2d_Curve>
        No available documentation.

        Parameters
        ----------
        C: Geom2d_Curve

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveOnClosedSurface_PCurve2(self, *args)

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

        Parameters
        ----------
        P1: gp_Pnt2d
        P2: gp_Pnt2d

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveOnClosedSurface_SetUVPoints2(self, *args)

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

        Parameters
        ----------
        P1: gp_Pnt2d
        P2: gp_Pnt2d

        Returns
        -------
        None

        """
        return _BRep.BRep_CurveOnClosedSurface_UVPoints2(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _BRep.delete_BRep_CurveOnClosedSurface

# Register BRep_CurveOnClosedSurface in _BRep:
_BRep.BRep_CurveOnClosedSurface_swigregister(BRep_CurveOnClosedSurface)





