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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _StdPrs:
_StdPrs.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 _StdPrs.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.Geom
import OCC.Core.gp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.Prs3d
import OCC.Core.Graphic3d
import OCC.Core.BVH
import OCC.Core.Quantity
import OCC.Core.Aspect
import OCC.Core.Image
import OCC.Core.TopLoc
import OCC.Core.Bnd
import OCC.Core.OSD
import OCC.Core.Media
import OCC.Core.Poly
import OCC.Core.TShort
import OCC.Core.TopoDS
import OCC.Core.Message
import OCC.Core.TopAbs
import OCC.Core.Adaptor3d
import OCC.Core.Adaptor2d
import OCC.Core.Geom2d
import OCC.Core.math
import OCC.Core.HLRAlgo
import OCC.Core.BRepAdaptor
import OCC.Core.GeomAdaptor
import OCC.Core.Geom2dAdaptor
import OCC.Core.BRep
import OCC.Core.TopTools

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

StdPrs_Volume_Autodetection = _StdPrs.StdPrs_Volume_Autodetection
StdPrs_Volume_Closed = _StdPrs.StdPrs_Volume_Closed
StdPrs_Volume_Opened = _StdPrs.StdPrs_Volume_Opened


class StdPrs_Volume(IntEnum):
	StdPrs_Volume_Autodetection = 0
	StdPrs_Volume_Closed = 1
	StdPrs_Volume_Opened = 2
StdPrs_Volume_Autodetection = StdPrs_Volume.StdPrs_Volume_Autodetection
StdPrs_Volume_Closed = StdPrs_Volume.StdPrs_Volume_Closed
StdPrs_Volume_Opened = StdPrs_Volume.StdPrs_Volume_Opened


def Handle_StdPrs_BRepFont_Create() -> "opencascade::handle< StdPrs_BRepFont >":
    return _StdPrs.Handle_StdPrs_BRepFont_Create()

def Handle_StdPrs_BRepFont_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StdPrs_BRepFont >":
    return _StdPrs.Handle_StdPrs_BRepFont_DownCast(t)

def Handle_StdPrs_BRepFont_IsNull(t: "opencascade::handle< StdPrs_BRepFont > const &") -> "bool":
    return _StdPrs.Handle_StdPrs_BRepFont_IsNull(t)

def Handle_StdPrs_HLRShapeI_Create() -> "opencascade::handle< StdPrs_HLRShapeI >":
    return _StdPrs.Handle_StdPrs_HLRShapeI_Create()

def Handle_StdPrs_HLRShapeI_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StdPrs_HLRShapeI >":
    return _StdPrs.Handle_StdPrs_HLRShapeI_DownCast(t)

def Handle_StdPrs_HLRShapeI_IsNull(t: "opencascade::handle< StdPrs_HLRShapeI > const &") -> "bool":
    return _StdPrs.Handle_StdPrs_HLRShapeI_IsNull(t)

def Handle_StdPrs_HLRPolyShape_Create() -> "opencascade::handle< StdPrs_HLRPolyShape >":
    return _StdPrs.Handle_StdPrs_HLRPolyShape_Create()

def Handle_StdPrs_HLRPolyShape_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StdPrs_HLRPolyShape >":
    return _StdPrs.Handle_StdPrs_HLRPolyShape_DownCast(t)

def Handle_StdPrs_HLRPolyShape_IsNull(t: "opencascade::handle< StdPrs_HLRPolyShape > const &") -> "bool":
    return _StdPrs.Handle_StdPrs_HLRPolyShape_IsNull(t)

def Handle_StdPrs_HLRShape_Create() -> "opencascade::handle< StdPrs_HLRShape >":
    return _StdPrs.Handle_StdPrs_HLRShape_Create()

def Handle_StdPrs_HLRShape_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< StdPrs_HLRShape >":
    return _StdPrs.Handle_StdPrs_HLRShape_DownCast(t)

def Handle_StdPrs_HLRShape_IsNull(t: "opencascade::handle< StdPrs_HLRShape > const &") -> "bool":
    return _StdPrs.Handle_StdPrs_HLRShape_IsNull(t)
class StdPrs_BRepFont(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"""
        Empty constructor.

        Returns
        -------
        None
        Constructor with initialization. @param thefontpath full path to the font @param thesize the face size in model units @param thefaceid face id within the file (0 by default).

        Parameters
        ----------
        theFontPath: NCollection_String
        theSize: float
        theFaceId: int,optional
        	default value is 0

        Returns
        -------
        None
        Constructor with initialization. @param thefontname the font name @param thefontaspect the font style @param thesize the face size in model units @param thestrictlevel search strict level for using aliases and fallback.

        Parameters
        ----------
        theFontName: NCollection_String
        theFontAspect: Font_FontAspect
        theSize: float
        theStrictLevel: Font_StrictLevel,optional
        	default value is Font_StrictLevel_Any

        Returns
        -------
        None

        """
        _StdPrs.StdPrs_BRepFont_swiginit(self, _StdPrs.new_StdPrs_BRepFont(*args))

    def AdvanceX(self, *args) -> "Standard_Real":
        r"""
        Compute advance to the next character with kerning applied when applicable. assuming text rendered horizontally.

        Parameters
        ----------
        theUCharNext: Standard_Utf32Char

        Returns
        -------
        float
        Compute advance to the next character with kerning applied when applicable. assuming text rendered horizontally.

        Parameters
        ----------
        theUChar: Standard_Utf32Char
        theUCharNext: Standard_Utf32Char

        Returns
        -------
        float

        """
        return _StdPrs.StdPrs_BRepFont_AdvanceX(self, *args)

    def AdvanceY(self, *args) -> "Standard_Real":
        r"""
        Compute advance to the next character with kerning applied when applicable. assuming text rendered vertically.

        Parameters
        ----------
        theUCharNext: Standard_Utf32Char

        Returns
        -------
        float
        Compute advance to the next character with kerning applied when applicable. assuming text rendered vertically.

        Parameters
        ----------
        theUChar: Standard_Utf32Char
        theUCharNext: Standard_Utf32Char

        Returns
        -------
        float

        """
        return _StdPrs.StdPrs_BRepFont_AdvanceY(self, *args)

    def Ascender(self, *args) -> "Standard_Real":
        r"""
        Returns vertical distance from the horizontal baseline to the highest character coordinate.

        Returns
        -------
        float

        """
        return _StdPrs.StdPrs_BRepFont_Ascender(self, *args)

    def Descender(self, *args) -> "Standard_Real":
        r"""
        Returns vertical distance from the horizontal baseline to the lowest character coordinate.

        Returns
        -------
        float

        """
        return _StdPrs.StdPrs_BRepFont_Descender(self, *args)

    def FTFont(self, *args) -> "opencascade::handle< Font_FTFont > const &":
        r"""
        Return wrapper over freetype font.

        Returns
        -------
        opencascade::handle<Font_FTFont>

        """
        return _StdPrs.StdPrs_BRepFont_FTFont(self, *args)

    @staticmethod
    def FindAndCreate(*args) -> "opencascade::handle< StdPrs_BRepFont >":
        r"""
        Find the font initialize the font. @param thefontname the font name @param thefontaspect the font style @param thesize the face size in model units @param thestrictlevel search strict level for using aliases and fallback returns true on success.

        Parameters
        ----------
        theFontName: TCollection_AsciiString
        theFontAspect: Font_FontAspect
        theSize: float
        theStrictLevel: Font_StrictLevel,optional
        	default value is Font_StrictLevel_Any

        Returns
        -------
        opencascade::handle<StdPrs_BRepFont>

        """
        return _StdPrs.StdPrs_BRepFont_FindAndCreate(*args)

    def FindAndInit(self, *args) -> "bool":
        r"""
        Find (using font_fontmgr) and initialize the font from the given name. please take into account that size is specified not in typography points (pt.). if you need to specify size in points, value should be converted. formula for pt. -> m conversion: asizemeters = 0.0254 * thesizept / 72.0 @param thefontname the font name @param thefontaspect the font style @param thesize the face size in model units @param thestrictlevel search strict level for using aliases and fallback returns true on success.

        Parameters
        ----------
        theFontName: TCollection_AsciiString
        theFontAspect: Font_FontAspect
        theSize: float
        theStrictLevel: Font_StrictLevel,optional
        	default value is Font_StrictLevel_Any

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_BRepFont_FindAndInit(self, *args)

    def Init(self, *args) -> "bool":
        r"""
        Initialize the font. @param thefontpath full path to the font @param thesize the face size in model units @param thefaceid face id within the file (0 by default) returns true on success.

        Parameters
        ----------
        theFontPath: NCollection_String
        theSize: float
        theFaceId: int

        Returns
        -------
        bool
        Find (using font_fontmgr) and initialize the font from the given name. alias for findandinit() for backward compatibility.

        Parameters
        ----------
        theFontName: NCollection_String
        theFontAspect: Font_FontAspect
        theSize: float

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_BRepFont_Init(self, *args)

    def LineSpacing(self, *args) -> "Standard_Real":
        r"""
        Returns default line spacing (the baseline-to-baseline distance).

        Returns
        -------
        float

        """
        return _StdPrs.StdPrs_BRepFont_LineSpacing(self, *args)

    def Mutex(self, *args) -> "Standard_Mutex &":
        r"""
        Returns mutex.

        Returns
        -------
        Standard_Mutex

        """
        return _StdPrs.StdPrs_BRepFont_Mutex(self, *args)

    def PointSize(self, *args) -> "Standard_Real":
        r"""
        Configured point size.

        Returns
        -------
        float

        """
        return _StdPrs.StdPrs_BRepFont_PointSize(self, *args)

    def Release(self, *args) -> "void":
        r"""
        Release currently loaded font.

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_BRepFont_Release(self, *args)

    def RenderGlyph(self, *args) -> "TopoDS_Shape":
        r"""
        Render single glyph as topods_shape. @param thechar glyph identifier returns rendered glyph within cache, might be null shape.

        Parameters
        ----------
        theChar: Standard_Utf32Char

        Returns
        -------
        TopoDS_Shape

        """
        return _StdPrs.StdPrs_BRepFont_RenderGlyph(self, *args)

    def Scale(self, *args) -> "Standard_Real":
        r"""
        Returns scaling factor for current font size.

        Returns
        -------
        float

        """
        return _StdPrs.StdPrs_BRepFont_Scale(self, *args)

    def SetCompositeCurveMode(self, *args) -> "void":
        r"""
        Setup glyph geometry construction mode. by default algorithm creates independent topods_edge for each original curve in the glyph (line segment or bezie curve). algorithm might optionally create composite bspline curve for each contour which reduces memory footprint but limits curve class to c0. notice that altering this flag clears currently accumulated cache!.

        Parameters
        ----------
        theToConcatenate: bool

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_BRepFont_SetCompositeCurveMode(self, *args)

    def SetWidthScaling(self, *args) -> "void":
        r"""
        Setup glyph scaling along x-axis. by default glyphs are not scaled (scaling factor = 1.0).

        Parameters
        ----------
        theScaleFactor: float

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_BRepFont_SetWidthScaling(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StdPrs.delete_StdPrs_BRepFont

# Register StdPrs_BRepFont in _StdPrs:
_StdPrs.StdPrs_BRepFont_swigregister(StdPrs_BRepFont)

def StdPrs_BRepFont_FindAndCreate(*args) -> "opencascade::handle< StdPrs_BRepFont >":
    r"""
    Find the font initialize the font. @param thefontname the font name @param thefontaspect the font style @param thesize the face size in model units @param thestrictlevel search strict level for using aliases and fallback returns true on success.

    Parameters
    ----------
    theFontName: TCollection_AsciiString
    theFontAspect: Font_FontAspect
    theSize: float
    theStrictLevel: Font_StrictLevel,optional
    	default value is Font_StrictLevel_Any

    Returns
    -------
    opencascade::handle<StdPrs_BRepFont>

    """
    return _StdPrs.StdPrs_BRepFont_FindAndCreate(*args)

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

    def Perform(self, *args) -> "TopoDS_Shape":
        r"""
        Render text as brep shape. @param theformatter formatter which defines aligned text @param thepenloc start position and orientation on the baseline returns result shape with pen transformation applied as shape location.

        Parameters
        ----------
        theFont: StdPrs_BRepFont
        theFormatter: Font_TextFormatter
        thePenLoc: gp_Ax3,optional
        	default value is gp_Ax3()

        Returns
        -------
        TopoDS_Shape
        Render text as brep shape. @param thestring text in utf-8 encoding @param thepenloc start position and orientation on the baseline @param thehalign horizontal alignment of the text @param thevalign vertical alignment of the text returns result shape with pen transformation applied as shape location.

        Parameters
        ----------
        theFont: StdPrs_BRepFont
        theString: NCollection_String
        thePenLoc: gp_Ax3,optional
        	default value is gp_Ax3()
        theHAlign: Graphic3d_HorizontalTextAlignment,optional
        	default value is Graphic3d_HTA_LEFT
        theVAlign: Graphic3d_VerticalTextAlignment,optional
        	default value is Graphic3d_VTA_BOTTOM

        Returns
        -------
        TopoDS_Shape

        """
        return _StdPrs.StdPrs_BRepTextBuilder_Perform(self, *args)

    __repr__ = _dumps_object


    def __init__(self):
        _StdPrs.StdPrs_BRepTextBuilder_swiginit(self, _StdPrs.new_StdPrs_BRepTextBuilder())
    __swig_destroy__ = _StdPrs.delete_StdPrs_BRepTextBuilder

# Register StdPrs_BRepTextBuilder in _StdPrs:
_StdPrs.StdPrs_BRepTextBuilder_swigregister(StdPrs_BRepTextBuilder)

class StdPrs_Curve(OCC.Core.Prs3d.Prs3d_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def Add(*args) -> "void":
        r"""
        Adds to the presentation apresentation the drawing of the curve acurve. the aspect is defined by lineaspect in adrawer. if drawcurve equals standard_false the curve will not be displayed, it is used if the curve is a part of some shape and primitivearray visualization approach is activated (it is activated by default).

        Parameters
        ----------
        aPresentation: Prs3d_Presentation
        aCurve: Adaptor3d_Curve
        aDrawer: Prs3d_Drawer
        drawCurve: bool,optional
        	default value is Standard_True

        Returns
        -------
        None
        Adds to the presentation apresentation the drawing of the curve acurve. the aspect is defined by lineaspect in adrawer. the drawing will be limited between the points of parameter u1 and u2. if drawcurve equals standard_false the curve will not be displayed, it is used if the curve is a part of some shape and primitivearray visualization approach is activated (it is activated by default).

        Parameters
        ----------
        aPresentation: Prs3d_Presentation
        aCurve: Adaptor3d_Curve
        U1: float
        U2: float
        aDrawer: Prs3d_Drawer
        drawCurve: bool,optional
        	default value is Standard_True

        Returns
        -------
        None
        Adds to the presentation apresentation the drawing of the curve acurve. the aspect is the current aspect. adeflection is used in the circle case. points give a sequence of curve points. if drawcurve equals standard_false the curve will not be displayed, it is used if the curve is a part of some shape and primitivearray visualization approach is activated (it is activated by default).

        Parameters
        ----------
        aPresentation: Prs3d_Presentation
        aCurve: Adaptor3d_Curve
        aDrawer: Prs3d_Drawer
        Points: TColgp_SequenceOfPnt
        drawCurve: bool,optional
        	default value is Standard_True

        Returns
        -------
        None
        Adds to the presentation apresentation the drawing of the curve acurve. the aspect is the current aspect. the drawing will be limited between the points of parameter u1 and u2. adeflection is used in the circle case. points give a sequence of curve points. if drawcurve equals standard_false the curve will not be displayed, it is used if the curve is a part of some shape and primitivearray visualization approach is activated (it is activated by default).

        Parameters
        ----------
        aPresentation: Prs3d_Presentation
        aCurve: Adaptor3d_Curve
        U1: float
        U2: float
        Points: TColgp_SequenceOfPnt
        aNbPoints: int,optional
        	default value is 30
        drawCurve: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_Curve_Add(*args)

    @staticmethod
    def Match(*args) -> "Standard_Boolean":
        r"""
        Returns true if the distance between the point (x,y,z) and the drawing of the curve is less than adistance.

        Parameters
        ----------
        X: float
        Y: float
        Z: float
        aDistance: float
        aCurve: Adaptor3d_Curve
        aDrawer: Prs3d_Drawer

        Returns
        -------
        bool
        Returns true if the distance between the point (x,y,z) and the drawing of the curve is less than adistance.

        Parameters
        ----------
        X: float
        Y: float
        Z: float
        aDistance: float
        aCurve: Adaptor3d_Curve
        aDeflection: float
        aLimit: float
        aNbPoints: int

        Returns
        -------
        bool
        Returns true if the distance between the point (x,y,z) and the drawing of the curve acurve is less than adistance. the drawing is considered between the points of parameter u1 and u2;.

        Parameters
        ----------
        X: float
        Y: float
        Z: float
        aDistance: float
        aCurve: Adaptor3d_Curve
        U1: float
        U2: float
        aDrawer: Prs3d_Drawer

        Returns
        -------
        bool
        Returns true if the distance between the point (x,y,z) and the drawing of the curve acurve is less than adistance. the drawing is considered between the points of parameter u1 and u2;.

        Parameters
        ----------
        X: float
        Y: float
        Z: float
        aDistance: float
        aCurve: Adaptor3d_Curve
        U1: float
        U2: float
        aDeflection: float
        aNbPoints: int

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_Curve_Match(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _StdPrs.StdPrs_Curve_swiginit(self, _StdPrs.new_StdPrs_Curve())
    __swig_destroy__ = _StdPrs.delete_StdPrs_Curve

# Register StdPrs_Curve in _StdPrs:
_StdPrs.StdPrs_Curve_swigregister(StdPrs_Curve)

def StdPrs_Curve_Add(*args) -> "void":
    r"""
    Adds to the presentation apresentation the drawing of the curve acurve. the aspect is defined by lineaspect in adrawer. if drawcurve equals standard_false the curve will not be displayed, it is used if the curve is a part of some shape and primitivearray visualization approach is activated (it is activated by default).

    Parameters
    ----------
    aPresentation: Prs3d_Presentation
    aCurve: Adaptor3d_Curve
    aDrawer: Prs3d_Drawer
    drawCurve: bool,optional
    	default value is Standard_True

    Returns
    -------
    None
    Adds to the presentation apresentation the drawing of the curve acurve. the aspect is defined by lineaspect in adrawer. the drawing will be limited between the points of parameter u1 and u2. if drawcurve equals standard_false the curve will not be displayed, it is used if the curve is a part of some shape and primitivearray visualization approach is activated (it is activated by default).

    Parameters
    ----------
    aPresentation: Prs3d_Presentation
    aCurve: Adaptor3d_Curve
    U1: float
    U2: float
    aDrawer: Prs3d_Drawer
    drawCurve: bool,optional
    	default value is Standard_True

    Returns
    -------
    None
    Adds to the presentation apresentation the drawing of the curve acurve. the aspect is the current aspect. adeflection is used in the circle case. points give a sequence of curve points. if drawcurve equals standard_false the curve will not be displayed, it is used if the curve is a part of some shape and primitivearray visualization approach is activated (it is activated by default).

    Parameters
    ----------
    aPresentation: Prs3d_Presentation
    aCurve: Adaptor3d_Curve
    aDrawer: Prs3d_Drawer
    Points: TColgp_SequenceOfPnt
    drawCurve: bool,optional
    	default value is Standard_True

    Returns
    -------
    None
    Adds to the presentation apresentation the drawing of the curve acurve. the aspect is the current aspect. the drawing will be limited between the points of parameter u1 and u2. adeflection is used in the circle case. points give a sequence of curve points. if drawcurve equals standard_false the curve will not be displayed, it is used if the curve is a part of some shape and primitivearray visualization approach is activated (it is activated by default).

    Parameters
    ----------
    aPresentation: Prs3d_Presentation
    aCurve: Adaptor3d_Curve
    U1: float
    U2: float
    Points: TColgp_SequenceOfPnt
    aNbPoints: int,optional
    	default value is 30
    drawCurve: bool,optional
    	default value is Standard_True

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_Curve_Add(*args)

def StdPrs_Curve_Match(*args) -> "Standard_Boolean":
    r"""
    Returns true if the distance between the point (x,y,z) and the drawing of the curve is less than adistance.

    Parameters
    ----------
    X: float
    Y: float
    Z: float
    aDistance: float
    aCurve: Adaptor3d_Curve
    aDrawer: Prs3d_Drawer

    Returns
    -------
    bool
    Returns true if the distance between the point (x,y,z) and the drawing of the curve is less than adistance.

    Parameters
    ----------
    X: float
    Y: float
    Z: float
    aDistance: float
    aCurve: Adaptor3d_Curve
    aDeflection: float
    aLimit: float
    aNbPoints: int

    Returns
    -------
    bool
    Returns true if the distance between the point (x,y,z) and the drawing of the curve acurve is less than adistance. the drawing is considered between the points of parameter u1 and u2;.

    Parameters
    ----------
    X: float
    Y: float
    Z: float
    aDistance: float
    aCurve: Adaptor3d_Curve
    U1: float
    U2: float
    aDrawer: Prs3d_Drawer

    Returns
    -------
    bool
    Returns true if the distance between the point (x,y,z) and the drawing of the curve acurve is less than adistance. the drawing is considered between the points of parameter u1 and u2;.

    Parameters
    ----------
    X: float
    Y: float
    Z: float
    aDistance: float
    aCurve: Adaptor3d_Curve
    U1: float
    U2: float
    aDeflection: float
    aNbPoints: int

    Returns
    -------
    bool

    """
    return _StdPrs.StdPrs_Curve_Match(*args)

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

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

    def ComputeHLR(self, *args) -> "void":
        r"""
        Compute presentation for specified shape.

        Parameters
        ----------
        thePrs: Prs3d_Presentation
        theShape: TopoDS_Shape
        theDrawer: Prs3d_Drawer
        theProjector: Graphic3d_Camera

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_HLRShapeI_ComputeHLR(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _StdPrs.delete_StdPrs_HLRShapeI

# Register StdPrs_HLRShapeI in _StdPrs:
_StdPrs.StdPrs_HLRShapeI_swigregister(StdPrs_HLRShapeI)

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

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

        Parameters
        ----------
        TheShape: TopoDS_Shape
        TheProjector: HLRAlgo_Projector

        Returns
        -------
        None

        """
        _StdPrs.StdPrs_HLRToolShape_swiginit(self, _StdPrs.new_StdPrs_HLRToolShape(*args))

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

        Parameters
        ----------
        TheEdge: BRepAdaptor_Curve

        Returns
        -------
        U1: float
        U2: float

        """
        return _StdPrs.StdPrs_HLRToolShape_Hidden(self, *args)

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

        Parameters
        ----------
        EdgeNumber: int

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_HLRToolShape_InitHidden(self, *args)

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

        Parameters
        ----------
        EdgeNumber: int

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_HLRToolShape_InitVisible(self, *args)

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

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_HLRToolShape_MoreHidden(self, *args)

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

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_HLRToolShape_MoreVisible(self, *args)

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

        Returns
        -------
        int

        """
        return _StdPrs.StdPrs_HLRToolShape_NbEdges(self, *args)

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

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_HLRToolShape_NextHidden(self, *args)

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

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_HLRToolShape_NextVisible(self, *args)

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

        Parameters
        ----------
        TheEdge: BRepAdaptor_Curve

        Returns
        -------
        U1: float
        U2: float

        """
        return _StdPrs.StdPrs_HLRToolShape_Visible(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _StdPrs.delete_StdPrs_HLRToolShape

# Register StdPrs_HLRToolShape in _StdPrs:
_StdPrs.StdPrs_HLRToolShape_swigregister(StdPrs_HLRToolShape)

class StdPrs_Isolines(OCC.Core.Prs3d.Prs3d_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def Add(*args) -> "void":
        r"""
        Computes isolines presentation for a topods face. this method chooses proper version of isoline builder algorithm : on triangulation or surface depending on the flag passed from prs3d_drawer attributes. this method is a default way to display isolines for a given topods face. @param thepresentation [in] the presentation. @param theface [in] the face. @param thedrawer [in] the display settings. @param thedeflection [in] the deflection for isolines-on-surface version.

        Parameters
        ----------
        thePresentation: Prs3d_Presentation
        theFace: TopoDS_Face
        theDrawer: Prs3d_Drawer
        theDeflection: float

        Returns
        -------
        None
        Computes isolines presentation for a topods face. this method chooses proper version of isoline builder algorithm : on triangulation or surface depending on the flag passed from prs3d_drawer attributes. this method is a default way to display isolines for a given topods face. @param theface [in] the face. @param thedrawer [in] the display settings. @param thedeflection [in] the deflection for isolines-on-surface version.

        Parameters
        ----------
        theFace: TopoDS_Face
        theDrawer: Prs3d_Drawer
        theDeflection: float
        theUPolylines: Prs3d_NListOfSequenceOfPnt
        theVPolylines: Prs3d_NListOfSequenceOfPnt

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_Isolines_Add(*args)

    @staticmethod
    def AddOnSurface(*args) -> "void":
        r"""
        Computes isolines on surface and adds them to presentation. @param thepresentation [in] the presentation. @param theface [in] the face. @param thedrawer [in] the display settings. @param thedeflection [in] the deflection value.

        Parameters
        ----------
        thePresentation: Prs3d_Presentation
        theFace: TopoDS_Face
        theDrawer: Prs3d_Drawer
        theDeflection: float

        Returns
        -------
        None
        Computes isolines on surface and adds them to presentation. @param theface [in] the face @param thedrawer [in] the display settings @param thedeflection [in] the deflection value @param theupolylines [out] the sequence of result polylines @param thevpolylines [out] the sequence of result polylines.

        Parameters
        ----------
        theFace: TopoDS_Face
        theDrawer: Prs3d_Drawer
        theDeflection: float
        theUPolylines: Prs3d_NListOfSequenceOfPnt
        theVPolylines: Prs3d_NListOfSequenceOfPnt

        Returns
        -------
        None
        Computes isolines on surface and adds them to presentation. @param thepresentation [in] the presentation. @param thesurface [in] the surface. @param thedrawer [in] the display settings. @param thedeflection [in] the deflection value. @param theuisoparams [in] the parameters of u isolines to compute. @param thevisoparams [in] the parameters of v isolines to compute.

        Parameters
        ----------
        thePresentation: Prs3d_Presentation
        theSurface: BRepAdaptor_HSurface
        theDrawer: Prs3d_Drawer
        theDeflection: float
        theUIsoParams: TColStd_SequenceOfReal
        theVIsoParams: TColStd_SequenceOfReal

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_Isolines_AddOnSurface(*args)

    @staticmethod
    def AddOnTriangulation(*args) -> "void":
        r"""
        Computes isolines on triangulation and adds them to a presentation. @param thepresentation [in] the presentation. @param theface [in] the face. @param thedrawer [in] the display settings.

        Parameters
        ----------
        thePresentation: Prs3d_Presentation
        theFace: TopoDS_Face
        theDrawer: Prs3d_Drawer

        Returns
        -------
        None
        Computes isolines on triangulation. @param theface [in] the face. @param thedrawer [in] the display settings. @param theupolylines [out] the sequence of result polylines @param thevpolylines [out] the sequence of result polylines.

        Parameters
        ----------
        theFace: TopoDS_Face
        theDrawer: Prs3d_Drawer
        theUPolylines: Prs3d_NListOfSequenceOfPnt
        theVPolylines: Prs3d_NListOfSequenceOfPnt

        Returns
        -------
        None
        Computes isolines on triangulation and adds them to a presentation. @param thepresentation [in] the presentation. @param thetriangulation [in] the triangulation. @param thesurface [in] the definition of triangulated surface. the surface adapter is used to precisely evaluate isoline points using surface law and fit them on triangulation. if null is passed, the method will use linear interpolation of triangle node's uv coordinates to evaluate isoline points. @param thelocation [in] the location transformation defined for triangulation (surface). @param thedrawer [in] the display settings. @param theuisoparams [in] the parameters of u isolines to compute. @param thevisoparams [in] the parameters of v isolines to compute.

        Parameters
        ----------
        thePresentation: Prs3d_Presentation
        theTriangulation: Poly_Triangulation
        theSurface: Geom_Surface
        theLocation: TopLoc_Location
        theDrawer: Prs3d_Drawer
        theUIsoParams: TColStd_SequenceOfReal
        theVIsoParams: TColStd_SequenceOfReal

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_Isolines_AddOnTriangulation(*args)

    @staticmethod
    def UVIsoParameters(*args) -> "Standard_Real &, Standard_Real &, Standard_Real &, Standard_Real &":
        r"""
        Evalute sequence of parameters for drawing uv isolines for a given face. @param theface [in] the face. @param thenbisou [in] the number of u isolines. @param thenbisov [in] the number of v isolines. @param theuvlimit [in] the u, v parameter value limit. @param theuisoparams [out] the sequence of u isoline parameters. @param thevisoparams [out] the sequence of v isoline parameters. @param theumin [out] the lower u boundary of theface. @param theumax [out] the upper u boundary of theface. @param thevmin [out] the lower v boundary of theface. @param thevmax [out] the upper v boundary of theface.

        Parameters
        ----------
        theFace: TopoDS_Face
        theNbIsoU: int
        theNbIsoV: int
        theUVLimit: float
        theUIsoParams: TColStd_SequenceOfReal
        theVIsoParams: TColStd_SequenceOfReal

        Returns
        -------
        theUmin: float
        theUmax: float
        theVmin: float
        theVmax: float

        """
        return _StdPrs.StdPrs_Isolines_UVIsoParameters(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _StdPrs.StdPrs_Isolines_swiginit(self, _StdPrs.new_StdPrs_Isolines())
    __swig_destroy__ = _StdPrs.delete_StdPrs_Isolines

# Register StdPrs_Isolines in _StdPrs:
_StdPrs.StdPrs_Isolines_swigregister(StdPrs_Isolines)

def StdPrs_Isolines_Add(*args) -> "void":
    r"""
    Computes isolines presentation for a topods face. this method chooses proper version of isoline builder algorithm : on triangulation or surface depending on the flag passed from prs3d_drawer attributes. this method is a default way to display isolines for a given topods face. @param thepresentation [in] the presentation. @param theface [in] the face. @param thedrawer [in] the display settings. @param thedeflection [in] the deflection for isolines-on-surface version.

    Parameters
    ----------
    thePresentation: Prs3d_Presentation
    theFace: TopoDS_Face
    theDrawer: Prs3d_Drawer
    theDeflection: float

    Returns
    -------
    None
    Computes isolines presentation for a topods face. this method chooses proper version of isoline builder algorithm : on triangulation or surface depending on the flag passed from prs3d_drawer attributes. this method is a default way to display isolines for a given topods face. @param theface [in] the face. @param thedrawer [in] the display settings. @param thedeflection [in] the deflection for isolines-on-surface version.

    Parameters
    ----------
    theFace: TopoDS_Face
    theDrawer: Prs3d_Drawer
    theDeflection: float
    theUPolylines: Prs3d_NListOfSequenceOfPnt
    theVPolylines: Prs3d_NListOfSequenceOfPnt

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_Isolines_Add(*args)

def StdPrs_Isolines_AddOnSurface(*args) -> "void":
    r"""
    Computes isolines on surface and adds them to presentation. @param thepresentation [in] the presentation. @param theface [in] the face. @param thedrawer [in] the display settings. @param thedeflection [in] the deflection value.

    Parameters
    ----------
    thePresentation: Prs3d_Presentation
    theFace: TopoDS_Face
    theDrawer: Prs3d_Drawer
    theDeflection: float

    Returns
    -------
    None
    Computes isolines on surface and adds them to presentation. @param theface [in] the face @param thedrawer [in] the display settings @param thedeflection [in] the deflection value @param theupolylines [out] the sequence of result polylines @param thevpolylines [out] the sequence of result polylines.

    Parameters
    ----------
    theFace: TopoDS_Face
    theDrawer: Prs3d_Drawer
    theDeflection: float
    theUPolylines: Prs3d_NListOfSequenceOfPnt
    theVPolylines: Prs3d_NListOfSequenceOfPnt

    Returns
    -------
    None
    Computes isolines on surface and adds them to presentation. @param thepresentation [in] the presentation. @param thesurface [in] the surface. @param thedrawer [in] the display settings. @param thedeflection [in] the deflection value. @param theuisoparams [in] the parameters of u isolines to compute. @param thevisoparams [in] the parameters of v isolines to compute.

    Parameters
    ----------
    thePresentation: Prs3d_Presentation
    theSurface: BRepAdaptor_HSurface
    theDrawer: Prs3d_Drawer
    theDeflection: float
    theUIsoParams: TColStd_SequenceOfReal
    theVIsoParams: TColStd_SequenceOfReal

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_Isolines_AddOnSurface(*args)

def StdPrs_Isolines_AddOnTriangulation(*args) -> "void":
    r"""
    Computes isolines on triangulation and adds them to a presentation. @param thepresentation [in] the presentation. @param theface [in] the face. @param thedrawer [in] the display settings.

    Parameters
    ----------
    thePresentation: Prs3d_Presentation
    theFace: TopoDS_Face
    theDrawer: Prs3d_Drawer

    Returns
    -------
    None
    Computes isolines on triangulation. @param theface [in] the face. @param thedrawer [in] the display settings. @param theupolylines [out] the sequence of result polylines @param thevpolylines [out] the sequence of result polylines.

    Parameters
    ----------
    theFace: TopoDS_Face
    theDrawer: Prs3d_Drawer
    theUPolylines: Prs3d_NListOfSequenceOfPnt
    theVPolylines: Prs3d_NListOfSequenceOfPnt

    Returns
    -------
    None
    Computes isolines on triangulation and adds them to a presentation. @param thepresentation [in] the presentation. @param thetriangulation [in] the triangulation. @param thesurface [in] the definition of triangulated surface. the surface adapter is used to precisely evaluate isoline points using surface law and fit them on triangulation. if null is passed, the method will use linear interpolation of triangle node's uv coordinates to evaluate isoline points. @param thelocation [in] the location transformation defined for triangulation (surface). @param thedrawer [in] the display settings. @param theuisoparams [in] the parameters of u isolines to compute. @param thevisoparams [in] the parameters of v isolines to compute.

    Parameters
    ----------
    thePresentation: Prs3d_Presentation
    theTriangulation: Poly_Triangulation
    theSurface: Geom_Surface
    theLocation: TopLoc_Location
    theDrawer: Prs3d_Drawer
    theUIsoParams: TColStd_SequenceOfReal
    theVIsoParams: TColStd_SequenceOfReal

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_Isolines_AddOnTriangulation(*args)

def StdPrs_Isolines_UVIsoParameters(*args) -> "Standard_Real &, Standard_Real &, Standard_Real &, Standard_Real &":
    r"""
    Evalute sequence of parameters for drawing uv isolines for a given face. @param theface [in] the face. @param thenbisou [in] the number of u isolines. @param thenbisov [in] the number of v isolines. @param theuvlimit [in] the u, v parameter value limit. @param theuisoparams [out] the sequence of u isoline parameters. @param thevisoparams [out] the sequence of v isoline parameters. @param theumin [out] the lower u boundary of theface. @param theumax [out] the upper u boundary of theface. @param thevmin [out] the lower v boundary of theface. @param thevmax [out] the upper v boundary of theface.

    Parameters
    ----------
    theFace: TopoDS_Face
    theNbIsoU: int
    theNbIsoV: int
    theUVLimit: float
    theUIsoParams: TColStd_SequenceOfReal
    theVIsoParams: TColStd_SequenceOfReal

    Returns
    -------
    theUmin: float
    theUmax: float
    theVmin: float
    theVmax: float

    """
    return _StdPrs.StdPrs_Isolines_UVIsoParameters(*args)

class StdPrs_Plane(OCC.Core.Prs3d.Prs3d_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def Add(*args) -> "void":
        r"""
        Defines display of infinite planes. the infinite plane aplane is added to the display apresentation, and the attributes of the display are defined by the attribute manager adrawer.

        Parameters
        ----------
        aPresentation: Prs3d_Presentation
        aPlane: Adaptor3d_Surface
        aDrawer: Prs3d_Drawer

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_Plane_Add(*args)

    @staticmethod
    def Match(*args) -> "Standard_Boolean":
        r"""
        Returns true if the distance between the point (x,y,z) and the plane is less than adistance.

        Parameters
        ----------
        X: float
        Y: float
        Z: float
        aDistance: float
        aPlane: Adaptor3d_Surface
        aDrawer: Prs3d_Drawer

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_Plane_Match(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _StdPrs.StdPrs_Plane_swiginit(self, _StdPrs.new_StdPrs_Plane())
    __swig_destroy__ = _StdPrs.delete_StdPrs_Plane

# Register StdPrs_Plane in _StdPrs:
_StdPrs.StdPrs_Plane_swigregister(StdPrs_Plane)

def StdPrs_Plane_Add(*args) -> "void":
    r"""
    Defines display of infinite planes. the infinite plane aplane is added to the display apresentation, and the attributes of the display are defined by the attribute manager adrawer.

    Parameters
    ----------
    aPresentation: Prs3d_Presentation
    aPlane: Adaptor3d_Surface
    aDrawer: Prs3d_Drawer

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_Plane_Add(*args)

def StdPrs_Plane_Match(*args) -> "Standard_Boolean":
    r"""
    Returns true if the distance between the point (x,y,z) and the plane is less than adistance.

    Parameters
    ----------
    X: float
    Y: float
    Z: float
    aDistance: float
    aPlane: Adaptor3d_Surface
    aDrawer: Prs3d_Drawer

    Returns
    -------
    bool

    """
    return _StdPrs.StdPrs_Plane_Match(*args)

class StdPrs_PoleCurve(OCC.Core.Prs3d.Prs3d_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def Add(*args) -> "void":
        r"""
        Defines display of bspline and bezier curves. adds the 3d curve acurve to the stdprs_polecurve algorithm. this shape is found in the presentation object apresentation, and its display attributes are set in the attribute manager adrawer. the curve object from adaptor3d provides data from a geom curve. this makes it possible to use the surface in a geometric algorithm.

        Parameters
        ----------
        aPresentation: Prs3d_Presentation
        aCurve: Adaptor3d_Curve
        aDrawer: Prs3d_Drawer

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_PoleCurve_Add(*args)

    @staticmethod
    def Match(*args) -> "Standard_Boolean":
        r"""
        Returns true if the distance between the point (x,y,z) and the broken line made of the poles is less then adistance.

        Parameters
        ----------
        X: float
        Y: float
        Z: float
        aDistance: float
        aCurve: Adaptor3d_Curve
        aDrawer: Prs3d_Drawer

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_PoleCurve_Match(*args)

    @staticmethod
    def Pick(*args) -> "Standard_Integer":
        r"""
        Returns the pole the most near of the point (x,y,z) and returns its range. the distance between the pole and (x,y,z) must be less then adistance. if no pole corresponds, 0 is returned.

        Parameters
        ----------
        X: float
        Y: float
        Z: float
        aDistance: float
        aCurve: Adaptor3d_Curve
        aDrawer: Prs3d_Drawer

        Returns
        -------
        int

        """
        return _StdPrs.StdPrs_PoleCurve_Pick(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _StdPrs.StdPrs_PoleCurve_swiginit(self, _StdPrs.new_StdPrs_PoleCurve())
    __swig_destroy__ = _StdPrs.delete_StdPrs_PoleCurve

# Register StdPrs_PoleCurve in _StdPrs:
_StdPrs.StdPrs_PoleCurve_swigregister(StdPrs_PoleCurve)

def StdPrs_PoleCurve_Add(*args) -> "void":
    r"""
    Defines display of bspline and bezier curves. adds the 3d curve acurve to the stdprs_polecurve algorithm. this shape is found in the presentation object apresentation, and its display attributes are set in the attribute manager adrawer. the curve object from adaptor3d provides data from a geom curve. this makes it possible to use the surface in a geometric algorithm.

    Parameters
    ----------
    aPresentation: Prs3d_Presentation
    aCurve: Adaptor3d_Curve
    aDrawer: Prs3d_Drawer

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_PoleCurve_Add(*args)

def StdPrs_PoleCurve_Match(*args) -> "Standard_Boolean":
    r"""
    Returns true if the distance between the point (x,y,z) and the broken line made of the poles is less then adistance.

    Parameters
    ----------
    X: float
    Y: float
    Z: float
    aDistance: float
    aCurve: Adaptor3d_Curve
    aDrawer: Prs3d_Drawer

    Returns
    -------
    bool

    """
    return _StdPrs.StdPrs_PoleCurve_Match(*args)

def StdPrs_PoleCurve_Pick(*args) -> "Standard_Integer":
    r"""
    Returns the pole the most near of the point (x,y,z) and returns its range. the distance between the pole and (x,y,z) must be less then adistance. if no pole corresponds, 0 is returned.

    Parameters
    ----------
    X: float
    Y: float
    Z: float
    aDistance: float
    aCurve: Adaptor3d_Curve
    aDrawer: Prs3d_Drawer

    Returns
    -------
    int

    """
    return _StdPrs.StdPrs_PoleCurve_Pick(*args)

class StdPrs_ShadedShape(OCC.Core.Prs3d.Prs3d_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def Add(*args) -> "void":
        r"""
        Shades <theshape>. @param thevolumetype defines the way how to interpret input shapes - as closed volumes (to activate back-face culling and capping plane algorithms), as open volumes (shells or solids with holes) or to perform autodetection (would split input shape into two groups).

        Parameters
        ----------
        thePresentation: Prs3d_Presentation
        theShape: TopoDS_Shape
        theDrawer: Prs3d_Drawer
        theVolume: StdPrs_Volume,optional
        	default value is StdPrs_Volume_Autodetection

        Returns
        -------
        None
        Shades <theshape> with texture coordinates. @param thevolumetype defines the way how to interpret input shapes - as closed volumes (to activate back-face culling and capping plane algorithms), as open volumes (shells or solids with holes) or to perform autodetection (would split input shape into two groups).

        Parameters
        ----------
        thePresentation: Prs3d_Presentation
        theShape: TopoDS_Shape
        theDrawer: Prs3d_Drawer
        theHasTexels: bool
        theUVOrigin: gp_Pnt2d
        theUVRepeat: gp_Pnt2d
        theUVScale: gp_Pnt2d
        theVolume: StdPrs_Volume,optional
        	default value is StdPrs_Volume_Autodetection

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_ShadedShape_Add(*args)

    @staticmethod
    def AddWireframeForFacesWithoutTriangles(*args) -> "void":
        r"""
        Computes special wireframe presentation for faces without triangulation.

        Parameters
        ----------
        thePrs: Prs3d_Presentation
        theShape: TopoDS_Shape
        theDrawer: Prs3d_Drawer

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_ShadedShape_AddWireframeForFacesWithoutTriangles(*args)

    @staticmethod
    def AddWireframeForFreeElements(*args) -> "void":
        r"""
        Computes wireframe presentation for free wires and vertices.

        Parameters
        ----------
        thePrs: Prs3d_Presentation
        theShape: TopoDS_Shape
        theDrawer: Prs3d_Drawer

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_ShadedShape_AddWireframeForFreeElements(*args)

    @staticmethod
    def ExploreSolids(*args) -> "void":
        r"""
        Searches closed and unclosed subshapes in shape structure and puts them into two compounds for separate processing of closed and unclosed sub-shapes.

        Parameters
        ----------
        theShape: TopoDS_Shape
        theBuilder: BRep_Builder
        theClosed: TopoDS_Compound
        theOpened: TopoDS_Compound
        theIgnore1DSubShape: bool

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_ShadedShape_ExploreSolids(*args)

    @staticmethod
    def FillFaceBoundaries(*args) -> "opencascade::handle< Graphic3d_ArrayOfSegments >":
        r"""
        Define primitive array of boundary segments for specified shape. @param theshape segments array or null if specified face does not have computed triangulation @param theuppercontinuity the most edge continuity class to be included to result (edges with more continuity will be ignored).

        Parameters
        ----------
        theShape: TopoDS_Shape
        theUpperContinuity: GeomAbs_Shape,optional
        	default value is GeomAbs_CN

        Returns
        -------
        opencascade::handle<Graphic3d_ArrayOfSegments>

        """
        return _StdPrs.StdPrs_ShadedShape_FillFaceBoundaries(*args)

    @staticmethod
    def FillTriangles(*args) -> "opencascade::handle< Graphic3d_ArrayOfTriangles >":
        r"""
        Create primitive array with triangles for specified shape. @param theshape [in] the shape with precomputed triangulation.

        Parameters
        ----------
        theShape: TopoDS_Shape

        Returns
        -------
        opencascade::handle<Graphic3d_ArrayOfTriangles>
        Create primitive array of triangles for specified shape. @param theshape the shape with precomputed triangulation @param thehastexels define uv coordinates in primitive array @param theuvorigin origin for uv coordinates @param theuvrepeat repeat parameters for uv coordinates @param theuvscale scale coefficients for uv coordinates returns triangles array or null if specified face does not have computed triangulation.

        Parameters
        ----------
        theShape: TopoDS_Shape
        theHasTexels: bool
        theUVOrigin: gp_Pnt2d
        theUVRepeat: gp_Pnt2d
        theUVScale: gp_Pnt2d

        Returns
        -------
        opencascade::handle<Graphic3d_ArrayOfTriangles>

        """
        return _StdPrs.StdPrs_ShadedShape_FillTriangles(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _StdPrs.StdPrs_ShadedShape_swiginit(self, _StdPrs.new_StdPrs_ShadedShape())
    __swig_destroy__ = _StdPrs.delete_StdPrs_ShadedShape

# Register StdPrs_ShadedShape in _StdPrs:
_StdPrs.StdPrs_ShadedShape_swigregister(StdPrs_ShadedShape)

def StdPrs_ShadedShape_Add(*args) -> "void":
    r"""
    Shades <theshape>. @param thevolumetype defines the way how to interpret input shapes - as closed volumes (to activate back-face culling and capping plane algorithms), as open volumes (shells or solids with holes) or to perform autodetection (would split input shape into two groups).

    Parameters
    ----------
    thePresentation: Prs3d_Presentation
    theShape: TopoDS_Shape
    theDrawer: Prs3d_Drawer
    theVolume: StdPrs_Volume,optional
    	default value is StdPrs_Volume_Autodetection

    Returns
    -------
    None
    Shades <theshape> with texture coordinates. @param thevolumetype defines the way how to interpret input shapes - as closed volumes (to activate back-face culling and capping plane algorithms), as open volumes (shells or solids with holes) or to perform autodetection (would split input shape into two groups).

    Parameters
    ----------
    thePresentation: Prs3d_Presentation
    theShape: TopoDS_Shape
    theDrawer: Prs3d_Drawer
    theHasTexels: bool
    theUVOrigin: gp_Pnt2d
    theUVRepeat: gp_Pnt2d
    theUVScale: gp_Pnt2d
    theVolume: StdPrs_Volume,optional
    	default value is StdPrs_Volume_Autodetection

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_ShadedShape_Add(*args)

def StdPrs_ShadedShape_AddWireframeForFacesWithoutTriangles(*args) -> "void":
    r"""
    Computes special wireframe presentation for faces without triangulation.

    Parameters
    ----------
    thePrs: Prs3d_Presentation
    theShape: TopoDS_Shape
    theDrawer: Prs3d_Drawer

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_ShadedShape_AddWireframeForFacesWithoutTriangles(*args)

def StdPrs_ShadedShape_AddWireframeForFreeElements(*args) -> "void":
    r"""
    Computes wireframe presentation for free wires and vertices.

    Parameters
    ----------
    thePrs: Prs3d_Presentation
    theShape: TopoDS_Shape
    theDrawer: Prs3d_Drawer

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_ShadedShape_AddWireframeForFreeElements(*args)

def StdPrs_ShadedShape_ExploreSolids(*args) -> "void":
    r"""
    Searches closed and unclosed subshapes in shape structure and puts them into two compounds for separate processing of closed and unclosed sub-shapes.

    Parameters
    ----------
    theShape: TopoDS_Shape
    theBuilder: BRep_Builder
    theClosed: TopoDS_Compound
    theOpened: TopoDS_Compound
    theIgnore1DSubShape: bool

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_ShadedShape_ExploreSolids(*args)

def StdPrs_ShadedShape_FillFaceBoundaries(*args) -> "opencascade::handle< Graphic3d_ArrayOfSegments >":
    r"""
    Define primitive array of boundary segments for specified shape. @param theshape segments array or null if specified face does not have computed triangulation @param theuppercontinuity the most edge continuity class to be included to result (edges with more continuity will be ignored).

    Parameters
    ----------
    theShape: TopoDS_Shape
    theUpperContinuity: GeomAbs_Shape,optional
    	default value is GeomAbs_CN

    Returns
    -------
    opencascade::handle<Graphic3d_ArrayOfSegments>

    """
    return _StdPrs.StdPrs_ShadedShape_FillFaceBoundaries(*args)

def StdPrs_ShadedShape_FillTriangles(*args) -> "opencascade::handle< Graphic3d_ArrayOfTriangles >":
    r"""
    Create primitive array with triangles for specified shape. @param theshape [in] the shape with precomputed triangulation.

    Parameters
    ----------
    theShape: TopoDS_Shape

    Returns
    -------
    opencascade::handle<Graphic3d_ArrayOfTriangles>
    Create primitive array of triangles for specified shape. @param theshape the shape with precomputed triangulation @param thehastexels define uv coordinates in primitive array @param theuvorigin origin for uv coordinates @param theuvrepeat repeat parameters for uv coordinates @param theuvscale scale coefficients for uv coordinates returns triangles array or null if specified face does not have computed triangulation.

    Parameters
    ----------
    theShape: TopoDS_Shape
    theHasTexels: bool
    theUVOrigin: gp_Pnt2d
    theUVRepeat: gp_Pnt2d
    theUVScale: gp_Pnt2d

    Returns
    -------
    opencascade::handle<Graphic3d_ArrayOfTriangles>

    """
    return _StdPrs.StdPrs_ShadedShape_FillTriangles(*args)

class StdPrs_ShadedSurface(OCC.Core.Prs3d.Prs3d_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def Add(*args) -> "void":
        r"""
        Adds the surface asurface to the presentation object apresentation. the surface's display attributes are set in the attribute manager adrawer. the surface object from adaptor3d provides data from a geom surface in order to use the surface in an algorithm.

        Parameters
        ----------
        aPresentation: Prs3d_Presentation
        aSurface: Adaptor3d_Surface
        aDrawer: Prs3d_Drawer

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_ShadedSurface_Add(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _StdPrs.StdPrs_ShadedSurface_swiginit(self, _StdPrs.new_StdPrs_ShadedSurface())
    __swig_destroy__ = _StdPrs.delete_StdPrs_ShadedSurface

# Register StdPrs_ShadedSurface in _StdPrs:
_StdPrs.StdPrs_ShadedSurface_swigregister(StdPrs_ShadedSurface)

def StdPrs_ShadedSurface_Add(*args) -> "void":
    r"""
    Adds the surface asurface to the presentation object apresentation. the surface's display attributes are set in the attribute manager adrawer. the surface object from adaptor3d provides data from a geom surface in order to use the surface in an algorithm.

    Parameters
    ----------
    aPresentation: Prs3d_Presentation
    aSurface: Adaptor3d_Surface
    aDrawer: Prs3d_Drawer

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_ShadedSurface_Add(*args)

class StdPrs_ShapeTool(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"""
        Constructs the tool and initializes it using theshape and theallvertices (optional) arguments. by default, only isolated and internal vertices are considered, however if theallvertices argument is equal to true, all shape's vertices are taken into account.

        Parameters
        ----------
        theShape: TopoDS_Shape
        theAllVertices: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        _StdPrs.StdPrs_ShapeTool_swiginit(self, _StdPrs.new_StdPrs_ShapeTool(*args))

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

        Parameters
        ----------
        l: TopLoc_Location

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

        """
        return _StdPrs.StdPrs_ShapeTool_CurrentTriangulation(self, *args)

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

        Returns
        -------
        Bnd_Box

        """
        return _StdPrs.StdPrs_ShapeTool_CurveBound(self, *args)

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

        Returns
        -------
        Bnd_Box

        """
        return _StdPrs.StdPrs_ShapeTool_FaceBound(self, *args)

    def FacesOfEdge(self, *args) -> "opencascade::handle< TopTools_HSequenceOfShape >":
        r"""
        No available documentation.

        Returns
        -------
        opencascade::handle<TopTools_HSequenceOfShape>

        """
        return _StdPrs.StdPrs_ShapeTool_FacesOfEdge(self, *args)

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

        Returns
        -------
        TopoDS_Edge

        """
        return _StdPrs.StdPrs_ShapeTool_GetCurve(self, *args)

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

        Returns
        -------
        TopoDS_Face

        """
        return _StdPrs.StdPrs_ShapeTool_GetFace(self, *args)

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

        Returns
        -------
        TopoDS_Vertex

        """
        return _StdPrs.StdPrs_ShapeTool_GetVertex(self, *args)

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

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_ShapeTool_HasCurve(self, *args)

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

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_ShapeTool_HasSurface(self, *args)

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

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_ShapeTool_InitCurve(self, *args)

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

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_ShapeTool_InitFace(self, *args)

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

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_ShapeTool_InitVertex(self, *args)

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

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

        Parameters
        ----------
        theFace: TopoDS_Face

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_ShapeTool_IsPlanarFace(*args)

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

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_ShapeTool_MoreCurve(self, *args)

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

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_ShapeTool_MoreFace(self, *args)

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

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_ShapeTool_MoreVertex(self, *args)

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

        Returns
        -------
        int

        """
        return _StdPrs.StdPrs_ShapeTool_Neighbours(self, *args)

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

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_ShapeTool_NextCurve(self, *args)

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

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_ShapeTool_NextFace(self, *args)

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

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_ShapeTool_NextVertex(self, *args)

    def Polygon3D(self, *args) -> "opencascade::handle< Poly_Polygon3D >":
        r"""
        No available documentation.

        Parameters
        ----------
        l: TopLoc_Location

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

        """
        return _StdPrs.StdPrs_ShapeTool_Polygon3D(self, *args)

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

        Parameters
        ----------
        Indices: Poly_PolygonOnTriangulation
        T: Poly_Triangulation
        l: TopLoc_Location

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_ShapeTool_PolygonOnTriangulation(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _StdPrs.delete_StdPrs_ShapeTool

# Register StdPrs_ShapeTool in _StdPrs:
_StdPrs.StdPrs_ShapeTool_swigregister(StdPrs_ShapeTool)

def StdPrs_ShapeTool_IsPlanarFace(*args) -> "Standard_Boolean":
    r"""
    No available documentation.

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

    Parameters
    ----------
    theFace: TopoDS_Face

    Returns
    -------
    bool

    """
    return _StdPrs.StdPrs_ShapeTool_IsPlanarFace(*args)

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

    @staticmethod
    def Coord(*args) -> "Standard_Real &, Standard_Real &, Standard_Real &":
        r"""
        No available documentation.

        Parameters
        ----------
        aPoint: Geom_Point

        Returns
        -------
        X: float
        Y: float
        Z: float

        """
        return _StdPrs.StdPrs_ToolPoint_Coord(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _StdPrs.StdPrs_ToolPoint_swiginit(self, _StdPrs.new_StdPrs_ToolPoint())
    __swig_destroy__ = _StdPrs.delete_StdPrs_ToolPoint

# Register StdPrs_ToolPoint in _StdPrs:
_StdPrs.StdPrs_ToolPoint_swigregister(StdPrs_ToolPoint)

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

    Parameters
    ----------
    aPoint: Geom_Point

    Returns
    -------
    X: float
    Y: float
    Z: float

    """
    return _StdPrs.StdPrs_ToolPoint_Coord(*args)

class StdPrs_ToolRFace(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"""
        Empty constructor.

        Returns
        -------
        None
        Constructor with initialization.

        Parameters
        ----------
        aSurface: BRepAdaptor_HSurface

        Returns
        -------
        None

        """
        _StdPrs.StdPrs_ToolRFace_swiginit(self, _StdPrs.new_StdPrs_ToolRFace(*args))

    def Edge(self, *args) -> "TopoDS_Edge const":
        r"""
        Return current edge.

        Returns
        -------
        TopoDS_Edge

        """
        return _StdPrs.StdPrs_ToolRFace_Edge(self, *args)

    def Init(self, *args) -> "void":
        r"""
        Move iterator to the first element.

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_ToolRFace_Init(self, *args)

    def IsInvalidGeometry(self, *args) -> "Standard_Boolean":
        r"""
        Return true if null curves have been skipped.

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_ToolRFace_IsInvalidGeometry(self, *args)

    def IsOriented(self, *args) -> "Standard_Boolean":
        r"""
        Return true indicating that iterator looks only for oriented edges.

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_ToolRFace_IsOriented(self, *args)

    def More(self, *args) -> "Standard_Boolean":
        r"""
        Return true if iterator points to the curve.

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_ToolRFace_More(self, *args)

    def Next(self, *args) -> "void":
        r"""
        Go to the next curve in the face.

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_ToolRFace_Next(self, *args)

    def Orientation(self, *args) -> "TopAbs_Orientation":
        r"""
        Return current edge orientation.

        Returns
        -------
        TopAbs_Orientation

        """
        return _StdPrs.StdPrs_ToolRFace_Orientation(self, *args)

    def Value(self, *args) -> "Adaptor2d_Curve2d const &":
        r"""
        Return current curve.

        Returns
        -------
        Adaptor2d_Curve2d

        """
        return _StdPrs.StdPrs_ToolRFace_Value(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _StdPrs.delete_StdPrs_ToolRFace

# Register StdPrs_ToolRFace in _StdPrs:
_StdPrs.StdPrs_ToolRFace_swigregister(StdPrs_ToolRFace)

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

    @staticmethod
    def ClearOnOwnDeflectionChange(*args) -> "void":
        r"""
        If presentation has own deviation coefficient and isautotriangulation() is true, function will compare actual coefficients with previous values and will clear triangulation on their change (regardless actual tessellation quality). function is placed here for compatibility reasons - new code should avoid using isautotriangulation(). @param theshape [in] the shape @param thedrawer [in] the display settings @param thetoresetcoeff [in] updates coefficients in thedrawer to actual state to avoid redundant recomputations.

        Parameters
        ----------
        theShape: TopoDS_Shape
        theDrawer: Prs3d_Drawer
        theToResetCoeff: bool

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_ToolTriangulatedShape_ClearOnOwnDeflectionChange(*args)

    @staticmethod
    def ComputeNormals(*args) -> "void":
        r"""
        Computes nodal normals for poly_triangulation structure using uv coordinates and surface. does nothing if triangulation already defines normals. @param theface [in] the face @param thetris [in] the definition of a face triangulation.

        Parameters
        ----------
        theFace: TopoDS_Face
        theTris: Poly_Triangulation

        Returns
        -------
        None
        Computes nodal normals for poly_triangulation structure using uv coordinates and surface. does nothing if triangulation already defines normals. @param theface [in] the face @param thetris [in] the definition of a face triangulation @param thepolyconnect [in,out] optional, initialized tool for exploring triangulation.

        Parameters
        ----------
        theFace: TopoDS_Face
        theTris: Poly_Triangulation
        thePolyConnect: Poly_Connect

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_ToolTriangulatedShape_ComputeNormals(*args)

    @staticmethod
    def GetDeflection(*args) -> "Standard_Real":
        r"""
        Computes the absolute deflection value depending on the type of deflection in thedrawer: <ul> <li><b>aspect_tod_relative</b>: the absolute deflection is computed using the relative deviation coefficient from thedrawer and the shape's bounding box;</li> <li><b>aspect_tod_absolute</b>: the maximal chordial deviation from thedrawer is returned.</li> </ul> in case of the type of deflection in thedrawer computed relative deflection for shape is stored as absolute deflection. it is necessary to use it later on for sub-shapes. this function should always be used to compute the deflection value for building discrete representations of the shape (triangualtion, wireframe) to avoid incosistencies between different representations of the shape and undesirable visual artifacts.

        Parameters
        ----------
        theShape: TopoDS_Shape
        theDrawer: Prs3d_Drawer

        Returns
        -------
        float

        """
        return _StdPrs.StdPrs_ToolTriangulatedShape_GetDeflection(*args)

    @staticmethod
    def IsClosed(*args) -> "Standard_Boolean":
        r"""
        Checks back faces visibility for specified shape (to activate back-face culling). returns true if shape is closed manifold solid or compound of such solids. .

        Parameters
        ----------
        theShape: TopoDS_Shape

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_ToolTriangulatedShape_IsClosed(*args)

    @staticmethod
    def IsTessellated(*args) -> "Standard_Boolean":
        r"""
        Checks whether the shape is properly triangulated for a given display settings. @param theshape [in] the shape. @param thedrawer [in] the display settings.

        Parameters
        ----------
        theShape: TopoDS_Shape
        theDrawer: Prs3d_Drawer

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_ToolTriangulatedShape_IsTessellated(*args)

    @staticmethod
    def IsTriangulated(*args) -> "Standard_Boolean":
        r"""
        Similar to breptools::triangulation() but without extra checks. returns true if all faces within shape are triangulated.

        Parameters
        ----------
        theShape: TopoDS_Shape

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_ToolTriangulatedShape_IsTriangulated(*args)

    @staticmethod
    def Normal(*args) -> "void":
        r"""
        Evaluate normals for a triangle of a face. @param theface [in] the face. @param thepolyconnect [in] the definition of a face triangulation. @param thenormal [out] the array of normals for each triangle.

        Parameters
        ----------
        theFace: TopoDS_Face
        thePolyConnect: Poly_Connect
        theNormals: TColgp_Array1OfDir

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_ToolTriangulatedShape_Normal(*args)

    @staticmethod
    def Tessellate(*args) -> "Standard_Boolean":
        r"""
        Validates triangulation within the shape and performs tessellation if necessary. @param theshape [in] the shape. @param thedrawer [in] the display settings. returns true if tesselation was recomputed and false otherwise.

        Parameters
        ----------
        theShape: TopoDS_Shape
        theDrawer: Prs3d_Drawer

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_ToolTriangulatedShape_Tessellate(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _StdPrs.StdPrs_ToolTriangulatedShape_swiginit(self, _StdPrs.new_StdPrs_ToolTriangulatedShape())
    __swig_destroy__ = _StdPrs.delete_StdPrs_ToolTriangulatedShape

# Register StdPrs_ToolTriangulatedShape in _StdPrs:
_StdPrs.StdPrs_ToolTriangulatedShape_swigregister(StdPrs_ToolTriangulatedShape)

def StdPrs_ToolTriangulatedShape_ClearOnOwnDeflectionChange(*args) -> "void":
    r"""
    If presentation has own deviation coefficient and isautotriangulation() is true, function will compare actual coefficients with previous values and will clear triangulation on their change (regardless actual tessellation quality). function is placed here for compatibility reasons - new code should avoid using isautotriangulation(). @param theshape [in] the shape @param thedrawer [in] the display settings @param thetoresetcoeff [in] updates coefficients in thedrawer to actual state to avoid redundant recomputations.

    Parameters
    ----------
    theShape: TopoDS_Shape
    theDrawer: Prs3d_Drawer
    theToResetCoeff: bool

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_ToolTriangulatedShape_ClearOnOwnDeflectionChange(*args)

def StdPrs_ToolTriangulatedShape_ComputeNormals(*args) -> "void":
    r"""
    Computes nodal normals for poly_triangulation structure using uv coordinates and surface. does nothing if triangulation already defines normals. @param theface [in] the face @param thetris [in] the definition of a face triangulation.

    Parameters
    ----------
    theFace: TopoDS_Face
    theTris: Poly_Triangulation

    Returns
    -------
    None
    Computes nodal normals for poly_triangulation structure using uv coordinates and surface. does nothing if triangulation already defines normals. @param theface [in] the face @param thetris [in] the definition of a face triangulation @param thepolyconnect [in,out] optional, initialized tool for exploring triangulation.

    Parameters
    ----------
    theFace: TopoDS_Face
    theTris: Poly_Triangulation
    thePolyConnect: Poly_Connect

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_ToolTriangulatedShape_ComputeNormals(*args)

def StdPrs_ToolTriangulatedShape_GetDeflection(*args) -> "Standard_Real":
    r"""
    Computes the absolute deflection value depending on the type of deflection in thedrawer: <ul> <li><b>aspect_tod_relative</b>: the absolute deflection is computed using the relative deviation coefficient from thedrawer and the shape's bounding box;</li> <li><b>aspect_tod_absolute</b>: the maximal chordial deviation from thedrawer is returned.</li> </ul> in case of the type of deflection in thedrawer computed relative deflection for shape is stored as absolute deflection. it is necessary to use it later on for sub-shapes. this function should always be used to compute the deflection value for building discrete representations of the shape (triangualtion, wireframe) to avoid incosistencies between different representations of the shape and undesirable visual artifacts.

    Parameters
    ----------
    theShape: TopoDS_Shape
    theDrawer: Prs3d_Drawer

    Returns
    -------
    float

    """
    return _StdPrs.StdPrs_ToolTriangulatedShape_GetDeflection(*args)

def StdPrs_ToolTriangulatedShape_IsClosed(*args) -> "Standard_Boolean":
    r"""
    Checks back faces visibility for specified shape (to activate back-face culling). returns true if shape is closed manifold solid or compound of such solids. .

    Parameters
    ----------
    theShape: TopoDS_Shape

    Returns
    -------
    bool

    """
    return _StdPrs.StdPrs_ToolTriangulatedShape_IsClosed(*args)

def StdPrs_ToolTriangulatedShape_IsTessellated(*args) -> "Standard_Boolean":
    r"""
    Checks whether the shape is properly triangulated for a given display settings. @param theshape [in] the shape. @param thedrawer [in] the display settings.

    Parameters
    ----------
    theShape: TopoDS_Shape
    theDrawer: Prs3d_Drawer

    Returns
    -------
    bool

    """
    return _StdPrs.StdPrs_ToolTriangulatedShape_IsTessellated(*args)

def StdPrs_ToolTriangulatedShape_IsTriangulated(*args) -> "Standard_Boolean":
    r"""
    Similar to breptools::triangulation() but without extra checks. returns true if all faces within shape are triangulated.

    Parameters
    ----------
    theShape: TopoDS_Shape

    Returns
    -------
    bool

    """
    return _StdPrs.StdPrs_ToolTriangulatedShape_IsTriangulated(*args)

def StdPrs_ToolTriangulatedShape_Normal(*args) -> "void":
    r"""
    Evaluate normals for a triangle of a face. @param theface [in] the face. @param thepolyconnect [in] the definition of a face triangulation. @param thenormal [out] the array of normals for each triangle.

    Parameters
    ----------
    theFace: TopoDS_Face
    thePolyConnect: Poly_Connect
    theNormals: TColgp_Array1OfDir

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_ToolTriangulatedShape_Normal(*args)

def StdPrs_ToolTriangulatedShape_Tessellate(*args) -> "Standard_Boolean":
    r"""
    Validates triangulation within the shape and performs tessellation if necessary. @param theshape [in] the shape. @param thedrawer [in] the display settings. returns true if tesselation was recomputed and false otherwise.

    Parameters
    ----------
    theShape: TopoDS_Shape
    theDrawer: Prs3d_Drawer

    Returns
    -------
    bool

    """
    return _StdPrs.StdPrs_ToolTriangulatedShape_Tessellate(*args)

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

    @staticmethod
    def Coord(*args) -> "Standard_Real &, Standard_Real &, Standard_Real &":
        r"""
        No available documentation.

        Parameters
        ----------
        aPoint: TopoDS_Vertex

        Returns
        -------
        X: float
        Y: float
        Z: float

        """
        return _StdPrs.StdPrs_ToolVertex_Coord(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _StdPrs.StdPrs_ToolVertex_swiginit(self, _StdPrs.new_StdPrs_ToolVertex())
    __swig_destroy__ = _StdPrs.delete_StdPrs_ToolVertex

# Register StdPrs_ToolVertex in _StdPrs:
_StdPrs.StdPrs_ToolVertex_swigregister(StdPrs_ToolVertex)

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

    Parameters
    ----------
    aPoint: TopoDS_Vertex

    Returns
    -------
    X: float
    Y: float
    Z: float

    """
    return _StdPrs.StdPrs_ToolVertex_Coord(*args)

class StdPrs_WFDeflectionRestrictedFace(OCC.Core.Prs3d.Prs3d_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def Add(*args) -> "void":
        r"""
        Defines a display featuring u and v isoparameters. adds the surface aface to the stdprs_wfrestrictedface algorithm. this face is found in a shape in the presentation object apresentation, and its display attributes - in particular, the number of u and v isoparameters - are set in the attribute manager adrawer. aface is brepadaptor_hsurface surface created from a face in a topological shape. which is passed as an argument through the brepadaptor_hsurface surface created from it. this is what allows the topological face to be treated as a geometric surface.

        Parameters
        ----------
        aPresentation: Prs3d_Presentation
        aFace: BRepAdaptor_HSurface
        aDrawer: Prs3d_Drawer

        Returns
        -------
        None
        Defines a display of a delection-specified face. the display will feature u and v isoparameters. adds the topology ashape to the stdprs_wfrestrictedface algorithm. this shape is found in the presentation object apresentation, and its display attributes - except the number of u and v isoparameters - are set in the attribute manager adrawer. the function sets the number of u and v isoparameters, nbuiso and nbviso, in the shape. to do this, the arguments drawuiso and drawviso must be true. aface is brepadaptor_hsurface surface created from a face in a topological shape. which is passed as an argument through the brepadaptor_hsurface surface created from it. this is what allows the topological face to be treated as a geometric surface. curves give a sequence of face curves, it is used if the primitivearray visualization approach is activated (it is activated by default).

        Parameters
        ----------
        aPresentation: Prs3d_Presentation
        aFace: BRepAdaptor_HSurface
        DrawUIso: bool
        DrawVIso: bool
        Deflection: float
        NBUiso: int
        NBViso: int
        aDrawer: Prs3d_Drawer
        Curves: Prs3d_NListOfSequenceOfPnt

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_WFDeflectionRestrictedFace_Add(*args)

    @staticmethod
    def AddUIso(*args) -> "void":
        r"""
        Defines a display featuring u isoparameters respectively. add the surface aface to the stdprs_wfrestrictedface algorithm. this face is found in a shape in the presentation object apresentation, and its display attributes - in particular, the number of u isoparameters - are set in the attribute manager adrawer. aface is brepadaptor_hsurface surface created from a face in a topological shape. which is passed to the function as an argument through the brepadaptor_hsurface surface created from it. this is what allows the topological face to be treated as a geometric surface.

        Parameters
        ----------
        aPresentation: Prs3d_Presentation
        aFace: BRepAdaptor_HSurface
        aDrawer: Prs3d_Drawer

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_WFDeflectionRestrictedFace_AddUIso(*args)

    @staticmethod
    def AddVIso(*args) -> "void":
        r"""
        Defines a display featuring v isoparameters respectively. add the surface aface to the stdprs_wfrestrictedface algorithm. this face is found in a shape in the presentation object apresentation, and its display attributes - in particular, the number of v isoparameters - are set in the attribute manager adrawer. aface is brepadaptor_hsurface surface created from a face in a topological shape. which is passed to the function as an argument through the brepadaptor_hsurface surface created from it. this is what allows the topological face to be treated as a geometric surface.

        Parameters
        ----------
        aPresentation: Prs3d_Presentation
        aFace: BRepAdaptor_HSurface
        aDrawer: Prs3d_Drawer

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_WFDeflectionRestrictedFace_AddVIso(*args)

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

        Parameters
        ----------
        X: float
        Y: float
        Z: float
        aDistance: float
        aFace: BRepAdaptor_HSurface
        aDrawer: Prs3d_Drawer

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

        Parameters
        ----------
        X: float
        Y: float
        Z: float
        aDistance: float
        aFace: BRepAdaptor_HSurface
        aDrawer: Prs3d_Drawer
        DrawUIso: bool
        DrawVIso: bool
        aDeflection: float
        NBUiso: int
        NBViso: int

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_WFDeflectionRestrictedFace_Match(*args)

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

        Parameters
        ----------
        X: float
        Y: float
        Z: float
        aDistance: float
        aFace: BRepAdaptor_HSurface
        aDrawer: Prs3d_Drawer

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_WFDeflectionRestrictedFace_MatchUIso(*args)

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

        Parameters
        ----------
        X: float
        Y: float
        Z: float
        aDistance: float
        aFace: BRepAdaptor_HSurface
        aDrawer: Prs3d_Drawer

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_WFDeflectionRestrictedFace_MatchVIso(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _StdPrs.StdPrs_WFDeflectionRestrictedFace_swiginit(self, _StdPrs.new_StdPrs_WFDeflectionRestrictedFace())
    __swig_destroy__ = _StdPrs.delete_StdPrs_WFDeflectionRestrictedFace

# Register StdPrs_WFDeflectionRestrictedFace in _StdPrs:
_StdPrs.StdPrs_WFDeflectionRestrictedFace_swigregister(StdPrs_WFDeflectionRestrictedFace)

def StdPrs_WFDeflectionRestrictedFace_Add(*args) -> "void":
    r"""
    Defines a display featuring u and v isoparameters. adds the surface aface to the stdprs_wfrestrictedface algorithm. this face is found in a shape in the presentation object apresentation, and its display attributes - in particular, the number of u and v isoparameters - are set in the attribute manager adrawer. aface is brepadaptor_hsurface surface created from a face in a topological shape. which is passed as an argument through the brepadaptor_hsurface surface created from it. this is what allows the topological face to be treated as a geometric surface.

    Parameters
    ----------
    aPresentation: Prs3d_Presentation
    aFace: BRepAdaptor_HSurface
    aDrawer: Prs3d_Drawer

    Returns
    -------
    None
    Defines a display of a delection-specified face. the display will feature u and v isoparameters. adds the topology ashape to the stdprs_wfrestrictedface algorithm. this shape is found in the presentation object apresentation, and its display attributes - except the number of u and v isoparameters - are set in the attribute manager adrawer. the function sets the number of u and v isoparameters, nbuiso and nbviso, in the shape. to do this, the arguments drawuiso and drawviso must be true. aface is brepadaptor_hsurface surface created from a face in a topological shape. which is passed as an argument through the brepadaptor_hsurface surface created from it. this is what allows the topological face to be treated as a geometric surface. curves give a sequence of face curves, it is used if the primitivearray visualization approach is activated (it is activated by default).

    Parameters
    ----------
    aPresentation: Prs3d_Presentation
    aFace: BRepAdaptor_HSurface
    DrawUIso: bool
    DrawVIso: bool
    Deflection: float
    NBUiso: int
    NBViso: int
    aDrawer: Prs3d_Drawer
    Curves: Prs3d_NListOfSequenceOfPnt

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_WFDeflectionRestrictedFace_Add(*args)

def StdPrs_WFDeflectionRestrictedFace_AddUIso(*args) -> "void":
    r"""
    Defines a display featuring u isoparameters respectively. add the surface aface to the stdprs_wfrestrictedface algorithm. this face is found in a shape in the presentation object apresentation, and its display attributes - in particular, the number of u isoparameters - are set in the attribute manager adrawer. aface is brepadaptor_hsurface surface created from a face in a topological shape. which is passed to the function as an argument through the brepadaptor_hsurface surface created from it. this is what allows the topological face to be treated as a geometric surface.

    Parameters
    ----------
    aPresentation: Prs3d_Presentation
    aFace: BRepAdaptor_HSurface
    aDrawer: Prs3d_Drawer

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_WFDeflectionRestrictedFace_AddUIso(*args)

def StdPrs_WFDeflectionRestrictedFace_AddVIso(*args) -> "void":
    r"""
    Defines a display featuring v isoparameters respectively. add the surface aface to the stdprs_wfrestrictedface algorithm. this face is found in a shape in the presentation object apresentation, and its display attributes - in particular, the number of v isoparameters - are set in the attribute manager adrawer. aface is brepadaptor_hsurface surface created from a face in a topological shape. which is passed to the function as an argument through the brepadaptor_hsurface surface created from it. this is what allows the topological face to be treated as a geometric surface.

    Parameters
    ----------
    aPresentation: Prs3d_Presentation
    aFace: BRepAdaptor_HSurface
    aDrawer: Prs3d_Drawer

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_WFDeflectionRestrictedFace_AddVIso(*args)

def StdPrs_WFDeflectionRestrictedFace_Match(*args) -> "Standard_Boolean":
    r"""
    No available documentation.

    Parameters
    ----------
    X: float
    Y: float
    Z: float
    aDistance: float
    aFace: BRepAdaptor_HSurface
    aDrawer: Prs3d_Drawer

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

    Parameters
    ----------
    X: float
    Y: float
    Z: float
    aDistance: float
    aFace: BRepAdaptor_HSurface
    aDrawer: Prs3d_Drawer
    DrawUIso: bool
    DrawVIso: bool
    aDeflection: float
    NBUiso: int
    NBViso: int

    Returns
    -------
    bool

    """
    return _StdPrs.StdPrs_WFDeflectionRestrictedFace_Match(*args)

def StdPrs_WFDeflectionRestrictedFace_MatchUIso(*args) -> "Standard_Boolean":
    r"""
    No available documentation.

    Parameters
    ----------
    X: float
    Y: float
    Z: float
    aDistance: float
    aFace: BRepAdaptor_HSurface
    aDrawer: Prs3d_Drawer

    Returns
    -------
    bool

    """
    return _StdPrs.StdPrs_WFDeflectionRestrictedFace_MatchUIso(*args)

def StdPrs_WFDeflectionRestrictedFace_MatchVIso(*args) -> "Standard_Boolean":
    r"""
    No available documentation.

    Parameters
    ----------
    X: float
    Y: float
    Z: float
    aDistance: float
    aFace: BRepAdaptor_HSurface
    aDrawer: Prs3d_Drawer

    Returns
    -------
    bool

    """
    return _StdPrs.StdPrs_WFDeflectionRestrictedFace_MatchVIso(*args)

class StdPrs_WFDeflectionSurface(OCC.Core.Prs3d.Prs3d_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def Add(*args) -> "void":
        r"""
        Adds the surface asurface to the presentation object apresentation, and defines its boundaries and isoparameters. the shape's display attributes are set in the attribute manager adrawer. these include whether deflection is absolute or relative to the size of the shape. the surface asurface is a surface object from adaptor, and provides data from a geom surface. this makes it possible to use the surface in a geometric algorithm. note that this surface object is manipulated by handles.

        Parameters
        ----------
        aPresentation: Prs3d_Presentation
        aSurface: Adaptor3d_HSurface
        aDrawer: Prs3d_Drawer

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_WFDeflectionSurface_Add(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _StdPrs.StdPrs_WFDeflectionSurface_swiginit(self, _StdPrs.new_StdPrs_WFDeflectionSurface())
    __swig_destroy__ = _StdPrs.delete_StdPrs_WFDeflectionSurface

# Register StdPrs_WFDeflectionSurface in _StdPrs:
_StdPrs.StdPrs_WFDeflectionSurface_swigregister(StdPrs_WFDeflectionSurface)

def StdPrs_WFDeflectionSurface_Add(*args) -> "void":
    r"""
    Adds the surface asurface to the presentation object apresentation, and defines its boundaries and isoparameters. the shape's display attributes are set in the attribute manager adrawer. these include whether deflection is absolute or relative to the size of the shape. the surface asurface is a surface object from adaptor, and provides data from a geom surface. this makes it possible to use the surface in a geometric algorithm. note that this surface object is manipulated by handles.

    Parameters
    ----------
    aPresentation: Prs3d_Presentation
    aSurface: Adaptor3d_HSurface
    aDrawer: Prs3d_Drawer

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_WFDeflectionSurface_Add(*args)

class StdPrs_WFPoleSurface(OCC.Core.Prs3d.Prs3d_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def Add(*args) -> "void":
        r"""
        Adds the surface asurface to the presentation object apresentation. the shape's display attributes are set in the attribute manager adrawer. the surface asurface is a surface object from adaptor3d, and provides data from a geom surface. this makes it possible to use the surface in a geometric algorithm.

        Parameters
        ----------
        aPresentation: Prs3d_Presentation
        aSurface: Adaptor3d_Surface
        aDrawer: Prs3d_Drawer

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_WFPoleSurface_Add(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _StdPrs.StdPrs_WFPoleSurface_swiginit(self, _StdPrs.new_StdPrs_WFPoleSurface())
    __swig_destroy__ = _StdPrs.delete_StdPrs_WFPoleSurface

# Register StdPrs_WFPoleSurface in _StdPrs:
_StdPrs.StdPrs_WFPoleSurface_swigregister(StdPrs_WFPoleSurface)

def StdPrs_WFPoleSurface_Add(*args) -> "void":
    r"""
    Adds the surface asurface to the presentation object apresentation. the shape's display attributes are set in the attribute manager adrawer. the surface asurface is a surface object from adaptor3d, and provides data from a geom surface. this makes it possible to use the surface in a geometric algorithm.

    Parameters
    ----------
    aPresentation: Prs3d_Presentation
    aSurface: Adaptor3d_Surface
    aDrawer: Prs3d_Drawer

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_WFPoleSurface_Add(*args)

class StdPrs_WFRestrictedFace(OCC.Core.Prs3d.Prs3d_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

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

        Parameters
        ----------
        thePresentation: Handle ( Prs3d_Presentation )
        theFace: BRepAdaptor_HSurface
        theDrawUIso: bool
        theDrawVIso: bool
        theNbUIso: int
        theNbVIso: int
        theDrawer: Prs3d_Drawer
        theCurves: Prs3d_NListOfSequenceOfPnt

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

        Parameters
        ----------
        thePresentation: Handle ( Prs3d_Presentation )
        theFace: BRepAdaptor_HSurface
        theDrawer: Handle ( Prs3d_Drawer )

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_WFRestrictedFace_Add(*args)

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

        Parameters
        ----------
        thePresentation: Handle ( Prs3d_Presentation )
        theFace: BRepAdaptor_HSurface
        theDrawer: Handle ( Prs3d_Drawer )

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_WFRestrictedFace_AddUIso(*args)

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

        Parameters
        ----------
        thePresentation: Handle ( Prs3d_Presentation )
        theFace: BRepAdaptor_HSurface
        theDrawer: Handle ( Prs3d_Drawer )

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_WFRestrictedFace_AddVIso(*args)

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

        Parameters
        ----------
        theX: float
        theY: float
        theZ: float
        theDistance: float
        theFace: BRepAdaptor_HSurface
        theDrawUIso: bool
        theDrawVIso: bool
        theDeflection: float
        theNbUIso: int
        theNbVIso: int
        theDrawer: Prs3d_Drawer

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

        Parameters
        ----------
        theX: float
        theY: float
        theZ: float
        theDistance: float
        theFace: BRepAdaptor_HSurface
        theDrawer: Handle ( Prs3d_Drawer )

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_WFRestrictedFace_Match(*args)

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

        Parameters
        ----------
        theX: float
        theY: float
        theZ: float
        theDistance: float
        theFace: BRepAdaptor_HSurface
        theDrawer: Handle ( Prs3d_Drawer )

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_WFRestrictedFace_MatchUIso(*args)

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

        Parameters
        ----------
        theX: float
        theY: float
        theZ: float
        theDistance: float
        theFace: BRepAdaptor_HSurface
        theDrawer: Handle ( Prs3d_Drawer )

        Returns
        -------
        bool

        """
        return _StdPrs.StdPrs_WFRestrictedFace_MatchVIso(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _StdPrs.StdPrs_WFRestrictedFace_swiginit(self, _StdPrs.new_StdPrs_WFRestrictedFace())
    __swig_destroy__ = _StdPrs.delete_StdPrs_WFRestrictedFace

# Register StdPrs_WFRestrictedFace in _StdPrs:
_StdPrs.StdPrs_WFRestrictedFace_swigregister(StdPrs_WFRestrictedFace)

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

    Parameters
    ----------
    thePresentation: Handle ( Prs3d_Presentation )
    theFace: BRepAdaptor_HSurface
    theDrawUIso: bool
    theDrawVIso: bool
    theNbUIso: int
    theNbVIso: int
    theDrawer: Prs3d_Drawer
    theCurves: Prs3d_NListOfSequenceOfPnt

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

    Parameters
    ----------
    thePresentation: Handle ( Prs3d_Presentation )
    theFace: BRepAdaptor_HSurface
    theDrawer: Handle ( Prs3d_Drawer )

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_WFRestrictedFace_Add(*args)

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

    Parameters
    ----------
    thePresentation: Handle ( Prs3d_Presentation )
    theFace: BRepAdaptor_HSurface
    theDrawer: Handle ( Prs3d_Drawer )

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_WFRestrictedFace_AddUIso(*args)

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

    Parameters
    ----------
    thePresentation: Handle ( Prs3d_Presentation )
    theFace: BRepAdaptor_HSurface
    theDrawer: Handle ( Prs3d_Drawer )

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_WFRestrictedFace_AddVIso(*args)

def StdPrs_WFRestrictedFace_Match(*args) -> "Standard_Boolean":
    r"""
    No available documentation.

    Parameters
    ----------
    theX: float
    theY: float
    theZ: float
    theDistance: float
    theFace: BRepAdaptor_HSurface
    theDrawUIso: bool
    theDrawVIso: bool
    theDeflection: float
    theNbUIso: int
    theNbVIso: int
    theDrawer: Prs3d_Drawer

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

    Parameters
    ----------
    theX: float
    theY: float
    theZ: float
    theDistance: float
    theFace: BRepAdaptor_HSurface
    theDrawer: Handle ( Prs3d_Drawer )

    Returns
    -------
    bool

    """
    return _StdPrs.StdPrs_WFRestrictedFace_Match(*args)

def StdPrs_WFRestrictedFace_MatchUIso(*args) -> "Standard_Boolean":
    r"""
    No available documentation.

    Parameters
    ----------
    theX: float
    theY: float
    theZ: float
    theDistance: float
    theFace: BRepAdaptor_HSurface
    theDrawer: Handle ( Prs3d_Drawer )

    Returns
    -------
    bool

    """
    return _StdPrs.StdPrs_WFRestrictedFace_MatchUIso(*args)

def StdPrs_WFRestrictedFace_MatchVIso(*args) -> "Standard_Boolean":
    r"""
    No available documentation.

    Parameters
    ----------
    theX: float
    theY: float
    theZ: float
    theDistance: float
    theFace: BRepAdaptor_HSurface
    theDrawer: Handle ( Prs3d_Drawer )

    Returns
    -------
    bool

    """
    return _StdPrs.StdPrs_WFRestrictedFace_MatchVIso(*args)

class StdPrs_WFShape(OCC.Core.Prs3d.Prs3d_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def Add(*args) -> "void":
        r"""
        Computes wireframe presentation of a shape. @param thepresentation [in] the presentation. @param theshape [in] the shape. @param thedrawer [in] the draw settings. @param theisparallel [in] perform algorithm using multiple threads.

        Parameters
        ----------
        thePresentation: Prs3d_Presentation
        theShape: TopoDS_Shape
        theDrawer: Prs3d_Drawer
        theIsParallel: bool,optional
        	default value is Standard_False

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_WFShape_Add(*args)

    @staticmethod
    def AddAllEdges(*args) -> "opencascade::handle< Graphic3d_ArrayOfPrimitives >":
        r"""
        Compute all edges (wire, free, unfree) and put them into single primitive array. @param theshape [in] the shape @param thedrawer [in] the drawer settings (deviation angle and maximal parameter value).

        Parameters
        ----------
        theShape: TopoDS_Shape
        theDrawer: Prs3d_Drawer

        Returns
        -------
        opencascade::handle<Graphic3d_ArrayOfPrimitives>

        """
        return _StdPrs.StdPrs_WFShape_AddAllEdges(*args)

    @staticmethod
    def AddEdgesOnTriangulation(*args) -> "void":
        r"""
        Compute free and boundary edges on a triangulation of each face in the given shape. @param theshape  [in] the list of triangulated faces @param thetoexcludegeometric [in] flag indicating that faces with defined surface should be skipped.

        Parameters
        ----------
        theShape: TopoDS_Shape
        theToExcludeGeometric: bool,optional
        	default value is Standard_True

        Returns
        -------
        opencascade::handle<Graphic3d_ArrayOfPrimitives>
        Compute free and boundary edges on a triangulation of each face in the given shape. @param thesegments  [in] the sequence of points defining segments @param theshape  [in] the list of triangulated faces @param thetoexcludegeometric [in] flag indicating that faces with defined surface should be skipped.

        Parameters
        ----------
        theSegments: TColgp_SequenceOfPnt
        theShape: TopoDS_Shape
        theToExcludeGeometric: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_WFShape_AddEdgesOnTriangulation(*args)

    @staticmethod
    def AddVertexes(*args) -> "opencascade::handle< Graphic3d_ArrayOfPoints >":
        r"""
        Compute vertex presentation for a shape. @param theshape [in] the shape @param thevertexmode [in] vertex filter.

        Parameters
        ----------
        theShape: TopoDS_Shape
        theVertexMode: Prs3d_VertexDrawMode

        Returns
        -------
        opencascade::handle<Graphic3d_ArrayOfPoints>

        """
        return _StdPrs.StdPrs_WFShape_AddVertexes(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _StdPrs.StdPrs_WFShape_swiginit(self, _StdPrs.new_StdPrs_WFShape())
    __swig_destroy__ = _StdPrs.delete_StdPrs_WFShape

# Register StdPrs_WFShape in _StdPrs:
_StdPrs.StdPrs_WFShape_swigregister(StdPrs_WFShape)

def StdPrs_WFShape_Add(*args) -> "void":
    r"""
    Computes wireframe presentation of a shape. @param thepresentation [in] the presentation. @param theshape [in] the shape. @param thedrawer [in] the draw settings. @param theisparallel [in] perform algorithm using multiple threads.

    Parameters
    ----------
    thePresentation: Prs3d_Presentation
    theShape: TopoDS_Shape
    theDrawer: Prs3d_Drawer
    theIsParallel: bool,optional
    	default value is Standard_False

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_WFShape_Add(*args)

def StdPrs_WFShape_AddAllEdges(*args) -> "opencascade::handle< Graphic3d_ArrayOfPrimitives >":
    r"""
    Compute all edges (wire, free, unfree) and put them into single primitive array. @param theshape [in] the shape @param thedrawer [in] the drawer settings (deviation angle and maximal parameter value).

    Parameters
    ----------
    theShape: TopoDS_Shape
    theDrawer: Prs3d_Drawer

    Returns
    -------
    opencascade::handle<Graphic3d_ArrayOfPrimitives>

    """
    return _StdPrs.StdPrs_WFShape_AddAllEdges(*args)

def StdPrs_WFShape_AddEdgesOnTriangulation(*args) -> "void":
    r"""
    Compute free and boundary edges on a triangulation of each face in the given shape. @param theshape  [in] the list of triangulated faces @param thetoexcludegeometric [in] flag indicating that faces with defined surface should be skipped.

    Parameters
    ----------
    theShape: TopoDS_Shape
    theToExcludeGeometric: bool,optional
    	default value is Standard_True

    Returns
    -------
    opencascade::handle<Graphic3d_ArrayOfPrimitives>
    Compute free and boundary edges on a triangulation of each face in the given shape. @param thesegments  [in] the sequence of points defining segments @param theshape  [in] the list of triangulated faces @param thetoexcludegeometric [in] flag indicating that faces with defined surface should be skipped.

    Parameters
    ----------
    theSegments: TColgp_SequenceOfPnt
    theShape: TopoDS_Shape
    theToExcludeGeometric: bool,optional
    	default value is Standard_True

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_WFShape_AddEdgesOnTriangulation(*args)

def StdPrs_WFShape_AddVertexes(*args) -> "opencascade::handle< Graphic3d_ArrayOfPoints >":
    r"""
    Compute vertex presentation for a shape. @param theshape [in] the shape @param thevertexmode [in] vertex filter.

    Parameters
    ----------
    theShape: TopoDS_Shape
    theVertexMode: Prs3d_VertexDrawMode

    Returns
    -------
    opencascade::handle<Graphic3d_ArrayOfPoints>

    """
    return _StdPrs.StdPrs_WFShape_AddVertexes(*args)

class StdPrs_WFSurface(OCC.Core.Prs3d.Prs3d_Root):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def Add(*args) -> "void":
        r"""
        Draws a surface by drawing the isoparametric curves with respect to a fixed number of points given by the drawer. the number of isoparametric curves to be drawn and their color are controlled by the furnished drawer.

        Parameters
        ----------
        aPresentation: Prs3d_Presentation
        aSurface: Adaptor3d_HSurface
        aDrawer: Prs3d_Drawer

        Returns
        -------
        None

        """
        return _StdPrs.StdPrs_WFSurface_Add(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _StdPrs.StdPrs_WFSurface_swiginit(self, _StdPrs.new_StdPrs_WFSurface())
    __swig_destroy__ = _StdPrs.delete_StdPrs_WFSurface

# Register StdPrs_WFSurface in _StdPrs:
_StdPrs.StdPrs_WFSurface_swigregister(StdPrs_WFSurface)

def StdPrs_WFSurface_Add(*args) -> "void":
    r"""
    Draws a surface by drawing the isoparametric curves with respect to a fixed number of points given by the drawer. the number of isoparametric curves to be drawn and their color are controlled by the furnished drawer.

    Parameters
    ----------
    aPresentation: Prs3d_Presentation
    aSurface: Adaptor3d_HSurface
    aDrawer: Prs3d_Drawer

    Returns
    -------
    None

    """
    return _StdPrs.StdPrs_WFSurface_Add(*args)

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


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


    __repr__ = _dumps_object


    def __init__(self):
        _StdPrs.StdPrs_HLRPolyShape_swiginit(self, _StdPrs.new_StdPrs_HLRPolyShape())
    __swig_destroy__ = _StdPrs.delete_StdPrs_HLRPolyShape

# Register StdPrs_HLRPolyShape in _StdPrs:
_StdPrs.StdPrs_HLRPolyShape_swigregister(StdPrs_HLRPolyShape)

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


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


    __repr__ = _dumps_object


    def __init__(self):
        _StdPrs.StdPrs_HLRShape_swiginit(self, _StdPrs.new_StdPrs_HLRShape())
    __swig_destroy__ = _StdPrs.delete_StdPrs_HLRShape

# Register StdPrs_HLRShape in _StdPrs:
_StdPrs.StdPrs_HLRShape_swigregister(StdPrs_HLRShape)


@classnotwrapped
class StdPrs_DeflectionCurve:
	pass



StdPrs_BndBox=OCC.Core.Prs3d.Prs3d_BndBox



