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

"""
BRepClass module, see official documentation at
https://www.opencascade.com/doc/occt-7.7.0/refman/html/package_brepclass.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 _BRepClass
else:
    import _BRepClass

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _BRepClass:
_BRepClass.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 _BRepClass.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.TopTools
import OCC.Core.IntRes2d
import OCC.Core.Geom2dInt
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.math
import OCC.Core.IntCurve
import OCC.Core.Extrema
import OCC.Core.Adaptor3d
import OCC.Core.Geom
import OCC.Core.GeomAdaptor
import OCC.Core.Intf
import OCC.Core.Bnd
import OCC.Core.BVH

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



class BRepClass_Edge(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
        ----------
        E: TopoDS_Edge
        F: TopoDS_Face

        Return
        -------
        None

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

        """
        _BRepClass.BRepClass_Edge_swiginit(self, _BRepClass.new_BRepClass_Edge(*args))

    def Edge(self, *args):
        r"""
        Return
        -------
        TopoDS_Edge

        Description
        -----------
        Returns the current edge .

        """
        return _BRepClass.BRepClass_Edge_Edge(self, *args)

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

        Description
        -----------
        Returns the face for the current edge.

        """
        return _BRepClass.BRepClass_Edge_Face(self, *args)

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

        Description
        -----------
        Returns the maximum tolerance.

        """
        return _BRepClass.BRepClass_Edge_MaxTolerance(self, *args)

    def NextEdge(self, *args):
        r"""
        Return
        -------
        TopoDS_Edge

        Description
        -----------
        Returns the next edge.

        """
        return _BRepClass.BRepClass_Edge_NextEdge(self, *args)

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

        Parameters
        ----------
        theValue: float

        Return
        -------
        None

        Description
        -----------
        Sets the maximum tolerance at which to start checking in the intersector.

        """
        return _BRepClass.BRepClass_Edge_SetMaxTolerance(self, *args)

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

        Parameters
        ----------
        theMapVE: TopTools_IndexedDataMapOfShapeListOfShape

        Return
        -------
        None

        Description
        -----------
        Finds and sets the next edge for the current.

        """
        return _BRepClass.BRepClass_Edge_SetNextEdge(self, *args)

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

        Parameters
        ----------
        theValue: bool

        Return
        -------
        None

        Description
        -----------
        Sets the status of whether we are using boxes or not.

        """
        return _BRepClass.BRepClass_Edge_SetUseBndBox(self, *args)

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

        Description
        -----------
        Returns true if we are using boxes in the intersector.

        """
        return _BRepClass.BRepClass_Edge_UseBndBox(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepClass.delete_BRepClass_Edge

# Register BRepClass_Edge in _BRepClass:
_BRepClass.BRepClass_Edge_swigregister(BRepClass_Edge)
class BRepClass_FClass2dOfFClassifier(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.

        """
        _BRepClass.BRepClass_FClass2dOfFClassifier_swiginit(self, _BRepClass.new_BRepClass_FClass2dOfFClassifier(*args))

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

        Description
        -----------
        Returns 0 if the last compared edge had no relevant intersection. else returns the index of this intersection in the last intersection algorithm.

        """
        return _BRepClass.BRepClass_FClass2dOfFClassifier_ClosestIntersection(self, *args)

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

        Parameters
        ----------
        E: BRepClass_Edge
        Or: TopAbs_Orientation

        Return
        -------
        None

        Description
        -----------
        Updates the classification process with the edge <e> from the boundary.

        """
        return _BRepClass.BRepClass_FClass2dOfFClassifier_Compare(self, *args)

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

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

        """
        return _BRepClass.BRepClass_FClass2dOfFClassifier_Intersector(self, *args)

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

        Description
        -----------
        Returns the standard_true if the closest intersection point represents head or end of the edge. returns standard_false otherwise.

        """
        return _BRepClass.BRepClass_FClass2dOfFClassifier_IsHeadOrEnd(self, *args)

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

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

        """
        return _BRepClass.BRepClass_FClass2dOfFClassifier_Parameter(self, *args)

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

        Parameters
        ----------
        L: gp_Lin2d
        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 line segment in intersections.

        """
        return _BRepClass.BRepClass_FClass2dOfFClassifier_Reset(self, *args)

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

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

        """
        return _BRepClass.BRepClass_FClass2dOfFClassifier_State(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepClass.delete_BRepClass_FClass2dOfFClassifier

# Register BRepClass_FClass2dOfFClassifier in _BRepClass:
_BRepClass.BRepClass_FClass2dOfFClassifier_swigregister(BRepClass_FClass2dOfFClassifier)
class BRepClass_FClassifier(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, undefined algorithm.

        Parameters
        ----------
        F: BRepClass_FaceExplorer
        P: gp_Pnt2d
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Creates an algorithm to classify the point p with tolerance <t> on the face described by <f>.

        """
        _BRepClass.BRepClass_FClassifier_swiginit(self, _BRepClass.new_BRepClass_FClassifier(*args))

    def Edge(self, *args):
        r"""
        Return
        -------
        BRepClass_Edge

        Description
        -----------
        Returns the edge used to determine the classification. when the state is on this is the edge containing the point.

        """
        return _BRepClass.BRepClass_FClassifier_Edge(self, *args)

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

        Description
        -----------
        Returns the parameter on edge() used to determine the classification.

        """
        return _BRepClass.BRepClass_FClassifier_EdgeParameter(self, *args)

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

        Description
        -----------
        Returns true if the face contains no wire. the state is in.

        """
        return _BRepClass.BRepClass_FClassifier_NoWires(self, *args)

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

        Parameters
        ----------
        F: BRepClass_FaceExplorer
        P: gp_Pnt2d
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Classify the point p with tolerance <t> on the face described by <f>.

        """
        return _BRepClass.BRepClass_FClassifier_Perform(self, *args)

    def Position(self, *args):
        r"""
        Return
        -------
        IntRes2d_Position

        Description
        -----------
        Returns the position of the point on the edge returned by edge.

        """
        return _BRepClass.BRepClass_FClassifier_Position(self, *args)

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

        Description
        -----------
        Returns true when the state was computed by a rejection. the state is out.

        """
        return _BRepClass.BRepClass_FClassifier_Rejected(self, *args)

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

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

        """
        return _BRepClass.BRepClass_FClassifier_State(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepClass.delete_BRepClass_FClassifier

# Register BRepClass_FClassifier in _BRepClass:
_BRepClass.BRepClass_FClassifier_swigregister(BRepClass_FClassifier)
class BRepClass_FaceExplorer(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"""

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

        Return
        -------
        None

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

        """
        _BRepClass.BRepClass_FaceExplorer_swiginit(self, _BRepClass.new_BRepClass_FaceExplorer(*args))

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

        Parameters
        ----------
        thePoint: gp_Pnt2d

        Return
        -------
        bool

        Description
        -----------
        Checks the point and change its coords if it is located too far from the bounding box of the face. new coordinates of the point will be on the line between the point and the center of the bounding box. returns true if point was not changed.

        """
        return _BRepClass.BRepClass_FaceExplorer_CheckPoint(self, *args)

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

        Parameters
        ----------
        E: BRepClass_Edge

        Return
        -------
        Or: TopAbs_Orientation

        Description
        -----------
        Current edge in current wire and its orientation.

        """
        return _BRepClass.BRepClass_FaceExplorer_CurrentEdge(self, *args)

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

        Description
        -----------
        Starts an exploration of the edges of the current wire.

        """
        return _BRepClass.BRepClass_FaceExplorer_InitEdges(self, *args)

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

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

        """
        return _BRepClass.BRepClass_FaceExplorer_InitWires(self, *args)

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

        Description
        -----------
        Returns the maximum tolerance.

        """
        return _BRepClass.BRepClass_FaceExplorer_MaxTolerance(self, *args)

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

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

        """
        return _BRepClass.BRepClass_FaceExplorer_MoreEdges(self, *args)

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

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

        """
        return _BRepClass.BRepClass_FaceExplorer_MoreWires(self, *args)

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

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

        """
        return _BRepClass.BRepClass_FaceExplorer_NextEdge(self, *args)

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

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

        """
        return _BRepClass.BRepClass_FaceExplorer_NextWire(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt2d
        L: gp_Lin2d

        Return
        -------
        Par: float

        Description
        -----------
        Returns in <l>, <par> a segment having at least one intersection with the face boundary to compute intersections. each call gives another segment.

        """
        return _BRepClass.BRepClass_FaceExplorer_OtherSegment(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt2d

        Return
        -------
        bool

        Description
        -----------
        Should return true if the point is outside a bounding volume of the face.

        """
        return _BRepClass.BRepClass_FaceExplorer_Reject(self, *args)

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

        Parameters
        ----------
        L: gp_Lin2d
        Par: float

        Return
        -------
        bool

        Description
        -----------
        Returns true if the edge bounding volume does not intersect the segment.

        """
        return _BRepClass.BRepClass_FaceExplorer_RejectEdge(self, *args)

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

        Parameters
        ----------
        L: gp_Lin2d
        Par: float

        Return
        -------
        bool

        Description
        -----------
        Returns true if the wire bounding volume does not intersect the segment.

        """
        return _BRepClass.BRepClass_FaceExplorer_RejectWire(self, *args)

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

        Parameters
        ----------
        P: gp_Pnt2d
        L: gp_Lin2d

        Return
        -------
        Par: float

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

        """
        return _BRepClass.BRepClass_FaceExplorer_Segment(self, *args)

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

        Parameters
        ----------
        theValue: float

        Return
        -------
        None

        Description
        -----------
        Sets the maximum tolerance at which to start checking in the intersector.

        """
        return _BRepClass.BRepClass_FaceExplorer_SetMaxTolerance(self, *args)

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

        Parameters
        ----------
        theValue: bool

        Return
        -------
        None

        Description
        -----------
        Sets the status of whether we are using boxes or not.

        """
        return _BRepClass.BRepClass_FaceExplorer_SetUseBndBox(self, *args)

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

        Description
        -----------
        Returns true if we are using boxes in the intersector.

        """
        return _BRepClass.BRepClass_FaceExplorer_UseBndBox(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepClass.delete_BRepClass_FaceExplorer

# Register BRepClass_FaceExplorer in _BRepClass:
_BRepClass.BRepClass_FaceExplorer_swigregister(BRepClass_FaceExplorer)
class BRepClass_FacePassiveClassifier(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.

        """
        _BRepClass.BRepClass_FacePassiveClassifier_swiginit(self, _BRepClass.new_BRepClass_FacePassiveClassifier(*args))

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

        Description
        -----------
        Returns 0 if the last compared edge had no relevant intersection. else returns the index of this intersection in the last intersection algorithm.

        """
        return _BRepClass.BRepClass_FacePassiveClassifier_ClosestIntersection(self, *args)

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

        Parameters
        ----------
        E: BRepClass_Edge
        Or: TopAbs_Orientation

        Return
        -------
        None

        Description
        -----------
        Updates the classification process with the edge <e> from the boundary.

        """
        return _BRepClass.BRepClass_FacePassiveClassifier_Compare(self, *args)

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

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

        """
        return _BRepClass.BRepClass_FacePassiveClassifier_Intersector(self, *args)

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

        Description
        -----------
        Returns the standard_true if the closest intersection point represents head or end of the edge. returns standard_false otherwise.

        """
        return _BRepClass.BRepClass_FacePassiveClassifier_IsHeadOrEnd(self, *args)

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

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

        """
        return _BRepClass.BRepClass_FacePassiveClassifier_Parameter(self, *args)

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

        Parameters
        ----------
        L: gp_Lin2d
        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 line segment in intersections.

        """
        return _BRepClass.BRepClass_FacePassiveClassifier_Reset(self, *args)

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

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

        """
        return _BRepClass.BRepClass_FacePassiveClassifier_State(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepClass.delete_BRepClass_FacePassiveClassifier

# Register BRepClass_FacePassiveClassifier in _BRepClass:
_BRepClass.BRepClass_FacePassiveClassifier_swigregister(BRepClass_FacePassiveClassifier)
class BRepClass_Intersector(OCC.Core.Geom2dInt.Geom2dInt_IntConicCurveOfGInter):
    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.

        """
        _BRepClass.BRepClass_Intersector_swiginit(self, _BRepClass.new_BRepClass_Intersector(*args))

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

        Parameters
        ----------
        E: BRepClass_Edge
        U: float
        T: gp_Dir2d
        N: gp_Dir2d

        Return
        -------
        C: float

        Description
        -----------
        Returns in <t>, <n> and <c> the tangent, normal and curvature of the edge <e> at parameter value <u>.

        """
        return _BRepClass.BRepClass_Intersector_LocalGeometry(self, *args)

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

        Parameters
        ----------
        L: gp_Lin2d
        P: float
        Tol: float
        E: BRepClass_Edge

        Return
        -------
        None

        Description
        -----------
        Intersect the line segment and the edge.

        """
        return _BRepClass.BRepClass_Intersector_Perform(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepClass.delete_BRepClass_Intersector

# Register BRepClass_Intersector in _BRepClass:
_BRepClass.BRepClass_Intersector_swigregister(BRepClass_Intersector)
class BRepClass_FaceClassifier(BRepClass_FClassifier):
    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, undefined algorithm.

        Parameters
        ----------
        F: BRepClass_FaceExplorer
        P: gp_Pnt2d
        Tol: float

        Return
        -------
        None

        Description
        -----------
        Creates an algorithm to classify the point p with tolerance <t> on the face described by <f>.

        Parameters
        ----------
        theF: TopoDS_Face
        theP: gp_Pnt2d
        theTol: float
        theUseBndBox: bool (optional, default to Standard_False)
        theGapCheckTol: float (optional, default to 0.1)

        Return
        -------
        None

        Description
        -----------
        Creates an algorithm to classify the point p with tolerance <t> on the face <f>. recommended to use bnd_box if the number of edges > 10 and the geometry is mostly spline.

        Parameters
        ----------
        theF: TopoDS_Face
        theP: gp_Pnt
        theTol: float
        theUseBndBox: bool (optional, default to Standard_False)
        theGapCheckTol: float (optional, default to 0.1)

        Return
        -------
        None

        Description
        -----------
        Creates an algorithm to classify the point p with tolerance <t> on the face <f>. recommended to use bnd_box if the number of edges > 10 and the geometry is mostly spline.

        """
        _BRepClass.BRepClass_FaceClassifier_swiginit(self, _BRepClass.new_BRepClass_FaceClassifier(*args))

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

        Parameters
        ----------
        theF: TopoDS_Face
        theP: gp_Pnt2d
        theTol: float
        theUseBndBox: bool (optional, default to Standard_False)
        theGapCheckTol: float (optional, default to 0.1)

        Return
        -------
        None

        Description
        -----------
        Classify the point p with tolerance <t> on the face described by <f>. recommended to use bnd_box if the number of edges > 10 and the geometry is mostly spline.

        Parameters
        ----------
        theF: TopoDS_Face
        theP: gp_Pnt
        theTol: float
        theUseBndBox: bool (optional, default to Standard_False)
        theGapCheckTol: float (optional, default to 0.1)

        Return
        -------
        None

        Description
        -----------
        Classify the point p with tolerance <t> on the face described by <f>. recommended to use bnd_box if the number of edges > 10 and the geometry is mostly spline.

        """
        return _BRepClass.BRepClass_FaceClassifier_Perform(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _BRepClass.delete_BRepClass_FaceClassifier

# Register BRepClass_FaceClassifier in _BRepClass:
_BRepClass.BRepClass_FaceClassifier_swigregister(BRepClass_FaceClassifier)



