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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _HLRTopoBRep:
_HLRTopoBRep.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 _HLRTopoBRep.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.Contap
import OCC.Core.math
import OCC.Core.IntSurf
import OCC.Core.Adaptor3d
import OCC.Core.Geom
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d
import OCC.Core.BRepTopAdaptor
import OCC.Core.BRepAdaptor
import OCC.Core.GeomAdaptor
import OCC.Core.Geom2dAdaptor
import OCC.Core.TopTools
import OCC.Core.HLRAlgo

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




def Handle_HLRTopoBRep_OutLiner_Create() -> "opencascade::handle< HLRTopoBRep_OutLiner >":
    return _HLRTopoBRep.Handle_HLRTopoBRep_OutLiner_Create()

def Handle_HLRTopoBRep_OutLiner_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< HLRTopoBRep_OutLiner >":
    return _HLRTopoBRep.Handle_HLRTopoBRep_OutLiner_DownCast(t)

def Handle_HLRTopoBRep_OutLiner_IsNull(t: "opencascade::handle< HLRTopoBRep_OutLiner > const &") -> "bool":
    return _HLRTopoBRep.Handle_HLRTopoBRep_OutLiner_IsNull(t)
class HLRTopoBRep_DataMapOfShapeFaceData(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_DataMap< TopoDS_Shape,HLRTopoBRep_FaceData,TopTools_ShapeMapHasher >::iterator":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_begin(self)

    def end(self) -> "NCollection_DataMap< TopoDS_Shape,HLRTopoBRep_FaceData,TopTools_ShapeMapHasher >::iterator":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_end(self)

    def cbegin(self) -> "NCollection_DataMap< TopoDS_Shape,HLRTopoBRep_FaceData,TopTools_ShapeMapHasher >::const_iterator":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_cbegin(self)

    def cend(self) -> "NCollection_DataMap< TopoDS_Shape,HLRTopoBRep_FaceData,TopTools_ShapeMapHasher >::const_iterator":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_cend(self)

    def __init__(self, *args):
        _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_swiginit(self, _HLRTopoBRep.new_HLRTopoBRep_DataMapOfShapeFaceData(*args))

    def Exchange(self, theOther: "HLRTopoBRep_DataMapOfShapeFaceData") -> "void":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_Exchange(self, theOther)

    def Assign(self, theOther: "HLRTopoBRep_DataMapOfShapeFaceData") -> "NCollection_DataMap< TopoDS_Shape,HLRTopoBRep_FaceData,TopTools_ShapeMapHasher > &":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_Assign(self, theOther)

    def Set(self, theOther: "HLRTopoBRep_DataMapOfShapeFaceData") -> "NCollection_DataMap< TopoDS_Shape,HLRTopoBRep_FaceData,TopTools_ShapeMapHasher > &":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_ReSize(self, N)

    def Bind(self, theKey: "TopoDS_Shape", theItem: "HLRTopoBRep_FaceData") -> "Standard_Boolean":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_Bind(self, theKey, theItem)

    def Bound(self, theKey: "TopoDS_Shape", theItem: "HLRTopoBRep_FaceData") -> "HLRTopoBRep_FaceData *":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_IsBound(self, theKey)

    def UnBind(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_UnBind(self, theKey)

    def Seek(self, theKey: "TopoDS_Shape") -> "HLRTopoBRep_FaceData const *":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_Find(self, *args)

    def ChangeSeek(self, theKey: "TopoDS_Shape") -> "HLRTopoBRep_FaceData *":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "TopoDS_Shape") -> "HLRTopoBRep_FaceData &":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_ChangeFind(self, theKey)

    def __call__(self, *args) -> "HLRTopoBRep_FaceData &":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_Clear(self, *args)
    __swig_destroy__ = _HLRTopoBRep.delete_HLRTopoBRep_DataMapOfShapeFaceData

    def Size(self) -> "Standard_Integer":
        return _HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_Size(self)

# Register HLRTopoBRep_DataMapOfShapeFaceData in _HLRTopoBRep:
_HLRTopoBRep.HLRTopoBRep_DataMapOfShapeFaceData_swigregister(HLRTopoBRep_DataMapOfShapeFaceData)

class HLRTopoBRep_ListIteratorOfListOfVData(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):
        _HLRTopoBRep.HLRTopoBRep_ListIteratorOfListOfVData_swiginit(self, _HLRTopoBRep.new_HLRTopoBRep_ListIteratorOfListOfVData(*args))

    def More(self) -> "Standard_Boolean":
        return _HLRTopoBRep.HLRTopoBRep_ListIteratorOfListOfVData_More(self)

    def Next(self) -> "void":
        return _HLRTopoBRep.HLRTopoBRep_ListIteratorOfListOfVData_Next(self)

    def Value(self) -> "HLRTopoBRep_VData const &":
        return _HLRTopoBRep.HLRTopoBRep_ListIteratorOfListOfVData_Value(self)

    def ChangeValue(self) -> "HLRTopoBRep_VData &":
        return _HLRTopoBRep.HLRTopoBRep_ListIteratorOfListOfVData_ChangeValue(self)
    __swig_destroy__ = _HLRTopoBRep.delete_HLRTopoBRep_ListIteratorOfListOfVData

# Register HLRTopoBRep_ListIteratorOfListOfVData in _HLRTopoBRep:
_HLRTopoBRep.HLRTopoBRep_ListIteratorOfListOfVData_swigregister(HLRTopoBRep_ListIteratorOfListOfVData)

class HLRTopoBRep_ListOfVData(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< HLRTopoBRep_VData >::iterator":
        return _HLRTopoBRep.HLRTopoBRep_ListOfVData_begin(self)

    def end(self) -> "NCollection_List< HLRTopoBRep_VData >::iterator":
        return _HLRTopoBRep.HLRTopoBRep_ListOfVData_end(self)

    def cbegin(self) -> "NCollection_List< HLRTopoBRep_VData >::const_iterator":
        return _HLRTopoBRep.HLRTopoBRep_ListOfVData_cbegin(self)

    def cend(self) -> "NCollection_List< HLRTopoBRep_VData >::const_iterator":
        return _HLRTopoBRep.HLRTopoBRep_ListOfVData_cend(self)

    def __init__(self, *args):
        _HLRTopoBRep.HLRTopoBRep_ListOfVData_swiginit(self, _HLRTopoBRep.new_HLRTopoBRep_ListOfVData(*args))

    def Size(self) -> "Standard_Integer":
        return _HLRTopoBRep.HLRTopoBRep_ListOfVData_Size(self)

    def Assign(self, theOther: "HLRTopoBRep_ListOfVData") -> "NCollection_List< HLRTopoBRep_VData > &":
        return _HLRTopoBRep.HLRTopoBRep_ListOfVData_Assign(self, theOther)

    def Set(self, theOther: "HLRTopoBRep_ListOfVData") -> "NCollection_List< HLRTopoBRep_VData > &":
        return _HLRTopoBRep.HLRTopoBRep_ListOfVData_Set(self, theOther)

    def Clear(self, theAllocator: "IntSurf_Allocator"=0) -> "void":
        return _HLRTopoBRep.HLRTopoBRep_ListOfVData_Clear(self, theAllocator)

    def First(self) -> "HLRTopoBRep_VData const &":
        return _HLRTopoBRep.HLRTopoBRep_ListOfVData_First(self)

    def Last(self) -> "HLRTopoBRep_VData const &":
        return _HLRTopoBRep.HLRTopoBRep_ListOfVData_Last(self)

    def Append(self, *args) -> "void":
        return _HLRTopoBRep.HLRTopoBRep_ListOfVData_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _HLRTopoBRep.HLRTopoBRep_ListOfVData_Prepend(self, *args)

    def RemoveFirst(self) -> "void":
        return _HLRTopoBRep.HLRTopoBRep_ListOfVData_RemoveFirst(self)

    def Remove(self, theIter: "HLRTopoBRep_ListIteratorOfListOfVData") -> "void":
        return _HLRTopoBRep.HLRTopoBRep_ListOfVData_Remove(self, theIter)

    def InsertBefore(self, *args) -> "void":
        return _HLRTopoBRep.HLRTopoBRep_ListOfVData_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _HLRTopoBRep.HLRTopoBRep_ListOfVData_InsertAfter(self, *args)

    def Reverse(self) -> "void":
        return _HLRTopoBRep.HLRTopoBRep_ListOfVData_Reverse(self)
    __swig_destroy__ = _HLRTopoBRep.delete_HLRTopoBRep_ListOfVData

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


# Register HLRTopoBRep_ListOfVData in _HLRTopoBRep:
_HLRTopoBRep.HLRTopoBRep_ListOfVData_swigregister(HLRTopoBRep_ListOfVData)

class HLRTopoBRep_MapOfShapeListOfVData(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_DataMap< TopoDS_Shape,HLRTopoBRep_ListOfVData,TopTools_ShapeMapHasher >::iterator":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_begin(self)

    def end(self) -> "NCollection_DataMap< TopoDS_Shape,HLRTopoBRep_ListOfVData,TopTools_ShapeMapHasher >::iterator":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_end(self)

    def cbegin(self) -> "NCollection_DataMap< TopoDS_Shape,HLRTopoBRep_ListOfVData,TopTools_ShapeMapHasher >::const_iterator":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_cbegin(self)

    def cend(self) -> "NCollection_DataMap< TopoDS_Shape,HLRTopoBRep_ListOfVData,TopTools_ShapeMapHasher >::const_iterator":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_cend(self)

    def __init__(self, *args):
        _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_swiginit(self, _HLRTopoBRep.new_HLRTopoBRep_MapOfShapeListOfVData(*args))

    def Exchange(self, theOther: "HLRTopoBRep_MapOfShapeListOfVData") -> "void":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_Exchange(self, theOther)

    def Assign(self, theOther: "HLRTopoBRep_MapOfShapeListOfVData") -> "NCollection_DataMap< TopoDS_Shape,HLRTopoBRep_ListOfVData,TopTools_ShapeMapHasher > &":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_Assign(self, theOther)

    def Set(self, theOther: "HLRTopoBRep_MapOfShapeListOfVData") -> "NCollection_DataMap< TopoDS_Shape,HLRTopoBRep_ListOfVData,TopTools_ShapeMapHasher > &":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_Set(self, theOther)

    def ReSize(self, N: "Standard_Integer const") -> "void":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_ReSize(self, N)

    def Bind(self, theKey: "TopoDS_Shape", theItem: "HLRTopoBRep_ListOfVData") -> "Standard_Boolean":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_Bind(self, theKey, theItem)

    def Bound(self, theKey: "TopoDS_Shape", theItem: "HLRTopoBRep_ListOfVData") -> "HLRTopoBRep_ListOfVData *":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_Bound(self, theKey, theItem)

    def IsBound(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_IsBound(self, theKey)

    def UnBind(self, theKey: "TopoDS_Shape") -> "Standard_Boolean":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_UnBind(self, theKey)

    def Seek(self, theKey: "TopoDS_Shape") -> "HLRTopoBRep_ListOfVData const *":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_Seek(self, theKey)

    def Find(self, *args) -> "Standard_Boolean":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_Find(self, *args)

    def ChangeSeek(self, theKey: "TopoDS_Shape") -> "HLRTopoBRep_ListOfVData *":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey: "TopoDS_Shape") -> "HLRTopoBRep_ListOfVData &":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_ChangeFind(self, theKey)

    def __call__(self, *args) -> "HLRTopoBRep_ListOfVData &":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData___call__(self, *args)

    def Clear(self, *args) -> "void":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_Clear(self, *args)
    __swig_destroy__ = _HLRTopoBRep.delete_HLRTopoBRep_MapOfShapeListOfVData

    def Size(self) -> "Standard_Integer":
        return _HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_Size(self)

# Register HLRTopoBRep_MapOfShapeListOfVData in _HLRTopoBRep:
_HLRTopoBRep.HLRTopoBRep_MapOfShapeListOfVData_swigregister(HLRTopoBRep_MapOfShapeListOfVData)

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

    @staticmethod
    def Insert(*args) -> "void":
        r"""
        Stores in <ds> the outlines of <s> using the current outliner and stores the isolines in <ds> using a hatcher.

        Parameters
        ----------
        S: TopoDS_Shape
        FO: Contap_Contour
        DS: HLRTopoBRep_Data
        MST: BRepTopAdaptor_MapOfShapeTool
        nbIso: int

        Returns
        -------
        None

        """
        return _HLRTopoBRep.HLRTopoBRep_DSFiller_Insert(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _HLRTopoBRep.HLRTopoBRep_DSFiller_swiginit(self, _HLRTopoBRep.new_HLRTopoBRep_DSFiller())
    __swig_destroy__ = _HLRTopoBRep.delete_HLRTopoBRep_DSFiller

# Register HLRTopoBRep_DSFiller in _HLRTopoBRep:
_HLRTopoBRep.HLRTopoBRep_DSFiller_swigregister(HLRTopoBRep_DSFiller)

def HLRTopoBRep_DSFiller_Insert(*args) -> "void":
    r"""
    Stores in <ds> the outlines of <s> using the current outliner and stores the isolines in <ds> using a hatcher.

    Parameters
    ----------
    S: TopoDS_Shape
    FO: Contap_Contour
    DS: HLRTopoBRep_Data
    MST: BRepTopAdaptor_MapOfShapeTool
    nbIso: int

    Returns
    -------
    None

    """
    return _HLRTopoBRep.HLRTopoBRep_DSFiller_Insert(*args)

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

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        _HLRTopoBRep.HLRTopoBRep_Data_swiginit(self, _HLRTopoBRep.new_HLRTopoBRep_Data(*args))

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

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

        Returns
        -------
        TopTools_ListOfShape

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_AddIntL(self, *args)

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

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

        Returns
        -------
        None

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_AddIntV(self, *args)

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

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

        Returns
        -------
        TopTools_ListOfShape

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_AddIsoL(self, *args)

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

        Parameters
        ----------
        NewS: TopoDS_Shape
        OldS: TopoDS_Shape

        Returns
        -------
        None

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_AddOldS(self, *args)

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

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

        Returns
        -------
        TopTools_ListOfShape

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_AddOutL(self, *args)

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

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

        Returns
        -------
        None

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_AddOutV(self, *args)

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

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

        Returns
        -------
        TopTools_ListOfShape

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_AddSplE(self, *args)

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

        Parameters
        ----------
        V: TopoDS_Vertex
        P: float

        Returns
        -------
        None

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_Append(self, *args)

    def Clean(self, *args) -> "void":
        r"""
        Clear of all the data not needed during and after the hiding process.

        Returns
        -------
        None

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_Clean(self, *args)

    def Clear(self, *args) -> "void":
        r"""
        Clear of all the maps.

        Returns
        -------
        None

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_Clear(self, *args)

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

        Returns
        -------
        TopoDS_Edge

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_Edge(self, *args)

    def EdgeHasSplE(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the edge is split.

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

        Returns
        -------
        bool

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_EdgeHasSplE(self, *args)

    def EdgeSplE(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        Returns the list of the edges.

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

        Returns
        -------
        TopTools_ListOfShape

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_EdgeSplE(self, *args)

    def FaceHasIntL(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the face has internal outline.

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

        Returns
        -------
        bool

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_FaceHasIntL(self, *args)

    def FaceHasIsoL(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the face has isolines.

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

        Returns
        -------
        bool

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_FaceHasIsoL(self, *args)

    def FaceHasOutL(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the face has outlines on restriction.

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

        Returns
        -------
        bool

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_FaceHasOutL(self, *args)

    def FaceIntL(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        Returns the list of the internal outlines.

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

        Returns
        -------
        TopTools_ListOfShape

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_FaceIntL(self, *args)

    def FaceIsoL(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        Returns the list of the isolines.

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

        Returns
        -------
        TopTools_ListOfShape

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_FaceIsoL(self, *args)

    def FaceOutL(self, *args) -> "TopTools_ListOfShape const &":
        r"""
        Returns the list of the outlines on restriction.

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

        Returns
        -------
        TopTools_ListOfShape

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_FaceOutL(self, *args)

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

        Returns
        -------
        None

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_InitEdge(self, *args)

    def InitVertex(self, *args) -> "void":
        r"""
        Start an iteration on the vertices of e.

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

        Returns
        -------
        None

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_InitVertex(self, *args)

    def InsertBefore(self, *args) -> "void":
        r"""
        Insert before the current position.

        Parameters
        ----------
        V: TopoDS_Vertex
        P: float

        Returns
        -------
        None

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_InsertBefore(self, *args)

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

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

        Returns
        -------
        bool

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_IsIntLFaceEdge(self, *args)

    def IsIntV(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if v is an internal outline vertex.

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

        Returns
        -------
        bool

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_IsIntV(self, *args)

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

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

        Returns
        -------
        bool

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_IsIsoLFaceEdge(self, *args)

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

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

        Returns
        -------
        bool

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_IsOutLFaceEdge(self, *args)

    def IsOutV(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if v is an outline vertex on a restriction.

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

        Returns
        -------
        bool

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_IsOutV(self, *args)

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

        Parameters
        ----------
        E1: TopoDS_Edge
        E2: TopoDS_Edge

        Returns
        -------
        bool

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_IsSplEEdgeEdge(self, *args)

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

        Returns
        -------
        bool

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_MoreEdge(self, *args)

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

        Returns
        -------
        bool

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_MoreVertex(self, *args)

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

        Parameters
        ----------
        New: TopoDS_Shape

        Returns
        -------
        TopoDS_Shape

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_NewSOldS(self, *args)

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

        Returns
        -------
        None

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_NextEdge(self, *args)

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

        Returns
        -------
        None

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_NextVertex(self, *args)

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

        Returns
        -------
        float

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_Parameter(self, *args)

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

        Returns
        -------
        TopoDS_Vertex

        """
        return _HLRTopoBRep.HLRTopoBRep_Data_Vertex(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _HLRTopoBRep.delete_HLRTopoBRep_Data

# Register HLRTopoBRep_Data in _HLRTopoBRep:
_HLRTopoBRep.HLRTopoBRep_Data_swigregister(HLRTopoBRep_Data)

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

    def __init__(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        _HLRTopoBRep.HLRTopoBRep_FaceData_swiginit(self, _HLRTopoBRep.new_HLRTopoBRep_FaceData(*args))

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

        Returns
        -------
        TopTools_ListOfShape

        """
        return _HLRTopoBRep.HLRTopoBRep_FaceData_AddIntL(self, *args)

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

        Returns
        -------
        TopTools_ListOfShape

        """
        return _HLRTopoBRep.HLRTopoBRep_FaceData_AddIsoL(self, *args)

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

        Returns
        -------
        TopTools_ListOfShape

        """
        return _HLRTopoBRep.HLRTopoBRep_FaceData_AddOutL(self, *args)

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

        Returns
        -------
        TopTools_ListOfShape

        """
        return _HLRTopoBRep.HLRTopoBRep_FaceData_FaceIntL(self, *args)

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

        Returns
        -------
        TopTools_ListOfShape

        """
        return _HLRTopoBRep.HLRTopoBRep_FaceData_FaceIsoL(self, *args)

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

        Returns
        -------
        TopTools_ListOfShape

        """
        return _HLRTopoBRep.HLRTopoBRep_FaceData_FaceOutL(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _HLRTopoBRep.delete_HLRTopoBRep_FaceData

# Register HLRTopoBRep_FaceData in _HLRTopoBRep:
_HLRTopoBRep.HLRTopoBRep_FaceData_swigregister(HLRTopoBRep_FaceData)

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

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

        Parameters
        ----------
        F: TopoDS_Face
        Iso: Geom2d_Line
        V1: TopoDS_Vertex
        V2: TopoDS_Vertex
        U1: float
        U2: float
        Tol: float
        DS: HLRTopoBRep_Data

        Returns
        -------
        None

        """
        return _HLRTopoBRep.HLRTopoBRep_FaceIsoLiner_MakeIsoLine(*args)

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

        Parameters
        ----------
        E: TopoDS_Edge
        P: gp_Pnt
        Par: float
        Tol: float
        DS: HLRTopoBRep_Data

        Returns
        -------
        TopoDS_Vertex

        """
        return _HLRTopoBRep.HLRTopoBRep_FaceIsoLiner_MakeVertex(*args)

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

        Parameters
        ----------
        FI: int
        F: TopoDS_Face
        DS: HLRTopoBRep_Data
        nbIsos: int

        Returns
        -------
        None

        """
        return _HLRTopoBRep.HLRTopoBRep_FaceIsoLiner_Perform(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _HLRTopoBRep.HLRTopoBRep_FaceIsoLiner_swiginit(self, _HLRTopoBRep.new_HLRTopoBRep_FaceIsoLiner())
    __swig_destroy__ = _HLRTopoBRep.delete_HLRTopoBRep_FaceIsoLiner

# Register HLRTopoBRep_FaceIsoLiner in _HLRTopoBRep:
_HLRTopoBRep.HLRTopoBRep_FaceIsoLiner_swigregister(HLRTopoBRep_FaceIsoLiner)

def HLRTopoBRep_FaceIsoLiner_MakeIsoLine(*args) -> "void":
    r"""
    No available documentation.

    Parameters
    ----------
    F: TopoDS_Face
    Iso: Geom2d_Line
    V1: TopoDS_Vertex
    V2: TopoDS_Vertex
    U1: float
    U2: float
    Tol: float
    DS: HLRTopoBRep_Data

    Returns
    -------
    None

    """
    return _HLRTopoBRep.HLRTopoBRep_FaceIsoLiner_MakeIsoLine(*args)

def HLRTopoBRep_FaceIsoLiner_MakeVertex(*args) -> "TopoDS_Vertex":
    r"""
    No available documentation.

    Parameters
    ----------
    E: TopoDS_Edge
    P: gp_Pnt
    Par: float
    Tol: float
    DS: HLRTopoBRep_Data

    Returns
    -------
    TopoDS_Vertex

    """
    return _HLRTopoBRep.HLRTopoBRep_FaceIsoLiner_MakeVertex(*args)

def HLRTopoBRep_FaceIsoLiner_Perform(*args) -> "void":
    r"""
    No available documentation.

    Parameters
    ----------
    FI: int
    F: TopoDS_Face
    DS: HLRTopoBRep_Data
    nbIsos: int

    Returns
    -------
    None

    """
    return _HLRTopoBRep.HLRTopoBRep_FaceIsoLiner_Perform(*args)

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

    def __init__(self, *args):
        r"""
        No available documentation.

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

        Parameters
        ----------
        OriSh: TopoDS_Shape

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

        Parameters
        ----------
        OriS: TopoDS_Shape
        OutS: TopoDS_Shape

        Returns
        -------
        None

        """
        _HLRTopoBRep.HLRTopoBRep_OutLiner_swiginit(self, _HLRTopoBRep.new_HLRTopoBRep_OutLiner(*args))

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

        Returns
        -------
        HLRTopoBRep_Data

        """
        return _HLRTopoBRep.HLRTopoBRep_OutLiner_DataStructure(self, *args)

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

        Parameters
        ----------
        P: HLRAlgo_Projector
        MST: BRepTopAdaptor_MapOfShapeTool
        nbIso: int

        Returns
        -------
        None

        """
        return _HLRTopoBRep.HLRTopoBRep_OutLiner_Fill(self, *args)

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

        Parameters
        ----------
        OriS: TopoDS_Shape

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

        Returns
        -------
        TopoDS_Shape

        """
        return _HLRTopoBRep.HLRTopoBRep_OutLiner_OriginalShape(self, *args)

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

        Parameters
        ----------
        OutS: TopoDS_Shape

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

        Returns
        -------
        TopoDS_Shape

        """
        return _HLRTopoBRep.HLRTopoBRep_OutLiner_OutLinedShape(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _HLRTopoBRep.delete_HLRTopoBRep_OutLiner

# Register HLRTopoBRep_OutLiner in _HLRTopoBRep:
_HLRTopoBRep.HLRTopoBRep_OutLiner_swigregister(HLRTopoBRep_OutLiner)

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

    def __init__(self, *args):
        r"""
        No available documentation.

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

        Parameters
        ----------
        P: float
        V: TopoDS_Shape

        Returns
        -------
        None

        """
        _HLRTopoBRep.HLRTopoBRep_VData_swiginit(self, _HLRTopoBRep.new_HLRTopoBRep_VData(*args))

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

        Returns
        -------
        float

        """
        return _HLRTopoBRep.HLRTopoBRep_VData_Parameter(self, *args)

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

        Returns
        -------
        TopoDS_Shape

        """
        return _HLRTopoBRep.HLRTopoBRep_VData_Vertex(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _HLRTopoBRep.delete_HLRTopoBRep_VData

# Register HLRTopoBRep_VData in _HLRTopoBRep:
_HLRTopoBRep.HLRTopoBRep_VData_swigregister(HLRTopoBRep_VData)





