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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

# Register SwigPyIterator in _Prs3d:
_Prs3d.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 _Prs3d.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.TColgp
import OCC.Core.Graphic3d
import OCC.Core.BVH
import OCC.Core.Quantity
import OCC.Core.TCollection
import OCC.Core.gp
import OCC.Core.TColStd
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.GeomAbs

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

Prs3d_DTVP_Above = _Prs3d.Prs3d_DTVP_Above
Prs3d_DTVP_Below = _Prs3d.Prs3d_DTVP_Below
Prs3d_DTVP_Center = _Prs3d.Prs3d_DTVP_Center
Prs3d_TypeOfHighlight_None = _Prs3d.Prs3d_TypeOfHighlight_None
Prs3d_TypeOfHighlight_Selected = _Prs3d.Prs3d_TypeOfHighlight_Selected
Prs3d_TypeOfHighlight_Dynamic = _Prs3d.Prs3d_TypeOfHighlight_Dynamic
Prs3d_TypeOfHighlight_LocalSelected = _Prs3d.Prs3d_TypeOfHighlight_LocalSelected
Prs3d_TypeOfHighlight_LocalDynamic = _Prs3d.Prs3d_TypeOfHighlight_LocalDynamic
Prs3d_TypeOfHighlight_SubIntensity = _Prs3d.Prs3d_TypeOfHighlight_SubIntensity
Prs3d_TypeOfHighlight_NB = _Prs3d.Prs3d_TypeOfHighlight_NB
Prs3d_VDM_Isolated = _Prs3d.Prs3d_VDM_Isolated
Prs3d_VDM_All = _Prs3d.Prs3d_VDM_All
Prs3d_VDM_Inherited = _Prs3d.Prs3d_VDM_Inherited
Prs3d_DM_WireFrame = _Prs3d.Prs3d_DM_WireFrame
Prs3d_DM_Shaded = _Prs3d.Prs3d_DM_Shaded
Prs3d_DA_XAxisLength = _Prs3d.Prs3d_DA_XAxisLength
Prs3d_DA_YAxisLength = _Prs3d.Prs3d_DA_YAxisLength
Prs3d_DA_ZAxisLength = _Prs3d.Prs3d_DA_ZAxisLength
Prs3d_DP_ShadingTubeRadiusPercent = _Prs3d.Prs3d_DP_ShadingTubeRadiusPercent
Prs3d_DP_ShadingConeRadiusPercent = _Prs3d.Prs3d_DP_ShadingConeRadiusPercent
Prs3d_DP_ShadingConeLengthPercent = _Prs3d.Prs3d_DP_ShadingConeLengthPercent
Prs3d_DP_ShadingOriginRadiusPercent = _Prs3d.Prs3d_DP_ShadingOriginRadiusPercent
Prs3d_DP_ShadingNumberOfFacettes = _Prs3d.Prs3d_DP_ShadingNumberOfFacettes
Prs3d_DTHP_Left = _Prs3d.Prs3d_DTHP_Left
Prs3d_DTHP_Right = _Prs3d.Prs3d_DTHP_Right
Prs3d_DTHP_Center = _Prs3d.Prs3d_DTHP_Center
Prs3d_DTHP_Fit = _Prs3d.Prs3d_DTHP_Fit
Prs3d_TOLP_Point = _Prs3d.Prs3d_TOLP_Point
Prs3d_TOLP_Segment = _Prs3d.Prs3d_TOLP_Segment
Prs3d_TOH_NotSet = _Prs3d.Prs3d_TOH_NotSet
Prs3d_TOH_PolyAlgo = _Prs3d.Prs3d_TOH_PolyAlgo
Prs3d_TOH_Algo = _Prs3d.Prs3d_TOH_Algo
Prs3d_DA_XAxis = _Prs3d.Prs3d_DA_XAxis
Prs3d_DA_YAxis = _Prs3d.Prs3d_DA_YAxis
Prs3d_DA_ZAxis = _Prs3d.Prs3d_DA_ZAxis
Prs3d_DA_XYAxis = _Prs3d.Prs3d_DA_XYAxis
Prs3d_DA_YZAxis = _Prs3d.Prs3d_DA_YZAxis
Prs3d_DA_XZAxis = _Prs3d.Prs3d_DA_XZAxis
Prs3d_DA_XYZAxis = _Prs3d.Prs3d_DA_XYZAxis
Prs3d_DP_Origin = _Prs3d.Prs3d_DP_Origin
Prs3d_DP_XAxis = _Prs3d.Prs3d_DP_XAxis
Prs3d_DP_YAxis = _Prs3d.Prs3d_DP_YAxis
Prs3d_DP_ZAxis = _Prs3d.Prs3d_DP_ZAxis
Prs3d_DP_XArrow = _Prs3d.Prs3d_DP_XArrow
Prs3d_DP_YArrow = _Prs3d.Prs3d_DP_YArrow
Prs3d_DP_ZArrow = _Prs3d.Prs3d_DP_ZArrow
Prs3d_DP_XOYAxis = _Prs3d.Prs3d_DP_XOYAxis
Prs3d_DP_YOZAxis = _Prs3d.Prs3d_DP_YOZAxis
Prs3d_DP_XOZAxis = _Prs3d.Prs3d_DP_XOZAxis
Prs3d_DP_None = _Prs3d.Prs3d_DP_None
Prs3d_DAO_Internal = _Prs3d.Prs3d_DAO_Internal
Prs3d_DAO_External = _Prs3d.Prs3d_DAO_External
Prs3d_DAO_Fit = _Prs3d.Prs3d_DAO_Fit


class Prs3d_DimensionTextVerticalPosition(IntEnum):
	Prs3d_DTVP_Above = 0
	Prs3d_DTVP_Below = 1
	Prs3d_DTVP_Center = 2
Prs3d_DTVP_Above = Prs3d_DimensionTextVerticalPosition.Prs3d_DTVP_Above
Prs3d_DTVP_Below = Prs3d_DimensionTextVerticalPosition.Prs3d_DTVP_Below
Prs3d_DTVP_Center = Prs3d_DimensionTextVerticalPosition.Prs3d_DTVP_Center

class Prs3d_TypeOfHighlight(IntEnum):
	Prs3d_TypeOfHighlight_None = 0
	Prs3d_TypeOfHighlight_Selected = 1
	Prs3d_TypeOfHighlight_Dynamic = 2
	Prs3d_TypeOfHighlight_LocalSelected = 3
	Prs3d_TypeOfHighlight_LocalDynamic = 4
	Prs3d_TypeOfHighlight_SubIntensity = 5
	Prs3d_TypeOfHighlight_NB = 6
Prs3d_TypeOfHighlight_None = Prs3d_TypeOfHighlight.Prs3d_TypeOfHighlight_None
Prs3d_TypeOfHighlight_Selected = Prs3d_TypeOfHighlight.Prs3d_TypeOfHighlight_Selected
Prs3d_TypeOfHighlight_Dynamic = Prs3d_TypeOfHighlight.Prs3d_TypeOfHighlight_Dynamic
Prs3d_TypeOfHighlight_LocalSelected = Prs3d_TypeOfHighlight.Prs3d_TypeOfHighlight_LocalSelected
Prs3d_TypeOfHighlight_LocalDynamic = Prs3d_TypeOfHighlight.Prs3d_TypeOfHighlight_LocalDynamic
Prs3d_TypeOfHighlight_SubIntensity = Prs3d_TypeOfHighlight.Prs3d_TypeOfHighlight_SubIntensity
Prs3d_TypeOfHighlight_NB = Prs3d_TypeOfHighlight.Prs3d_TypeOfHighlight_NB

class Prs3d_VertexDrawMode(IntEnum):
	Prs3d_VDM_Isolated = 0
	Prs3d_VDM_All = 1
	Prs3d_VDM_Inherited = 2
Prs3d_VDM_Isolated = Prs3d_VertexDrawMode.Prs3d_VDM_Isolated
Prs3d_VDM_All = Prs3d_VertexDrawMode.Prs3d_VDM_All
Prs3d_VDM_Inherited = Prs3d_VertexDrawMode.Prs3d_VDM_Inherited

class Prs3d_DatumMode(IntEnum):
	Prs3d_DM_WireFrame = 0
	Prs3d_DM_Shaded = 1
Prs3d_DM_WireFrame = Prs3d_DatumMode.Prs3d_DM_WireFrame
Prs3d_DM_Shaded = Prs3d_DatumMode.Prs3d_DM_Shaded

class Prs3d_DatumAttribute(IntEnum):
	Prs3d_DA_XAxisLength = 0
	Prs3d_DA_YAxisLength = 1
	Prs3d_DA_ZAxisLength = 2
	Prs3d_DP_ShadingTubeRadiusPercent = 3
	Prs3d_DP_ShadingConeRadiusPercent = 4
	Prs3d_DP_ShadingConeLengthPercent = 5
	Prs3d_DP_ShadingOriginRadiusPercent = 6
	Prs3d_DP_ShadingNumberOfFacettes = 7
Prs3d_DA_XAxisLength = Prs3d_DatumAttribute.Prs3d_DA_XAxisLength
Prs3d_DA_YAxisLength = Prs3d_DatumAttribute.Prs3d_DA_YAxisLength
Prs3d_DA_ZAxisLength = Prs3d_DatumAttribute.Prs3d_DA_ZAxisLength
Prs3d_DP_ShadingTubeRadiusPercent = Prs3d_DatumAttribute.Prs3d_DP_ShadingTubeRadiusPercent
Prs3d_DP_ShadingConeRadiusPercent = Prs3d_DatumAttribute.Prs3d_DP_ShadingConeRadiusPercent
Prs3d_DP_ShadingConeLengthPercent = Prs3d_DatumAttribute.Prs3d_DP_ShadingConeLengthPercent
Prs3d_DP_ShadingOriginRadiusPercent = Prs3d_DatumAttribute.Prs3d_DP_ShadingOriginRadiusPercent
Prs3d_DP_ShadingNumberOfFacettes = Prs3d_DatumAttribute.Prs3d_DP_ShadingNumberOfFacettes

class Prs3d_DimensionTextHorizontalPosition(IntEnum):
	Prs3d_DTHP_Left = 0
	Prs3d_DTHP_Right = 1
	Prs3d_DTHP_Center = 2
	Prs3d_DTHP_Fit = 3
Prs3d_DTHP_Left = Prs3d_DimensionTextHorizontalPosition.Prs3d_DTHP_Left
Prs3d_DTHP_Right = Prs3d_DimensionTextHorizontalPosition.Prs3d_DTHP_Right
Prs3d_DTHP_Center = Prs3d_DimensionTextHorizontalPosition.Prs3d_DTHP_Center
Prs3d_DTHP_Fit = Prs3d_DimensionTextHorizontalPosition.Prs3d_DTHP_Fit

class Prs3d_TypeOfLinePicking(IntEnum):
	Prs3d_TOLP_Point = 0
	Prs3d_TOLP_Segment = 1
Prs3d_TOLP_Point = Prs3d_TypeOfLinePicking.Prs3d_TOLP_Point
Prs3d_TOLP_Segment = Prs3d_TypeOfLinePicking.Prs3d_TOLP_Segment

class Prs3d_TypeOfHLR(IntEnum):
	Prs3d_TOH_NotSet = 0
	Prs3d_TOH_PolyAlgo = 1
	Prs3d_TOH_Algo = 2
Prs3d_TOH_NotSet = Prs3d_TypeOfHLR.Prs3d_TOH_NotSet
Prs3d_TOH_PolyAlgo = Prs3d_TypeOfHLR.Prs3d_TOH_PolyAlgo
Prs3d_TOH_Algo = Prs3d_TypeOfHLR.Prs3d_TOH_Algo

class Prs3d_DatumAxes(IntEnum):
	Prs3d_DA_XAxis = 1
	Prs3d_DA_YAxis = 2
	Prs3d_DA_ZAxis = 4
	Prs3d_DA_XYAxis = Prs3d_DA_XAxis | Prs3d_DA_YAxis
	Prs3d_DA_YZAxis = Prs3d_DA_YAxis | Prs3d_DA_ZAxis
	Prs3d_DA_XZAxis = Prs3d_DA_XAxis | Prs3d_DA_ZAxis
	Prs3d_DA_XYZAxis = Prs3d_DA_XAxis | Prs3d_DA_YAxis | Prs3d_DA_ZAxis
Prs3d_DA_XAxis = Prs3d_DatumAxes.Prs3d_DA_XAxis
Prs3d_DA_YAxis = Prs3d_DatumAxes.Prs3d_DA_YAxis
Prs3d_DA_ZAxis = Prs3d_DatumAxes.Prs3d_DA_ZAxis
Prs3d_DA_XYAxis = Prs3d_DatumAxes.Prs3d_DA_XYAxis
Prs3d_DA_YZAxis = Prs3d_DatumAxes.Prs3d_DA_YZAxis
Prs3d_DA_XZAxis = Prs3d_DatumAxes.Prs3d_DA_XZAxis
Prs3d_DA_XYZAxis = Prs3d_DatumAxes.Prs3d_DA_XYZAxis

class Prs3d_DatumParts(IntEnum):
	Prs3d_DP_Origin = 0
	Prs3d_DP_XAxis = 1
	Prs3d_DP_YAxis = 2
	Prs3d_DP_ZAxis = 3
	Prs3d_DP_XArrow = 4
	Prs3d_DP_YArrow = 5
	Prs3d_DP_ZArrow = 6
	Prs3d_DP_XOYAxis = 7
	Prs3d_DP_YOZAxis = 8
	Prs3d_DP_XOZAxis = 9
	Prs3d_DP_None = 10
Prs3d_DP_Origin = Prs3d_DatumParts.Prs3d_DP_Origin
Prs3d_DP_XAxis = Prs3d_DatumParts.Prs3d_DP_XAxis
Prs3d_DP_YAxis = Prs3d_DatumParts.Prs3d_DP_YAxis
Prs3d_DP_ZAxis = Prs3d_DatumParts.Prs3d_DP_ZAxis
Prs3d_DP_XArrow = Prs3d_DatumParts.Prs3d_DP_XArrow
Prs3d_DP_YArrow = Prs3d_DatumParts.Prs3d_DP_YArrow
Prs3d_DP_ZArrow = Prs3d_DatumParts.Prs3d_DP_ZArrow
Prs3d_DP_XOYAxis = Prs3d_DatumParts.Prs3d_DP_XOYAxis
Prs3d_DP_YOZAxis = Prs3d_DatumParts.Prs3d_DP_YOZAxis
Prs3d_DP_XOZAxis = Prs3d_DatumParts.Prs3d_DP_XOZAxis
Prs3d_DP_None = Prs3d_DatumParts.Prs3d_DP_None

class Prs3d_DimensionArrowOrientation(IntEnum):
	Prs3d_DAO_Internal = 0
	Prs3d_DAO_External = 1
	Prs3d_DAO_Fit = 2
Prs3d_DAO_Internal = Prs3d_DimensionArrowOrientation.Prs3d_DAO_Internal
Prs3d_DAO_External = Prs3d_DimensionArrowOrientation.Prs3d_DAO_External
Prs3d_DAO_Fit = Prs3d_DimensionArrowOrientation.Prs3d_DAO_Fit


def Handle_Prs3d_BasicAspect_Create() -> "opencascade::handle< Prs3d_BasicAspect >":
    return _Prs3d.Handle_Prs3d_BasicAspect_Create()

def Handle_Prs3d_BasicAspect_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Prs3d_BasicAspect >":
    return _Prs3d.Handle_Prs3d_BasicAspect_DownCast(t)

def Handle_Prs3d_BasicAspect_IsNull(t: "opencascade::handle< Prs3d_BasicAspect > const &") -> "bool":
    return _Prs3d.Handle_Prs3d_BasicAspect_IsNull(t)

def Handle_Prs3d_Drawer_Create() -> "opencascade::handle< Prs3d_Drawer >":
    return _Prs3d.Handle_Prs3d_Drawer_Create()

def Handle_Prs3d_Drawer_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Prs3d_Drawer >":
    return _Prs3d.Handle_Prs3d_Drawer_DownCast(t)

def Handle_Prs3d_Drawer_IsNull(t: "opencascade::handle< Prs3d_Drawer > const &") -> "bool":
    return _Prs3d.Handle_Prs3d_Drawer_IsNull(t)

def Handle_Prs3d_PresentationShadow_Create() -> "opencascade::handle< Prs3d_PresentationShadow >":
    return _Prs3d.Handle_Prs3d_PresentationShadow_Create()

def Handle_Prs3d_PresentationShadow_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Prs3d_PresentationShadow >":
    return _Prs3d.Handle_Prs3d_PresentationShadow_DownCast(t)

def Handle_Prs3d_PresentationShadow_IsNull(t: "opencascade::handle< Prs3d_PresentationShadow > const &") -> "bool":
    return _Prs3d.Handle_Prs3d_PresentationShadow_IsNull(t)

def Handle_Prs3d_ArrowAspect_Create() -> "opencascade::handle< Prs3d_ArrowAspect >":
    return _Prs3d.Handle_Prs3d_ArrowAspect_Create()

def Handle_Prs3d_ArrowAspect_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Prs3d_ArrowAspect >":
    return _Prs3d.Handle_Prs3d_ArrowAspect_DownCast(t)

def Handle_Prs3d_ArrowAspect_IsNull(t: "opencascade::handle< Prs3d_ArrowAspect > const &") -> "bool":
    return _Prs3d.Handle_Prs3d_ArrowAspect_IsNull(t)

def Handle_Prs3d_DatumAspect_Create() -> "opencascade::handle< Prs3d_DatumAspect >":
    return _Prs3d.Handle_Prs3d_DatumAspect_Create()

def Handle_Prs3d_DatumAspect_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Prs3d_DatumAspect >":
    return _Prs3d.Handle_Prs3d_DatumAspect_DownCast(t)

def Handle_Prs3d_DatumAspect_IsNull(t: "opencascade::handle< Prs3d_DatumAspect > const &") -> "bool":
    return _Prs3d.Handle_Prs3d_DatumAspect_IsNull(t)

def Handle_Prs3d_DimensionAspect_Create() -> "opencascade::handle< Prs3d_DimensionAspect >":
    return _Prs3d.Handle_Prs3d_DimensionAspect_Create()

def Handle_Prs3d_DimensionAspect_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Prs3d_DimensionAspect >":
    return _Prs3d.Handle_Prs3d_DimensionAspect_DownCast(t)

def Handle_Prs3d_DimensionAspect_IsNull(t: "opencascade::handle< Prs3d_DimensionAspect > const &") -> "bool":
    return _Prs3d.Handle_Prs3d_DimensionAspect_IsNull(t)

def Handle_Prs3d_LineAspect_Create() -> "opencascade::handle< Prs3d_LineAspect >":
    return _Prs3d.Handle_Prs3d_LineAspect_Create()

def Handle_Prs3d_LineAspect_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Prs3d_LineAspect >":
    return _Prs3d.Handle_Prs3d_LineAspect_DownCast(t)

def Handle_Prs3d_LineAspect_IsNull(t: "opencascade::handle< Prs3d_LineAspect > const &") -> "bool":
    return _Prs3d.Handle_Prs3d_LineAspect_IsNull(t)

def Handle_Prs3d_PlaneAspect_Create() -> "opencascade::handle< Prs3d_PlaneAspect >":
    return _Prs3d.Handle_Prs3d_PlaneAspect_Create()

def Handle_Prs3d_PlaneAspect_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Prs3d_PlaneAspect >":
    return _Prs3d.Handle_Prs3d_PlaneAspect_DownCast(t)

def Handle_Prs3d_PlaneAspect_IsNull(t: "opencascade::handle< Prs3d_PlaneAspect > const &") -> "bool":
    return _Prs3d.Handle_Prs3d_PlaneAspect_IsNull(t)

def Handle_Prs3d_PointAspect_Create() -> "opencascade::handle< Prs3d_PointAspect >":
    return _Prs3d.Handle_Prs3d_PointAspect_Create()

def Handle_Prs3d_PointAspect_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Prs3d_PointAspect >":
    return _Prs3d.Handle_Prs3d_PointAspect_DownCast(t)

def Handle_Prs3d_PointAspect_IsNull(t: "opencascade::handle< Prs3d_PointAspect > const &") -> "bool":
    return _Prs3d.Handle_Prs3d_PointAspect_IsNull(t)

def Handle_Prs3d_ShadingAspect_Create() -> "opencascade::handle< Prs3d_ShadingAspect >":
    return _Prs3d.Handle_Prs3d_ShadingAspect_Create()

def Handle_Prs3d_ShadingAspect_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Prs3d_ShadingAspect >":
    return _Prs3d.Handle_Prs3d_ShadingAspect_DownCast(t)

def Handle_Prs3d_ShadingAspect_IsNull(t: "opencascade::handle< Prs3d_ShadingAspect > const &") -> "bool":
    return _Prs3d.Handle_Prs3d_ShadingAspect_IsNull(t)

def Handle_Prs3d_TextAspect_Create() -> "opencascade::handle< Prs3d_TextAspect >":
    return _Prs3d.Handle_Prs3d_TextAspect_Create()

def Handle_Prs3d_TextAspect_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Prs3d_TextAspect >":
    return _Prs3d.Handle_Prs3d_TextAspect_DownCast(t)

def Handle_Prs3d_TextAspect_IsNull(t: "opencascade::handle< Prs3d_TextAspect > const &") -> "bool":
    return _Prs3d.Handle_Prs3d_TextAspect_IsNull(t)

def Handle_Prs3d_IsoAspect_Create() -> "opencascade::handle< Prs3d_IsoAspect >":
    return _Prs3d.Handle_Prs3d_IsoAspect_Create()

def Handle_Prs3d_IsoAspect_DownCast(t: "opencascade::handle< Standard_Transient > const &") -> "opencascade::handle< Prs3d_IsoAspect >":
    return _Prs3d.Handle_Prs3d_IsoAspect_DownCast(t)

def Handle_Prs3d_IsoAspect_IsNull(t: "opencascade::handle< Prs3d_IsoAspect > const &") -> "bool":
    return _Prs3d.Handle_Prs3d_IsoAspect_IsNull(t)
class Prs3d_NListOfSequenceOfPnt(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def begin(self) -> "NCollection_List< opencascade::handle< TColgp_HSequenceOfPnt > >::iterator":
        return _Prs3d.Prs3d_NListOfSequenceOfPnt_begin(self)

    def end(self) -> "NCollection_List< opencascade::handle< TColgp_HSequenceOfPnt > >::iterator":
        return _Prs3d.Prs3d_NListOfSequenceOfPnt_end(self)

    def cbegin(self) -> "NCollection_List< opencascade::handle< TColgp_HSequenceOfPnt > >::const_iterator":
        return _Prs3d.Prs3d_NListOfSequenceOfPnt_cbegin(self)

    def cend(self) -> "NCollection_List< opencascade::handle< TColgp_HSequenceOfPnt > >::const_iterator":
        return _Prs3d.Prs3d_NListOfSequenceOfPnt_cend(self)

    def __init__(self, *args):
        _Prs3d.Prs3d_NListOfSequenceOfPnt_swiginit(self, _Prs3d.new_Prs3d_NListOfSequenceOfPnt(*args))

    def Size(self) -> "Standard_Integer":
        return _Prs3d.Prs3d_NListOfSequenceOfPnt_Size(self)

    def Assign(self, theOther: "Prs3d_NListOfSequenceOfPnt") -> "NCollection_List< opencascade::handle< TColgp_HSequenceOfPnt > > &":
        return _Prs3d.Prs3d_NListOfSequenceOfPnt_Assign(self, theOther)

    def Set(self, theOther: "Prs3d_NListOfSequenceOfPnt") -> "NCollection_List< opencascade::handle< TColgp_HSequenceOfPnt > > &":
        return _Prs3d.Prs3d_NListOfSequenceOfPnt_Set(self, theOther)

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

    def First(self) -> "opencascade::handle< TColgp_HSequenceOfPnt > const &":
        return _Prs3d.Prs3d_NListOfSequenceOfPnt_First(self)

    def Last(self) -> "opencascade::handle< TColgp_HSequenceOfPnt > const &":
        return _Prs3d.Prs3d_NListOfSequenceOfPnt_Last(self)

    def Append(self, *args) -> "void":
        return _Prs3d.Prs3d_NListOfSequenceOfPnt_Append(self, *args)

    def Prepend(self, *args) -> "void":
        return _Prs3d.Prs3d_NListOfSequenceOfPnt_Prepend(self, *args)

    def RemoveFirst(self) -> "void":
        return _Prs3d.Prs3d_NListOfSequenceOfPnt_RemoveFirst(self)

    def Remove(self, theIter: "NCollection_List< opencascade::handle< TColgp_HSequenceOfPnt > >::Iterator &") -> "void":
        return _Prs3d.Prs3d_NListOfSequenceOfPnt_Remove(self, theIter)

    def InsertBefore(self, *args) -> "void":
        return _Prs3d.Prs3d_NListOfSequenceOfPnt_InsertBefore(self, *args)

    def InsertAfter(self, *args) -> "void":
        return _Prs3d.Prs3d_NListOfSequenceOfPnt_InsertAfter(self, *args)

    def Reverse(self) -> "void":
        return _Prs3d.Prs3d_NListOfSequenceOfPnt_Reverse(self)
    __swig_destroy__ = _Prs3d.delete_Prs3d_NListOfSequenceOfPnt

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


# Register Prs3d_NListOfSequenceOfPnt in _Prs3d:
_Prs3d.Prs3d_NListOfSequenceOfPnt_swigregister(Prs3d_NListOfSequenceOfPnt)

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

    @staticmethod
    def AddFreeEdges(*args) -> "void":
        r"""
        Add triangulation free edges into sequence of line segments. @param thesegments [out] sequence of line segments to fill @param thepolytri [in] triangulation to process @param thelocation [in] transformation to apply.

        Parameters
        ----------
        theSegments: TColgp_SequenceOfPnt
        thePolyTri: Poly_Triangulation
        theLocation: gp_Trsf

        Returns
        -------
        None

        """
        return _Prs3d.prs3d_AddFreeEdges(*args)

    @staticmethod
    def AddPrimitivesGroup(*args) -> "void":
        r"""
        Add primitives into new group in presentation and clear the list of polylines.

        Parameters
        ----------
        thePrs: Prs3d_Presentation
        theAspect: Prs3d_LineAspect
        thePolylines: Prs3d_NListOfSequenceOfPnt

        Returns
        -------
        None

        """
        return _Prs3d.prs3d_AddPrimitivesGroup(*args)

    @staticmethod
    def GetDeflection(*args) -> "Standard_Real":
        r"""
        Computes the absolute deflection value based on relative deflection prs3d_drawer::deviationcoefficient(). @param thebndmin [in] bounding box min corner @param thebndmax [in] bounding box max corner @param thedeviationcoefficient [in] relative deflection coefficient from prs3d_drawer::deviationcoefficient() returns absolute deflection coefficient based on bounding box dimensions.

        Parameters
        ----------
        theBndMin: Graphic3d_Vec3d
        theBndMax: Graphic3d_Vec3d
        theDeviationCoefficient: float

        Returns
        -------
        float
        Computes the absolute deflection value based on relative deflection prs3d_drawer::deviationcoefficient(). @param thebndbox [in] bounding box @param thedeviationcoefficient [in] relative deflection coefficient from prs3d_drawer::deviationcoefficient() @param themaximalchordialdeviation [in] absolute deflection coefficient from prs3d_drawer::maximalchordialdeviation() returns absolute deflection coefficient based on bounding box dimensions or themaximalchordialdeviation if bounding box is void or infinite.

        Parameters
        ----------
        theBndBox: Bnd_Box
        theDeviationCoefficient: float
        theMaximalChordialDeviation: float

        Returns
        -------
        float

        """
        return _Prs3d.prs3d_GetDeflection(*args)

    @staticmethod
    def MatchSegment(*args) -> "Standard_Real &":
        r"""
        Draws an arrow at a given location, with respect to a given direction.

        Parameters
        ----------
        X: float
        Y: float
        Z: float
        aDistance: float
        p1: gp_Pnt
        p2: gp_Pnt

        Returns
        -------
        dist: float

        """
        return _Prs3d.prs3d_MatchSegment(*args)

    @staticmethod
    def PrimitivesFromPolylines(*args) -> "opencascade::handle< Graphic3d_ArrayOfPrimitives >":
        r"""
        Assembles array of primitives for sequence of polylines. @param thepoints [in] the polylines sequence returns array of primitives.

        Parameters
        ----------
        thePoints: Prs3d_NListOfSequenceOfPnt

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

        """
        return _Prs3d.prs3d_PrimitivesFromPolylines(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _Prs3d.prs3d_swiginit(self, _Prs3d.new_prs3d())
    __swig_destroy__ = _Prs3d.delete_prs3d

# Register prs3d in _Prs3d:
_Prs3d.prs3d_swigregister(prs3d)

def prs3d_AddFreeEdges(*args) -> "void":
    r"""
    Add triangulation free edges into sequence of line segments. @param thesegments [out] sequence of line segments to fill @param thepolytri [in] triangulation to process @param thelocation [in] transformation to apply.

    Parameters
    ----------
    theSegments: TColgp_SequenceOfPnt
    thePolyTri: Poly_Triangulation
    theLocation: gp_Trsf

    Returns
    -------
    None

    """
    return _Prs3d.prs3d_AddFreeEdges(*args)

def prs3d_AddPrimitivesGroup(*args) -> "void":
    r"""
    Add primitives into new group in presentation and clear the list of polylines.

    Parameters
    ----------
    thePrs: Prs3d_Presentation
    theAspect: Prs3d_LineAspect
    thePolylines: Prs3d_NListOfSequenceOfPnt

    Returns
    -------
    None

    """
    return _Prs3d.prs3d_AddPrimitivesGroup(*args)

def prs3d_GetDeflection(*args) -> "Standard_Real":
    r"""
    Computes the absolute deflection value based on relative deflection prs3d_drawer::deviationcoefficient(). @param thebndmin [in] bounding box min corner @param thebndmax [in] bounding box max corner @param thedeviationcoefficient [in] relative deflection coefficient from prs3d_drawer::deviationcoefficient() returns absolute deflection coefficient based on bounding box dimensions.

    Parameters
    ----------
    theBndMin: Graphic3d_Vec3d
    theBndMax: Graphic3d_Vec3d
    theDeviationCoefficient: float

    Returns
    -------
    float
    Computes the absolute deflection value based on relative deflection prs3d_drawer::deviationcoefficient(). @param thebndbox [in] bounding box @param thedeviationcoefficient [in] relative deflection coefficient from prs3d_drawer::deviationcoefficient() @param themaximalchordialdeviation [in] absolute deflection coefficient from prs3d_drawer::maximalchordialdeviation() returns absolute deflection coefficient based on bounding box dimensions or themaximalchordialdeviation if bounding box is void or infinite.

    Parameters
    ----------
    theBndBox: Bnd_Box
    theDeviationCoefficient: float
    theMaximalChordialDeviation: float

    Returns
    -------
    float

    """
    return _Prs3d.prs3d_GetDeflection(*args)

def prs3d_MatchSegment(*args) -> "Standard_Real &":
    r"""
    Draws an arrow at a given location, with respect to a given direction.

    Parameters
    ----------
    X: float
    Y: float
    Z: float
    aDistance: float
    p1: gp_Pnt
    p2: gp_Pnt

    Returns
    -------
    dist: float

    """
    return _Prs3d.prs3d_MatchSegment(*args)

def prs3d_PrimitivesFromPolylines(*args) -> "opencascade::handle< Graphic3d_ArrayOfPrimitives >":
    r"""
    Assembles array of primitives for sequence of polylines. @param thepoints [in] the polylines sequence returns array of primitives.

    Parameters
    ----------
    thePoints: Prs3d_NListOfSequenceOfPnt

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

    """
    return _Prs3d.prs3d_PrimitivesFromPolylines(*args)

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

    @staticmethod
    def Draw(*args) -> "void":
        r"""
        Defines the representation of the arrow. note that this method does not assign any presentation aspects to the primitives group! @param thegroup presentation group to add primitives @param thelocation location of the arrow tip @param thedirection direction of the arrow @param theangle angle of opening of the arrow head @param thelength length of the arrow (from the tip).

        Parameters
        ----------
        theGroup: Graphic3d_Group
        theLocation: gp_Pnt
        theDirection: gp_Dir
        theAngle: float
        theLength: float

        Returns
        -------
        None
        Alias to another method draw() for backward compatibility.

        Parameters
        ----------
        thePrs: Prs3d_Presentation
        theLocation: gp_Pnt
        theDirection: gp_Dir
        theAngle: float
        theLength: float

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Arrow_Draw(*args)

    @staticmethod
    def DrawSegments(*args) -> "opencascade::handle< Graphic3d_ArrayOfSegments >":
        r"""
        Defines the representation of the arrow as a container of segments. @param thelocation location of the arrow tip @param thedir direction of the arrow @param theangle angle of opening of the arrow head @param thelength length of the arrow (from the tip) @param thenbsegments count of points on polyline where location is connected.

        Parameters
        ----------
        theLocation: gp_Pnt
        theDir: gp_Dir
        theAngle: float
        theLength: float
        theNbSegments: int

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

        """
        return _Prs3d.Prs3d_Arrow_DrawSegments(*args)

    @staticmethod
    def DrawShaded(*args) -> "opencascade::handle< Graphic3d_ArrayOfTriangles >":
        r"""
        Defines the representation of the arrow as shaded triangulation. @param theaxis axis definition (arrow origin and direction) @param thetuberadius tube (cylinder) radius @param theaxislength overall arrow length (cylinder + cone) @param theconeradius cone radius (arrow tip) @param theconelength cone length (arrow tip) @param thenbfacettes tessellation quality for each part.

        Parameters
        ----------
        theAxis: gp_Ax1
        theTubeRadius: float
        theAxisLength: float
        theConeRadius: float
        theConeLength: float
        theNbFacettes: int

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

        """
        return _Prs3d.Prs3d_Arrow_DrawShaded(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _Prs3d.Prs3d_Arrow_swiginit(self, _Prs3d.new_Prs3d_Arrow())
    __swig_destroy__ = _Prs3d.delete_Prs3d_Arrow

# Register Prs3d_Arrow in _Prs3d:
_Prs3d.Prs3d_Arrow_swigregister(Prs3d_Arrow)

def Prs3d_Arrow_Draw(*args) -> "void":
    r"""
    Defines the representation of the arrow. note that this method does not assign any presentation aspects to the primitives group! @param thegroup presentation group to add primitives @param thelocation location of the arrow tip @param thedirection direction of the arrow @param theangle angle of opening of the arrow head @param thelength length of the arrow (from the tip).

    Parameters
    ----------
    theGroup: Graphic3d_Group
    theLocation: gp_Pnt
    theDirection: gp_Dir
    theAngle: float
    theLength: float

    Returns
    -------
    None
    Alias to another method draw() for backward compatibility.

    Parameters
    ----------
    thePrs: Prs3d_Presentation
    theLocation: gp_Pnt
    theDirection: gp_Dir
    theAngle: float
    theLength: float

    Returns
    -------
    None

    """
    return _Prs3d.Prs3d_Arrow_Draw(*args)

def Prs3d_Arrow_DrawSegments(*args) -> "opencascade::handle< Graphic3d_ArrayOfSegments >":
    r"""
    Defines the representation of the arrow as a container of segments. @param thelocation location of the arrow tip @param thedir direction of the arrow @param theangle angle of opening of the arrow head @param thelength length of the arrow (from the tip) @param thenbsegments count of points on polyline where location is connected.

    Parameters
    ----------
    theLocation: gp_Pnt
    theDir: gp_Dir
    theAngle: float
    theLength: float
    theNbSegments: int

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

    """
    return _Prs3d.Prs3d_Arrow_DrawSegments(*args)

def Prs3d_Arrow_DrawShaded(*args) -> "opencascade::handle< Graphic3d_ArrayOfTriangles >":
    r"""
    Defines the representation of the arrow as shaded triangulation. @param theaxis axis definition (arrow origin and direction) @param thetuberadius tube (cylinder) radius @param theaxislength overall arrow length (cylinder + cone) @param theconeradius cone radius (arrow tip) @param theconelength cone length (arrow tip) @param thenbfacettes tessellation quality for each part.

    Parameters
    ----------
    theAxis: gp_Ax1
    theTubeRadius: float
    theAxisLength: float
    theConeRadius: float
    theConeLength: float
    theNbFacettes: int

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

    """
    return _Prs3d.Prs3d_Arrow_DrawShaded(*args)

class Prs3d_BasicAspect(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


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_BasicAspect

# Register Prs3d_BasicAspect in _Prs3d:
_Prs3d.Prs3d_BasicAspect_swigregister(Prs3d_BasicAspect)

class Prs3d_DimensionUnits(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"""
        Default constructor. sets meters as default length units and radians as default angle units.

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

        Parameters
        ----------
        theUnits: Prs3d_DimensionUnits

        Returns
        -------
        None

        """
        _Prs3d.Prs3d_DimensionUnits_swiginit(self, _Prs3d.new_Prs3d_DimensionUnits(*args))

    def GetAngleUnits(self, *args) -> "TCollection_AsciiString const &":
        r"""
        Returns angle units.

        Returns
        -------
        TCollection_AsciiString

        """
        return _Prs3d.Prs3d_DimensionUnits_GetAngleUnits(self, *args)

    def GetLengthUnits(self, *args) -> "TCollection_AsciiString const &":
        r"""
        Returns length units.

        Returns
        -------
        TCollection_AsciiString

        """
        return _Prs3d.Prs3d_DimensionUnits_GetLengthUnits(self, *args)

    def SetAngleUnits(self, *args) -> "void":
        r"""
        Sets angle units.

        Parameters
        ----------
        theUnits: TCollection_AsciiString

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DimensionUnits_SetAngleUnits(self, *args)

    def SetLengthUnits(self, *args) -> "void":
        r"""
        Sets length units.

        Parameters
        ----------
        theUnits: TCollection_AsciiString

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DimensionUnits_SetLengthUnits(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_DimensionUnits

# Register Prs3d_DimensionUnits in _Prs3d:
_Prs3d.Prs3d_DimensionUnits_swigregister(Prs3d_DimensionUnits)

class Prs3d_Drawer(OCC.Core.Graphic3d.Graphic3d_PresentationAttributes):
    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"""
        Default constructor.

        Returns
        -------
        None

        """
        _Prs3d.Prs3d_Drawer_swiginit(self, _Prs3d.new_Prs3d_Drawer(*args))

    def ArrowAspect(self, *args) -> "opencascade::handle< Prs3d_ArrowAspect > const &":
        r"""
        Returns the attributes for display of arrows.

        Returns
        -------
        opencascade::handle<Prs3d_ArrowAspect>

        """
        return _Prs3d.Prs3d_Drawer_ArrowAspect(self, *args)

    def ClearLocalAttributes(self, *args) -> "void":
        r"""
        Removes local attributes. .

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_ClearLocalAttributes(self, *args)

    def DatumAspect(self, *args) -> "opencascade::handle< Prs3d_DatumAspect > const &":
        r"""
        Returns settings for the appearance of datums. these settings can be edited. the default values for the three axes are: color: quantity_noc_peachpuff type of line: aspect_tol_solid width: 1.0.

        Returns
        -------
        opencascade::handle<Prs3d_DatumAspect>

        """
        return _Prs3d.Prs3d_Drawer_DatumAspect(self, *args)

    def DeviationAngle(self, *args) -> "Standard_Real":
        r"""
        Returns the value for deviation angle in radians, 20 * m_pi / 180 by default.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_Drawer_DeviationAngle(self, *args)

    def DeviationCoefficient(self, *args) -> "Standard_Real":
        r"""
        Returns the deviation coefficient. drawings of curves or patches are made with respect to a maximal chordal deviation. a deviation coefficient is used in the shading display mode. the shape is seen decomposed into triangles. these are used to calculate reflection of light from the surface of the object. the triangles are formed from chords of the curves in the shape. the deviation coefficient gives the highest value of the angle with which a chord can deviate from a tangent to a curve. if this limit is reached, a new triangle is begun. this deviation is absolute and is set through the method: setmaximalchordialdeviation. the default value is 0.001. in drawing shapes, however, you are allowed to ask for a relative deviation. this deviation will be: sizeofobject * deviationcoefficient.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_Drawer_DeviationCoefficient(self, *args)

    def DimAngleDisplayUnits(self, *args) -> "TCollection_AsciiString const &":
        r"""
        Returns angle units in which dimension presentation is displayed.

        Returns
        -------
        TCollection_AsciiString

        """
        return _Prs3d.Prs3d_Drawer_DimAngleDisplayUnits(self, *args)

    def DimAngleModelUnits(self, *args) -> "TCollection_AsciiString const &":
        r"""
        Returns angle model units for the dimension presentation. .

        Returns
        -------
        TCollection_AsciiString

        """
        return _Prs3d.Prs3d_Drawer_DimAngleModelUnits(self, *args)

    def DimLengthDisplayUnits(self, *args) -> "TCollection_AsciiString const &":
        r"""
        Returns length units in which dimension presentation is displayed.

        Returns
        -------
        TCollection_AsciiString

        """
        return _Prs3d.Prs3d_Drawer_DimLengthDisplayUnits(self, *args)

    def DimLengthModelUnits(self, *args) -> "TCollection_AsciiString const &":
        r"""
        Returns length model units for the dimension presentation. .

        Returns
        -------
        TCollection_AsciiString

        """
        return _Prs3d.Prs3d_Drawer_DimLengthModelUnits(self, *args)

    def DimensionAspect(self, *args) -> "opencascade::handle< Prs3d_DimensionAspect > const &":
        r"""
        Returns settings for the appearance of dimensions. .

        Returns
        -------
        opencascade::handle<Prs3d_DimensionAspect>

        """
        return _Prs3d.Prs3d_Drawer_DimensionAspect(self, *args)

    def DisableDrawHiddenLine(self, *args) -> "void":
        r"""
        Disables the drawhiddenline function.

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_DisableDrawHiddenLine(self, *args)

    def Discretisation(self, *args) -> "Standard_Integer":
        r"""
        Returns the discretisation setting. .

        Returns
        -------
        int

        """
        return _Prs3d.Prs3d_Drawer_Discretisation(self, *args)

    def DrawHiddenLine(self, *args) -> "Standard_Boolean":
        r"""
        Returns standard_true if the hidden lines are to be drawn. by default the hidden lines are not drawn.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_DrawHiddenLine(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Prs3d_Drawer self, int depth=-1) -> std::string"""
        return _Prs3d.Prs3d_Drawer_DumpJsonToString(self, depth)

    def EnableDrawHiddenLine(self, *args) -> "void":
        r"""
        Enables the drawhiddenline function.

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_EnableDrawHiddenLine(self, *args)

    def FaceBoundaryAspect(self, *args) -> "opencascade::handle< Prs3d_LineAspect > const &":
        r"""
        Returns line aspect of face boundaries.

        Returns
        -------
        opencascade::handle<Prs3d_LineAspect>

        """
        return _Prs3d.Prs3d_Drawer_FaceBoundaryAspect(self, *args)

    def FaceBoundaryDraw(self, *args) -> "Standard_Boolean":
        r"""
        Checks whether the face boundary drawing is enabled or not.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_FaceBoundaryDraw(self, *args)

    def FaceBoundaryUpperContinuity(self, *args) -> "GeomAbs_Shape":
        r"""
        Get the most edge continuity class; geomabs_cn by default (all edges).

        Returns
        -------
        GeomAbs_Shape

        """
        return _Prs3d.Prs3d_Drawer_FaceBoundaryUpperContinuity(self, *args)

    def FreeBoundaryAspect(self, *args) -> "opencascade::handle< Prs3d_LineAspect > const &":
        r"""
        Returns the values for presentation of free boundaries, in other words, boundaries which are not shared. the lineaspect for the free boundaries can be edited. the default values are: color: quantity_noc_green type of line: aspect_tol_solid width: 1.0 these attributes are used by the algorithm prs3d_wfshape.

        Returns
        -------
        opencascade::handle<Prs3d_LineAspect>

        """
        return _Prs3d.Prs3d_Drawer_FreeBoundaryAspect(self, *args)

    def FreeBoundaryDraw(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawing of the free boundaries is enabled true is the default setting.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_FreeBoundaryDraw(self, *args)

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

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_Drawer_HLRAngle(self, *args)

    def HasLink(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the current object has a link on the other drawer.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasLink(self, *args)

    def HasOwnArrowAspect(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for arrow aspect that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnArrowAspect(self, *args)

    def HasOwnDatumAspect(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for datum aspect that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnDatumAspect(self, *args)

    def HasOwnDeviationAngle(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the there is a local setting for deviation angle in this framework for a specific interactive object.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnDeviationAngle(self, *args)

    def HasOwnDeviationCoefficient(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if there is a local setting for deviation coefficient in this framework for a specific interactive object.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnDeviationCoefficient(self, *args)

    def HasOwnDimAngleDisplayUnits(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for angle units in which dimension presentation is displayed that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnDimAngleDisplayUnits(self, *args)

    def HasOwnDimAngleModelUnits(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for dimension angle model units that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnDimAngleModelUnits(self, *args)

    def HasOwnDimLengthDisplayUnits(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for length units in which dimension presentation is displayed that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnDimLengthDisplayUnits(self, *args)

    def HasOwnDimLengthModelUnits(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for dimension length model units that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnDimLengthModelUnits(self, *args)

    def HasOwnDimensionAspect(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for the appearance of dimensions that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnDimensionAspect(self, *args)

    def HasOwnDiscretisation(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has discretisation setting active.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnDiscretisation(self, *args)

    def HasOwnDrawHiddenLine(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for 'draw hidden lines' flag that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnDrawHiddenLine(self, *args)

    def HasOwnFaceBoundaryAspect(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for face boundaries aspect that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnFaceBoundaryAspect(self, *args)

    def HasOwnFaceBoundaryDraw(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for 'draw face boundaries' flag that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnFaceBoundaryDraw(self, *args)

    def HasOwnFaceBoundaryUpperContinuity(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for face boundaries upper edge continuity class that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnFaceBoundaryUpperContinuity(self, *args)

    def HasOwnFreeBoundaryAspect(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for free boundaries aspect that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnFreeBoundaryAspect(self, *args)

    def HasOwnFreeBoundaryDraw(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for 'draw free boundaries' flag that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnFreeBoundaryDraw(self, *args)

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

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnHLRDeviationAngle(self, *args)

    def HasOwnHiddenLineAspect(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for hidden lines aspect that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnHiddenLineAspect(self, *args)

    def HasOwnIsAutoTriangulation(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has isoonplane setting active.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnIsAutoTriangulation(self, *args)

    def HasOwnIsoOnPlane(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has isoonplane setting active.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnIsoOnPlane(self, *args)

    def HasOwnIsoOnTriangulation(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has isoontriangulation setting active.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnIsoOnTriangulation(self, *args)

    def HasOwnLineArrowDraw(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for 'draw arrow' flag that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnLineArrowDraw(self, *args)

    def HasOwnLineAspect(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for line aspect that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnLineAspect(self, *args)

    def HasOwnMaximalChordialDeviation(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has a maximal chordial deviation setting active.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnMaximalChordialDeviation(self, *args)

    def HasOwnMaximalParameterValue(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has a maximum value allowed for the first and last parameters of an infinite curve setting active.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnMaximalParameterValue(self, *args)

    def HasOwnPlaneAspect(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for plane aspect that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnPlaneAspect(self, *args)

    def HasOwnPointAspect(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for point aspect that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnPointAspect(self, *args)

    def HasOwnSectionAspect(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for section aspect that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnSectionAspect(self, *args)

    def HasOwnSeenLineAspect(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for seen line aspect that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnSeenLineAspect(self, *args)

    def HasOwnShadingAspect(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for shading aspect that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnShadingAspect(self, *args)

    def HasOwnTextAspect(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for text aspect that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnTextAspect(self, *args)

    def HasOwnTypeOfDeflection(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has a type of deflection setting active.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnTypeOfDeflection(self, *args)

    def HasOwnTypeOfHLR(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the type of hlr is not equal to prs3d_toh_notset.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnTypeOfHLR(self, *args)

    def HasOwnUIsoAspect(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for uiso aspect that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnUIsoAspect(self, *args)

    def HasOwnUnFreeBoundaryAspect(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for unfree boundaries aspect that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnUnFreeBoundaryAspect(self, *args)

    def HasOwnUnFreeBoundaryDraw(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for 'draw shared boundaries' flag that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnUnFreeBoundaryDraw(self, *args)

    def HasOwnVIsoAspect(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for viso aspect that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnVIsoAspect(self, *args)

    def HasOwnVectorAspect(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for vector aspect that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnVectorAspect(self, *args)

    def HasOwnVertexDrawMode(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the vertex draw mode is not equal to <b>prs3d_vdm_inherited</b>. this means that individual vertex draw mode value (i.e. not inherited from the global drawer) is used for a specific interactive object.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnVertexDrawMode(self, *args)

    def HasOwnWireAspect(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for wire aspect that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnWireAspect(self, *args)

    def HasOwnWireDraw(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawer has its own attribute for 'draw wires' flag that overrides the one in the link.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_HasOwnWireDraw(self, *args)

    def HiddenLineAspect(self, *args) -> "opencascade::handle< Prs3d_LineAspect > const &":
        r"""
        Returns settings for hidden line aspects. these settings can be edited. the default values are: color: quantity_noc_yellow type of line: aspect_tol_dash width: 1.0.

        Returns
        -------
        opencascade::handle<Prs3d_LineAspect>

        """
        return _Prs3d.Prs3d_Drawer_HiddenLineAspect(self, *args)

    def IsAutoTriangulation(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if automatic triangulation is enabled.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_IsAutoTriangulation(self, *args)

    def IsoOnPlane(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawing of isos on planes is enabled.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_IsoOnPlane(self, *args)

    def IsoOnTriangulation(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawing of isos on triangulation is enabled.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_IsoOnTriangulation(self, *args)

    def LineArrowDraw(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if drawing an arrow at the end of each edge is enabled and false otherwise (the default).

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_LineArrowDraw(self, *args)

    def LineAspect(self, *args) -> "opencascade::handle< Prs3d_LineAspect > const &":
        r"""
        Returns settings for line aspects. these settings can be edited. the default values are: color: quantity_noc_yellow type of line: aspect_tol_solid width: 1.0 these attributes are used by the following algorithms: prs3d_curve prs3d_line prs3d_hlrshape.

        Returns
        -------
        opencascade::handle<Prs3d_LineAspect>

        """
        return _Prs3d.Prs3d_Drawer_LineAspect(self, *args)

    def Link(self, *args) -> "void":
        r"""
        Returns the drawer to which the current object references.

        Returns
        -------
        opencascade::handle<Prs3d_Drawer>
        Sets thedrawer as a link to which the current object references.

        Parameters
        ----------
        theDrawer: Prs3d_Drawer

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_Link(self, *args)

    def MaximalChordialDeviation(self, *args) -> "Standard_Real":
        r"""
        Returns the maximal chordal deviation. the default value is 0.1. drawings of curves or patches are made with respect to an absolute maximal chordal deviation.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_Drawer_MaximalChordialDeviation(self, *args)

    def MaximalParameterValue(self, *args) -> "Standard_Real":
        r"""
        Sets the maximum value allowed for the first and last parameters of an infinite curve. by default, this value is 500000.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_Drawer_MaximalParameterValue(self, *args)

    def PlaneAspect(self, *args) -> "opencascade::handle< Prs3d_PlaneAspect > const &":
        r"""
        Returns settings for the appearance of planes.

        Returns
        -------
        opencascade::handle<Prs3d_PlaneAspect>

        """
        return _Prs3d.Prs3d_Drawer_PlaneAspect(self, *args)

    def PointAspect(self, *args) -> "opencascade::handle< Prs3d_PointAspect > const &":
        r"""
        Returns the point aspect setting. the default values are color: quantity_noc_yellow type of marker: aspect_tom_plus scale: 1.0 these attributes are used by the algorithms prs3d_point.

        Returns
        -------
        opencascade::handle<Prs3d_PointAspect>

        """
        return _Prs3d.Prs3d_Drawer_PointAspect(self, *args)

    def PreviousDeviationAngle(self, *args) -> "Standard_Real":
        r"""
        Returns the previous deviation angle.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_Drawer_PreviousDeviationAngle(self, *args)

    def PreviousDeviationCoefficient(self, *args) -> "Standard_Real":
        r"""
        Saves the previous value used for the chordal deviation coefficient. .

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_Drawer_PreviousDeviationCoefficient(self, *args)

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

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_Drawer_PreviousHLRDeviationAngle(self, *args)

    def SectionAspect(self, *args) -> "opencascade::handle< Prs3d_LineAspect > const &":
        r"""
        The lineaspect for the wire can be edited. the default values are: color: quantity_noc_orange type of line: aspect_tol_solid width: 1.0 these attributes are used by the algorithm prs3d_wfshape.

        Returns
        -------
        opencascade::handle<Prs3d_LineAspect>

        """
        return _Prs3d.Prs3d_Drawer_SectionAspect(self, *args)

    def SeenLineAspect(self, *args) -> "opencascade::handle< Prs3d_LineAspect > const &":
        r"""
        Returns settings for seen line aspects. these settings can be edited. the default values are: color: quantity_noc_yellow type of line: aspect_tol_solid width: 1.0.

        Returns
        -------
        opencascade::handle<Prs3d_LineAspect>

        """
        return _Prs3d.Prs3d_Drawer_SeenLineAspect(self, *args)

    def SetArrowAspect(self, *args) -> "void":
        r"""
        Sets the parameter theaspect for display attributes of arrows.

        Parameters
        ----------
        theAspect: Prs3d_ArrowAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetArrowAspect(self, *args)

    def SetAutoTriangulation(self, *args) -> "void":
        r"""
        Sets isautotriangulated on or off by setting the parameter theisenabled to true or false. if this flag is true automatic re-triangulation with deflection-check logic will be applied. else this feature will be disable and triangulation is expected to be computed by application itself and no shading presentation at all if unavailable.

        Parameters
        ----------
        theIsEnabled: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetAutoTriangulation(self, *args)

    def SetDatumAspect(self, *args) -> "void":
        r"""
        Sets the modality theaspect for the display of datums.

        Parameters
        ----------
        theAspect: Prs3d_DatumAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetDatumAspect(self, *args)

    def SetDeviationAngle(self, *args) -> "void":
        r"""
        Sets the deviation angle theangle. also sets the hasowndeviationangle flag to standard_true, and mypreviousdeviationangle.

        Parameters
        ----------
        theAngle: float

        Returns
        -------
        None
        Sets the hasowndeviationangle flag to standard_false.

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetDeviationAngle(self, *args)

    def SetDeviationCoefficient(self, *args) -> "void":
        r"""
        Sets the deviation coefficient thecoefficient. also sets the hasowndeviationcoefficient flag to standard_true and mypreviousdeviationcoefficient.

        Parameters
        ----------
        theCoefficient: float

        Returns
        -------
        None
        Sets the hasowndeviationcoefficient flag to standard_false.

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetDeviationCoefficient(self, *args)

    def SetDimAngleDisplayUnits(self, *args) -> "void":
        r"""
        Sets angle units in which value for dimension presentation is displayed. the method sets value owned by the drawer that will be used during visualization instead of the one set in link.

        Parameters
        ----------
        theUnits: TCollection_AsciiString

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetDimAngleDisplayUnits(self, *args)

    def SetDimAngleModelUnits(self, *args) -> "void":
        r"""
        Sets dimension angle model units for computing of dimension presentation. the method sets value owned by the drawer that will be used during visualization instead of the one set in link.

        Parameters
        ----------
        theUnits: TCollection_AsciiString

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetDimAngleModelUnits(self, *args)

    def SetDimLengthDisplayUnits(self, *args) -> "void":
        r"""
        Sets length units in which value for dimension presentation is displayed. the method sets value owned by the drawer that will be used during visualization instead of the one set in link.

        Parameters
        ----------
        theUnits: TCollection_AsciiString

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetDimLengthDisplayUnits(self, *args)

    def SetDimLengthModelUnits(self, *args) -> "void":
        r"""
        Sets dimension length model units for computing of dimension presentation. the method sets value owned by the drawer that will be used during visualization instead of the one set in link.

        Parameters
        ----------
        theUnits: TCollection_AsciiString

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetDimLengthModelUnits(self, *args)

    def SetDimensionAspect(self, *args) -> "void":
        r"""
        Sets the settings for the appearance of dimensions. the method sets aspect owned by the drawer that will be used during visualization instead of the one set in link.

        Parameters
        ----------
        theAspect: Prs3d_DimensionAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetDimensionAspect(self, *args)

    def SetDiscretisation(self, *args) -> "void":
        r"""
        Sets the discretisation parameter thevalue.

        Parameters
        ----------
        theValue: int

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetDiscretisation(self, *args)

    def SetFaceBoundaryAspect(self, *args) -> "void":
        r"""
        Sets line aspect for face boundaries. the method sets line aspect owned by the drawer that will be used during visualization instead of the one set in link. theaspect is the line aspect that determines the look of the face boundaries.

        Parameters
        ----------
        theAspect: Prs3d_LineAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetFaceBoundaryAspect(self, *args)

    def SetFaceBoundaryDraw(self, *args) -> "void":
        r"""
        Enables or disables face boundary drawing for shading presentations. the method sets drawing flag owned by the drawer that will be used during visualization instead of the one set in link. theisenabled is a boolean flag indicating whether the face boundaries should be drawn or not.

        Parameters
        ----------
        theIsEnabled: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetFaceBoundaryDraw(self, *args)

    def SetFaceBoundaryUpperContinuity(self, *args) -> "void":
        r"""
        Set the most edge continuity class for face boundaries.

        Parameters
        ----------
        theMostAllowedEdgeClass: GeomAbs_Shape

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetFaceBoundaryUpperContinuity(self, *args)

    def SetFreeBoundaryAspect(self, *args) -> "void":
        r"""
        Sets the parameter theaspect for the display of free boundaries. the method sets aspect owned by the drawer that will be used during visualization instead of the one set in link.

        Parameters
        ----------
        theAspect: Prs3d_LineAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetFreeBoundaryAspect(self, *args)

    def SetFreeBoundaryDraw(self, *args) -> "void":
        r"""
        Enables or disables drawing of free boundaries for shading presentations. the method sets drawing flag owned by the drawer that will be used during visualization instead of the one set in link. theisenabled is a boolean flag indicating whether the free boundaries should be drawn or not.

        Parameters
        ----------
        theIsEnabled: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetFreeBoundaryDraw(self, *args)

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

        Parameters
        ----------
        theAngle: float

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

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetHLRAngle(self, *args)

    def SetHiddenLineAspect(self, *args) -> "void":
        r"""
        Sets the parameter theaspect for the display of hidden lines in hidden line removal mode.

        Parameters
        ----------
        theAspect: Prs3d_LineAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetHiddenLineAspect(self, *args)

    def SetIsoOnPlane(self, *args) -> "void":
        r"""
        Sets isoonplane on or off by setting the parameter theisenabled to true or false.

        Parameters
        ----------
        theIsEnabled: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetIsoOnPlane(self, *args)

    def SetIsoOnTriangulation(self, *args) -> "void":
        r"""
        Enables or disables isolines on triangulation by setting the parameter theisenabled to true or false.

        Parameters
        ----------
        theToEnable: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetIsoOnTriangulation(self, *args)

    def SetLineArrowDraw(self, *args) -> "void":
        r"""
        Enables the drawing of an arrow at the end of each line. by default the arrows are not drawn.

        Parameters
        ----------
        theIsEnabled: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetLineArrowDraw(self, *args)

    def SetLineAspect(self, *args) -> "void":
        r"""
        Sets the parameter theaspect for display attributes of lines.

        Parameters
        ----------
        theAspect: Prs3d_LineAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetLineAspect(self, *args)

    def SetLink(self, *args) -> "void":
        r"""
        Sets thedrawer as a link to which the current object references.

        Parameters
        ----------
        theDrawer: Prs3d_Drawer

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetLink(self, *args)

    def SetMaximalChordialDeviation(self, *args) -> "void":
        r"""
        Defines the maximal chordial deviation when drawing any curve. even if the type of deviation is set to tod_relative, this value is used by: prs3d_deflectioncurve prs3d_wfdeflectionsurface prs3d_wfdeflectionrestrictedface.

        Parameters
        ----------
        theChordialDeviation: float

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetMaximalChordialDeviation(self, *args)

    def SetMaximalParameterValue(self, *args) -> "void":
        r"""
        Defines the maximum value allowed for the first and last parameters of an infinite curve.

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

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetMaximalParameterValue(self, *args)

    def SetOwnDatumAspects(self, *args) -> "Standard_Boolean":
        r"""
        Sets own line aspects for datums. returns false if own line for datums are already set.

        Parameters
        ----------
        theDefaults: Prs3d_Drawer,optional
        	default value is opencascade::handle<Prs3d_Drawer>()

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_SetOwnDatumAspects(self, *args)

    def SetOwnLineAspects(self, *args) -> "Standard_Boolean":
        r"""
        Sets own line aspects. returns false if own line aspect are already set.

        Parameters
        ----------
        theDefaults: Prs3d_Drawer,optional
        	default value is opencascade::handle<Prs3d_Drawer>()

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_SetOwnLineAspects(self, *args)

    def SetPlaneAspect(self, *args) -> "void":
        r"""
        Sets the parameter theaspect for the display of planes. .

        Parameters
        ----------
        theAspect: Prs3d_PlaneAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetPlaneAspect(self, *args)

    def SetPointAspect(self, *args) -> "void":
        r"""
        Sets the parameter theaspect for display attributes of points.

        Parameters
        ----------
        theAspect: Prs3d_PointAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetPointAspect(self, *args)

    def SetSectionAspect(self, *args) -> "void":
        r"""
        Sets the parameter theaspect for display attributes of sections. .

        Parameters
        ----------
        theAspect: Prs3d_LineAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetSectionAspect(self, *args)

    def SetSeenLineAspect(self, *args) -> "void":
        r"""
        Sets the parameter theaspect for the display of seen lines in hidden line removal mode.

        Parameters
        ----------
        theAspect: Prs3d_LineAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetSeenLineAspect(self, *args)

    def SetShaderProgram(self, *args) -> "bool":
        r"""
        Assign shader program for specified type of primitives. @param theprogram new program to set (might be null) @param theaspect the type of primitives @param thetooverridedefaults if true then non-overridden attributes using defaults will be allocated and copied from the link;  otherwise, only already customized attributes will be changed returns true if presentation should be recomputed after creating aspects not previously customized (if thetooverridedefaults is also true).

        Parameters
        ----------
        theProgram: Graphic3d_ShaderProgram
        theAspect: Graphic3d_GroupAspect
        theToOverrideDefaults: bool,optional
        	default value is false

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_SetShaderProgram(self, *args)

    def SetShadingAspect(self, *args) -> "void":
        r"""
        Sets the parameter theaspect for display attributes of shading.

        Parameters
        ----------
        theAspect: Prs3d_ShadingAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetShadingAspect(self, *args)

    def SetShadingModel(self, *args) -> "bool":
        r"""
        Sets shading model type for the shading aspect.

        Parameters
        ----------
        theModel: Graphic3d_TypeOfShadingModel
        theToOverrideDefaults: bool,optional
        	default value is false

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_SetShadingModel(self, *args)

    def SetTextAspect(self, *args) -> "void":
        r"""
        Sets the parameter theaspect for display attributes of text.

        Parameters
        ----------
        theAspect: Prs3d_TextAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetTextAspect(self, *args)

    def SetTypeOfDeflection(self, *args) -> "void":
        r"""
        Sets the type of chordal deflection. this indicates whether the deflection value is absolute or relative to the size of the object.

        Parameters
        ----------
        theTypeOfDeflection: Aspect_TypeOfDeflection

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetTypeOfDeflection(self, *args)

    def SetTypeOfHLR(self, *args) -> "void":
        r"""
        Sets the type of hlr algorithm used by drawer's interactive objects.

        Parameters
        ----------
        theTypeOfHLR: Prs3d_TypeOfHLR

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetTypeOfHLR(self, *args)

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

        Parameters
        ----------
        theAspect: Prs3d_IsoAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetUIsoAspect(self, *args)

    def SetUnFreeBoundaryAspect(self, *args) -> "void":
        r"""
        Sets the parameter theaspect for the display of shared boundaries. the method sets aspect owned by the drawer that will be used during visualization instead of the one set in link.

        Parameters
        ----------
        theAspect: Prs3d_LineAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetUnFreeBoundaryAspect(self, *args)

    def SetUnFreeBoundaryDraw(self, *args) -> "void":
        r"""
        Enables or disables drawing of shared boundaries for shading presentations. the method sets drawing flag owned by the drawer that will be used during visualization instead of the one set in link. theisenabled is a boolean flag indicating whether the shared boundaries should be drawn or not.

        Parameters
        ----------
        theIsEnabled: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetUnFreeBoundaryDraw(self, *args)

    def SetVIsoAspect(self, *args) -> "void":
        r"""
        Sets the appearance of v isoparameters - theaspect.

        Parameters
        ----------
        theAspect: Prs3d_IsoAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetVIsoAspect(self, *args)

    def SetVectorAspect(self, *args) -> "void":
        r"""
        Sets the modality theaspect for the display of vectors.

        Parameters
        ----------
        theAspect: Prs3d_LineAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetVectorAspect(self, *args)

    def SetVertexDrawMode(self, *args) -> "void":
        r"""
        Sets the mode of visualization of vertices of a topods_shape instance. by default, only stand-alone vertices (not belonging topologically to an edge) are drawn, that corresponds to prs3d_vdm_standalone mode. switching to prs3d_vdm_standalone mode makes all shape's vertices visible. to inherit this parameter from the global drawer instance ('the link') when it is present, prs3d_vdm_inherited value should be used.

        Parameters
        ----------
        theMode: Prs3d_VertexDrawMode

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetVertexDrawMode(self, *args)

    def SetWireAspect(self, *args) -> "void":
        r"""
        Sets the parameter theaspect for display of wires.

        Parameters
        ----------
        theAspect: Prs3d_LineAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetWireAspect(self, *args)

    def SetWireDraw(self, *args) -> "void":
        r"""
        Sets wiredraw on or off by setting the parameter theisenabled to true or false.

        Parameters
        ----------
        theIsEnabled: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_SetWireDraw(self, *args)

    def SetupOwnFaceBoundaryAspect(self, *args) -> "Standard_Boolean":
        r"""
        Sets own face boundary aspect. returns false if the drawer already has its own attribute for face boundary aspect.

        Parameters
        ----------
        theDefaults: Prs3d_Drawer,optional
        	default value is opencascade::handle<Prs3d_Drawer>()

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_SetupOwnFaceBoundaryAspect(self, *args)

    def SetupOwnPointAspect(self, *args) -> "Standard_Boolean":
        r"""
        Sets own point aspect. returns false if the drawer already has its own attribute for point aspect.

        Parameters
        ----------
        theDefaults: Prs3d_Drawer,optional
        	default value is opencascade::handle<Prs3d_Drawer>()

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_SetupOwnPointAspect(self, *args)

    def SetupOwnShadingAspect(self, *args) -> "Standard_Boolean":
        r"""
        Sets own shading aspect. returns false if the drawer already has its own attribute for shading aspect.

        Parameters
        ----------
        theDefaults: Prs3d_Drawer,optional
        	default value is opencascade::handle<Prs3d_Drawer>()

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_SetupOwnShadingAspect(self, *args)

    def ShadingAspect(self, *args) -> "opencascade::handle< Prs3d_ShadingAspect > const &":
        r"""
        Returns settings for shading aspects. these settings can be edited. the default values are: - color: quantity_noc_yellow - material: graphic3d_nameofmaterial_brass shading aspect is obtained through decomposition of 3d faces into triangles, each side of each triangle being a chord of the corresponding curved edge in the face. reflection of light in each projector perspective is then calculated for each of the resultant triangular planes.

        Returns
        -------
        opencascade::handle<Prs3d_ShadingAspect>

        """
        return _Prs3d.Prs3d_Drawer_ShadingAspect(self, *args)

    def TextAspect(self, *args) -> "opencascade::handle< Prs3d_TextAspect > const &":
        r"""
        Returns settings for text aspect. these settings can be edited. the default value is: - color: quantity_noc_yellow.

        Returns
        -------
        opencascade::handle<Prs3d_TextAspect>

        """
        return _Prs3d.Prs3d_Drawer_TextAspect(self, *args)

    def TypeOfDeflection(self, *args) -> "Aspect_TypeOfDeflection":
        r"""
        Returns the type of chordal deflection. this indicates whether the deflection value is absolute or relative to the size of the object.

        Returns
        -------
        Aspect_TypeOfDeflection

        """
        return _Prs3d.Prs3d_Drawer_TypeOfDeflection(self, *args)

    def TypeOfHLR(self, *args) -> "Prs3d_TypeOfHLR":
        r"""
        Returns the type of hlr algorithm currently in use.

        Returns
        -------
        Prs3d_TypeOfHLR

        """
        return _Prs3d.Prs3d_Drawer_TypeOfHLR(self, *args)

    def UIsoAspect(self, *args) -> "opencascade::handle< Prs3d_IsoAspect > const &":
        r"""
        Defines the attributes which are used when drawing an u isoparametric curve of a face. defines the number of u isoparametric curves to be drawn for a single face. the lineaspect for u isoparametric lines can be edited (methods setcolor, settypeofline, setwidth, setnumber) the default values are: color : quantity_noc_gray75 type of line: aspect_tol_solid width : 0.5 //! these attributes are used by the following algorithms: prs3d_wfdeflectionsurface prs3d_wfdeflectionrestrictedface.

        Returns
        -------
        opencascade::handle<Prs3d_IsoAspect>

        """
        return _Prs3d.Prs3d_Drawer_UIsoAspect(self, *args)

    def UnFreeBoundaryAspect(self, *args) -> "opencascade::handle< Prs3d_LineAspect > const &":
        r"""
        Returns settings for shared boundary line aspects. the lineaspect for the unfree boundaries can be edited. the default values are: color: quantity_noc_yellow type of line: aspect_tol_solid width: 1. these attributes are used by the algorithm prs3d_wfshape.

        Returns
        -------
        opencascade::handle<Prs3d_LineAspect>

        """
        return _Prs3d.Prs3d_Drawer_UnFreeBoundaryAspect(self, *args)

    def UnFreeBoundaryDraw(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawing of the shared boundaries is enabled. true is the default setting.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_UnFreeBoundaryDraw(self, *args)

    def UnsetFaceBoundaryUpperContinuity(self, *args) -> "void":
        r"""
        Unset the most edge continuity class for face boundaries.

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_UnsetFaceBoundaryUpperContinuity(self, *args)

    def UpdatePreviousDeviationAngle(self, *args) -> "void":
        r"""
        Updates the previous deviation angle to the current value.

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_UpdatePreviousDeviationAngle(self, *args)

    def UpdatePreviousDeviationCoefficient(self, *args) -> "void":
        r"""
        Updates the previous value used for the chordal deviation coefficient to the current state.

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Drawer_UpdatePreviousDeviationCoefficient(self, *args)

    def VIsoAspect(self, *args) -> "opencascade::handle< Prs3d_IsoAspect > const &":
        r"""
        Defines the attributes which are used when drawing an v isoparametric curve of a face. defines the number of v isoparametric curves to be drawn for a single face. the lineaspect for v isoparametric lines can be edited (methods setcolor, settypeofline, setwidth, setnumber) the default values are: color : quantity_noc_gray82 type of line: aspect_tol_solid width : 0.5 //! these attributes are used by the following algorithms: prs3d_wfdeflectionsurface prs3d_wfdeflectionrestrictedface.

        Returns
        -------
        opencascade::handle<Prs3d_IsoAspect>

        """
        return _Prs3d.Prs3d_Drawer_VIsoAspect(self, *args)

    def VectorAspect(self, *args) -> "opencascade::handle< Prs3d_LineAspect > const &":
        r"""
        Returns settings for the appearance of vectors. these settings can be edited. the default values are: color: quantity_noc_skyblue type of line: aspect_tol_solid width: 1.0.

        Returns
        -------
        opencascade::handle<Prs3d_LineAspect>

        """
        return _Prs3d.Prs3d_Drawer_VectorAspect(self, *args)

    def VertexDrawMode(self, *args) -> "Prs3d_VertexDrawMode":
        r"""
        Returns the current mode of visualization of vertices of a topods_shape instance.

        Returns
        -------
        Prs3d_VertexDrawMode

        """
        return _Prs3d.Prs3d_Drawer_VertexDrawMode(self, *args)

    def WireAspect(self, *args) -> "opencascade::handle< Prs3d_LineAspect > const &":
        r"""
        Returns wire aspect settings. the lineaspect for the free boundaries can be edited. the default values are: color: quantity_noc_green type of line: aspect_tol_solid width: 1.0 these attributes are used by the algorithm prs3d_wfshape.

        Returns
        -------
        opencascade::handle<Prs3d_LineAspect>

        """
        return _Prs3d.Prs3d_Drawer_WireAspect(self, *args)

    def WireDraw(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the drawing of the wire is enabled.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_Drawer_WireDraw(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_Drawer

# Register Prs3d_Drawer in _Prs3d:
_Prs3d.Prs3d_Drawer_swigregister(Prs3d_Drawer)

class Prs3d_PresentationShadow(OCC.Core.Graphic3d.Graphic3d_Structure):
    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 a shadow of existing presentation object.

        Parameters
        ----------
        theViewer: Graphic3d_StructureManager
        thePrs: Graphic3d_Structure

        Returns
        -------
        None

        """
        _Prs3d.Prs3d_PresentationShadow_swiginit(self, _Prs3d.new_Prs3d_PresentationShadow(*args))

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Prs3d_PresentationShadow self, int depth=-1) -> std::string"""
        return _Prs3d.Prs3d_PresentationShadow_DumpJsonToString(self, depth)

    def ParentAffinity(self, *args) -> "opencascade::handle< Graphic3d_ViewAffinity > const &":
        r"""
        Returns view affinity of the parent presentation.

        Returns
        -------
        opencascade::handle<Graphic3d_ViewAffinity>

        """
        return _Prs3d.Prs3d_PresentationShadow_ParentAffinity(self, *args)

    def ParentId(self, *args) -> "Standard_Integer":
        r"""
        Returns the id of the parent presentation.

        Returns
        -------
        int

        """
        return _Prs3d.Prs3d_PresentationShadow_ParentId(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_PresentationShadow

# Register Prs3d_PresentationShadow in _Prs3d:
_Prs3d.Prs3d_PresentationShadow_swigregister(Prs3d_PresentationShadow)

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

    @staticmethod
    def CurrentGroup(*args) -> "opencascade::handle< Graphic3d_Group >":
        r"""
        No available documentation.

        Parameters
        ----------
        thePrs3d: Prs3d_Presentation

        Returns
        -------
        opencascade::handle<Graphic3d_Group>

        """
        return _Prs3d.Prs3d_Root_CurrentGroup(*args)

    @staticmethod
    def NewGroup(*args) -> "opencascade::handle< Graphic3d_Group >":
        r"""
        No available documentation.

        Parameters
        ----------
        thePrs3d: Prs3d_Presentation

        Returns
        -------
        opencascade::handle<Graphic3d_Group>

        """
        return _Prs3d.Prs3d_Root_NewGroup(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _Prs3d.Prs3d_Root_swiginit(self, _Prs3d.new_Prs3d_Root())
    __swig_destroy__ = _Prs3d.delete_Prs3d_Root

# Register Prs3d_Root in _Prs3d:
_Prs3d.Prs3d_Root_swigregister(Prs3d_Root)

def Prs3d_Root_CurrentGroup(*args) -> "opencascade::handle< Graphic3d_Group >":
    r"""
    No available documentation.

    Parameters
    ----------
    thePrs3d: Prs3d_Presentation

    Returns
    -------
    opencascade::handle<Graphic3d_Group>

    """
    return _Prs3d.Prs3d_Root_CurrentGroup(*args)

def Prs3d_Root_NewGroup(*args) -> "opencascade::handle< Graphic3d_Group >":
    r"""
    No available documentation.

    Parameters
    ----------
    thePrs3d: Prs3d_Presentation

    Returns
    -------
    opencascade::handle<Graphic3d_Group>

    """
    return _Prs3d.Prs3d_Root_NewGroup(*args)

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

    @staticmethod
    def Draw(*args) -> "void":
        r"""
        Defines the display of the text. @param thegroup group to add primitives @param theaspect presentation attributes @param thetext text to draw @param theattachmentpoint attachment point returns text to draw.

        Parameters
        ----------
        theGroup: Graphic3d_Group
        theAspect: Prs3d_TextAspect
        theText: TCollection_ExtendedString
        theAttachmentPoint: gp_Pnt

        Returns
        -------
        opencascade::handle<Graphic3d_Text>
        Draws the text label. @param thegroup group to add primitives @param theaspect presentation attributes @param thetext text to draw @param theorientation location and orientation specified in the model 3d space @param thehasownanchor returns text to draw.

        Parameters
        ----------
        theGroup: Graphic3d_Group
        theAspect: Prs3d_TextAspect
        theText: TCollection_ExtendedString
        theOrientation: gp_Ax2
        theHasOwnAnchor: bool,optional
        	default value is Standard_True

        Returns
        -------
        opencascade::handle<Graphic3d_Text>
        Alias to another method draw() for backward compatibility.

        Parameters
        ----------
        thePrs: Prs3d_Presentation
        theDrawer: Prs3d_Drawer
        theText: TCollection_ExtendedString
        theAttachmentPoint: gp_Pnt

        Returns
        -------
        None
        Alias to another method draw() for backward compatibility.

        Parameters
        ----------
        thePrs: Prs3d_Presentation
        theAspect: Prs3d_TextAspect
        theText: TCollection_ExtendedString
        theOrientation: gp_Ax2
        theHasOwnAnchor: bool,optional
        	default value is Standard_True

        Returns
        -------
        None
        Alias to another method draw() for backward compatibility.

        Parameters
        ----------
        thePrs: Prs3d_Presentation
        theAspect: Prs3d_TextAspect
        theText: TCollection_ExtendedString
        theAttachmentPoint: gp_Pnt

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_Text_Draw(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _Prs3d.Prs3d_Text_swiginit(self, _Prs3d.new_Prs3d_Text())
    __swig_destroy__ = _Prs3d.delete_Prs3d_Text

# Register Prs3d_Text in _Prs3d:
_Prs3d.Prs3d_Text_swigregister(Prs3d_Text)

def Prs3d_Text_Draw(*args) -> "void":
    r"""
    Defines the display of the text. @param thegroup group to add primitives @param theaspect presentation attributes @param thetext text to draw @param theattachmentpoint attachment point returns text to draw.

    Parameters
    ----------
    theGroup: Graphic3d_Group
    theAspect: Prs3d_TextAspect
    theText: TCollection_ExtendedString
    theAttachmentPoint: gp_Pnt

    Returns
    -------
    opencascade::handle<Graphic3d_Text>
    Draws the text label. @param thegroup group to add primitives @param theaspect presentation attributes @param thetext text to draw @param theorientation location and orientation specified in the model 3d space @param thehasownanchor returns text to draw.

    Parameters
    ----------
    theGroup: Graphic3d_Group
    theAspect: Prs3d_TextAspect
    theText: TCollection_ExtendedString
    theOrientation: gp_Ax2
    theHasOwnAnchor: bool,optional
    	default value is Standard_True

    Returns
    -------
    opencascade::handle<Graphic3d_Text>
    Alias to another method draw() for backward compatibility.

    Parameters
    ----------
    thePrs: Prs3d_Presentation
    theDrawer: Prs3d_Drawer
    theText: TCollection_ExtendedString
    theAttachmentPoint: gp_Pnt

    Returns
    -------
    None
    Alias to another method draw() for backward compatibility.

    Parameters
    ----------
    thePrs: Prs3d_Presentation
    theAspect: Prs3d_TextAspect
    theText: TCollection_ExtendedString
    theOrientation: gp_Ax2
    theHasOwnAnchor: bool,optional
    	default value is Standard_True

    Returns
    -------
    None
    Alias to another method draw() for backward compatibility.

    Parameters
    ----------
    thePrs: Prs3d_Presentation
    theAspect: Prs3d_TextAspect
    theText: TCollection_ExtendedString
    theAttachmentPoint: gp_Pnt

    Returns
    -------
    None

    """
    return _Prs3d.Prs3d_Text_Draw(*args)

class Prs3d_ToolQuadric(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")
    __repr__ = _swig_repr

    def CreatePolyTriangulation(self, *args) -> "opencascade::handle< Poly_Triangulation >":
        r"""
        Generate primitives for 3d quadric surface presentation. @param thetrsf [in] optional transformation to apply returns generated triangulation.

        Parameters
        ----------
        theTrsf: gp_Trsf

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

        """
        return _Prs3d.Prs3d_ToolQuadric_CreatePolyTriangulation(self, *args)

    def CreateTriangulation(self, *args) -> "opencascade::handle< Graphic3d_ArrayOfTriangles >":
        r"""
        Generate primitives for 3d quadric surface presentation. @param thetrsf [in] optional transformation to apply returns generated triangulation.

        Parameters
        ----------
        theTrsf: gp_Trsf

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

        """
        return _Prs3d.Prs3d_ToolQuadric_CreateTriangulation(self, *args)

    def FillArray(self, *args) -> "void":
        r"""
        Generate primitives for 3d quadric surface and fill the given array. @param thearray [in][out] the array of vertices;  when null, function will create an indexed array;  when not null, triangles will be appended to the end of array  (will raise an exception if reserved array size is not large enough) @param thetrsf [in] optional transformation to apply.

        Parameters
        ----------
        theArray: Graphic3d_ArrayOfTriangles
        theTrsf: gp_Trsf

        Returns
        -------
        None
        Generate primitives for 3d quadric surface presentation. @param thearray [out] generated array of triangles @param thetriangulation [out] generated triangulation @param thetrsf [in] optional transformation to apply.

        Parameters
        ----------
        theArray: Graphic3d_ArrayOfTriangles
        theTriangulation: Poly_Triangulation
        theTrsf: gp_Trsf

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_ToolQuadric_FillArray(self, *args)

    @staticmethod
    def TrianglesNb(*args) -> "Standard_Integer":
        r"""
        Return number of triangles for presentation with the given params.

        Parameters
        ----------
        theSlicesNb: int
        theStacksNb: int

        Returns
        -------
        int

        """
        return _Prs3d.Prs3d_ToolQuadric_TrianglesNb(*args)

    @staticmethod
    def VerticesNb(*args) -> "Standard_Integer":
        r"""
        Return number of vertices for presentation with the given params.

        Parameters
        ----------
        theSlicesNb: int
        theStacksNb: int
        theIsIndexed: bool,optional
        	default value is Standard_True

        Returns
        -------
        int

        """
        return _Prs3d.Prs3d_ToolQuadric_VerticesNb(*args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_ToolQuadric

# Register Prs3d_ToolQuadric in _Prs3d:
_Prs3d.Prs3d_ToolQuadric_swigregister(Prs3d_ToolQuadric)

def Prs3d_ToolQuadric_TrianglesNb(*args) -> "Standard_Integer":
    r"""
    Return number of triangles for presentation with the given params.

    Parameters
    ----------
    theSlicesNb: int
    theStacksNb: int

    Returns
    -------
    int

    """
    return _Prs3d.Prs3d_ToolQuadric_TrianglesNb(*args)

def Prs3d_ToolQuadric_VerticesNb(*args) -> "Standard_Integer":
    r"""
    Return number of vertices for presentation with the given params.

    Parameters
    ----------
    theSlicesNb: int
    theStacksNb: int
    theIsIndexed: bool,optional
    	default value is Standard_True

    Returns
    -------
    int

    """
    return _Prs3d.Prs3d_ToolQuadric_VerticesNb(*args)

class Prs3d_ArrowAspect(Prs3d_BasicAspect):
    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 an empty framework for displaying arrows in representations of lengths. the lengths displayed are either on their own or in chamfers, fillets, diameters and radii.

        Returns
        -------
        None
        Constructs a framework to display an arrow with a shaft of the length alength and having a head with sides at the angle anangle from each other.

        Parameters
        ----------
        anAngle: float
        aLength: float

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

        Parameters
        ----------
        theAspect: Graphic3d_AspectLine3d

        Returns
        -------
        None

        """
        _Prs3d.Prs3d_ArrowAspect_swiginit(self, _Prs3d.new_Prs3d_ArrowAspect(*args))

    def Angle(self, *args) -> "Standard_Real":
        r"""
        Returns the current value of the angle used when drawing an arrow.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_ArrowAspect_Angle(self, *args)

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

        Returns
        -------
        opencascade::handle<Graphic3d_AspectLine3d>

        """
        return _Prs3d.Prs3d_ArrowAspect_Aspect(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Prs3d_ArrowAspect self, int depth=-1) -> std::string"""
        return _Prs3d.Prs3d_ArrowAspect_DumpJsonToString(self, depth)

    def Length(self, *args) -> "Standard_Real":
        r"""
        Returns the current value of the length used when drawing an arrow.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_ArrowAspect_Length(self, *args)

    def SetAngle(self, *args) -> "void":
        r"""
        Defines the angle of the arrows.

        Parameters
        ----------
        anAngle: float

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_ArrowAspect_SetAngle(self, *args)

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

        Parameters
        ----------
        theAspect: Graphic3d_AspectLine3d

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_ArrowAspect_SetAspect(self, *args)

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

        Parameters
        ----------
        theColor: Quantity_Color

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_ArrowAspect_SetColor(self, *args)

    def SetLength(self, *args) -> "void":
        r"""
        Defines the length of the arrows.

        Parameters
        ----------
        theLength: float

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_ArrowAspect_SetLength(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_ArrowAspect

# Register Prs3d_ArrowAspect in _Prs3d:
_Prs3d.Prs3d_ArrowAspect_swigregister(Prs3d_ArrowAspect)

class Prs3d_BndBox(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 presentation of a bounding box. @param thepresentation [in] the presentation. @param thebndbox [in] the bounding box. @param thedrawer [in] the drawer.

        Parameters
        ----------
        thePresentation: Prs3d_Presentation
        theBndBox: Bnd_Box
        theDrawer: Prs3d_Drawer

        Returns
        -------
        None
        Computes presentation of a bounding box. @param thepresentation [in] the presentation. @param thebndbox [in] the bounding box. @param thedrawer [in] the drawer.

        Parameters
        ----------
        thePresentation: Prs3d_Presentation
        theBndBox: Bnd_OBB
        theDrawer: Prs3d_Drawer

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_BndBox_Add(*args)

    @staticmethod
    def FillSegments(*args) -> "void":
        r"""
        Create primitive array with line segments for displaying a box. @param thebox [in] the box to add.

        Parameters
        ----------
        theBox: Bnd_OBB

        Returns
        -------
        opencascade::handle<Graphic3d_ArrayOfSegments>
        Create primitive array with line segments for displaying a box. @param thebox [in] the box to add.

        Parameters
        ----------
        theBox: Bnd_Box

        Returns
        -------
        opencascade::handle<Graphic3d_ArrayOfSegments>
        Create primitive array with line segments for displaying a box. @param thesegments [in] [out] primitive array to be filled;  should be at least 8 nodes and 24 edges in size @param thebox [in] the box to add.

        Parameters
        ----------
        theSegments: Graphic3d_ArrayOfSegments
        theBox: Bnd_OBB

        Returns
        -------
        None
        Create primitive array with line segments for displaying a box. @param thesegments [in] [out] primitive array to be filled;  should be at least 8 nodes and 24 edges in size @param thebox [in] the box to add.

        Parameters
        ----------
        theSegments: Graphic3d_ArrayOfSegments
        theBox: Bnd_Box

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_BndBox_FillSegments(*args)

    @staticmethod
    def fillSegments(*args) -> "void":
        r"""
        Create primitive array with line segments for displaying a box. @param thesegments [in] [out] primitive array to be filled;  should be at least 8 nodes and 24 edges in size @param thebox [in] the box to add.

        Parameters
        ----------
        theSegments: Graphic3d_ArrayOfSegments
        theBox: gp_Pnt *

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_BndBox_fillSegments(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _Prs3d.Prs3d_BndBox_swiginit(self, _Prs3d.new_Prs3d_BndBox())
    __swig_destroy__ = _Prs3d.delete_Prs3d_BndBox

# Register Prs3d_BndBox in _Prs3d:
_Prs3d.Prs3d_BndBox_swigregister(Prs3d_BndBox)

def Prs3d_BndBox_Add(*args) -> "void":
    r"""
    Computes presentation of a bounding box. @param thepresentation [in] the presentation. @param thebndbox [in] the bounding box. @param thedrawer [in] the drawer.

    Parameters
    ----------
    thePresentation: Prs3d_Presentation
    theBndBox: Bnd_Box
    theDrawer: Prs3d_Drawer

    Returns
    -------
    None
    Computes presentation of a bounding box. @param thepresentation [in] the presentation. @param thebndbox [in] the bounding box. @param thedrawer [in] the drawer.

    Parameters
    ----------
    thePresentation: Prs3d_Presentation
    theBndBox: Bnd_OBB
    theDrawer: Prs3d_Drawer

    Returns
    -------
    None

    """
    return _Prs3d.Prs3d_BndBox_Add(*args)

def Prs3d_BndBox_FillSegments(*args) -> "void":
    r"""
    Create primitive array with line segments for displaying a box. @param thebox [in] the box to add.

    Parameters
    ----------
    theBox: Bnd_OBB

    Returns
    -------
    opencascade::handle<Graphic3d_ArrayOfSegments>
    Create primitive array with line segments for displaying a box. @param thebox [in] the box to add.

    Parameters
    ----------
    theBox: Bnd_Box

    Returns
    -------
    opencascade::handle<Graphic3d_ArrayOfSegments>
    Create primitive array with line segments for displaying a box. @param thesegments [in] [out] primitive array to be filled;  should be at least 8 nodes and 24 edges in size @param thebox [in] the box to add.

    Parameters
    ----------
    theSegments: Graphic3d_ArrayOfSegments
    theBox: Bnd_OBB

    Returns
    -------
    None
    Create primitive array with line segments for displaying a box. @param thesegments [in] [out] primitive array to be filled;  should be at least 8 nodes and 24 edges in size @param thebox [in] the box to add.

    Parameters
    ----------
    theSegments: Graphic3d_ArrayOfSegments
    theBox: Bnd_Box

    Returns
    -------
    None

    """
    return _Prs3d.Prs3d_BndBox_FillSegments(*args)

def Prs3d_BndBox_fillSegments(*args) -> "void":
    r"""
    Create primitive array with line segments for displaying a box. @param thesegments [in] [out] primitive array to be filled;  should be at least 8 nodes and 24 edges in size @param thebox [in] the box to add.

    Parameters
    ----------
    theSegments: Graphic3d_ArrayOfSegments
    theBox: gp_Pnt *

    Returns
    -------
    None

    """
    return _Prs3d.Prs3d_BndBox_fillSegments(*args)

class Prs3d_DatumAspect(Prs3d_BasicAspect):
    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"""
        An empty framework to define the display of datums.

        Returns
        -------
        None

        """
        _Prs3d.Prs3d_DatumAspect_swiginit(self, _Prs3d.new_Prs3d_DatumAspect(*args))

    def ArrowAspect(self, *args) -> "opencascade::handle< Prs3d_ArrowAspect > const &":
        r"""
        Returns the arrow aspect of presentation.

        Returns
        -------
        opencascade::handle<Prs3d_ArrowAspect>

        """
        return _Prs3d.Prs3d_DatumAspect_ArrowAspect(self, *args)

    def ArrowPartForAxis(self, *args) -> "Prs3d_DatumParts":
        r"""
        Returns type of arrow for a type of axis.

        Parameters
        ----------
        thePart: Prs3d_DatumParts

        Returns
        -------
        Prs3d_DatumParts

        """
        return _Prs3d.Prs3d_DatumAspect_ArrowPartForAxis(self, *args)

    def Attribute(self, *args) -> "Standard_Real":
        r"""
        Returns the attribute of the datum type.

        Parameters
        ----------
        theType: Prs3d_DatumAttribute

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_DatumAspect_Attribute(self, *args)

    def AxisLength(self, *args) -> "Standard_Real":
        r"""
        Returns the length of the displayed first axis.

        Parameters
        ----------
        thePart: Prs3d_DatumParts

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_DatumAspect_AxisLength(self, *args)

    def DatumAxes(self, *args) -> "Prs3d_DatumAxes":
        r"""
        Returns axes used in the datum aspect.

        Returns
        -------
        Prs3d_DatumAxes

        """
        return _Prs3d.Prs3d_DatumAspect_DatumAxes(self, *args)

    def DrawDatumPart(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the given part is used in axes of aspect.

        Parameters
        ----------
        thePart: Prs3d_DatumParts

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_DatumAspect_DrawDatumPart(self, *args)

    def DrawFirstAndSecondAxis(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the first and second axes can be drawn.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_DatumAspect_DrawFirstAndSecondAxis(self, *args)

    def DrawThirdAxis(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the third axis can be drawn.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_DatumAspect_DrawThirdAxis(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Prs3d_DatumAspect self, int depth=-1) -> std::string"""
        return _Prs3d.Prs3d_DatumAspect_DumpJsonToString(self, depth)

    def FirstAxisAspect(self, *args) -> "opencascade::handle< Prs3d_LineAspect > const &":
        r"""
        Returns the attributes for display of the first axis.

        Returns
        -------
        opencascade::handle<Prs3d_LineAspect>

        """
        return _Prs3d.Prs3d_DatumAspect_FirstAxisAspect(self, *args)

    def FirstAxisLength(self, *args) -> "Standard_Real":
        r"""
        Returns the length of the displayed first axis.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_DatumAspect_FirstAxisLength(self, *args)

    def LineAspect(self, *args) -> "opencascade::handle< Prs3d_LineAspect >":
        r"""
        Returns the right-handed coordinate system set in setcomponent.

        Parameters
        ----------
        thePart: Prs3d_DatumParts

        Returns
        -------
        opencascade::handle<Prs3d_LineAspect>

        """
        return _Prs3d.Prs3d_DatumAspect_LineAspect(self, *args)

    def PointAspect(self, *args) -> "opencascade::handle< Prs3d_PointAspect > const &":
        r"""
        Returns the point aspect of origin wireframe presentation.

        Returns
        -------
        opencascade::handle<Prs3d_PointAspect>

        """
        return _Prs3d.Prs3d_DatumAspect_PointAspect(self, *args)

    def SecondAxisAspect(self, *args) -> "opencascade::handle< Prs3d_LineAspect > const &":
        r"""
        Returns the attributes for display of the second axis.

        Returns
        -------
        opencascade::handle<Prs3d_LineAspect>

        """
        return _Prs3d.Prs3d_DatumAspect_SecondAxisAspect(self, *args)

    def SecondAxisLength(self, *args) -> "Standard_Real":
        r"""
        Returns the length of the displayed second axis.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_DatumAspect_SecondAxisLength(self, *args)

    def SetArrowAspect(self, *args) -> "void":
        r"""
        Sets the arrow aspect of presentation.

        Parameters
        ----------
        theAspect: Prs3d_ArrowAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DatumAspect_SetArrowAspect(self, *args)

    def SetAttribute(self, *args) -> "void":
        r"""
        Sets the attribute of the datum type.

        Parameters
        ----------
        theType: Prs3d_DatumAttribute
        theValue: float

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DatumAspect_SetAttribute(self, *args)

    def SetAxisLength(self, *args) -> "void":
        r"""
        Sets the lengths of the three axes.

        Parameters
        ----------
        theL1: float
        theL2: float
        theL3: float

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DatumAspect_SetAxisLength(self, *args)

    def SetDrawArrows(self, *args) -> "void":
        r"""
        Sets option to draw or not arrows for axes.

        Parameters
        ----------
        theToDraw: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DatumAspect_SetDrawArrows(self, *args)

    def SetDrawDatumAxes(self, *args) -> "void":
        r"""
        Sets the axes used in the datum aspect.

        Parameters
        ----------
        theType: Prs3d_DatumAxes

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DatumAspect_SetDrawDatumAxes(self, *args)

    def SetDrawFirstAndSecondAxis(self, *args) -> "void":
        r"""
        Sets the drawfirstandsecondaxis attributes to active.

        Parameters
        ----------
        theToDraw: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DatumAspect_SetDrawFirstAndSecondAxis(self, *args)

    def SetDrawLabels(self, *args) -> "void":
        r"""
        Sets option to draw or not to draw text labels for axes.

        Parameters
        ----------
        theToDraw: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DatumAspect_SetDrawLabels(self, *args)

    def SetDrawThirdAxis(self, *args) -> "void":
        r"""
        Sets the drawthirdaxis attributes to active.

        Parameters
        ----------
        theToDraw: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DatumAspect_SetDrawThirdAxis(self, *args)

    def SetPointAspect(self, *args) -> "void":
        r"""
        Returns the point aspect of origin wireframe presentation.

        Parameters
        ----------
        theAspect: Prs3d_PointAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DatumAspect_SetPointAspect(self, *args)

    def SetTextAspect(self, *args) -> "void":
        r"""
        Sets text attributes for rendering labels.

        Parameters
        ----------
        theTextAspect: Prs3d_TextAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DatumAspect_SetTextAspect(self, *args)

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

        Parameters
        ----------
        theToDraw: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DatumAspect_SetToDrawLabels(self, *args)

    def ShadingAspect(self, *args) -> "opencascade::handle< Prs3d_ShadingAspect >":
        r"""
        Returns the right-handed coordinate system set in setcomponent.

        Parameters
        ----------
        thePart: Prs3d_DatumParts

        Returns
        -------
        opencascade::handle<Prs3d_ShadingAspect>

        """
        return _Prs3d.Prs3d_DatumAspect_ShadingAspect(self, *args)

    def TextAspect(self, *args) -> "opencascade::handle< Prs3d_TextAspect > const &":
        r"""
        Returns the text attributes for rendering labels.

        Returns
        -------
        opencascade::handle<Prs3d_TextAspect>

        """
        return _Prs3d.Prs3d_DatumAspect_TextAspect(self, *args)

    def ThirdAxisAspect(self, *args) -> "opencascade::handle< Prs3d_LineAspect > const &":
        r"""
        Returns the attributes for display of the third axis.

        Returns
        -------
        opencascade::handle<Prs3d_LineAspect>

        """
        return _Prs3d.Prs3d_DatumAspect_ThirdAxisAspect(self, *args)

    def ThirdAxisLength(self, *args) -> "Standard_Real":
        r"""
        Returns the length of the displayed third axis.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_DatumAspect_ThirdAxisLength(self, *args)

    def ToDrawArrows(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if axes arrows are drawn; true by default.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_DatumAspect_ToDrawArrows(self, *args)

    def ToDrawLabels(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if axes labels are drawn; true by default.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_DatumAspect_ToDrawLabels(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_DatumAspect

# Register Prs3d_DatumAspect in _Prs3d:
_Prs3d.Prs3d_DatumAspect_swigregister(Prs3d_DatumAspect)

class Prs3d_DimensionAspect(Prs3d_BasicAspect):
    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 an empty framework to define the display of dimensions.

        Returns
        -------
        None

        """
        _Prs3d.Prs3d_DimensionAspect_swiginit(self, _Prs3d.new_Prs3d_DimensionAspect(*args))

    def ArrowAspect(self, *args) -> "opencascade::handle< Prs3d_ArrowAspect > const &":
        r"""
        Returns the settings for displaying arrows.

        Returns
        -------
        opencascade::handle<Prs3d_ArrowAspect>

        """
        return _Prs3d.Prs3d_DimensionAspect_ArrowAspect(self, *args)

    def ArrowOrientation(self, *args) -> "Prs3d_DimensionArrowOrientation":
        r"""
        Gets orientation of arrows (external or internal).

        Returns
        -------
        Prs3d_DimensionArrowOrientation

        """
        return _Prs3d.Prs3d_DimensionAspect_ArrowOrientation(self, *args)

    def ArrowTailSize(self, *args) -> "Standard_Real":
        r"""
        Returns arrow tail size.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_DimensionAspect_ArrowTailSize(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Prs3d_DimensionAspect self, int depth=-1) -> std::string"""
        return _Prs3d.Prs3d_DimensionAspect_DumpJsonToString(self, depth)

    def ExtensionSize(self, *args) -> "Standard_Real":
        r"""
        Returns extension size.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_DimensionAspect_ExtensionSize(self, *args)

    def IsArrows3d(self, *args) -> "Standard_Boolean":
        r"""
        Gets type of arrows.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_DimensionAspect_IsArrows3d(self, *args)

    def IsText3d(self, *args) -> "Standard_Boolean":
        r"""
        Check if text for dimension label is 3d.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_DimensionAspect_IsText3d(self, *args)

    def IsTextShaded(self, *args) -> "Standard_Boolean":
        r"""
        Check if 3d text for dimension label is shaded.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_DimensionAspect_IsTextShaded(self, *args)

    def IsUnitsDisplayed(self, *args) -> "Standard_Boolean":
        r"""
        Shows if units are to be displayed along with dimension value.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_DimensionAspect_IsUnitsDisplayed(self, *args)

    def LineAspect(self, *args) -> "opencascade::handle< Prs3d_LineAspect > const &":
        r"""
        Returns the settings for the display of lines used in presentation of dimensions.

        Returns
        -------
        opencascade::handle<Prs3d_LineAspect>

        """
        return _Prs3d.Prs3d_DimensionAspect_LineAspect(self, *args)

    def MakeArrows3d(self, *args) -> "void":
        r"""
        Sets type of arrows.

        Parameters
        ----------
        theIsArrows3d: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DimensionAspect_MakeArrows3d(self, *args)

    def MakeText3d(self, *args) -> "void":
        r"""
        Sets type of text.

        Parameters
        ----------
        isText3d: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DimensionAspect_MakeText3d(self, *args)

    def MakeTextShaded(self, *args) -> "void":
        r"""
        Turns on/off text shading for 3d text.

        Parameters
        ----------
        theIsTextShaded: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DimensionAspect_MakeTextShaded(self, *args)

    def MakeUnitsDisplayed(self, *args) -> "void":
        r"""
        Specifies whether the units string should be displayed along with value label or not.

        Parameters
        ----------
        theIsDisplayed: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DimensionAspect_MakeUnitsDisplayed(self, *args)

    def SetArrowAspect(self, *args) -> "void":
        r"""
        Sets the display attributes of arrows used in presentation of dimensions.

        Parameters
        ----------
        theAspect: Prs3d_ArrowAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DimensionAspect_SetArrowAspect(self, *args)

    def SetArrowOrientation(self, *args) -> "void":
        r"""
        Sets orientation of arrows (external or internal). by default orientation is chosen automatically according to situation and text label size.

        Parameters
        ----------
        theArrowOrient: Prs3d_DimensionArrowOrientation

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DimensionAspect_SetArrowOrientation(self, *args)

    def SetArrowTailSize(self, *args) -> "void":
        r"""
        Set size for arrow tail (extension without text).

        Parameters
        ----------
        theSize: float

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DimensionAspect_SetArrowTailSize(self, *args)

    def SetCommonColor(self, *args) -> "void":
        r"""
        Sets the same color for all parts of dimension: lines, arrows and text.

        Parameters
        ----------
        theColor: Quantity_Color

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DimensionAspect_SetCommonColor(self, *args)

    def SetExtensionSize(self, *args) -> "void":
        r"""
        Sets extension size.

        Parameters
        ----------
        theSize: float

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DimensionAspect_SetExtensionSize(self, *args)

    def SetLineAspect(self, *args) -> "void":
        r"""
        Sets the display attributes of lines used in presentation of dimensions.

        Parameters
        ----------
        theAspect: Prs3d_LineAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DimensionAspect_SetLineAspect(self, *args)

    def SetTextAspect(self, *args) -> "void":
        r"""
        Sets the display attributes of text used in presentation of dimensions.

        Parameters
        ----------
        theAspect: Prs3d_TextAspect

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DimensionAspect_SetTextAspect(self, *args)

    def SetTextHorizontalPosition(self, *args) -> "void":
        r"""
        Sets horizontal text alignment for text label.

        Parameters
        ----------
        thePosition: Prs3d_DimensionTextHorizontalPosition

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DimensionAspect_SetTextHorizontalPosition(self, *args)

    def SetTextVerticalPosition(self, *args) -> "void":
        r"""
        Sets vertical text alignment for text label.

        Parameters
        ----------
        thePosition: Prs3d_DimensionTextVerticalPosition

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DimensionAspect_SetTextVerticalPosition(self, *args)

    def SetValueStringFormat(self, *args) -> "void":
        r"""
        Sets 'sprintf'-syntax format for formatting dimension value labels.

        Parameters
        ----------
        theFormat: TCollection_AsciiString

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_DimensionAspect_SetValueStringFormat(self, *args)

    def TextAspect(self, *args) -> "opencascade::handle< Prs3d_TextAspect > const &":
        r"""
        Returns the settings for the display of text used in presentation of dimensions.

        Returns
        -------
        opencascade::handle<Prs3d_TextAspect>

        """
        return _Prs3d.Prs3d_DimensionAspect_TextAspect(self, *args)

    def TextHorizontalPosition(self, *args) -> "Prs3d_DimensionTextHorizontalPosition":
        r"""
        Gets horizontal text alignment for text label.

        Returns
        -------
        Prs3d_DimensionTextHorizontalPosition

        """
        return _Prs3d.Prs3d_DimensionAspect_TextHorizontalPosition(self, *args)

    def TextVerticalPosition(self, *args) -> "Prs3d_DimensionTextVerticalPosition":
        r"""
        Gets vertical text alignment for text label.

        Returns
        -------
        Prs3d_DimensionTextVerticalPosition

        """
        return _Prs3d.Prs3d_DimensionAspect_TextVerticalPosition(self, *args)

    def ValueStringFormat(self, *args) -> "TCollection_AsciiString const &":
        r"""
        Returns format.

        Returns
        -------
        TCollection_AsciiString

        """
        return _Prs3d.Prs3d_DimensionAspect_ValueStringFormat(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_DimensionAspect

# Register Prs3d_DimensionAspect in _Prs3d:
_Prs3d.Prs3d_DimensionAspect_swigregister(Prs3d_DimensionAspect)

class Prs3d_LineAspect(Prs3d_BasicAspect):
    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 a framework for line aspect defined by - the color acolor - the type of line atype and - the line thickness awidth. type of line refers to whether the line is solid or dotted, for example.

        Parameters
        ----------
        theColor: Quantity_Color
        theType: Aspect_TypeOfLine
        theWidth: float

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

        Parameters
        ----------
        theAspect: Graphic3d_AspectLine3d

        Returns
        -------
        None

        """
        _Prs3d.Prs3d_LineAspect_swiginit(self, _Prs3d.new_Prs3d_LineAspect(*args))

    def Aspect(self, *args) -> "opencascade::handle< Graphic3d_AspectLine3d > const &":
        r"""
        Returns the line aspect. this is defined as the set of color, type and thickness attributes.

        Returns
        -------
        opencascade::handle<Graphic3d_AspectLine3d>

        """
        return _Prs3d.Prs3d_LineAspect_Aspect(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Prs3d_LineAspect self, int depth=-1) -> std::string"""
        return _Prs3d.Prs3d_LineAspect_DumpJsonToString(self, depth)

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

        Parameters
        ----------
        theAspect: Graphic3d_AspectLine3d

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_LineAspect_SetAspect(self, *args)

    def SetColor(self, *args) -> "void":
        r"""
        Sets the line color defined at the time of construction. default value: quantity_noc_yellow.

        Parameters
        ----------
        theColor: Quantity_Color

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_LineAspect_SetColor(self, *args)

    def SetTypeOfLine(self, *args) -> "void":
        r"""
        Sets the type of line defined at the time of construction. this could, for example, be solid, dotted or made up of dashes. default value: aspect_tol_solid.

        Parameters
        ----------
        theType: Aspect_TypeOfLine

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_LineAspect_SetTypeOfLine(self, *args)

    def SetWidth(self, *args) -> "void":
        r"""
        Sets the line width defined at the time of construction. default value: 1.

        Parameters
        ----------
        theWidth: float

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_LineAspect_SetWidth(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_LineAspect

# Register Prs3d_LineAspect in _Prs3d:
_Prs3d.Prs3d_LineAspect_swigregister(Prs3d_LineAspect)

class Prs3d_PlaneAspect(Prs3d_BasicAspect):
    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 an empty framework for the display of planes.

        Returns
        -------
        None

        """
        _Prs3d.Prs3d_PlaneAspect_swiginit(self, _Prs3d.new_Prs3d_PlaneAspect(*args))

    def ArrowAspect(self, *args) -> "opencascade::handle< Prs3d_LineAspect > const &":
        r"""
        Returns the settings for displaying an arrow.

        Returns
        -------
        opencascade::handle<Prs3d_LineAspect>

        """
        return _Prs3d.Prs3d_PlaneAspect_ArrowAspect(self, *args)

    def ArrowsAngle(self, *args) -> "Standard_Real":
        r"""
        Returns the angle of the arrowhead used in the display of arrows involved in the presentation of planes.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_PlaneAspect_ArrowsAngle(self, *args)

    def ArrowsLength(self, *args) -> "Standard_Real":
        r"""
        Returns the length of the arrow shaft used in the display of arrows.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_PlaneAspect_ArrowsLength(self, *args)

    def ArrowsSize(self, *args) -> "Standard_Real":
        r"""
        Returns the size of arrows used in the display of planes.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_PlaneAspect_ArrowsSize(self, *args)

    def DisplayCenterArrow(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the display of center arrows is allowed.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_PlaneAspect_DisplayCenterArrow(self, *args)

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

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_PlaneAspect_DisplayEdges(self, *args)

    def DisplayEdgesArrows(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the display of edge arrows is allowed.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_PlaneAspect_DisplayEdgesArrows(self, *args)

    def DisplayIso(self, *args) -> "Standard_Boolean":
        r"""
        Returns true if the display of isoparameters is allowed.

        Returns
        -------
        bool

        """
        return _Prs3d.Prs3d_PlaneAspect_DisplayIso(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Prs3d_PlaneAspect self, int depth=-1) -> std::string"""
        return _Prs3d.Prs3d_PlaneAspect_DumpJsonToString(self, depth)

    def EdgesAspect(self, *args) -> "opencascade::handle< Prs3d_LineAspect > const &":
        r"""
        Returns the attributes of displayed edges involved in the presentation of planes.

        Returns
        -------
        opencascade::handle<Prs3d_LineAspect>

        """
        return _Prs3d.Prs3d_PlaneAspect_EdgesAspect(self, *args)

    def IsoAspect(self, *args) -> "opencascade::handle< Prs3d_LineAspect > const &":
        r"""
        Returns the attributes of displayed isoparameters involved in the presentation of planes.

        Returns
        -------
        opencascade::handle<Prs3d_LineAspect>

        """
        return _Prs3d.Prs3d_PlaneAspect_IsoAspect(self, *args)

    def IsoDistance(self, *args) -> "Standard_Real":
        r"""
        Returns the distance between isoparameters used in the display of planes.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_PlaneAspect_IsoDistance(self, *args)

    def PlaneXLength(self, *args) -> "Standard_Real":
        r"""
        Returns the length of the x axis used in the display of planes.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_PlaneAspect_PlaneXLength(self, *args)

    def PlaneYLength(self, *args) -> "Standard_Real":
        r"""
        Returns the length of the y axis used in the display of planes.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_PlaneAspect_PlaneYLength(self, *args)

    def SetArrowsAngle(self, *args) -> "void":
        r"""
        Sets the angle of the arrowhead used in the display of arrows involved in the presentation of planes.

        Parameters
        ----------
        theAngle: float

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_PlaneAspect_SetArrowsAngle(self, *args)

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

        Parameters
        ----------
        theLength: float

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_PlaneAspect_SetArrowsLength(self, *args)

    def SetArrowsSize(self, *args) -> "void":
        r"""
        Sets the angle of the arrowhead used in the display of planes.

        Parameters
        ----------
        theSize: float

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_PlaneAspect_SetArrowsSize(self, *args)

    def SetDisplayCenterArrow(self, *args) -> "void":
        r"""
        Sets the display attributes defined in displaycenterarrow to active.

        Parameters
        ----------
        theToDraw: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_PlaneAspect_SetDisplayCenterArrow(self, *args)

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

        Parameters
        ----------
        theToDraw: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_PlaneAspect_SetDisplayEdges(self, *args)

    def SetDisplayEdgesArrows(self, *args) -> "void":
        r"""
        Sets the display attributes defined in displayedgesarrows to active.

        Parameters
        ----------
        theToDraw: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_PlaneAspect_SetDisplayEdgesArrows(self, *args)

    def SetDisplayIso(self, *args) -> "void":
        r"""
        Sets the display attributes defined in displayiso to active.

        Parameters
        ----------
        theToDraw: bool

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_PlaneAspect_SetDisplayIso(self, *args)

    def SetIsoDistance(self, *args) -> "void":
        r"""
        Sets the distance l between isoparameters used in the display of planes.

        Parameters
        ----------
        theL: float

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_PlaneAspect_SetIsoDistance(self, *args)

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

        Parameters
        ----------
        theLX: float
        theLY: float

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_PlaneAspect_SetPlaneLength(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_PlaneAspect

# Register Prs3d_PlaneAspect in _Prs3d:
_Prs3d.Prs3d_PlaneAspect_swigregister(Prs3d_PlaneAspect)

class Prs3d_PointAspect(Prs3d_BasicAspect):
    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
        ----------
        theType: Aspect_TypeOfMarker
        theColor: Quantity_Color
        theScale: float

        Returns
        -------
        None
        Defines the user defined marker point.

        Parameters
        ----------
        theColor: Quantity_Color
        theWidth: int
        theHeight: int
        theTexture: TColStd_HArray1OfByte

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

        Parameters
        ----------
        theAspect: Graphic3d_AspectMarker3d

        Returns
        -------
        None

        """
        _Prs3d.Prs3d_PointAspect_swiginit(self, _Prs3d.new_Prs3d_PointAspect(*args))

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

        Returns
        -------
        opencascade::handle<Graphic3d_AspectMarker3d>

        """
        return _Prs3d.Prs3d_PointAspect_Aspect(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Prs3d_PointAspect self, int depth=-1) -> std::string"""
        return _Prs3d.Prs3d_PointAspect_DumpJsonToString(self, depth)

    def GetTexture(self, *args) -> "opencascade::handle< Graphic3d_MarkerImage > const &":
        r"""
        Returns marker's texture.

        Returns
        -------
        opencascade::handle<Graphic3d_MarkerImage>

        """
        return _Prs3d.Prs3d_PointAspect_GetTexture(self, *args)

    def GetTextureSize(self, *args) -> "void":
        r"""
        Returns marker's texture size.

        Parameters
        ----------

        Returns
        -------
        theWidth: int
        theHeight: int

        """
        return _Prs3d.Prs3d_PointAspect_GetTextureSize(self, *args)

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

        Parameters
        ----------
        theAspect: Graphic3d_AspectMarker3d

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_PointAspect_SetAspect(self, *args)

    def SetColor(self, *args) -> "void":
        r"""
        Defines the color to be used when drawing a point. default value: quantity_noc_yellow.

        Parameters
        ----------
        theColor: Quantity_Color

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_PointAspect_SetColor(self, *args)

    def SetScale(self, *args) -> "void":
        r"""
        Defines the size of the marker used when drawing a point. default value: 1.

        Parameters
        ----------
        theScale: float

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_PointAspect_SetScale(self, *args)

    def SetTypeOfMarker(self, *args) -> "void":
        r"""
        Defines the type of representation to be used when drawing a point. default value: aspect_tom_plus.

        Parameters
        ----------
        theType: Aspect_TypeOfMarker

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_PointAspect_SetTypeOfMarker(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_PointAspect

# Register Prs3d_PointAspect in _Prs3d:
_Prs3d.Prs3d_PointAspect_swigregister(Prs3d_PointAspect)

class Prs3d_ShadingAspect(Prs3d_BasicAspect):
    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 an empty framework to display shading.

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

        Parameters
        ----------
        theAspect: Graphic3d_AspectFillArea3d

        Returns
        -------
        None

        """
        _Prs3d.Prs3d_ShadingAspect_swiginit(self, _Prs3d.new_Prs3d_ShadingAspect(*args))

    def Aspect(self, *args) -> "opencascade::handle< Graphic3d_AspectFillArea3d > const &":
        r"""
        Returns the polygons aspect properties.

        Returns
        -------
        opencascade::handle<Graphic3d_AspectFillArea3d>

        """
        return _Prs3d.Prs3d_ShadingAspect_Aspect(self, *args)

    def Color(self, *args) -> "Quantity_Color const &":
        r"""
        Returns the polygons color.

        Parameters
        ----------
        aModel: Aspect_TypeOfFacingModel,optional
        	default value is Aspect_TOFM_FRONT_SIDE

        Returns
        -------
        Quantity_Color

        """
        return _Prs3d.Prs3d_ShadingAspect_Color(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Prs3d_ShadingAspect self, int depth=-1) -> std::string"""
        return _Prs3d.Prs3d_ShadingAspect_DumpJsonToString(self, depth)

    def Material(self, *args) -> "Graphic3d_MaterialAspect const &":
        r"""
        Returns the polygons material aspect.

        Parameters
        ----------
        aModel: Aspect_TypeOfFacingModel,optional
        	default value is Aspect_TOFM_FRONT_SIDE

        Returns
        -------
        Graphic3d_MaterialAspect

        """
        return _Prs3d.Prs3d_ShadingAspect_Material(self, *args)

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

        Parameters
        ----------
        theAspect: Graphic3d_AspectFillArea3d

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_ShadingAspect_SetAspect(self, *args)

    def SetColor(self, *args) -> "void":
        r"""
        Change the polygons interior color and material ambient color.

        Parameters
        ----------
        aColor: Quantity_Color
        aModel: Aspect_TypeOfFacingModel,optional
        	default value is Aspect_TOFM_BOTH_SIDE

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_ShadingAspect_SetColor(self, *args)

    def SetMaterial(self, *args) -> "void":
        r"""
        Change the polygons material aspect.

        Parameters
        ----------
        aMaterial: Graphic3d_MaterialAspect
        aModel: Aspect_TypeOfFacingModel,optional
        	default value is Aspect_TOFM_BOTH_SIDE

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_ShadingAspect_SetMaterial(self, *args)

    def SetTransparency(self, *args) -> "void":
        r"""
        Change the polygons transparency value. warning : avalue must be in the range 0,1. 0 is the default (no transparent).

        Parameters
        ----------
        aValue: float
        aModel: Aspect_TypeOfFacingModel,optional
        	default value is Aspect_TOFM_BOTH_SIDE

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_ShadingAspect_SetTransparency(self, *args)

    def Transparency(self, *args) -> "Standard_Real":
        r"""
        Returns the polygons transparency value.

        Parameters
        ----------
        aModel: Aspect_TypeOfFacingModel,optional
        	default value is Aspect_TOFM_FRONT_SIDE

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_ShadingAspect_Transparency(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_ShadingAspect

# Register Prs3d_ShadingAspect in _Prs3d:
_Prs3d.Prs3d_ShadingAspect_swigregister(Prs3d_ShadingAspect)

class Prs3d_TextAspect(Prs3d_BasicAspect):
    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 an empty framework for defining display attributes of text.

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

        Parameters
        ----------
        theAspect: Graphic3d_AspectText3d

        Returns
        -------
        None

        """
        _Prs3d.Prs3d_TextAspect_swiginit(self, _Prs3d.new_Prs3d_TextAspect(*args))

    def Angle(self, *args) -> "Standard_Real":
        r"""
        Returns the angle.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_TextAspect_Angle(self, *args)

    def Aspect(self, *args) -> "opencascade::handle< Graphic3d_AspectText3d > const &":
        r"""
        Returns the purely textual attributes used in the display of text. these include: - color - font - height/width ratio, that is, the expansion factor, and - space between characters.

        Returns
        -------
        opencascade::handle<Graphic3d_AspectText3d>

        """
        return _Prs3d.Prs3d_TextAspect_Aspect(self, *args)

    def DumpJsonToString(self, depth: "int"=-1) -> "std::string":
        r"""DumpJsonToString(Prs3d_TextAspect self, int depth=-1) -> std::string"""
        return _Prs3d.Prs3d_TextAspect_DumpJsonToString(self, depth)

    def Height(self, *args) -> "Standard_Real":
        r"""
        Returns the height of the text box.

        Returns
        -------
        float

        """
        return _Prs3d.Prs3d_TextAspect_Height(self, *args)

    def HorizontalJustification(self, *args) -> "Graphic3d_HorizontalTextAlignment":
        r"""
        Returns the horizontal alignment of the text. the range of values includes: - left - center - right, and - normal (justified).

        Returns
        -------
        Graphic3d_HorizontalTextAlignment

        """
        return _Prs3d.Prs3d_TextAspect_HorizontalJustification(self, *args)

    def Orientation(self, *args) -> "Graphic3d_TextPath":
        r"""
        Returns the orientation of the text. text can be displayed in the following directions: - up - down - left, or - right.

        Returns
        -------
        Graphic3d_TextPath

        """
        return _Prs3d.Prs3d_TextAspect_Orientation(self, *args)

    def SetAngle(self, *args) -> "void":
        r"""
        Sets the angle.

        Parameters
        ----------
        theAngle: float

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_TextAspect_SetAngle(self, *args)

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

        Parameters
        ----------
        theAspect: Graphic3d_AspectText3d

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_TextAspect_SetAspect(self, *args)

    def SetColor(self, *args) -> "void":
        r"""
        Sets the color of the type used in text display.

        Parameters
        ----------
        theColor: Quantity_Color

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_TextAspect_SetColor(self, *args)

    def SetFont(self, *args) -> "void":
        r"""
        Sets the font used in text display.

        Parameters
        ----------
        theFont: char *

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_TextAspect_SetFont(self, *args)

    def SetHeight(self, *args) -> "void":
        r"""
        Sets the height of the text.

        Parameters
        ----------
        theHeight: float

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_TextAspect_SetHeight(self, *args)

    def SetHorizontalJustification(self, *args) -> "void":
        r"""
        Sets horizontal alignment of text.

        Parameters
        ----------
        theJustification: Graphic3d_HorizontalTextAlignment

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_TextAspect_SetHorizontalJustification(self, *args)

    def SetOrientation(self, *args) -> "void":
        r"""
        Sets the orientation of text.

        Parameters
        ----------
        theOrientation: Graphic3d_TextPath

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_TextAspect_SetOrientation(self, *args)

    def SetVerticalJustification(self, *args) -> "void":
        r"""
        Sets the vertical alignment of text.

        Parameters
        ----------
        theJustification: Graphic3d_VerticalTextAlignment

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_TextAspect_SetVerticalJustification(self, *args)

    def VerticalJustification(self, *args) -> "Graphic3d_VerticalTextAlignment":
        r"""
        Returns the vertical alignment of the text. the range of values includes: - normal - top - cap - half - base - bottom.

        Returns
        -------
        Graphic3d_VerticalTextAlignment

        """
        return _Prs3d.Prs3d_TextAspect_VerticalJustification(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_TextAspect

# Register Prs3d_TextAspect in _Prs3d:
_Prs3d.Prs3d_TextAspect_swigregister(Prs3d_TextAspect)

class Prs3d_ToolCylinder(Prs3d_ToolQuadric):
    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"""
        Initializes the algorithm creating a cylinder. @param thebottomrad [in] cylinder bottom radius @param thetoprad [in] cylinder top radius @param theheight [in] cylinder height @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter.

        Parameters
        ----------
        theBottomRad: float
        theTopRad: float
        theHeight: float
        theNbSlices: int
        theNbStacks: int

        Returns
        -------
        None

        """
        _Prs3d.Prs3d_ToolCylinder_swiginit(self, _Prs3d.new_Prs3d_ToolCylinder(*args))

    @staticmethod
    def Create(*args) -> "opencascade::handle< Graphic3d_ArrayOfTriangles >":
        r"""
        Generate primitives for 3d quadric surface and return a filled array. @param thebottomrad [in] cylinder bottom radius @param thetoprad [in] cylinder top radius @param theheight [in] cylinder height @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter @param thetrsf [in] optional transformation to apply returns generated triangulation.

        Parameters
        ----------
        theBottomRad: float
        theTopRad: float
        theHeight: float
        theNbSlices: int
        theNbStacks: int
        theTrsf: gp_Trsf

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

        """
        return _Prs3d.Prs3d_ToolCylinder_Create(*args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_ToolCylinder

# Register Prs3d_ToolCylinder in _Prs3d:
_Prs3d.Prs3d_ToolCylinder_swigregister(Prs3d_ToolCylinder)

def Prs3d_ToolCylinder_Create(*args) -> "opencascade::handle< Graphic3d_ArrayOfTriangles >":
    r"""
    Generate primitives for 3d quadric surface and return a filled array. @param thebottomrad [in] cylinder bottom radius @param thetoprad [in] cylinder top radius @param theheight [in] cylinder height @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter @param thetrsf [in] optional transformation to apply returns generated triangulation.

    Parameters
    ----------
    theBottomRad: float
    theTopRad: float
    theHeight: float
    theNbSlices: int
    theNbStacks: int
    theTrsf: gp_Trsf

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

    """
    return _Prs3d.Prs3d_ToolCylinder_Create(*args)

class Prs3d_ToolDisk(Prs3d_ToolQuadric):
    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"""
        Initializes the algorithm creating a disk. @param theinnerradius [in] inner disk radius @param theouterradius [in] outer disk radius @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter.

        Parameters
        ----------
        theInnerRadius: float
        theOuterRadius: float
        theNbSlices: int
        theNbStacks: int

        Returns
        -------
        None

        """
        _Prs3d.Prs3d_ToolDisk_swiginit(self, _Prs3d.new_Prs3d_ToolDisk(*args))

    @staticmethod
    def Create(*args) -> "opencascade::handle< Graphic3d_ArrayOfTriangles >":
        r"""
        Generate primitives for 3d quadric surface. @param theinnerradius [in] inner disc radius @param theouterradius [in] outer disc radius @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter @param thetrsf [in] optional transformation to apply returns generated triangulation.

        Parameters
        ----------
        theInnerRadius: float
        theOuterRadius: float
        theNbSlices: int
        theNbStacks: int
        theTrsf: gp_Trsf

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

        """
        return _Prs3d.Prs3d_ToolDisk_Create(*args)

    def SetAngleRange(self, *args) -> "void":
        r"""
        Set angle range in radians [0, 2*pi] by default. @param thestartangle [in] start angle in counter clockwise order @param theendangle [in] end angle in counter clockwise order.

        Parameters
        ----------
        theStartAngle: float
        theEndAngle: float

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_ToolDisk_SetAngleRange(self, *args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_ToolDisk

# Register Prs3d_ToolDisk in _Prs3d:
_Prs3d.Prs3d_ToolDisk_swigregister(Prs3d_ToolDisk)

def Prs3d_ToolDisk_Create(*args) -> "opencascade::handle< Graphic3d_ArrayOfTriangles >":
    r"""
    Generate primitives for 3d quadric surface. @param theinnerradius [in] inner disc radius @param theouterradius [in] outer disc radius @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter @param thetrsf [in] optional transformation to apply returns generated triangulation.

    Parameters
    ----------
    theInnerRadius: float
    theOuterRadius: float
    theNbSlices: int
    theNbStacks: int
    theTrsf: gp_Trsf

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

    """
    return _Prs3d.Prs3d_ToolDisk_Create(*args)

class Prs3d_ToolSector(Prs3d_ToolQuadric):
    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"""
        Initializes the algorithm creating a sector (quadrant). @param theradius [in] sector radius @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter.

        Parameters
        ----------
        theRadius: float
        theNbSlices: int
        theNbStacks: int

        Returns
        -------
        None

        """
        _Prs3d.Prs3d_ToolSector_swiginit(self, _Prs3d.new_Prs3d_ToolSector(*args))

    @staticmethod
    def Create(*args) -> "opencascade::handle< Graphic3d_ArrayOfTriangles >":
        r"""
        Generate primitives for 3d quadric surface. @param theradius [in] sector radius @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter @param thetrsf [in] optional transformation to apply returns generated triangulation.

        Parameters
        ----------
        theRadius: float
        theNbSlices: int
        theNbStacks: int
        theTrsf: gp_Trsf

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

        """
        return _Prs3d.Prs3d_ToolSector_Create(*args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_ToolSector

# Register Prs3d_ToolSector in _Prs3d:
_Prs3d.Prs3d_ToolSector_swigregister(Prs3d_ToolSector)

def Prs3d_ToolSector_Create(*args) -> "opencascade::handle< Graphic3d_ArrayOfTriangles >":
    r"""
    Generate primitives for 3d quadric surface. @param theradius [in] sector radius @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter @param thetrsf [in] optional transformation to apply returns generated triangulation.

    Parameters
    ----------
    theRadius: float
    theNbSlices: int
    theNbStacks: int
    theTrsf: gp_Trsf

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

    """
    return _Prs3d.Prs3d_ToolSector_Create(*args)

class Prs3d_ToolSphere(Prs3d_ToolQuadric):
    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"""
        Initializes the algorithm creating a sphere. @param theradius [in] sphere radius @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter.

        Parameters
        ----------
        theRadius: float
        theNbSlices: int
        theNbStacks: int

        Returns
        -------
        None

        """
        _Prs3d.Prs3d_ToolSphere_swiginit(self, _Prs3d.new_Prs3d_ToolSphere(*args))

    @staticmethod
    def Create(*args) -> "opencascade::handle< Graphic3d_ArrayOfTriangles >":
        r"""
        Generate primitives for 3d quadric surface. @param theradius [in] sphere radius @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter @param thetrsf [in] optional transformation to apply returns generated triangulation.

        Parameters
        ----------
        theRadius: float
        theNbSlices: int
        theNbStacks: int
        theTrsf: gp_Trsf

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

        """
        return _Prs3d.Prs3d_ToolSphere_Create(*args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_ToolSphere

# Register Prs3d_ToolSphere in _Prs3d:
_Prs3d.Prs3d_ToolSphere_swigregister(Prs3d_ToolSphere)

def Prs3d_ToolSphere_Create(*args) -> "opencascade::handle< Graphic3d_ArrayOfTriangles >":
    r"""
    Generate primitives for 3d quadric surface. @param theradius [in] sphere radius @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter @param thetrsf [in] optional transformation to apply returns generated triangulation.

    Parameters
    ----------
    theRadius: float
    theNbSlices: int
    theNbStacks: int
    theTrsf: gp_Trsf

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

    """
    return _Prs3d.Prs3d_ToolSphere_Create(*args)

class Prs3d_ToolTorus(Prs3d_ToolQuadric):
    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"""
        Initializes the algorithm creating a complete torus. @param themajorrad [in] distance from the center of the pipe to the center of the torus @param theminorrad [in] radius of the pipe @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter.

        Parameters
        ----------
        theMajorRad: float
        theMinorRad: float
        theNbSlices: int
        theNbStacks: int

        Returns
        -------
        None
        Initializes the algorithm creating a torus pipe segment. @param themajorrad [in] distance from the center of the pipe to the center of the torus @param theminorrad [in] radius of the pipe @param theangle [in] angle to create a torus pipe segment @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter.

        Parameters
        ----------
        theMajorRad: float
        theMinorRad: float
        theAngle: float
        theNbSlices: int
        theNbStacks: int

        Returns
        -------
        None
        Initializes the algorithm creating a torus ring segment. @param themajorrad [in] distance from the center of the pipe to the center of the torus @param theminorrad [in] radius of the pipe @param theangle1 [in] first angle to create a torus ring segment @param theangle2 [in] second angle to create a torus ring segment @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter.

        Parameters
        ----------
        theMajorRad: float
        theMinorRad: float
        theAngle1: float
        theAngle2: float
        theNbSlices: int
        theNbStacks: int

        Returns
        -------
        None
        Initializes the algorithm creating a torus ring segment. @param themajorrad [in] distance from the center of the pipe to the center of the torus @param theminorrad [in] radius of the pipe @param theangle1 [in] first angle to create a torus ring segment @param theangle2 [in] second angle to create a torus ring segment @param theangle [in] angle to create a torus pipe segment @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter.

        Parameters
        ----------
        theMajorRad: float
        theMinorRad: float
        theAngle1: float
        theAngle2: float
        theAngle: float
        theNbSlices: int
        theNbStacks: int

        Returns
        -------
        None

        """
        _Prs3d.Prs3d_ToolTorus_swiginit(self, _Prs3d.new_Prs3d_ToolTorus(*args))

    @staticmethod
    def Create(*args) -> "opencascade::handle< Graphic3d_ArrayOfTriangles >":
        r"""
        Generate primitives for 3d quadric surface (complete torus). @param themajorrad [in] distance from the center of the pipe to the center of the torus @param theminorrad [in] radius of the pipe @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter @param thetrsf [in] optional transformation to apply returns generated triangulation.

        Parameters
        ----------
        theMajorRad: float
        theMinorRad: float
        theNbSlices: int
        theNbStacks: int
        theTrsf: gp_Trsf

        Returns
        -------
        opencascade::handle<Graphic3d_ArrayOfTriangles>
        Generate primitives for 3d quadric surface (torus segment). @param themajorrad [in] distance from the center of the pipe to the center of the torus @param theminorrad [in] radius of the pipe @param theangle [in] angle to create a torus pipe segment @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter @param thetrsf [in] optional transformation to apply returns generated triangulation.

        Parameters
        ----------
        theMajorRad: float
        theMinorRad: float
        theAngle: float
        theNbSlices: int
        theNbStacks: int
        theTrsf: gp_Trsf

        Returns
        -------
        opencascade::handle<Graphic3d_ArrayOfTriangles>
        Generate primitives for 3d quadric surface (torus ring segment). @param themajorrad [in] distance from the center of the pipe to the center of the torus @param theminorrad [in] radius of the pipe @param theangle1 [in] first angle to create a torus ring segment @param theangle2 [in] second angle to create a torus ring segment @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter @param thetrsf [in] optional transformation to apply returns generated triangulation.

        Parameters
        ----------
        theMajorRad: float
        theMinorRad: float
        theAngle1: float
        theAngle2: float
        theNbSlices: int
        theNbStacks: int
        theTrsf: gp_Trsf

        Returns
        -------
        opencascade::handle<Graphic3d_ArrayOfTriangles>
        Generate primitives for 3d quadric surface (segment of the torus ring segment). @param themajorrad [in] distance from the center of the pipe to the center of the torus @param theminorrad [in] radius of the pipe @param theangle1 [in] first angle to create a torus ring segment @param theangle2 [in] second angle to create a torus ring segment @param theangle [in] angle to create a torus pipe segment @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter @param thetrsf [in] optional transformation to apply returns generated triangulation.

        Parameters
        ----------
        theMajorRad: float
        theMinorRad: float
        theAngle1: float
        theAngle2: float
        theAngle: float
        theNbSlices: int
        theNbStacks: int
        theTrsf: gp_Trsf

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

        """
        return _Prs3d.Prs3d_ToolTorus_Create(*args)

    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_ToolTorus

# Register Prs3d_ToolTorus in _Prs3d:
_Prs3d.Prs3d_ToolTorus_swigregister(Prs3d_ToolTorus)

def Prs3d_ToolTorus_Create(*args) -> "opencascade::handle< Graphic3d_ArrayOfTriangles >":
    r"""
    Generate primitives for 3d quadric surface (complete torus). @param themajorrad [in] distance from the center of the pipe to the center of the torus @param theminorrad [in] radius of the pipe @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter @param thetrsf [in] optional transformation to apply returns generated triangulation.

    Parameters
    ----------
    theMajorRad: float
    theMinorRad: float
    theNbSlices: int
    theNbStacks: int
    theTrsf: gp_Trsf

    Returns
    -------
    opencascade::handle<Graphic3d_ArrayOfTriangles>
    Generate primitives for 3d quadric surface (torus segment). @param themajorrad [in] distance from the center of the pipe to the center of the torus @param theminorrad [in] radius of the pipe @param theangle [in] angle to create a torus pipe segment @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter @param thetrsf [in] optional transformation to apply returns generated triangulation.

    Parameters
    ----------
    theMajorRad: float
    theMinorRad: float
    theAngle: float
    theNbSlices: int
    theNbStacks: int
    theTrsf: gp_Trsf

    Returns
    -------
    opencascade::handle<Graphic3d_ArrayOfTriangles>
    Generate primitives for 3d quadric surface (torus ring segment). @param themajorrad [in] distance from the center of the pipe to the center of the torus @param theminorrad [in] radius of the pipe @param theangle1 [in] first angle to create a torus ring segment @param theangle2 [in] second angle to create a torus ring segment @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter @param thetrsf [in] optional transformation to apply returns generated triangulation.

    Parameters
    ----------
    theMajorRad: float
    theMinorRad: float
    theAngle1: float
    theAngle2: float
    theNbSlices: int
    theNbStacks: int
    theTrsf: gp_Trsf

    Returns
    -------
    opencascade::handle<Graphic3d_ArrayOfTriangles>
    Generate primitives for 3d quadric surface (segment of the torus ring segment). @param themajorrad [in] distance from the center of the pipe to the center of the torus @param theminorrad [in] radius of the pipe @param theangle1 [in] first angle to create a torus ring segment @param theangle2 [in] second angle to create a torus ring segment @param theangle [in] angle to create a torus pipe segment @param thenbslices [in] number of slices within u parameter @param thenbstacks [in] number of stacks within v parameter @param thetrsf [in] optional transformation to apply returns generated triangulation.

    Parameters
    ----------
    theMajorRad: float
    theMinorRad: float
    theAngle1: float
    theAngle2: float
    theAngle: float
    theNbSlices: int
    theNbStacks: int
    theTrsf: gp_Trsf

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

    """
    return _Prs3d.Prs3d_ToolTorus_Create(*args)

class Prs3d_IsoAspect(Prs3d_LineAspect):
    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 a framework to define display attributes of isoparameters. these include: - the color attribute acolor - the type of line atype - the width value awidth - anumber, the number of isoparameters to be displayed.

        Parameters
        ----------
        theColor: Quantity_Color
        theType: Aspect_TypeOfLine
        theWidth: float
        theNumber: int

        Returns
        -------
        None

        """
        _Prs3d.Prs3d_IsoAspect_swiginit(self, _Prs3d.new_Prs3d_IsoAspect(*args))

    def Number(self, *args) -> "Standard_Integer":
        r"""
        Returns the number of u or v isoparametric curves drawn for a single face.

        Returns
        -------
        int

        """
        return _Prs3d.Prs3d_IsoAspect_Number(self, *args)

    def SetNumber(self, *args) -> "void":
        r"""
        Defines the number of u or v isoparametric curves to be drawn for a single face. default value: 10.

        Parameters
        ----------
        theNumber: int

        Returns
        -------
        None

        """
        return _Prs3d.Prs3d_IsoAspect_SetNumber(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _Prs3d.delete_Prs3d_IsoAspect

# Register Prs3d_IsoAspect in _Prs3d:
_Prs3d.Prs3d_IsoAspect_swigregister(Prs3d_IsoAspect)


@classnotwrapped
class Prs3d_ShapeTool:
	pass



Graphic3d_HighlightStyle=Prs3d_Drawer
Prs3d_Presentation=OCC.Core.Graphic3d.Graphic3d_Structure



