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

"""
PrsDim module, see official documentation at
https://www.opencascade.com/doc/occt-7.6.0/refman/html/package_prsdim.html
"""

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

try:
    import builtins as __builtin__
except ImportError:
    import __builtin__

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


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


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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


def process_exception(error, method_name, class_name):
    return _PrsDim.process_exception(error, method_name, class_name)

from six import with_metaclass
import warnings
from OCC.Wrapper.wrapper_utils import Proxy, deprecated

import OCC.Core.Standard
import OCC.Core.NCollection
import OCC.Core.Geom
import OCC.Core.gp
import OCC.Core.TColStd
import OCC.Core.TCollection
import OCC.Core.GeomAbs
import OCC.Core.TColgp
import OCC.Core.TopoDS
import OCC.Core.Message
import OCC.Core.OSD
import OCC.Core.TopAbs
import OCC.Core.TopLoc
import OCC.Core.Prs3d
import OCC.Core.Graphic3d
import OCC.Core.BVH
import OCC.Core.Quantity
import OCC.Core.Aspect
import OCC.Core.Image
import OCC.Core.Bnd
import OCC.Core.Media
import OCC.Core.Poly
import OCC.Core.TShort
import OCC.Core.AIS
import OCC.Core.SelectMgr
import OCC.Core.Select3D
import OCC.Core.SelectBasics
import OCC.Core.PrsMgr
import OCC.Core.V3d
import OCC.Core.StdSelect
import OCC.Core.DsgPrs

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

PrsDim_DimensionSelectionMode_All = _PrsDim.PrsDim_DimensionSelectionMode_All
PrsDim_DimensionSelectionMode_Line = _PrsDim.PrsDim_DimensionSelectionMode_Line
PrsDim_DimensionSelectionMode_Text = _PrsDim.PrsDim_DimensionSelectionMode_Text
PrsDim_TypeOfDist_Unknown = _PrsDim.PrsDim_TypeOfDist_Unknown
PrsDim_TypeOfDist_Horizontal = _PrsDim.PrsDim_TypeOfDist_Horizontal
PrsDim_TypeOfDist_Vertical = _PrsDim.PrsDim_TypeOfDist_Vertical
PrsDim_KOD_NONE = _PrsDim.PrsDim_KOD_NONE
PrsDim_KOD_LENGTH = _PrsDim.PrsDim_KOD_LENGTH
PrsDim_KOD_PLANEANGLE = _PrsDim.PrsDim_KOD_PLANEANGLE
PrsDim_KOD_SOLIDANGLE = _PrsDim.PrsDim_KOD_SOLIDANGLE
PrsDim_KOD_AREA = _PrsDim.PrsDim_KOD_AREA
PrsDim_KOD_VOLUME = _PrsDim.PrsDim_KOD_VOLUME
PrsDim_KOD_MASS = _PrsDim.PrsDim_KOD_MASS
PrsDim_KOD_TIME = _PrsDim.PrsDim_KOD_TIME
PrsDim_KOD_RADIUS = _PrsDim.PrsDim_KOD_RADIUS
PrsDim_KOD_DIAMETER = _PrsDim.PrsDim_KOD_DIAMETER
PrsDim_KOD_CHAMF2D = _PrsDim.PrsDim_KOD_CHAMF2D
PrsDim_KOD_CHAMF3D = _PrsDim.PrsDim_KOD_CHAMF3D
PrsDim_KOD_OFFSET = _PrsDim.PrsDim_KOD_OFFSET
PrsDim_KOD_ELLIPSERADIUS = _PrsDim.PrsDim_KOD_ELLIPSERADIUS
PrsDim_TypeOfAngleArrowVisibility_Both = _PrsDim.PrsDim_TypeOfAngleArrowVisibility_Both
PrsDim_TypeOfAngleArrowVisibility_First = _PrsDim.PrsDim_TypeOfAngleArrowVisibility_First
PrsDim_TypeOfAngleArrowVisibility_Second = _PrsDim.PrsDim_TypeOfAngleArrowVisibility_Second
PrsDim_TypeOfAngleArrowVisibility_None = _PrsDim.PrsDim_TypeOfAngleArrowVisibility_None
PrsDim_KOS_Plane = _PrsDim.PrsDim_KOS_Plane
PrsDim_KOS_Cylinder = _PrsDim.PrsDim_KOS_Cylinder
PrsDim_KOS_Cone = _PrsDim.PrsDim_KOS_Cone
PrsDim_KOS_Sphere = _PrsDim.PrsDim_KOS_Sphere
PrsDim_KOS_Torus = _PrsDim.PrsDim_KOS_Torus
PrsDim_KOS_Revolution = _PrsDim.PrsDim_KOS_Revolution
PrsDim_KOS_Extrusion = _PrsDim.PrsDim_KOS_Extrusion
PrsDim_KOS_OtherSurface = _PrsDim.PrsDim_KOS_OtherSurface
PrsDim_KOR_NONE = _PrsDim.PrsDim_KOR_NONE
PrsDim_KOR_CONCENTRIC = _PrsDim.PrsDim_KOR_CONCENTRIC
PrsDim_KOR_EQUALDISTANCE = _PrsDim.PrsDim_KOR_EQUALDISTANCE
PrsDim_KOR_EQUALRADIUS = _PrsDim.PrsDim_KOR_EQUALRADIUS
PrsDim_KOR_FIX = _PrsDim.PrsDim_KOR_FIX
PrsDim_KOR_IDENTIC = _PrsDim.PrsDim_KOR_IDENTIC
PrsDim_KOR_OFFSET = _PrsDim.PrsDim_KOR_OFFSET
PrsDim_KOR_PARALLEL = _PrsDim.PrsDim_KOR_PARALLEL
PrsDim_KOR_PERPENDICULAR = _PrsDim.PrsDim_KOR_PERPENDICULAR
PrsDim_KOR_TANGENT = _PrsDim.PrsDim_KOR_TANGENT
PrsDim_KOR_SYMMETRIC = _PrsDim.PrsDim_KOR_SYMMETRIC
PrsDim_DisplaySpecialSymbol_No = _PrsDim.PrsDim_DisplaySpecialSymbol_No
PrsDim_DisplaySpecialSymbol_Before = _PrsDim.PrsDim_DisplaySpecialSymbol_Before
PrsDim_DisplaySpecialSymbol_After = _PrsDim.PrsDim_DisplaySpecialSymbol_After
PrsDim_TypeOfAngle_Interior = _PrsDim.PrsDim_TypeOfAngle_Interior
PrsDim_TypeOfAngle_Exterior = _PrsDim.PrsDim_TypeOfAngle_Exterior


class PrsDim_DimensionSelectionMode(IntEnum):
	PrsDim_DimensionSelectionMode_All = 0
	PrsDim_DimensionSelectionMode_Line = 1
	PrsDim_DimensionSelectionMode_Text = 2
PrsDim_DimensionSelectionMode_All = PrsDim_DimensionSelectionMode.PrsDim_DimensionSelectionMode_All
PrsDim_DimensionSelectionMode_Line = PrsDim_DimensionSelectionMode.PrsDim_DimensionSelectionMode_Line
PrsDim_DimensionSelectionMode_Text = PrsDim_DimensionSelectionMode.PrsDim_DimensionSelectionMode_Text

class PrsDim_TypeOfDist(IntEnum):
	PrsDim_TypeOfDist_Unknown = 0
	PrsDim_TypeOfDist_Horizontal = 1
	PrsDim_TypeOfDist_Vertical = 2
PrsDim_TypeOfDist_Unknown = PrsDim_TypeOfDist.PrsDim_TypeOfDist_Unknown
PrsDim_TypeOfDist_Horizontal = PrsDim_TypeOfDist.PrsDim_TypeOfDist_Horizontal
PrsDim_TypeOfDist_Vertical = PrsDim_TypeOfDist.PrsDim_TypeOfDist_Vertical

class PrsDim_KindOfDimension(IntEnum):
	PrsDim_KOD_NONE = 0
	PrsDim_KOD_LENGTH = 1
	PrsDim_KOD_PLANEANGLE = 2
	PrsDim_KOD_SOLIDANGLE = 3
	PrsDim_KOD_AREA = 4
	PrsDim_KOD_VOLUME = 5
	PrsDim_KOD_MASS = 6
	PrsDim_KOD_TIME = 7
	PrsDim_KOD_RADIUS = 8
	PrsDim_KOD_DIAMETER = 9
	PrsDim_KOD_CHAMF2D = 10
	PrsDim_KOD_CHAMF3D = 11
	PrsDim_KOD_OFFSET = 12
	PrsDim_KOD_ELLIPSERADIUS = 13
PrsDim_KOD_NONE = PrsDim_KindOfDimension.PrsDim_KOD_NONE
PrsDim_KOD_LENGTH = PrsDim_KindOfDimension.PrsDim_KOD_LENGTH
PrsDim_KOD_PLANEANGLE = PrsDim_KindOfDimension.PrsDim_KOD_PLANEANGLE
PrsDim_KOD_SOLIDANGLE = PrsDim_KindOfDimension.PrsDim_KOD_SOLIDANGLE
PrsDim_KOD_AREA = PrsDim_KindOfDimension.PrsDim_KOD_AREA
PrsDim_KOD_VOLUME = PrsDim_KindOfDimension.PrsDim_KOD_VOLUME
PrsDim_KOD_MASS = PrsDim_KindOfDimension.PrsDim_KOD_MASS
PrsDim_KOD_TIME = PrsDim_KindOfDimension.PrsDim_KOD_TIME
PrsDim_KOD_RADIUS = PrsDim_KindOfDimension.PrsDim_KOD_RADIUS
PrsDim_KOD_DIAMETER = PrsDim_KindOfDimension.PrsDim_KOD_DIAMETER
PrsDim_KOD_CHAMF2D = PrsDim_KindOfDimension.PrsDim_KOD_CHAMF2D
PrsDim_KOD_CHAMF3D = PrsDim_KindOfDimension.PrsDim_KOD_CHAMF3D
PrsDim_KOD_OFFSET = PrsDim_KindOfDimension.PrsDim_KOD_OFFSET
PrsDim_KOD_ELLIPSERADIUS = PrsDim_KindOfDimension.PrsDim_KOD_ELLIPSERADIUS

class PrsDim_TypeOfAngleArrowVisibility(IntEnum):
	PrsDim_TypeOfAngleArrowVisibility_Both = 0
	PrsDim_TypeOfAngleArrowVisibility_First = 1
	PrsDim_TypeOfAngleArrowVisibility_Second = 2
	PrsDim_TypeOfAngleArrowVisibility_None = 3
PrsDim_TypeOfAngleArrowVisibility_Both = PrsDim_TypeOfAngleArrowVisibility.PrsDim_TypeOfAngleArrowVisibility_Both
PrsDim_TypeOfAngleArrowVisibility_First = PrsDim_TypeOfAngleArrowVisibility.PrsDim_TypeOfAngleArrowVisibility_First
PrsDim_TypeOfAngleArrowVisibility_Second = PrsDim_TypeOfAngleArrowVisibility.PrsDim_TypeOfAngleArrowVisibility_Second
PrsDim_TypeOfAngleArrowVisibility_None = PrsDim_TypeOfAngleArrowVisibility.PrsDim_TypeOfAngleArrowVisibility_None

class PrsDim_KindOfSurface(IntEnum):
	PrsDim_KOS_Plane = 0
	PrsDim_KOS_Cylinder = 1
	PrsDim_KOS_Cone = 2
	PrsDim_KOS_Sphere = 3
	PrsDim_KOS_Torus = 4
	PrsDim_KOS_Revolution = 5
	PrsDim_KOS_Extrusion = 6
	PrsDim_KOS_OtherSurface = 7
PrsDim_KOS_Plane = PrsDim_KindOfSurface.PrsDim_KOS_Plane
PrsDim_KOS_Cylinder = PrsDim_KindOfSurface.PrsDim_KOS_Cylinder
PrsDim_KOS_Cone = PrsDim_KindOfSurface.PrsDim_KOS_Cone
PrsDim_KOS_Sphere = PrsDim_KindOfSurface.PrsDim_KOS_Sphere
PrsDim_KOS_Torus = PrsDim_KindOfSurface.PrsDim_KOS_Torus
PrsDim_KOS_Revolution = PrsDim_KindOfSurface.PrsDim_KOS_Revolution
PrsDim_KOS_Extrusion = PrsDim_KindOfSurface.PrsDim_KOS_Extrusion
PrsDim_KOS_OtherSurface = PrsDim_KindOfSurface.PrsDim_KOS_OtherSurface

class PrsDim_KindOfRelation(IntEnum):
	PrsDim_KOR_NONE = 0
	PrsDim_KOR_CONCENTRIC = 1
	PrsDim_KOR_EQUALDISTANCE = 2
	PrsDim_KOR_EQUALRADIUS = 3
	PrsDim_KOR_FIX = 4
	PrsDim_KOR_IDENTIC = 5
	PrsDim_KOR_OFFSET = 6
	PrsDim_KOR_PARALLEL = 7
	PrsDim_KOR_PERPENDICULAR = 8
	PrsDim_KOR_TANGENT = 9
	PrsDim_KOR_SYMMETRIC = 10
PrsDim_KOR_NONE = PrsDim_KindOfRelation.PrsDim_KOR_NONE
PrsDim_KOR_CONCENTRIC = PrsDim_KindOfRelation.PrsDim_KOR_CONCENTRIC
PrsDim_KOR_EQUALDISTANCE = PrsDim_KindOfRelation.PrsDim_KOR_EQUALDISTANCE
PrsDim_KOR_EQUALRADIUS = PrsDim_KindOfRelation.PrsDim_KOR_EQUALRADIUS
PrsDim_KOR_FIX = PrsDim_KindOfRelation.PrsDim_KOR_FIX
PrsDim_KOR_IDENTIC = PrsDim_KindOfRelation.PrsDim_KOR_IDENTIC
PrsDim_KOR_OFFSET = PrsDim_KindOfRelation.PrsDim_KOR_OFFSET
PrsDim_KOR_PARALLEL = PrsDim_KindOfRelation.PrsDim_KOR_PARALLEL
PrsDim_KOR_PERPENDICULAR = PrsDim_KindOfRelation.PrsDim_KOR_PERPENDICULAR
PrsDim_KOR_TANGENT = PrsDim_KindOfRelation.PrsDim_KOR_TANGENT
PrsDim_KOR_SYMMETRIC = PrsDim_KindOfRelation.PrsDim_KOR_SYMMETRIC

class PrsDim_DisplaySpecialSymbol(IntEnum):
	PrsDim_DisplaySpecialSymbol_No = 0
	PrsDim_DisplaySpecialSymbol_Before = 1
	PrsDim_DisplaySpecialSymbol_After = 2
PrsDim_DisplaySpecialSymbol_No = PrsDim_DisplaySpecialSymbol.PrsDim_DisplaySpecialSymbol_No
PrsDim_DisplaySpecialSymbol_Before = PrsDim_DisplaySpecialSymbol.PrsDim_DisplaySpecialSymbol_Before
PrsDim_DisplaySpecialSymbol_After = PrsDim_DisplaySpecialSymbol.PrsDim_DisplaySpecialSymbol_After

class PrsDim_TypeOfAngle(IntEnum):
	PrsDim_TypeOfAngle_Interior = 0
	PrsDim_TypeOfAngle_Exterior = 1
PrsDim_TypeOfAngle_Interior = PrsDim_TypeOfAngle.PrsDim_TypeOfAngle_Interior
PrsDim_TypeOfAngle_Exterior = PrsDim_TypeOfAngle.PrsDim_TypeOfAngle_Exterior


def Handle_PrsDim_Dimension_Create():
    return _PrsDim.Handle_PrsDim_Dimension_Create()

def Handle_PrsDim_Dimension_DownCast(t):
    return _PrsDim.Handle_PrsDim_Dimension_DownCast(t)

def Handle_PrsDim_Dimension_IsNull(t):
    return _PrsDim.Handle_PrsDim_Dimension_IsNull(t)

def Handle_PrsDim_DimensionOwner_Create():
    return _PrsDim.Handle_PrsDim_DimensionOwner_Create()

def Handle_PrsDim_DimensionOwner_DownCast(t):
    return _PrsDim.Handle_PrsDim_DimensionOwner_DownCast(t)

def Handle_PrsDim_DimensionOwner_IsNull(t):
    return _PrsDim.Handle_PrsDim_DimensionOwner_IsNull(t)

def Handle_PrsDim_Relation_Create():
    return _PrsDim.Handle_PrsDim_Relation_Create()

def Handle_PrsDim_Relation_DownCast(t):
    return _PrsDim.Handle_PrsDim_Relation_DownCast(t)

def Handle_PrsDim_Relation_IsNull(t):
    return _PrsDim.Handle_PrsDim_Relation_IsNull(t)

def Handle_PrsDim_AngleDimension_Create():
    return _PrsDim.Handle_PrsDim_AngleDimension_Create()

def Handle_PrsDim_AngleDimension_DownCast(t):
    return _PrsDim.Handle_PrsDim_AngleDimension_DownCast(t)

def Handle_PrsDim_AngleDimension_IsNull(t):
    return _PrsDim.Handle_PrsDim_AngleDimension_IsNull(t)

def Handle_PrsDim_Chamf2dDimension_Create():
    return _PrsDim.Handle_PrsDim_Chamf2dDimension_Create()

def Handle_PrsDim_Chamf2dDimension_DownCast(t):
    return _PrsDim.Handle_PrsDim_Chamf2dDimension_DownCast(t)

def Handle_PrsDim_Chamf2dDimension_IsNull(t):
    return _PrsDim.Handle_PrsDim_Chamf2dDimension_IsNull(t)

def Handle_PrsDim_Chamf3dDimension_Create():
    return _PrsDim.Handle_PrsDim_Chamf3dDimension_Create()

def Handle_PrsDim_Chamf3dDimension_DownCast(t):
    return _PrsDim.Handle_PrsDim_Chamf3dDimension_DownCast(t)

def Handle_PrsDim_Chamf3dDimension_IsNull(t):
    return _PrsDim.Handle_PrsDim_Chamf3dDimension_IsNull(t)

def Handle_PrsDim_ConcentricRelation_Create():
    return _PrsDim.Handle_PrsDim_ConcentricRelation_Create()

def Handle_PrsDim_ConcentricRelation_DownCast(t):
    return _PrsDim.Handle_PrsDim_ConcentricRelation_DownCast(t)

def Handle_PrsDim_ConcentricRelation_IsNull(t):
    return _PrsDim.Handle_PrsDim_ConcentricRelation_IsNull(t)

def Handle_PrsDim_DiameterDimension_Create():
    return _PrsDim.Handle_PrsDim_DiameterDimension_Create()

def Handle_PrsDim_DiameterDimension_DownCast(t):
    return _PrsDim.Handle_PrsDim_DiameterDimension_DownCast(t)

def Handle_PrsDim_DiameterDimension_IsNull(t):
    return _PrsDim.Handle_PrsDim_DiameterDimension_IsNull(t)

def Handle_PrsDim_EllipseRadiusDimension_Create():
    return _PrsDim.Handle_PrsDim_EllipseRadiusDimension_Create()

def Handle_PrsDim_EllipseRadiusDimension_DownCast(t):
    return _PrsDim.Handle_PrsDim_EllipseRadiusDimension_DownCast(t)

def Handle_PrsDim_EllipseRadiusDimension_IsNull(t):
    return _PrsDim.Handle_PrsDim_EllipseRadiusDimension_IsNull(t)

def Handle_PrsDim_EqualDistanceRelation_Create():
    return _PrsDim.Handle_PrsDim_EqualDistanceRelation_Create()

def Handle_PrsDim_EqualDistanceRelation_DownCast(t):
    return _PrsDim.Handle_PrsDim_EqualDistanceRelation_DownCast(t)

def Handle_PrsDim_EqualDistanceRelation_IsNull(t):
    return _PrsDim.Handle_PrsDim_EqualDistanceRelation_IsNull(t)

def Handle_PrsDim_EqualRadiusRelation_Create():
    return _PrsDim.Handle_PrsDim_EqualRadiusRelation_Create()

def Handle_PrsDim_EqualRadiusRelation_DownCast(t):
    return _PrsDim.Handle_PrsDim_EqualRadiusRelation_DownCast(t)

def Handle_PrsDim_EqualRadiusRelation_IsNull(t):
    return _PrsDim.Handle_PrsDim_EqualRadiusRelation_IsNull(t)

def Handle_PrsDim_FixRelation_Create():
    return _PrsDim.Handle_PrsDim_FixRelation_Create()

def Handle_PrsDim_FixRelation_DownCast(t):
    return _PrsDim.Handle_PrsDim_FixRelation_DownCast(t)

def Handle_PrsDim_FixRelation_IsNull(t):
    return _PrsDim.Handle_PrsDim_FixRelation_IsNull(t)

def Handle_PrsDim_IdenticRelation_Create():
    return _PrsDim.Handle_PrsDim_IdenticRelation_Create()

def Handle_PrsDim_IdenticRelation_DownCast(t):
    return _PrsDim.Handle_PrsDim_IdenticRelation_DownCast(t)

def Handle_PrsDim_IdenticRelation_IsNull(t):
    return _PrsDim.Handle_PrsDim_IdenticRelation_IsNull(t)

def Handle_PrsDim_LengthDimension_Create():
    return _PrsDim.Handle_PrsDim_LengthDimension_Create()

def Handle_PrsDim_LengthDimension_DownCast(t):
    return _PrsDim.Handle_PrsDim_LengthDimension_DownCast(t)

def Handle_PrsDim_LengthDimension_IsNull(t):
    return _PrsDim.Handle_PrsDim_LengthDimension_IsNull(t)

def Handle_PrsDim_MidPointRelation_Create():
    return _PrsDim.Handle_PrsDim_MidPointRelation_Create()

def Handle_PrsDim_MidPointRelation_DownCast(t):
    return _PrsDim.Handle_PrsDim_MidPointRelation_DownCast(t)

def Handle_PrsDim_MidPointRelation_IsNull(t):
    return _PrsDim.Handle_PrsDim_MidPointRelation_IsNull(t)

def Handle_PrsDim_OffsetDimension_Create():
    return _PrsDim.Handle_PrsDim_OffsetDimension_Create()

def Handle_PrsDim_OffsetDimension_DownCast(t):
    return _PrsDim.Handle_PrsDim_OffsetDimension_DownCast(t)

def Handle_PrsDim_OffsetDimension_IsNull(t):
    return _PrsDim.Handle_PrsDim_OffsetDimension_IsNull(t)

def Handle_PrsDim_ParallelRelation_Create():
    return _PrsDim.Handle_PrsDim_ParallelRelation_Create()

def Handle_PrsDim_ParallelRelation_DownCast(t):
    return _PrsDim.Handle_PrsDim_ParallelRelation_DownCast(t)

def Handle_PrsDim_ParallelRelation_IsNull(t):
    return _PrsDim.Handle_PrsDim_ParallelRelation_IsNull(t)

def Handle_PrsDim_PerpendicularRelation_Create():
    return _PrsDim.Handle_PrsDim_PerpendicularRelation_Create()

def Handle_PrsDim_PerpendicularRelation_DownCast(t):
    return _PrsDim.Handle_PrsDim_PerpendicularRelation_DownCast(t)

def Handle_PrsDim_PerpendicularRelation_IsNull(t):
    return _PrsDim.Handle_PrsDim_PerpendicularRelation_IsNull(t)

def Handle_PrsDim_RadiusDimension_Create():
    return _PrsDim.Handle_PrsDim_RadiusDimension_Create()

def Handle_PrsDim_RadiusDimension_DownCast(t):
    return _PrsDim.Handle_PrsDim_RadiusDimension_DownCast(t)

def Handle_PrsDim_RadiusDimension_IsNull(t):
    return _PrsDim.Handle_PrsDim_RadiusDimension_IsNull(t)

def Handle_PrsDim_SymmetricRelation_Create():
    return _PrsDim.Handle_PrsDim_SymmetricRelation_Create()

def Handle_PrsDim_SymmetricRelation_DownCast(t):
    return _PrsDim.Handle_PrsDim_SymmetricRelation_DownCast(t)

def Handle_PrsDim_SymmetricRelation_IsNull(t):
    return _PrsDim.Handle_PrsDim_SymmetricRelation_IsNull(t)

def Handle_PrsDim_TangentRelation_Create():
    return _PrsDim.Handle_PrsDim_TangentRelation_Create()

def Handle_PrsDim_TangentRelation_DownCast(t):
    return _PrsDim.Handle_PrsDim_TangentRelation_DownCast(t)

def Handle_PrsDim_TangentRelation_IsNull(t):
    return _PrsDim.Handle_PrsDim_TangentRelation_IsNull(t)

def Handle_PrsDim_MaxRadiusDimension_Create():
    return _PrsDim.Handle_PrsDim_MaxRadiusDimension_Create()

def Handle_PrsDim_MaxRadiusDimension_DownCast(t):
    return _PrsDim.Handle_PrsDim_MaxRadiusDimension_DownCast(t)

def Handle_PrsDim_MaxRadiusDimension_IsNull(t):
    return _PrsDim.Handle_PrsDim_MaxRadiusDimension_IsNull(t)

def Handle_PrsDim_MinRadiusDimension_Create():
    return _PrsDim.Handle_PrsDim_MinRadiusDimension_Create()

def Handle_PrsDim_MinRadiusDimension_DownCast(t):
    return _PrsDim.Handle_PrsDim_MinRadiusDimension_DownCast(t)

def Handle_PrsDim_MinRadiusDimension_IsNull(t):
    return _PrsDim.Handle_PrsDim_MinRadiusDimension_IsNull(t)
class prsdim(object):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    @staticmethod
    def ComputeGeomCurve(*args):
        r"""
        Checks if acurve belongs to aplane; if not, projects acurve in aplane and returns acurve; return true if ok.

        Parameters
        ----------
        aCurve: Geom_Curve
        first1: float
        last1: float
        FirstPnt1: gp_Pnt
        LastPnt1: gp_Pnt
        aPlane: Geom_Plane

        Returns
        -------
        isOnPlane: bool

        """
        return _PrsDim.prsdim_ComputeGeomCurve(*args)

    @staticmethod
    def ComputeGeometry(*args):
        r"""
        Used by 2d relation only computes the 3d geometry of <anedge> in the current workingplane and the extremities if any return true if ok.

        Parameters
        ----------
        theEdge: TopoDS_Edge
        theCurve: Geom_Curve
        theFirstPnt: gp_Pnt
        theLastPnt: gp_Pnt

        Returns
        -------
        bool
        Used by dimensions only. computes the 3d geometry of <anedge>. return true if ok.

        Parameters
        ----------
        theEdge: TopoDS_Edge
        theCurve: Geom_Curve
        theFirstPnt: gp_Pnt
        theLastPnt: gp_Pnt

        Returns
        -------
        theIsInfinite: bool
        Used by 2d relation only computes the 3d geometry of <anedge> in the current workingplane and the extremities if any. if <acurve> is not in the current plane, <extcurve> contains the not projected curve associated to <anedge>. if <anedge> is infinite, <isinfinite> = true and the 2 parameters <firstpnt> and <lastpnt> have no signification. return true if ok.

        Parameters
        ----------
        theEdge: TopoDS_Edge
        theCurve: Geom_Curve
        theFirstPnt: gp_Pnt
        theLastPnt: gp_Pnt
        theExtCurve: Geom_Curve
        thePlane: Geom_Plane

        Returns
        -------
        theIsInfinite: bool
        theIsOnPlane: bool
        Used by 2d relation only computes the 3d geometry of <anedge> in the current workingplane and the extremities if any return true if ok.

        Parameters
        ----------
        theFirstEdge: TopoDS_Edge
        theSecondEdge: TopoDS_Edge
        theFirstCurve: Geom_Curve
        theSecondCurve: Geom_Curve
        theFirstPnt1: gp_Pnt
        theLastPnt1: gp_Pnt
        theFirstPnt2: gp_Pnt
        theLastPnt2: gp_Pnt
        thePlane: Geom_Plane

        Returns
        -------
        bool
        Used by dimensions only.computes the 3d geometry of<anedge1> and <anedge2> and checks if they are infinite.

        Parameters
        ----------
        theFirstEdge: TopoDS_Edge
        theSecondEdge: TopoDS_Edge
        theFirstCurve: Geom_Curve
        theSecondCurve: Geom_Curve
        theFirstPnt1: gp_Pnt
        theLastPnt1: gp_Pnt
        theFirstPnt2: gp_Pnt
        theLastPnt2: gp_Pnt

        Returns
        -------
        theIsinfinite1: bool
        theIsinfinite2: bool
        Used by 2d relation only computes the 3d geometry of<anedge1> and <anedge2> in the current plane and the extremities if any. return in extcurve the 3d curve (not projected in the plane) of the first edge if <indexext> =1 or of the 2nd edge if <indexext> = 2. if <indexext> = 0, extcurve is null. if there is an edge external to the plane, <isinfinite> is true if this edge is infinite. so, the extremities of it are not significant. return true if ok.

        Parameters
        ----------
        theFirstEdge: TopoDS_Edge
        theSecondEdge: TopoDS_Edge
        theFirstCurve: Geom_Curve
        theSecondCurve: Geom_Curve
        theFirstPnt1: gp_Pnt
        theLastPnt1: gp_Pnt
        theFirstPnt2: gp_Pnt
        theLastPnt2: gp_Pnt
        theExtCurve: Geom_Curve
        thePlane: Geom_Plane

        Returns
        -------
        theExtIndex: int
        theIsinfinite1: bool
        theIsinfinite2: bool
        No available documentation.

        Parameters
        ----------
        aVertex: TopoDS_Vertex
        point: gp_Pnt
        aPlane: Geom_Plane

        Returns
        -------
        isOnPlane: bool

        """
        return _PrsDim.prsdim_ComputeGeometry(*args)

    @staticmethod
    def ComputeProjEdgePresentation(*args):
        r"""
        No available documentation.

        Parameters
        ----------
        aPres: Prs3d_Presentation
        aDrawer: Prs3d_Drawer
        anEdge: TopoDS_Edge
        ProjCurve: Geom_Curve
        FirstP: gp_Pnt
        LastP: gp_Pnt
        aColor: Quantity_NameOfColor,optional
        	default value is Quantity_NOC_PURPLE
        aWidth: float,optional
        	default value is 2
        aProjTOL: Aspect_TypeOfLine,optional
        	default value is Aspect_TOL_DASH
        aCallTOL: Aspect_TypeOfLine,optional
        	default value is Aspect_TOL_DOT

        Returns
        -------
        None

        """
        return _PrsDim.prsdim_ComputeProjEdgePresentation(*args)

    @staticmethod
    def ComputeProjVertexPresentation(*args):
        r"""
        No available documentation.

        Parameters
        ----------
        aPres: Prs3d_Presentation
        aDrawer: Prs3d_Drawer
        aVertex: TopoDS_Vertex
        ProjPoint: gp_Pnt
        aColor: Quantity_NameOfColor,optional
        	default value is Quantity_NOC_PURPLE
        aWidth: float,optional
        	default value is 2
        aProjTOM: Aspect_TypeOfMarker,optional
        	default value is Aspect_TOM_PLUS
        aCallTOL: Aspect_TypeOfLine,optional
        	default value is Aspect_TOL_DOT

        Returns
        -------
        None

        """
        return _PrsDim.prsdim_ComputeProjVertexPresentation(*args)

    @staticmethod
    def DistanceFromApex(*args):
        r"""
        Computes length of ellipse arc in parametric units.

        Parameters
        ----------
        elips: gp_Elips
        Apex: gp_Pnt
        par: float

        Returns
        -------
        float

        """
        return _PrsDim.prsdim_DistanceFromApex(*args)

    @staticmethod
    def Farest(*args):
        r"""
        No available documentation.

        Parameters
        ----------
        aShape: TopoDS_Shape
        aPoint: gp_Pnt

        Returns
        -------
        gp_Pnt

        """
        return _PrsDim.prsdim_Farest(*args)

    @staticmethod
    def GetPlaneFromFace(*args):
        r"""
        Tryes to get plane from face. returns surface of face in asurf. returns standard_true and plane of face in aplane in following cases: face is plane, offset of plane, extrusion of line and offset of extrusion of line returns pure type of surface which can be: plane, cylinder, cone, sphere, torus, surfaceofrevolution, surfaceofextrusion.

        Parameters
        ----------
        aFace: TopoDS_Face
        aPlane: gp_Pln
        aSurf: Geom_Surface

        Returns
        -------
        aSurfType: PrsDim_KindOfSurface
        Offset: float

        """
        return _PrsDim.prsdim_GetPlaneFromFace(*args)

    @staticmethod
    def InDomain(*args):
        r"""
        Returns true if point with anattachpar is in domain of arc.

        Parameters
        ----------
        aFirstPar: float
        aLastPar: float
        anAttachPar: float

        Returns
        -------
        bool

        """
        return _PrsDim.prsdim_InDomain(*args)

    @staticmethod
    def InitAngleBetweenCurvilinearFaces(*args):
        r"""
        Finds three points for the angle dimension between two curvilinear surfaces.

        Parameters
        ----------
        theFirstFace: TopoDS_Face
        theSecondFace: TopoDS_Face
        theFirstSurfType: PrsDim_KindOfSurface
        theSecondSurfType: PrsDim_KindOfSurface
        theCenter: gp_Pnt
        theFirstAttach: gp_Pnt
        theSecondAttach: gp_Pnt
        theIsFirstPointSet: bool,optional
        	default value is Standard_False

        Returns
        -------
        bool

        """
        return _PrsDim.prsdim_InitAngleBetweenCurvilinearFaces(*args)

    @staticmethod
    def InitAngleBetweenPlanarFaces(*args):
        r"""
        Finds three points for the angle dimension between two planes.

        Parameters
        ----------
        theFirstFace: TopoDS_Face
        theSecondFace: TopoDS_Face
        theCenter: gp_Pnt
        theFirstAttach: gp_Pnt
        theSecondAttach: gp_Pnt
        theIsFirstPointSet: bool,optional
        	default value is Standard_False

        Returns
        -------
        bool

        """
        return _PrsDim.prsdim_InitAngleBetweenPlanarFaces(*args)

    @staticmethod
    def InitFaceLength(*args):
        r"""
        No available documentation.

        Parameters
        ----------
        aFace: TopoDS_Face
        aPlane: gp_Pln
        aSurface: Geom_Surface

        Returns
        -------
        aSurfaceType: PrsDim_KindOfSurface
        anOffset: float

        """
        return _PrsDim.prsdim_InitFaceLength(*args)

    @staticmethod
    def InitLengthBetweenCurvilinearFaces(*args):
        r"""
        Finds attachment points on two curvilinear faces for length dimension. @param theplanedir [in] the direction on the dimension plane to compute the plane automatically. it will not be taken into account if plane is defined by user.

        Parameters
        ----------
        theFirstFace: TopoDS_Face
        theSecondFace: TopoDS_Face
        theFirstSurf: Geom_Surface
        theSecondSurf: Geom_Surface
        theFirstAttach: gp_Pnt
        theSecondAttach: gp_Pnt
        theDirOnPlane: gp_Dir

        Returns
        -------
        None

        """
        return _PrsDim.prsdim_InitLengthBetweenCurvilinearFaces(*args)

    @staticmethod
    def Nearest(*args):
        r"""
        Returns the nearest point in a shape. this is used by several classes in calculation of dimensions.

        Parameters
        ----------
        aShape: TopoDS_Shape
        aPoint: gp_Pnt

        Returns
        -------
        gp_Pnt
        Returns the nearest point on the line.

        Parameters
        ----------
        theLine: gp_Lin
        thePoint: gp_Pnt

        Returns
        -------
        gp_Pnt
        For the given point finds nearest point on the curve, returns true if found point is belongs to the curve and false otherwise.

        Parameters
        ----------
        theCurve: Geom_Curve
        thePoint: gp_Pnt
        theFirstPoint: gp_Pnt
        theLastPoint: gp_Pnt
        theNearestPoint: gp_Pnt

        Returns
        -------
        bool

        """
        return _PrsDim.prsdim_Nearest(*args)

    @staticmethod
    def NearestApex(*args):
        r"""
        Computes nearest to ellipse arc apex.

        Parameters
        ----------
        elips: gp_Elips
        pApex: gp_Pnt
        nApex: gp_Pnt
        fpara: float
        lpara: float

        Returns
        -------
        IsInDomain: bool

        """
        return _PrsDim.prsdim_NearestApex(*args)

    @staticmethod
    def ProjectPointOnLine(*args):
        r"""
        No available documentation.

        Parameters
        ----------
        aPoint: gp_Pnt
        aLine: gp_Lin

        Returns
        -------
        gp_Pnt

        """
        return _PrsDim.prsdim_ProjectPointOnLine(*args)

    @staticmethod
    def ProjectPointOnPlane(*args):
        r"""
        No available documentation.

        Parameters
        ----------
        aPoint: gp_Pnt
        aPlane: gp_Pln

        Returns
        -------
        gp_Pnt

        """
        return _PrsDim.prsdim_ProjectPointOnPlane(*args)

    @staticmethod
    def TranslatePointToBound(*args):
        r"""
        No available documentation.

        Parameters
        ----------
        aPoint: gp_Pnt
        aDir: gp_Dir
        aBndBox: Bnd_Box

        Returns
        -------
        gp_Pnt

        """
        return _PrsDim.prsdim_TranslatePointToBound(*args)

    __repr__ = _dumps_object


    def __init__(self):
        _PrsDim.prsdim_swiginit(self, _PrsDim.new_prsdim())
    __swig_destroy__ = _PrsDim.delete_prsdim

# Register prsdim in _PrsDim:
_PrsDim.prsdim_swigregister(prsdim)
class PrsDim_Dimension(OCC.Core.AIS.AIS_InteractiveObject):
    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
    ComputeMode_All = _PrsDim.PrsDim_Dimension_ComputeMode_All
    
    ComputeMode_Line = _PrsDim.PrsDim_Dimension_ComputeMode_Line
    
    ComputeMode_Text = _PrsDim.PrsDim_Dimension_ComputeMode_Text
    


    class ComputeMode(IntEnum):
    	ComputeMode_All = 0
    	ComputeMode_Line = 1
    	ComputeMode_Text = 2
    ComputeMode_All = ComputeMode.ComputeMode_All
    ComputeMode_Line = ComputeMode.ComputeMode_Line
    ComputeMode_Text = ComputeMode.ComputeMode_Text


    def DimensionAspect(self, *args):
        r"""
        Gets the dimension aspect from ais object drawer. dimension aspect contains aspects of line, text and arrows for dimension presentation.

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

        """
        return _PrsDim.PrsDim_Dimension_DimensionAspect(self, *args)

    def DisplaySpecialSymbol(self, *args):
        r"""
        Returns dimension special symbol display options.

        Returns
        -------
        PrsDim_DisplaySpecialSymbol

        """
        return _PrsDim.PrsDim_Dimension_DisplaySpecialSymbol(self, *args)

    def GetCustomValue(self, *args):
        r"""
        Gets user-defined dimension value. returns dimension value string.

        Returns
        -------
        TCollection_ExtendedString

        """
        return _PrsDim.PrsDim_Dimension_GetCustomValue(self, *args)

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

        Returns
        -------
        TCollection_AsciiString

        """
        return _PrsDim.PrsDim_Dimension_GetDisplayUnits(self, *args)

    def GetFlyout(self, *args):
        r"""
        Returns flyout value for dimension.

        Returns
        -------
        float

        """
        return _PrsDim.PrsDim_Dimension_GetFlyout(self, *args)

    def GetGeometryType(self, *args):
        r"""
        Geometry type defines type of shapes on which the dimension is to be built. returns type of geometry on which the dimension will be built.

        Returns
        -------
        int

        """
        return _PrsDim.PrsDim_Dimension_GetGeometryType(self, *args)

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

        Returns
        -------
        TCollection_AsciiString

        """
        return _PrsDim.PrsDim_Dimension_GetModelUnits(self, *args)

    def GetPlane(self, *args):
        r"""
        Get the dimension plane in which the 2d dimension presentation is computed. by default, if plane is not defined by user, it is computed automatically after dimension geometry is computed. if computed dimension geometry (points) can't be placed on the user-defined plane, dimension geometry was set as invalid (validity flag is set to false) and dimension presentation will not be computed. if user-defined plane allow geometry placement on it, it will be used for computing of the dimension presentation. returns dimension plane used for presentation computing.

        Returns
        -------
        gp_Pln

        """
        return _PrsDim.PrsDim_Dimension_GetPlane(self, *args)

    def GetTextPosition(self, *args):
        r"""
        Computes absolute text position from dimension parameters (flyout, plane and text alignment).

        Returns
        -------
        gp_Pnt

        """
        return _PrsDim.PrsDim_Dimension_GetTextPosition(self, *args)

    def GetValue(self, *args):
        r"""
        Gets dimension measurement value. if the value to display is not specified by user, then the dimension object is responsible to compute it on its own in model space coordinates. returns the dimension value (in model units) which is used during display of the presentation.

        Returns
        -------
        float

        """
        return _PrsDim.PrsDim_Dimension_GetValue(self, *args)

    def IsTextPositionCustom(self, *args):
        r"""
        Returns true if text position is set by user with method settextposition().

        Returns
        -------
        bool

        """
        return _PrsDim.PrsDim_Dimension_IsTextPositionCustom(self, *args)

    def IsValid(self, *args):
        r"""
        Check that the input geometry for dimension is valid and the presentation can be successfully computed. returns true if dimension geometry is ok.

        Returns
        -------
        bool

        """
        return _PrsDim.PrsDim_Dimension_IsValid(self, *args)

    def KindOfDimension(self, *args):
        r"""
        Returns the kind of dimension.

        Returns
        -------
        PrsDim_KindOfDimension

        """
        return _PrsDim.PrsDim_Dimension_KindOfDimension(self, *args)

    def SelToleranceForText2d(self, *args):
        r"""
        Returns selection tolerance for text2d: for 2d text selection detection sensitive point with tolerance is used important! only for 2d text.

        Returns
        -------
        float

        """
        return _PrsDim.PrsDim_Dimension_SelToleranceForText2d(self, *args)

    def SetComputedValue(self, *args):
        r"""
        Sets computed dimension value. resets custom value mode if it was set.

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Dimension_SetComputedValue(self, *args)

    def SetCustomPlane(self, *args):
        r"""
        Sets user-defined plane where the 2d dimension presentation will be placed. checks validity of this plane if geometry has been set already. validity of the plane is checked according to the geometry set and has different criteria for different kinds of dimensions.

        Parameters
        ----------
        thePlane: gp_Pln

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Dimension_SetCustomPlane(self, *args)

    def SetCustomValue(self, *args):
        r"""
        Sets user-defined dimension value. the user-defined dimension value is specified in model space, and affect by unit conversion during the display. @param thevalue [in] the user-defined value to display.

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

        Returns
        -------
        None
        Sets user-defined dimension value. unit conversion during the display is not applied. @param thevalue [in] the user-defined value to display.

        Parameters
        ----------
        theValue: TCollection_ExtendedString

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Dimension_SetCustomValue(self, *args)

    def SetDimensionAspect(self, *args):
        r"""
        Sets new dimension aspect for the interactive object drawer. the dimension aspect provides dynamic properties which are generally used during computation of dimension presentations.

        Parameters
        ----------
        theDimensionAspect: Prs3d_DimensionAspect

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Dimension_SetDimensionAspect(self, *args)

    def SetDisplaySpecialSymbol(self, *args):
        r"""
        Specifies whether to display special symbol or not.

        Parameters
        ----------
        theDisplaySpecSymbol: PrsDim_DisplaySpecialSymbol

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Dimension_SetDisplaySpecialSymbol(self, *args)

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

        Parameters
        ----------
        &: TCollection_AsciiString

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Dimension_SetDisplayUnits(self, *args)

    def SetFlyout(self, *args):
        r"""
        Sets flyout value for dimension.

        Parameters
        ----------
        theFlyout: float

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Dimension_SetFlyout(self, *args)

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

        Parameters
        ----------
        &: TCollection_AsciiString

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Dimension_SetModelUnits(self, *args)

    def SetSelToleranceForText2d(self, *args):
        r"""
        Sets selection tolerance for text2d: for 2d text selection detection sensitive point with tolerance is used to change this tolerance use this method important! only for 2d text.

        Parameters
        ----------
        theTol: float

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Dimension_SetSelToleranceForText2d(self, *args)

    def SetSpecialSymbol(self, *args):
        r"""
        Specifies special symbol.

        Parameters
        ----------
        theSpecialSymbol: Standard_ExtCharacter

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Dimension_SetSpecialSymbol(self, *args)

    def SetTextPosition(self, *args):
        r"""
        Fixes the absolute text position and adjusts flyout, plane and text alignment according to it. updates presentation if the text position is valid. attention! it does not change vertical text alignment. @param thetextpos [in] the point of text position.

        Parameters
        ----------
        &: gp_Pnt

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Dimension_SetTextPosition(self, *args)

    def SpecialSymbol(self, *args):
        r"""
        Returns special symbol.

        Returns
        -------
        Standard_ExtCharacter

        """
        return _PrsDim.PrsDim_Dimension_SpecialSymbol(self, *args)

    def UnsetCustomPlane(self, *args):
        r"""
        Unsets user-defined plane. therefore the plane for dimension will be computed automatically.

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Dimension_UnsetCustomPlane(self, *args)

    def UnsetFixedTextPosition(self, *args):
        r"""
        Unsets user defined text positioning and enables text positioning by other parameters: text alignment, extension size, flyout and custom plane.

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Dimension_UnsetFixedTextPosition(self, *args)


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


    __repr__ = _dumps_object

    @methodnotwrapped
    def PrsDim_Dimension(self):
    	pass

    __swig_destroy__ = _PrsDim.delete_PrsDim_Dimension

# Register PrsDim_Dimension in _PrsDim:
_PrsDim.PrsDim_Dimension_swigregister(PrsDim_Dimension)
class PrsDim_DimensionOwner(OCC.Core.SelectMgr.SelectMgr_EntityOwner):
    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 dimension owner, theso, and attributes it the priority, thepriority.

        Parameters
        ----------
        theSelObject: SelectMgr_SelectableObject
        theSelMode: PrsDim_DimensionSelectionMode
        thePriority: int,optional
        	default value is 0

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_DimensionOwner_swiginit(self, _PrsDim.new_PrsDim_DimensionOwner(*args))

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

        Returns
        -------
        PrsDim_DimensionSelectionMode

        """
        return _PrsDim.PrsDim_DimensionOwner_SelectionMode(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_DimensionOwner

# Register PrsDim_DimensionOwner in _PrsDim:
_PrsDim.PrsDim_DimensionOwner_swigregister(PrsDim_DimensionOwner)
class PrsDim_Relation(OCC.Core.AIS.AIS_InteractiveObject):
    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 ArrowSize(self, *args):
        r"""
        Returns the value for the size of the arrow identifying the relation between the two shapes.

        Returns
        -------
        float

        """
        return _PrsDim.PrsDim_Relation_ArrowSize(self, *args)

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

        Returns
        -------
        bool

        """
        return _PrsDim.PrsDim_Relation_AutomaticPosition(self, *args)

    def ExtShape(self, *args):
        r"""
        Returns the status index of the extension shape.

        Returns
        -------
        int

        """
        return _PrsDim.PrsDim_Relation_ExtShape(self, *args)

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

        Returns
        -------
        TopoDS_Shape

        """
        return _PrsDim.PrsDim_Relation_FirstShape(self, *args)

    def IsMovable(self, *args):
        r"""
        Returns true if the interactive object is movable.

        Returns
        -------
        bool

        """
        return _PrsDim.PrsDim_Relation_IsMovable(self, *args)

    def KindOfDimension(self, *args):
        r"""
        Indicates that the type of dimension is unknown.

        Returns
        -------
        PrsDim_KindOfDimension

        """
        return _PrsDim.PrsDim_Relation_KindOfDimension(self, *args)

    def Plane(self, *args):
        r"""
        Returns the plane.

        Returns
        -------
        opencascade::handle<Geom_Plane>

        """
        return _PrsDim.PrsDim_Relation_Plane(self, *args)

    def Position(self, *args):
        r"""
        Returns the position set using setposition.

        Returns
        -------
        gp_Pnt

        """
        return _PrsDim.PrsDim_Relation_Position(self, *args)

    def SecondShape(self, *args):
        r"""
        Returns the second shape.

        Returns
        -------
        TopoDS_Shape

        """
        return _PrsDim.PrsDim_Relation_SecondShape(self, *args)

    def SetArrowSize(self, *args):
        r"""
        Allows you to provide settings for the size of the arrow thearrowsize identifying the relation between the two shapes.

        Parameters
        ----------
        theArrowSize: float

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Relation_SetArrowSize(self, *args)

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

        Parameters
        ----------
        theStatus: bool

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Relation_SetAutomaticPosition(self, *args)

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

        Parameters
        ----------
        theXmin: float
        theYmin: float
        theZmin: float
        theXmax: float
        theYmax: float
        theZmax: float

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Relation_SetBndBox(self, *args)

    def SetExtShape(self, *args):
        r"""
        Allows you to set the status of the extension shape by the index aindex. the status will be one of the following: - 0 - there is no connection to a shape; - 1 - there is a connection to the first shape; - 2 - there is a connection to the second shape.

        Parameters
        ----------
        theIndex: int

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Relation_SetExtShape(self, *args)

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

        Parameters
        ----------
        aFShape: TopoDS_Shape

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Relation_SetFirstShape(self, *args)

    def SetPlane(self, *args):
        r"""
        Allows you to set the plane theplane. this is used to define relations and dimensions in several daughter classes.

        Parameters
        ----------
        thePlane: Geom_Plane

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Relation_SetPlane(self, *args)

    def SetPosition(self, *args):
        r"""
        Allows you to provide the objects in the relation with settings for a non-default position.

        Parameters
        ----------
        thePosition: gp_Pnt

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Relation_SetPosition(self, *args)

    def SetSecondShape(self, *args):
        r"""
        Allows you to identify the second shape asshape relative to the first.

        Parameters
        ----------
        aSShape: TopoDS_Shape

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Relation_SetSecondShape(self, *args)

    def SetSymbolPrs(self, *args):
        r"""
        Allows you to provide settings for the symbol presentation.

        Parameters
        ----------
        theSymbolPrs: DsgPrs_ArrowSide

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Relation_SetSymbolPrs(self, *args)

    def SetText(self, *args):
        r"""
        Allows you to provide the settings thetext for text aspect.

        Parameters
        ----------
        theText: TCollection_ExtendedString

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Relation_SetText(self, *args)

    def SetValue(self, *args):
        r"""
        Allows you to provide settings for the value theval for each object in the relation.

        Parameters
        ----------
        theVal: float

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Relation_SetValue(self, *args)

    def SymbolPrs(self, *args):
        r"""
        Returns the value of the symbol presentation. this will be one of: - as_none - none - as_firstar - first arrow - as_lastar - last arrow - as_bothar - both arrows - as_firstpt - first point - as_lastpt - last point - as_bothpt - both points - as_firstar_lastpt - first arrow, last point - as_firstpt_lastar - first point, last arrow.

        Returns
        -------
        DsgPrs_ArrowSide

        """
        return _PrsDim.PrsDim_Relation_SymbolPrs(self, *args)

    def Text(self, *args):
        r"""
        Returns settings for text aspect.

        Returns
        -------
        TCollection_ExtendedString

        """
        return _PrsDim.PrsDim_Relation_Text(self, *args)

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

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_Relation_UnsetBndBox(self, *args)

    def Value(self, *args):
        r"""
        Returns the value of each object in the relation.

        Returns
        -------
        float

        """
        return _PrsDim.PrsDim_Relation_Value(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_Relation

# Register PrsDim_Relation in _PrsDim:
_PrsDim.PrsDim_Relation_swigregister(PrsDim_Relation)
class PrsDim_AngleDimension(PrsDim_Dimension):
    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 minimum angle dimension between two linear edges (where possible). these two edges should be intersected by each other. otherwise the geometry is not valid. @param thefirstedge [in] the first edge. @param thesecondedge [in] the second edge.

        Parameters
        ----------
        theFirstEdge: TopoDS_Edge
        theSecondEdge: TopoDS_Edge

        Returns
        -------
        None
        Constructs the angle display object defined by three points. @param thefirstpoint [in] the first point (point on first angle flyout). @param thesecondpoint [in] the center point of angle dimension. @param thethirdpoint [in] the second point (point on second angle flyout).

        Parameters
        ----------
        theFirstPoint: gp_Pnt
        theSecondPoint: gp_Pnt
        theThirdPoint: gp_Pnt

        Returns
        -------
        None
        Constructs the angle display object defined by three vertices. @param thefirstvertex [in] the first vertex (vertex for first angle flyout). @param thesecondvertex [in] the center vertex of angle dimension. @param thethirdpoint [in] the second vertex (vertex for second angle flyout).

        Parameters
        ----------
        theFirstVertex: TopoDS_Vertex
        theSecondVertex: TopoDS_Vertex
        theThirdVertex: TopoDS_Vertex

        Returns
        -------
        None
        Constructs angle dimension for the cone face. @param thecone [in] the conical face.

        Parameters
        ----------
        theCone: TopoDS_Face

        Returns
        -------
        None
        Constructs angle dimension between two planar faces. @param thefirstface [in] the first face. @param thesecondface [in] the second face.

        Parameters
        ----------
        theFirstFace: TopoDS_Face
        theSecondFace: TopoDS_Face

        Returns
        -------
        None
        Constructs angle dimension between two planar faces. @param thefirstface [in] the first face. @param thesecondface [in] the second face. @param thepoint [in] the point which the dimension plane should pass through. this point can lay on the one of the faces or not.

        Parameters
        ----------
        theFirstFace: TopoDS_Face
        theSecondFace: TopoDS_Face
        thePoint: gp_Pnt

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_AngleDimension_swiginit(self, _PrsDim.new_PrsDim_AngleDimension(*args))

    def CenterPoint(self, *args):
        r"""
        Returns center point forming the angle.

        Returns
        -------
        gp_Pnt

        """
        return _PrsDim.PrsDim_AngleDimension_CenterPoint(self, *args)

    def FirstPoint(self, *args):
        r"""
        Returns first point forming the angle.

        Returns
        -------
        gp_Pnt

        """
        return _PrsDim.PrsDim_AngleDimension_FirstPoint(self, *args)

    def FirstShape(self, *args):
        r"""
        Returns first argument shape.

        Returns
        -------
        TopoDS_Shape

        """
        return _PrsDim.PrsDim_AngleDimension_FirstShape(self, *args)

    def GetArrowsVisibility(self, *args):
        r"""
        Returns the type of visibility of arrows.

        Returns
        -------
        PrsDim_TypeOfAngleArrowVisibility

        """
        return _PrsDim.PrsDim_AngleDimension_GetArrowsVisibility(self, *args)

    def GetType(self, *args):
        r"""
        Returns the current angle type.

        Returns
        -------
        PrsDim_TypeOfAngle

        """
        return _PrsDim.PrsDim_AngleDimension_GetType(self, *args)

    def SecondPoint(self, *args):
        r"""
        Returns second point forming the angle.

        Returns
        -------
        gp_Pnt

        """
        return _PrsDim.PrsDim_AngleDimension_SecondPoint(self, *args)

    def SecondShape(self, *args):
        r"""
        Returns second argument shape.

        Returns
        -------
        TopoDS_Shape

        """
        return _PrsDim.PrsDim_AngleDimension_SecondShape(self, *args)

    def SetArrowsVisibility(self, *args):
        r"""
        Sets visible arrows type @param thetype [in] the type of visibility of arrows.

        Parameters
        ----------
        theType: PrsDim_TypeOfAngleArrowVisibility

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_AngleDimension_SetArrowsVisibility(self, *args)

    def SetMeasuredGeometry(self, *args):
        r"""
        Measures minimum angle dimension between two linear edges. these two edges should be intersected by each other. otherwise the geometry is not valid. @param thefirstedge [in] the first edge. @param thesecondedge [in] the second edge.

        Parameters
        ----------
        theFirstEdge: TopoDS_Edge
        theSecondEdge: TopoDS_Edge

        Returns
        -------
        None
        Measures angle defined by three points. @param thefirstpoint [in] the first point (point on first angle flyout). @param thesecondpoint [in] the center point of angle dimension. @param thethirdpoint [in] the second point (point on second angle flyout).

        Parameters
        ----------
        theFirstPoint: gp_Pnt
        theSecondPoint: gp_Pnt
        theThridPoint: gp_Pnt

        Returns
        -------
        None
        Measures angle defined by three vertices. @param thefirstvertex [in] the first vertex (vertex for first angle flyout). @param thesecondvertex [in] the center vertex of angle dimension. @param thethirdpoint [in] the second vertex (vertex for second angle flyout).

        Parameters
        ----------
        theFirstVertex: TopoDS_Vertex
        theSecondVertex: TopoDS_Vertex
        theThirdVertex: TopoDS_Vertex

        Returns
        -------
        None
        Measures angle of conical face. @param thecone [in] the shape to measure.

        Parameters
        ----------
        theCone: TopoDS_Face

        Returns
        -------
        None
        Measures angle between two planar faces. @param thefirstface [in] the first face. @param thesecondface [in] the second face..

        Parameters
        ----------
        theFirstFace: TopoDS_Face
        theSecondFace: TopoDS_Face

        Returns
        -------
        None
        Measures angle between two planar faces. @param thefirstface [in] the first face. @param thesecondface [in] the second face. @param thepoint [in] the point which the dimension plane should pass through. this point can lay on the one of the faces or not.

        Parameters
        ----------
        theFirstFace: TopoDS_Face
        theSecondFace: TopoDS_Face
        thePoint: gp_Pnt

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_AngleDimension_SetMeasuredGeometry(self, *args)

    def SetType(self, *args):
        r"""
        Sets angle type. @param thetype [in] the type value.

        Parameters
        ----------
        theType: PrsDim_TypeOfAngle

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_AngleDimension_SetType(self, *args)

    def ThirdShape(self, *args):
        r"""
        Returns third argument shape.

        Returns
        -------
        TopoDS_Shape

        """
        return _PrsDim.PrsDim_AngleDimension_ThirdShape(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_AngleDimension

# Register PrsDim_AngleDimension in _PrsDim:
_PrsDim.PrsDim_AngleDimension_swigregister(PrsDim_AngleDimension)
class PrsDim_Chamf2dDimension(PrsDim_Relation):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Constructs the display object for 2d chamfers. this object is defined by the face afshape, the dimension aval, the plane aplane and the text atext.

        Parameters
        ----------
        aFShape: TopoDS_Shape
        aPlane: Geom_Plane
        aVal: float
        aText: TCollection_ExtendedString

        Returns
        -------
        None
        Constructs the display object for 2d chamfers. this object is defined by the face afshape, the plane aplane, the dimension aval, the position aposition, the type of arrow asymbolprs with the size anarrowsize, and the text atext.

        Parameters
        ----------
        aFShape: TopoDS_Shape
        aPlane: Geom_Plane
        aVal: float
        aText: TCollection_ExtendedString
        aPosition: gp_Pnt
        aSymbolPrs: DsgPrs_ArrowSide
        anArrowSize: float,optional
        	default value is 0.0

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_Chamf2dDimension_swiginit(self, _PrsDim.new_PrsDim_Chamf2dDimension(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_Chamf2dDimension

# Register PrsDim_Chamf2dDimension in _PrsDim:
_PrsDim.PrsDim_Chamf2dDimension_swigregister(PrsDim_Chamf2dDimension)
class PrsDim_Chamf3dDimension(PrsDim_Relation):
    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 display object for 3d chamfers. this object is defined by the shape afshape, the dimension aval and the text atext.

        Parameters
        ----------
        aFShape: TopoDS_Shape
        aVal: float
        aText: TCollection_ExtendedString

        Returns
        -------
        None
        Constructs a display object for 3d chamfers. this object is defined by the shape afshape, the dimension aval, the text atext, the point of origin of the chamfer aposition, the type of arrow asymbolprs with the size anarrowsize.

        Parameters
        ----------
        aFShape: TopoDS_Shape
        aVal: float
        aText: TCollection_ExtendedString
        aPosition: gp_Pnt
        aSymbolPrs: DsgPrs_ArrowSide
        anArrowSize: float,optional
        	default value is 0.0

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_Chamf3dDimension_swiginit(self, _PrsDim.new_PrsDim_Chamf3dDimension(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_Chamf3dDimension

# Register PrsDim_Chamf3dDimension in _PrsDim:
_PrsDim.PrsDim_Chamf3dDimension_swigregister(PrsDim_Chamf3dDimension)
class PrsDim_ConcentricRelation(PrsDim_Relation):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Constructs the display object for concentric relations between shapes. this object is defined by the two shapes, afshape and asshape and the plane aplane. aplane is provided to create an axis along which the relation of concentricity can be extended.

        Parameters
        ----------
        aFShape: TopoDS_Shape
        aSShape: TopoDS_Shape
        aPlane: Geom_Plane

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_ConcentricRelation_swiginit(self, _PrsDim.new_PrsDim_ConcentricRelation(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_ConcentricRelation

# Register PrsDim_ConcentricRelation in _PrsDim:
_PrsDim.PrsDim_ConcentricRelation_swigregister(PrsDim_ConcentricRelation)
class PrsDim_DiameterDimension(PrsDim_Dimension):
    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"""
        Construct diameter dimension for the circle. @param thecircle [in] the circle to measure.

        Parameters
        ----------
        theCircle: gp_Circ

        Returns
        -------
        None
        Construct diameter dimension for the circle and orient it correspondingly to the passed plane. @param thecircle [in] the circle to measure. @param theplane [in] the plane defining preferred orientation for dimension.

        Parameters
        ----------
        theCircle: gp_Circ
        thePlane: gp_Pln

        Returns
        -------
        None
        Construct diameter on the passed shape, if applicable. @param theshape [in] the shape to measure.

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

        Returns
        -------
        None
        Construct diameter on the passed shape, if applicable - and define the preferred plane to orient the dimension. @param theshape [in] the shape to measure. @param theplane [in] the plane defining preferred orientation for dimension.

        Parameters
        ----------
        theShape: TopoDS_Shape
        thePlane: gp_Pln

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_DiameterDimension_swiginit(self, _PrsDim.new_PrsDim_DiameterDimension(*args))

    def AnchorPoint(self, *args):
        r"""
        Returns anchor point on circle for diameter dimension.

        Returns
        -------
        gp_Pnt

        """
        return _PrsDim.PrsDim_DiameterDimension_AnchorPoint(self, *args)

    def Circle(self, *args):
        r"""
        Returns measured geometry circle.

        Returns
        -------
        gp_Circ

        """
        return _PrsDim.PrsDim_DiameterDimension_Circle(self, *args)

    def SetMeasuredGeometry(self, *args):
        r"""
        Measure diameter of the circle. the actual dimension plane is used for determining anchor points on the circle to attach the dimension lines to. the dimension will become invalid if the diameter of the circle is less than precision::confusion(). @param thecircle [in] the circle to measure.

        Parameters
        ----------
        theCircle: gp_Circ

        Returns
        -------
        None
        Measure diameter on the passed shape, if applicable. the dimension will become invalid if the passed shape is not measurable or if measured diameter value is less than precision::confusion(). @param theshape [in] the shape to measure.

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

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_DiameterDimension_SetMeasuredGeometry(self, *args)

    def Shape(self, *args):
        r"""
        Returns the measured shape.

        Returns
        -------
        TopoDS_Shape

        """
        return _PrsDim.PrsDim_DiameterDimension_Shape(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_DiameterDimension

# Register PrsDim_DiameterDimension in _PrsDim:
_PrsDim.PrsDim_DiameterDimension_swigregister(PrsDim_DiameterDimension)
class PrsDim_EllipseRadiusDimension(PrsDim_Relation):
    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 ComputeGeometry(self, *args):
        r"""
        No available documentation.

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_EllipseRadiusDimension_ComputeGeometry(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_EllipseRadiusDimension

# Register PrsDim_EllipseRadiusDimension in _PrsDim:
_PrsDim.PrsDim_EllipseRadiusDimension_swigregister(PrsDim_EllipseRadiusDimension)
class PrsDim_EqualDistanceRelation(PrsDim_Relation):
    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 display equivalent distances between the shapes ashape1, ashape2, ashape3, ashape4 and the plane aplane. the distance is the length of a projection from the shape to the plane.

        Parameters
        ----------
        aShape1: TopoDS_Shape
        aShape2: TopoDS_Shape
        aShape3: TopoDS_Shape
        aShape4: TopoDS_Shape
        aPlane: Geom_Plane

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_EqualDistanceRelation_swiginit(self, _PrsDim.new_PrsDim_EqualDistanceRelation(*args))

    @staticmethod
    def ComputeOneEdgeOneVertexLength(*args):
        r"""
        Compute the interval location between a vertex and an edge. edge may be a line or a circle.

        Parameters
        ----------
        aPresentation: Prs3d_Presentation
        aDrawer: Prs3d_Drawer
        ArrowSize: float
        FirstShape: TopoDS_Shape
        SecondShape: TopoDS_Shape
        Plane: Geom_Plane
        AutomaticPos: bool
        IsSetBndBox: bool
        BndBox: Bnd_Box
        Position: gp_Pnt
        FirstAttach: gp_Pnt
        SecondAttach: gp_Pnt
        FirstExtreme: gp_Pnt
        SecondExtreme: gp_Pnt

        Returns
        -------
        SymbolPrs: DsgPrs_ArrowSide

        """
        return _PrsDim.PrsDim_EqualDistanceRelation_ComputeOneEdgeOneVertexLength(*args)

    @staticmethod
    def ComputeTwoEdgesLength(*args):
        r"""
        Computes the location of an intreval between between two edges. firstattach , secondattach are the returned extreme points of the interval.

        Parameters
        ----------
        aPresentation: Prs3d_Presentation
        aDrawer: Prs3d_Drawer
        ArrowSize: float
        FirstEdge: TopoDS_Edge
        SecondEdge: TopoDS_Edge
        Plane: Geom_Plane
        AutomaticPos: bool
        IsSetBndBox: bool
        BndBox: Bnd_Box
        Position: gp_Pnt
        FirstAttach: gp_Pnt
        SecondAttach: gp_Pnt
        FirstExtreme: gp_Pnt
        SecondExtreme: gp_Pnt

        Returns
        -------
        SymbolPrs: DsgPrs_ArrowSide

        """
        return _PrsDim.PrsDim_EqualDistanceRelation_ComputeTwoEdgesLength(*args)

    @staticmethod
    def ComputeTwoVerticesLength(*args):
        r"""
        Computes the interval position between two vertexs. firstattach, secondattach are the returned extreme points of the interval.

        Parameters
        ----------
        aPresentation: Prs3d_Presentation
        aDrawer: Prs3d_Drawer
        ArrowSize: float
        FirstVertex: TopoDS_Vertex
        SecondVertex: TopoDS_Vertex
        Plane: Geom_Plane
        AutomaticPos: bool
        IsSetBndBox: bool
        BndBox: Bnd_Box
        TypeDist: PrsDim_TypeOfDist
        Position: gp_Pnt
        FirstAttach: gp_Pnt
        SecondAttach: gp_Pnt
        FirstExtreme: gp_Pnt
        SecondExtreme: gp_Pnt

        Returns
        -------
        SymbolPrs: DsgPrs_ArrowSide

        """
        return _PrsDim.PrsDim_EqualDistanceRelation_ComputeTwoVerticesLength(*args)

    def SetShape3(self, *args):
        r"""
        Sets the shape ashape to be used as the shape ashape3 in the framework created at construction time.

        Parameters
        ----------
        aShape: TopoDS_Shape

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_EqualDistanceRelation_SetShape3(self, *args)

    def SetShape4(self, *args):
        r"""
        Sets the shape ashape to be used as the shape ashape4 in the framework created at construction time.

        Parameters
        ----------
        aShape: TopoDS_Shape

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_EqualDistanceRelation_SetShape4(self, *args)

    def Shape3(self, *args):
        r"""
        Returns the shape ashape3 from the framework created at construction time.

        Returns
        -------
        TopoDS_Shape

        """
        return _PrsDim.PrsDim_EqualDistanceRelation_Shape3(self, *args)

    def Shape4(self, *args):
        r"""
        Returns the shape ashape4 from the framework created at construction time.

        Returns
        -------
        TopoDS_Shape

        """
        return _PrsDim.PrsDim_EqualDistanceRelation_Shape4(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_EqualDistanceRelation

# Register PrsDim_EqualDistanceRelation in _PrsDim:
_PrsDim.PrsDim_EqualDistanceRelation_swigregister(PrsDim_EqualDistanceRelation)
class PrsDim_EqualRadiusRelation(PrsDim_Relation):
    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"""
        Creates equal relation of two arc's radiuses. if one of edges is not in the given plane, the presentation method projects it onto the plane.

        Parameters
        ----------
        aFirstEdge: TopoDS_Edge
        aSecondEdge: TopoDS_Edge
        aPlane: Geom_Plane

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_EqualRadiusRelation_swiginit(self, _PrsDim.new_PrsDim_EqualRadiusRelation(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_EqualRadiusRelation

# Register PrsDim_EqualRadiusRelation in _PrsDim:
_PrsDim.PrsDim_EqualRadiusRelation_swigregister(PrsDim_EqualRadiusRelation)
class PrsDim_FixRelation(PrsDim_Relation):
    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 vertex ashape, the plane aplane and the wire awire, which connects the two vertices in a fixed relation.

        Parameters
        ----------
        aShape: TopoDS_Shape
        aPlane: Geom_Plane
        aWire: TopoDS_Wire

        Returns
        -------
        None
        Initializes the vertex ashape, the plane aplane and the wire awire, the position aposition, the arrow size anarrowsize and the wire awire, which connects the two vertices in a fixed relation.

        Parameters
        ----------
        aShape: TopoDS_Shape
        aPlane: Geom_Plane
        aWire: TopoDS_Wire
        aPosition: gp_Pnt
        anArrowSize: float,optional
        	default value is 0.01

        Returns
        -------
        None
        Initializes the edge ashape and the plane aplane.

        Parameters
        ----------
        aShape: TopoDS_Shape
        aPlane: Geom_Plane

        Returns
        -------
        None
        Initializes the edge ashape, the plane aplane, the position aposition and the arrow size anarrowsize.

        Parameters
        ----------
        aShape: TopoDS_Shape
        aPlane: Geom_Plane
        aPosition: gp_Pnt
        anArrowSize: float,optional
        	default value is 0.01

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_FixRelation_swiginit(self, _PrsDim.new_PrsDim_FixRelation(*args))

    def SetWire(self, *args):
        r"""
        Constructs the wire awire. this connects vertices which are in a fixed relation.

        Parameters
        ----------
        aWire: TopoDS_Wire

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_FixRelation_SetWire(self, *args)

    def Wire(self, *args):
        r"""
        Returns the wire which connects vertices in a fixed relation.

        Returns
        -------
        TopoDS_Wire

        """
        return _PrsDim.PrsDim_FixRelation_Wire(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_FixRelation

# Register PrsDim_FixRelation in _PrsDim:
_PrsDim.PrsDim_FixRelation_swigregister(PrsDim_FixRelation)
class PrsDim_IdenticRelation(PrsDim_Relation):
    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 relation of identity between the two entities, firstshape and secondshape. the plane aplane is initialized in case a visual reference is needed to show identity.

        Parameters
        ----------
        FirstShape: TopoDS_Shape
        SecondShape: TopoDS_Shape
        aPlane: Geom_Plane

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_IdenticRelation_swiginit(self, _PrsDim.new_PrsDim_IdenticRelation(*args))

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

        Parameters
        ----------
        theUser: Standard_Transient

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_IdenticRelation_AddUser(self, *args)

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

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_IdenticRelation_ClearUsers(self, *args)

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

        Returns
        -------
        bool

        """
        return _PrsDim.PrsDim_IdenticRelation_HasUsers(self, *args)

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

        Returns
        -------
        TColStd_ListOfTransient

        """
        return _PrsDim.PrsDim_IdenticRelation_Users(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_IdenticRelation

# Register PrsDim_IdenticRelation in _PrsDim:
_PrsDim.PrsDim_IdenticRelation_swigregister(PrsDim_IdenticRelation)
class PrsDim_LengthDimension(PrsDim_Dimension):
    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"""
        Construct an empty length dimension. @sa setmeasuredgeometry(), setmeasuredshapes() for initialization.

        Returns
        -------
        None
        Construct length dimension between face and edge. here dimension can be built without user-defined plane. @param theface [in] the face (first shape). @param theedge [in] the edge (second shape).

        Parameters
        ----------
        theFace: TopoDS_Face
        theEdge: TopoDS_Edge

        Returns
        -------
        None
        Construct length dimension between two faces. @param thefirstface [in] the first face (first shape). @param thesecondface [in] the second face (second shape).

        Parameters
        ----------
        theFirstFace: TopoDS_Face
        theSecondFace: TopoDS_Face

        Returns
        -------
        None
        Construct length dimension between two points in the specified plane. @param thefirstpoint [in] the first point. @param thesecondpoint [in] the second point. @param theplane [in] the plane to orient dimension.

        Parameters
        ----------
        theFirstPoint: gp_Pnt
        theSecondPoint: gp_Pnt
        thePlane: gp_Pln

        Returns
        -------
        None
        Construct length dimension between two arbitrary shapes in the specified plane. @param thefirstshape [in] the first shape. @param thesecondshape [in] the second shape. @param theplane [in] the plane to orient dimension.

        Parameters
        ----------
        theFirstShape: TopoDS_Shape
        theSecondShape: TopoDS_Shape
        thePlane: gp_Pln

        Returns
        -------
        None
        Construct length dimension of linear edge. @param theedge [in] the edge to measure. @param theplane [in] the plane to orient dimension.

        Parameters
        ----------
        theEdge: TopoDS_Edge
        thePlane: gp_Pln

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_LengthDimension_swiginit(self, _PrsDim.new_PrsDim_LengthDimension(*args))

    def FirstPoint(self, *args):
        r"""
        Returns first attachment point.

        Returns
        -------
        gp_Pnt

        """
        return _PrsDim.PrsDim_LengthDimension_FirstPoint(self, *args)

    def FirstShape(self, *args):
        r"""
        Returns first attachment shape.

        Returns
        -------
        TopoDS_Shape

        """
        return _PrsDim.PrsDim_LengthDimension_FirstShape(self, *args)

    def SecondPoint(self, *args):
        r"""
        Returns second attachment point.

        Returns
        -------
        gp_Pnt

        """
        return _PrsDim.PrsDim_LengthDimension_SecondPoint(self, *args)

    def SecondShape(self, *args):
        r"""
        Returns second attachment shape.

        Returns
        -------
        TopoDS_Shape

        """
        return _PrsDim.PrsDim_LengthDimension_SecondShape(self, *args)

    def SetDirection(self, *args):
        r"""
        Set custom direction for dimension. if it is not set, the direction is obtained from the measured geometry (e.g. line between points of dimension) the direction does not change flyout direction of dimension. @param thedirection [in] the dimension direction. @param theusedirection [in] boolean value if custom direction should be used.

        Parameters
        ----------
        theDirection: gp_Dir
        theUseDirection: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_LengthDimension_SetDirection(self, *args)

    def SetMeasuredGeometry(self, *args):
        r"""
        Measure distance between two points. the dimension will become invalid if the new distance between attachment points is less than precision::confusion(). @param thefirstpoint [in] the first point. @param thesecondpoint [in] the second point. @param theplane [in] the user-defined plane.

        Parameters
        ----------
        theFirstPoint: gp_Pnt
        theSecondPoint: gp_Pnt
        thePlane: gp_Pln

        Returns
        -------
        None
        Measure length of edge. the dimension will become invalid if the new length of edge is less than precision::confusion(). @param theedge [in] the edge to measure. @param theplane [in] the user-defined plane.

        Parameters
        ----------
        theEdge: TopoDS_Edge
        thePlane: gp_Pln

        Returns
        -------
        None
        Measure distance between two faces. the dimension will become invalid if the distance can not be measured or it is less than precision::confusion(). @param thefirstface [in] the first face (first shape). @param thesecondface [in] the second face (second shape).

        Parameters
        ----------
        theFirstFace: TopoDS_Face
        theSecondFace: TopoDS_Face

        Returns
        -------
        None
        Measure distance between face and edge. the dimension will become invalid if the distance can not be measured or it is less than precision::confusion(). @param theface [in] the face (first shape). @param theedge [in] the edge (second shape).

        Parameters
        ----------
        theFace: TopoDS_Face
        theEdge: TopoDS_Edge

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_LengthDimension_SetMeasuredGeometry(self, *args)

    def SetMeasuredShapes(self, *args):
        r"""
        Measure distance between generic pair of shapes (edges, vertices, length), where measuring is applicable. @param thefirstshape [in] the first shape. @param thesecondshape [in] the second shape.

        Parameters
        ----------
        theFirstShape: TopoDS_Shape
        theSecondShape: TopoDS_Shape

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_LengthDimension_SetMeasuredShapes(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_LengthDimension

# Register PrsDim_LengthDimension in _PrsDim:
_PrsDim.PrsDim_LengthDimension_swigregister(PrsDim_LengthDimension)
class PrsDim_MidPointRelation(PrsDim_Relation):
    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
        ----------
        aSymmTool: TopoDS_Shape
        FirstShape: TopoDS_Shape
        SecondShape: TopoDS_Shape
        aPlane: Geom_Plane

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_MidPointRelation_swiginit(self, _PrsDim.new_PrsDim_MidPointRelation(*args))

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

        Returns
        -------
        TopoDS_Shape

        """
        return _PrsDim.PrsDim_MidPointRelation_GetTool(self, *args)

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

        Parameters
        ----------
        aMidPointTool: TopoDS_Shape

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_MidPointRelation_SetTool(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_MidPointRelation

# Register PrsDim_MidPointRelation in _PrsDim:
_PrsDim.PrsDim_MidPointRelation_swigregister(PrsDim_MidPointRelation)
class PrsDim_OffsetDimension(PrsDim_Relation):
    thisown = property(lambda x: x.this.own(), lambda x, v: x.this.own(v), doc="The membership flag")
    __repr__ = _swig_repr

    def __init__(self, *args):
        r"""
        Constructs the offset display object defined by the first shape afshape, the second shape asshape, the dimension aval, and the text atext.

        Parameters
        ----------
        FistShape: TopoDS_Shape
        SecondShape: TopoDS_Shape
        aVal: float
        aText: TCollection_ExtendedString

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_OffsetDimension_swiginit(self, _PrsDim.new_PrsDim_OffsetDimension(*args))

    def SetRelativePos(self, *args):
        r"""
        Sets a transformation atrsf for presentation and selection to a relative position.

        Parameters
        ----------
        aTrsf: gp_Trsf

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_OffsetDimension_SetRelativePos(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_OffsetDimension

# Register PrsDim_OffsetDimension in _PrsDim:
_PrsDim.PrsDim_OffsetDimension_swigregister(PrsDim_OffsetDimension)
class PrsDim_ParallelRelation(PrsDim_Relation):
    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 object to display parallel constraints. this object is defined by the first shape afshape and the second shape asshape and the plane aplane.

        Parameters
        ----------
        aFShape: TopoDS_Shape
        aSShape: TopoDS_Shape
        aPlane: Geom_Plane

        Returns
        -------
        None
        Constructs an object to display parallel constraints. this object is defined by the first shape afshape and the second shape asshape the plane aplane, the position aposition, the type of arrow, asymbolprs and its size anarrowsize.

        Parameters
        ----------
        aFShape: TopoDS_Shape
        aSShape: TopoDS_Shape
        aPlane: Geom_Plane
        aPosition: gp_Pnt
        aSymbolPrs: DsgPrs_ArrowSide
        anArrowSize: float,optional
        	default value is 0.01

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_ParallelRelation_swiginit(self, _PrsDim.new_PrsDim_ParallelRelation(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_ParallelRelation

# Register PrsDim_ParallelRelation in _PrsDim:
_PrsDim.PrsDim_ParallelRelation_swigregister(PrsDim_ParallelRelation)
class PrsDim_PerpendicularRelation(PrsDim_Relation):
    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 object to display constraints of perpendicularity on shapes. this object is defined by a first shape afshape, a second shape asshape, and a plane aplane. aplane is the plane of reference to show and test the perpendicular relation between two shapes, at least one of which has a revolved surface.

        Parameters
        ----------
        aFShape: TopoDS_Shape
        aSShape: TopoDS_Shape
        aPlane: Geom_Plane

        Returns
        -------
        None
        Constructs an object to display constraints of perpendicularity on shapes. this object is defined by a first shape afshape and a second shape asshape.

        Parameters
        ----------
        aFShape: TopoDS_Shape
        aSShape: TopoDS_Shape

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_PerpendicularRelation_swiginit(self, _PrsDim.new_PrsDim_PerpendicularRelation(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_PerpendicularRelation

# Register PrsDim_PerpendicularRelation in _PrsDim:
_PrsDim.PrsDim_PerpendicularRelation_swigregister(PrsDim_PerpendicularRelation)
class PrsDim_RadiusDimension(PrsDim_Dimension):
    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"""
        Create radius dimension for the circle geometry. @param thecircle [in] the circle to measure.

        Parameters
        ----------
        theCircle: gp_Circ

        Returns
        -------
        None
        Create radius dimension for the circle geometry and define its orientation by location of the first point on that circle. @param thecircle [in] the circle to measure. @param theanchorpoint [in] the point to define the position of the dimension attachment on the circle.

        Parameters
        ----------
        theCircle: gp_Circ
        theAnchorPoint: gp_Pnt

        Returns
        -------
        None
        Create radius dimension for the arbitrary shape (if possible). @param theshape [in] the shape to measure.

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

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_RadiusDimension_swiginit(self, _PrsDim.new_PrsDim_RadiusDimension(*args))

    def AnchorPoint(self, *args):
        r"""
        Returns anchor point on circle for radius dimension.

        Returns
        -------
        gp_Pnt

        """
        return _PrsDim.PrsDim_RadiusDimension_AnchorPoint(self, *args)

    def Circle(self, *args):
        r"""
        Returns measured geometry circle.

        Returns
        -------
        gp_Circ

        """
        return _PrsDim.PrsDim_RadiusDimension_Circle(self, *args)

    def SetMeasuredGeometry(self, *args):
        r"""
        Measure radius of the circle. the dimension will become invalid if the radius of the circle is less than precision::confusion(). @param thecircle [in] the circle to measure.

        Parameters
        ----------
        theCircle: gp_Circ

        Returns
        -------
        None
        Measure radius of the circle and orient the dimension so the dimension lines attaches to anchor point on the circle. the dimension will become invalid if the radius of the circle is less than precision::confusion(). @param thecircle [in] the circle to measure. @param theanchorpoint [in] the point to attach the dimension lines, should be on the circle @param thehasanchor [in] should be set true if theanchorpoint should be used.

        Parameters
        ----------
        theCircle: gp_Circ
        theAnchorPoint: gp_Pnt
        theHasAnchor: bool,optional
        	default value is Standard_True

        Returns
        -------
        None
        Measure radius on the passed shape, if applicable. the dimension will become invalid if the passed shape is not measurable or if measured diameter value is less than precision::confusion(). @param theshape [in] the shape to measure.

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

        Returns
        -------
        None
        Measure radius on the passed shape, if applicable. the dimension will become invalid if the passed shape is not measurable or if measured diameter value is less than precision::confusion(). @param theshape [in] the shape to measure. @param theanchorpoint [in] the point to attach the dimension lines, should be on the circle @param thehasanchor [in] should be set true if theanchorpoint should be used.

        Parameters
        ----------
        theShape: TopoDS_Shape
        theAnchorPoint: gp_Pnt
        theHasAnchor: bool,optional
        	default value is Standard_True

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_RadiusDimension_SetMeasuredGeometry(self, *args)

    def Shape(self, *args):
        r"""
        Returns the measured shape.

        Returns
        -------
        TopoDS_Shape

        """
        return _PrsDim.PrsDim_RadiusDimension_Shape(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_RadiusDimension

# Register PrsDim_RadiusDimension in _PrsDim:
_PrsDim.PrsDim_RadiusDimension_swigregister(PrsDim_RadiusDimension)
class PrsDim_SymmetricRelation(PrsDim_Relation):
    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 object to display constraints of symmetricity. this object is defined by a tool asymmtool, a first shape firstshape, a second shape secondshape, and a plane aplane. aplane serves as the axis of symmetry. asymmtool is the shape composed of firstshape secondshape and aplane. it may be queried and edited using the functions gettool and settool. the two shapes are typically two edges, two vertices or two points.

        Parameters
        ----------
        aSymmTool: TopoDS_Shape
        FirstShape: TopoDS_Shape
        SecondShape: TopoDS_Shape
        aPlane: Geom_Plane

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_SymmetricRelation_swiginit(self, _PrsDim.new_PrsDim_SymmetricRelation(*args))

    def GetTool(self, *args):
        r"""
        Returns the tool composed of a first shape, a second shape, and a plane. this tool is created at construction time.

        Returns
        -------
        TopoDS_Shape

        """
        return _PrsDim.PrsDim_SymmetricRelation_GetTool(self, *args)

    def SetTool(self, *args):
        r"""
        Sets the tool asymmetrictool composed of a first shape, a second shape, and a plane. this tool is initially created at construction time.

        Parameters
        ----------
        aSymmetricTool: TopoDS_Shape

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_SymmetricRelation_SetTool(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_SymmetricRelation

# Register PrsDim_SymmetricRelation in _PrsDim:
_PrsDim.PrsDim_SymmetricRelation_swigregister(PrsDim_SymmetricRelation)
class PrsDim_TangentRelation(PrsDim_Relation):
    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"""
        Twofacestangent or twoedgestangent relation constructs an object to display tangency constraints. this object is defined by the first shape afshape, the second shape asshape, the plane aplane and the index anexternref. aplane serves as an optional axis. anexternref set to 0 indicates that there is no relation.

        Parameters
        ----------
        aFShape: TopoDS_Shape
        aSShape: TopoDS_Shape
        aPlane: Geom_Plane
        anExternRef: int,optional
        	default value is 0

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_TangentRelation_swiginit(self, _PrsDim.new_PrsDim_TangentRelation(*args))

    def ExternRef(self, *args):
        r"""
        Returns the external reference for tangency. the values are as follows: - 0 - there is no connection; - 1 - there is a connection to the first shape; - 2 - there is a connection to the second shape. this reference is defined at construction time.

        Returns
        -------
        int

        """
        return _PrsDim.PrsDim_TangentRelation_ExternRef(self, *args)

    def SetExternRef(self, *args):
        r"""
        Sets the external reference for tangency, aref. the values are as follows: - 0 - there is no connection; - 1 - there is a connection to the first shape; - 2 - there is a connection to the second shape. this reference is initially defined at construction time.

        Parameters
        ----------
        aRef: int

        Returns
        -------
        None

        """
        return _PrsDim.PrsDim_TangentRelation_SetExternRef(self, *args)


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_TangentRelation

# Register PrsDim_TangentRelation in _PrsDim:
_PrsDim.PrsDim_TangentRelation_swigregister(PrsDim_TangentRelation)
class PrsDim_MaxRadiusDimension(PrsDim_EllipseRadiusDimension):
    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"""
        Max ellipse radius dimension shape can be edge , planar face or cylindrical face.

        Parameters
        ----------
        aShape: TopoDS_Shape
        aVal: float
        aText: TCollection_ExtendedString

        Returns
        -------
        None
        Max ellipse radius dimension with position shape can be edge , planar face or cylindrical face.

        Parameters
        ----------
        aShape: TopoDS_Shape
        aVal: float
        aText: TCollection_ExtendedString
        aPosition: gp_Pnt
        aSymbolPrs: DsgPrs_ArrowSide
        anArrowSize: float,optional
        	default value is 0.0

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_MaxRadiusDimension_swiginit(self, _PrsDim.new_PrsDim_MaxRadiusDimension(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_MaxRadiusDimension

# Register PrsDim_MaxRadiusDimension in _PrsDim:
_PrsDim.PrsDim_MaxRadiusDimension_swigregister(PrsDim_MaxRadiusDimension)
class PrsDim_MinRadiusDimension(PrsDim_EllipseRadiusDimension):
    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"""
        Max ellipse radius dimension shape can be edge , planar face or cylindrical face.

        Parameters
        ----------
        aShape: TopoDS_Shape
        aVal: float
        aText: TCollection_ExtendedString

        Returns
        -------
        None
        Max ellipse radius dimension with position shape can be edge , planar face or cylindrical face.

        Parameters
        ----------
        aShape: TopoDS_Shape
        aVal: float
        aText: TCollection_ExtendedString
        aPosition: gp_Pnt
        aSymbolPrs: DsgPrs_ArrowSide
        anArrowSize: float,optional
        	default value is 0.0

        Returns
        -------
        None

        """
        _PrsDim.PrsDim_MinRadiusDimension_swiginit(self, _PrsDim.new_PrsDim_MinRadiusDimension(*args))


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


    __repr__ = _dumps_object

    __swig_destroy__ = _PrsDim.delete_PrsDim_MinRadiusDimension

# Register PrsDim_MinRadiusDimension in _PrsDim:
_PrsDim.PrsDim_MinRadiusDimension_swigregister(PrsDim_MinRadiusDimension)



