# This file was automatically generated by SWIG (https://www.swig.org).
# Version 4.2.1
#
# Do not make changes to this file unless you know what you are doing - modify
# the SWIG interface file instead.

"""
BRepClass3d module, see official documentation at
https://www.opencascade.com/doc/occt-7.7.0/refman/html/package_brepclass3d.html
"""

from sys import version_info as _swig_python_version_info
# Import the low-level C/C++ module
if __package__ or "." in __name__:
    from . import _BRepClass3d
else:
    import _BRepClass3d

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

def _swig_repr(self):
    try:
        strthis = "proxy of " + self.this.__repr__()
    except __builtin__.Exception:
        strthis = ""
    return "<%s.%s; %s >" % (self.__class__.__module__, self.__class__.__name__, strthis,)


def _swig_setattr_nondynamic_instance_variable(set):
    def set_instance_attr(self, name, value):
        if name == "this":
            set(self, name, value)
        elif name == "thisown":
            self.this.own(value)
        elif hasattr(self, name) and isinstance(getattr(type(self), name), property):
            set(self, name, value)
        else:
            raise AttributeError("You cannot add instance attributes to %s" % self)
    return set_instance_attr


def _swig_setattr_nondynamic_class_variable(set):
    def set_class_attr(cls, name, value):
        if hasattr(cls, name) and not isinstance(getattr(cls, name), property):
            set(cls, name, value)
        else:
            raise AttributeError("You cannot add class attributes to %s" % cls)
    return set_class_attr


def _swig_add_metaclass(metaclass):
    """Class decorator for adding a metaclass to a SWIG wrapped class - a slimmed down version of six.add_metaclass"""
    def wrapper(cls):
        return metaclass(cls.__name__, cls.__bases__, cls.__dict__.copy())
    return wrapper


class _SwigNonDynamicMeta(type):
    """Meta class to enforce nondynamic attributes (no new attributes) for a class"""
    __setattr__ = _swig_setattr_nondynamic_class_variable(type.__setattr__)


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

    def __init__(self, *args, **kwargs):
        raise AttributeError("No constructor defined - class is abstract")
    __repr__ = _swig_repr
    __swig_destroy__ = _BRepClass3d.delete_SwigPyIterator

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    def __sub__(self, *args):
        return _BRepClass3d.SwigPyIterator___sub__(self, *args)
    def __iter__(self):
        return self

# Register SwigPyIterator in _BRepClass3d:
_BRepClass3d.SwigPyIterator_swigregister(SwigPyIterator)

def _dumps_object(klass):
    """ Overwrite default string output for any wrapped object.
    By default, __repr__ method returns something like:
    <OCC.Core.TopoDS.TopoDS_Shape; proxy of <Swig Object of type 'TopoDS_Shape *' at 0x02BB0758> >
    This is too much verbose.
    We prefer :
    <class 'gp_Pnt'>
    or
    <class 'TopoDS_Shape'>
    """
    klass_name = str(klass.__class__).split(".")[3].split("'")[0]
    repr_string = "<class '" + klass_name + "'"
# for TopoDS_Shape, we also look for the base type
    if klass_name == "TopoDS_Shape":
        if klass.IsNull():
            repr_string += ": Null>"
            return repr_string
        st = klass.ShapeType()
        types = {OCC.Core.TopAbs.TopAbs_VERTEX: "Vertex",
                 OCC.Core.TopAbs.TopAbs_SOLID: "Solid",
                 OCC.Core.TopAbs.TopAbs_EDGE: "Edge",
                 OCC.Core.TopAbs.TopAbs_FACE: "Face",
                 OCC.Core.TopAbs.TopAbs_SHELL: "Shell",
                 OCC.Core.TopAbs.TopAbs_WIRE: "Wire",
                 OCC.Core.TopAbs.TopAbs_COMPOUND: "Compound",
                 OCC.Core.TopAbs.TopAbs_COMPSOLID: "Compsolid"}
        repr_string += "; Type:%s" % types[st]        
    elif hasattr(klass, "IsNull"):
        if klass.IsNull():
            repr_string += "; Null"
    repr_string += ">"
    return repr_string


def process_exception(error, method_name, class_name):
    return _BRepClass3d.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.IntCurveSurface
import OCC.Core.math
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.Intf
import OCC.Core.Bnd
import OCC.Core.BVH
import OCC.Core.IntSurf
import OCC.Core.TopTools
import OCC.Core.IntCurvesFace
import OCC.Core.BRepAdaptor
import OCC.Core.GeomAdaptor
import OCC.Core.Geom2dAdaptor

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



class BRepClass3d_BndBoxTree(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):
        _BRepClass3d.BRepClass3d_BndBoxTree_swiginit(self, _BRepClass3d.new_BRepClass3d_BndBoxTree(*args))

    def Add(self, theObj, theBnd):
        return _BRepClass3d.BRepClass3d_BndBoxTree_Add(self, theObj, theBnd)

    def Select(self, theSelector):
        return _BRepClass3d.BRepClass3d_BndBoxTree_Select(self, theSelector)

    def Clear(self, aNewAlloc=0):
        return _BRepClass3d.BRepClass3d_BndBoxTree_Clear(self, aNewAlloc)

    def IsEmpty(self):
        return _BRepClass3d.BRepClass3d_BndBoxTree_IsEmpty(self)

    def Root(self):
        return _BRepClass3d.BRepClass3d_BndBoxTree_Root(self)
    __swig_destroy__ = _BRepClass3d.delete_BRepClass3d_BndBoxTree

    def Allocator(self):
        return _BRepClass3d.BRepClass3d_BndBoxTree_Allocator(self)

# Register BRepClass3d_BndBoxTree in _BRepClass3d:
_BRepClass3d.BRepClass3d_BndBoxTree_swigregister(BRepClass3d_BndBoxTree)
class BRepClass3d_MapOfInter(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self):
        return _BRepClass3d.BRepClass3d_MapOfInter_begin(self)

    def end(self):
        return _BRepClass3d.BRepClass3d_MapOfInter_end(self)

    def cbegin(self):
        return _BRepClass3d.BRepClass3d_MapOfInter_cbegin(self)

    def cend(self):
        return _BRepClass3d.BRepClass3d_MapOfInter_cend(self)

    def __init__(self, *args):
        _BRepClass3d.BRepClass3d_MapOfInter_swiginit(self, _BRepClass3d.new_BRepClass3d_MapOfInter(*args))

    def Exchange(self, theOther):
        return _BRepClass3d.BRepClass3d_MapOfInter_Exchange(self, theOther)

    def Assign(self, theOther):
        return _BRepClass3d.BRepClass3d_MapOfInter_Assign(self, theOther)

    def Set(self, theOther):
        return _BRepClass3d.BRepClass3d_MapOfInter_Set(self, theOther)

    def ReSize(self, N):
        return _BRepClass3d.BRepClass3d_MapOfInter_ReSize(self, N)

    def Bind(self, theKey, theItem):
        return _BRepClass3d.BRepClass3d_MapOfInter_Bind(self, theKey, theItem)

    def Bound(self, theKey, theItem):
        return _BRepClass3d.BRepClass3d_MapOfInter_Bound(self, theKey, theItem)

    def IsBound(self, theKey):
        return _BRepClass3d.BRepClass3d_MapOfInter_IsBound(self, theKey)

    def UnBind(self, theKey):
        return _BRepClass3d.BRepClass3d_MapOfInter_UnBind(self, theKey)

    def Seek(self, theKey):
        return _BRepClass3d.BRepClass3d_MapOfInter_Seek(self, theKey)

    def Find(self, *args):
        return _BRepClass3d.BRepClass3d_MapOfInter_Find(self, *args)

    def ChangeSeek(self, theKey):
        return _BRepClass3d.BRepClass3d_MapOfInter_ChangeSeek(self, theKey)

    def ChangeFind(self, theKey):
        return _BRepClass3d.BRepClass3d_MapOfInter_ChangeFind(self, theKey)

    def __call__(self, *args):
        return _BRepClass3d.BRepClass3d_MapOfInter___call__(self, *args)

    def Clear(self, *args):
        return _BRepClass3d.BRepClass3d_MapOfInter_Clear(self, *args)
    __swig_destroy__ = _BRepClass3d.delete_BRepClass3d_MapOfInter

    def Size(self):
        return _BRepClass3d.BRepClass3d_MapOfInter_Size(self)

# Register BRepClass3d_MapOfInter in _BRepClass3d:
_BRepClass3d.BRepClass3d_MapOfInter_swigregister(BRepClass3d_MapOfInter)
class brepclass3d(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        S: TopoDS_Solid

        Return
        -------
        TopoDS_Shell

        Description
        -----------
        Returns the outer most shell of <s>. returns a null shell if <s> has no outer shell. if <s> has only one shell, then it will return, without checking orientation.

        """
        return _BRepClass3d.brepclass3d_OuterShell(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _BRepClass3d.brepclass3d_swiginit(self, _BRepClass3d.new_brepclass3d())
    __swig_destroy__ = _BRepClass3d.delete_brepclass3d

# Register brepclass3d in _BRepClass3d:
_BRepClass3d.brepclass3d_swigregister(brepclass3d)
class BRepClass3d_Intersector3d(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Empty constructor.

        """
        _BRepClass3d.BRepClass3d_Intersector3d_swiginit(self, _BRepClass3d.new_BRepClass3d_Intersector3d(*args))

    def Face(self, *args):
        r"""
        Return
        -------
        TopoDS_Face

        Description
        -----------
        Returns the significant face used to determine the intersection.

        """
        return _BRepClass3d.BRepClass3d_Intersector3d_Face(self, *args)

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

        Description
        -----------
        True is returned if a point has been found.

        """
        return _BRepClass3d.BRepClass3d_Intersector3d_HasAPoint(self, *args)

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

        Description
        -----------
        True is returned when the intersection have been computed.

        """
        return _BRepClass3d.BRepClass3d_Intersector3d_IsDone(self, *args)

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

        Parameters
        ----------
        L: gp_Lin
        Prm: float
        Tol: float
        F: TopoDS_Face

        Return
        -------
        None

        Description
        -----------
        Perform the intersection between the segment l(0) ... l(prm) and the shape <sh>. //! only the point with the smallest parameter on the line is returned. //! the tolerance <tol> is used to determine if the first point of the segment is near the face. in that case, the parameter of the intersection point on the line can be a negative value (greater than -tol).

        """
        return _BRepClass3d.BRepClass3d_Intersector3d_Perform(self, *args)

    def Pnt(self, *args):
        r"""
        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns the geometric point of the intersection between the line and the surface.

        """
        return _BRepClass3d.BRepClass3d_Intersector3d_Pnt(self, *args)

    def State(self, *args):
        r"""
        Return
        -------
        TopAbs_State

        Description
        -----------
        Returns the state of the point on the face. the values can be either topabs_in ( the point is in the face) or topabs_on ( the point is on a boundary of the face).

        """
        return _BRepClass3d.BRepClass3d_Intersector3d_State(self, *args)

    def Transition(self, *args):
        r"""
        Return
        -------
        IntCurveSurface_TransitionOnCurve

        Description
        -----------
        Returns the transition of the line on the surface.

        """
        return _BRepClass3d.BRepClass3d_Intersector3d_Transition(self, *args)

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

        Description
        -----------
        Returns the u parameter of the intersection point on the surface.

        """
        return _BRepClass3d.BRepClass3d_Intersector3d_UParameter(self, *args)

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

        Description
        -----------
        Returns the v parameter of the intersection point on the surface.

        """
        return _BRepClass3d.BRepClass3d_Intersector3d_VParameter(self, *args)

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

        Description
        -----------
        Returns the parameter of the intersection point on the line.

        """
        return _BRepClass3d.BRepClass3d_Intersector3d_WParameter(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepClass3d.delete_BRepClass3d_Intersector3d

# Register BRepClass3d_Intersector3d in _BRepClass3d:
_BRepClass3d.BRepClass3d_Intersector3d_swigregister(BRepClass3d_Intersector3d)
class BRepClass3d_SClassifier(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Empty constructor.

        Parameters
        ----------
        S: BRepClass3d_SolidExplorer
        P: gp_Pnt
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Constructor to classify the point p with the tolerance tol on the solid s.

        """
        _BRepClass3d.BRepClass3d_SClassifier_swiginit(self, _BRepClass3d.new_BRepClass3d_SClassifier(*args))

    def Face(self, *args):
        r"""
        Return
        -------
        TopoDS_Face

        Description
        -----------
        Returns the face used to determine the classification. when the state is on, this is the face containing the point. //! when rejected() returns true, face() has no signification.

        """
        return _BRepClass3d.BRepClass3d_SClassifier_Face(self, *args)

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

        Description
        -----------
        Returns true when the point is a point of a face.

        """
        return _BRepClass3d.BRepClass3d_SClassifier_IsOnAFace(self, *args)

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

        Parameters
        ----------
        S: BRepClass3d_SolidExplorer
        P: gp_Pnt
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Classify the point p with the tolerance tol on the solid s.

        """
        return _BRepClass3d.BRepClass3d_SClassifier_Perform(self, *args)

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

        Parameters
        ----------
        S: BRepClass3d_SolidExplorer
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Classify an infinite point with the tolerance tol on the solid s.

        """
        return _BRepClass3d.BRepClass3d_SClassifier_PerformInfinitePoint(self, *args)

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

        Description
        -----------
        Returns true if the classification has been computed by rejection. the state is then out.

        """
        return _BRepClass3d.BRepClass3d_SClassifier_Rejected(self, *args)

    def State(self, *args):
        r"""
        Return
        -------
        TopAbs_State

        Description
        -----------
        Returns the result of the classification.

        """
        return _BRepClass3d.BRepClass3d_SClassifier_State(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepClass3d.delete_BRepClass3d_SClassifier

# Register BRepClass3d_SClassifier in _BRepClass3d:
_BRepClass3d.BRepClass3d_SClassifier_swigregister(BRepClass3d_SClassifier)
class BRepClass3d_SolidExplorer(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

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

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

        Return
        -------
        None

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

        """
        _BRepClass3d.BRepClass3d_SolidExplorer_swiginit(self, _BRepClass3d.new_BRepClass3d_SolidExplorer(*args))

    def Box(self, *args):
        r"""
        Return
        -------
        Bnd_Box

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

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_Box(self, *args)

    def CurrentFace(self, *args):
        r"""
        Return
        -------
        TopoDS_Face

        Description
        -----------
        Returns the current face.

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_CurrentFace(self, *args)

    def CurrentShell(self, *args):
        r"""
        Return
        -------
        TopoDS_Shell

        Description
        -----------
        Returns the current shell.

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_CurrentShell(self, *args)

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

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

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_Destroy(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt
        L: gp_Lin
        Par: float
        S: TopAbs_State

        Return
        -------
        None

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

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_DumpSegment(self, *args)

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

        Parameters
        ----------
        F: TopoDS_Face
        P: gp_Pnt

        Return
        -------
        Param: float

        Description
        -----------
        Compute a point p in the face f. param is a real in ]0,1[ and is used to initialise the algorithm. for different values , different points are returned.

        Parameters
        ----------
        F: TopoDS_Face
        P: gp_Pnt

        Return
        -------
        u: float
        v: float
        Param: float

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

        Parameters
        ----------
        F: TopoDS_Face
        P: gp_Pnt
        theVecD1U: gp_Vec
        theVecD1V: gp_Vec

        Return
        -------
        u: float
        v: float
        Param: float

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

        Parameters
        ----------
        F: TopoDS_Face
        P: gp_Pnt

        Return
        -------
        u: float
        v: float

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

        Parameters
        ----------
        F: TopoDS_Face
        P: gp_Pnt

        Return
        -------
        bool

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

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

        Return
        -------
        u: float
        v: float

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

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_FindAPointInTheFace(*args)

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

        Description
        -----------
        Returns the index of face for which last segment is calculated.

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_GetFaceSegmentIndex(self, *args)

    def GetMapEV(self, *args):
        r"""
        Return
        -------
        TopTools_IndexedMapOfShape

        Description
        -----------
        Return edge/vertices map for current shape.

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_GetMapEV(self, *args)

    def GetShape(self, *args):
        r"""
        Return
        -------
        TopoDS_Shape

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

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_GetShape(self, *args)

    def GetTree(self, *args):
        r"""
        Return
        -------
        BRepClass3d_BndBoxTree

        Description
        -----------
        Return ub-tree instance which is used for edge / vertex checks.

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_GetTree(self, *args)

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

        Description
        -----------
        Starts an exploration of the faces of the current shell.

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_InitFace(self, *args)

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

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

        Return
        -------
        None

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

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_InitShape(self, *args)

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

        Description
        -----------
        Starts an exploration of the shells.

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_InitShell(self, *args)

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

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

        Return
        -------
        IntCurvesFace_Intersector

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

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_Intersector(self, *args)

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

        Description
        -----------
        Returns true if current face in current shell.

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_MoreFace(self, *args)

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

        Description
        -----------
        Returns true if there is a current shell.

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_MoreShell(self, *args)

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

        Description
        -----------
        Sets the explorer to the next face of the current shell.

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_NextFace(self, *args)

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

        Description
        -----------
        Sets the explorer to the next shell.

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_NextShell(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt
        L: gp_Lin

        Return
        -------
        Par: float

        Description
        -----------
        Returns in <l>, <par> a segment having at least one intersection with the shape boundary to compute intersections. //! the first call to this method returns a line which point to a point of the first face of the shape. the second call provide a line to the second face and so on.

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_OtherSegment(self, *args)

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

        Parameters
        ----------
        F: TopoDS_Face
        P: gp_Pnt

        Return
        -------
        u: float
        v: float
        Param: float
        Index: int

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

        Parameters
        ----------
        F: TopoDS_Face
        P: gp_Pnt
        surf: BRepAdaptor_Surface
        u1: float
        v1: float
        u2: float
        v2: float

        Return
        -------
        u: float
        v: float
        Param: float
        Index: int

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

        Parameters
        ----------
        F: TopoDS_Face
        P: gp_Pnt
        surf: BRepAdaptor_Surface
        u1: float
        v1: float
        u2: float
        v2: float
        theVecD1U: gp_Vec
        theVecD1V: gp_Vec

        Return
        -------
        u: float
        v: float
        Param: float
        Index: int

        Description
        -----------
        <index> gives point index to search from and returns point index of succeseful search.

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_PointInTheFace(self, *args)

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

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

        Return
        -------
        bool

        Description
        -----------
        Should return true if p outside of bounding vol. of the shape.

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_Reject(self, *args)

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

        Parameters
        ----------
        L: gp_Lin

        Return
        -------
        bool

        Description
        -----------
        Returns true if the face is rejected.

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_RejectFace(self, *args)

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

        Parameters
        ----------
        L: gp_Lin

        Return
        -------
        bool

        Description
        -----------
        Returns true if the shell is rejected.

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_RejectShell(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt
        L: gp_Lin

        Return
        -------
        Par: float

        Description
        -----------
        Returns in <l>, <par> a segment having at least one intersection with the shape boundary to compute intersections.

        """
        return _BRepClass3d.BRepClass3d_SolidExplorer_Segment(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepClass3d.delete_BRepClass3d_SolidExplorer

# Register BRepClass3d_SolidExplorer in _BRepClass3d:
_BRepClass3d.BRepClass3d_SolidExplorer_swigregister(BRepClass3d_SolidExplorer)
class BRepClass3d_SolidPassiveClassifier(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Creates an undefined classifier.

        """
        _BRepClass3d.BRepClass3d_SolidPassiveClassifier_swiginit(self, _BRepClass3d.new_BRepClass3d_SolidPassiveClassifier(*args))

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

        Parameters
        ----------
        F: TopoDS_Face
        Or: TopAbs_Orientation

        Return
        -------
        None

        Description
        -----------
        Updates the classification process with the face <f> from the boundary.

        """
        return _BRepClass3d.BRepClass3d_SolidPassiveClassifier_Compare(self, *args)

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

        Description
        -----------
        Returns true if an intersection is computed.

        """
        return _BRepClass3d.BRepClass3d_SolidPassiveClassifier_HasIntersection(self, *args)

    def Intersector(self, *args):
        r"""
        Return
        -------
        BRepClass3d_Intersector3d

        Description
        -----------
        Returns the intersecting algorithm.

        """
        return _BRepClass3d.BRepClass3d_SolidPassiveClassifier_Intersector(self, *args)

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

        Description
        -----------
        Returns the current value of the parameter.

        """
        return _BRepClass3d.BRepClass3d_SolidPassiveClassifier_Parameter(self, *args)

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

        Parameters
        ----------
        L: gp_Lin
        P: float
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Starts a classification process. the point to classify is the origin of the line <l>. <p> is the original length of the segment on <l> used to compute intersections. <tol> is the tolerance attached to the intersections.

        """
        return _BRepClass3d.BRepClass3d_SolidPassiveClassifier_Reset(self, *args)

    def State(self, *args):
        r"""
        Return
        -------
        TopAbs_State

        Description
        -----------
        Returns the current state of the point.

        """
        return _BRepClass3d.BRepClass3d_SolidPassiveClassifier_State(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepClass3d.delete_BRepClass3d_SolidPassiveClassifier

# Register BRepClass3d_SolidPassiveClassifier in _BRepClass3d:
_BRepClass3d.BRepClass3d_SolidPassiveClassifier_swigregister(BRepClass3d_SolidPassiveClassifier)
class BRepClass3d_SolidClassifier(BRepClass3d_SClassifier):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Description
        -----------
        Empty constructor.

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

        Return
        -------
        None

        Description
        -----------
        Constructor from a shape.

        Parameters
        ----------
        S: TopoDS_Shape
        P: gp_Pnt
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Constructor to classify the point p with the tolerance tol on the solid s.

        """
        _BRepClass3d.BRepClass3d_SolidClassifier_swiginit(self, _BRepClass3d.new_BRepClass3d_SolidClassifier(*args))

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

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

        """
        return _BRepClass3d.BRepClass3d_SolidClassifier_Destroy(self, *args)

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

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

        Return
        -------
        None

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

        """
        return _BRepClass3d.BRepClass3d_SolidClassifier_Load(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Classify the point p with the tolerance tol on the solid s.

        """
        return _BRepClass3d.BRepClass3d_SolidClassifier_Perform(self, *args)

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

        Parameters
        ----------
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Classify an infinite point with the tolerance tol on the solid s. useful for compute the orientation of a solid.

        """
        return _BRepClass3d.BRepClass3d_SolidClassifier_PerformInfinitePoint(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepClass3d.delete_BRepClass3d_SolidClassifier

# Register BRepClass3d_SolidClassifier in _BRepClass3d:
_BRepClass3d.BRepClass3d_SolidClassifier_swigregister(BRepClass3d_SolidClassifier)

@classnotwrapped
class BRepClass3d_BndBoxTreeSelectorLine:
	pass

@classnotwrapped
class BRepClass3d_BndBoxTreeSelectorPoint:
	pass





@deprecated
def brepclass3d_OuterShell(*args):
	return brepclass3d.OuterShell(*args)

@deprecated
def BRepClass3d_SolidExplorer_FindAPointInTheFace(*args):
	return BRepClass3d_SolidExplorer.FindAPointInTheFace(*args)

@deprecated
def BRepClass3d_SolidExplorer_FindAPointInTheFace(*args):
	return BRepClass3d_SolidExplorer.FindAPointInTheFace(*args)

@deprecated
def BRepClass3d_SolidExplorer_FindAPointInTheFace(*args):
	return BRepClass3d_SolidExplorer.FindAPointInTheFace(*args)

@deprecated
def BRepClass3d_SolidExplorer_FindAPointInTheFace(*args):
	return BRepClass3d_SolidExplorer.FindAPointInTheFace(*args)

@deprecated
def BRepClass3d_SolidExplorer_FindAPointInTheFace(*args):
	return BRepClass3d_SolidExplorer.FindAPointInTheFace(*args)

@deprecated
def BRepClass3d_SolidExplorer_FindAPointInTheFace(*args):
	return BRepClass3d_SolidExplorer.FindAPointInTheFace(*args)



