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

"""
PrsDim module, see official documentation at
https://www.opencascade.com/doc/occt-7.7.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.TopTools
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_DisplaySpecialSymbol_No = _PrsDim.PrsDim_DisplaySpecialSymbol_No
PrsDim_DisplaySpecialSymbol_Before = _PrsDim.PrsDim_DisplaySpecialSymbol_Before
PrsDim_DisplaySpecialSymbol_After = _PrsDim.PrsDim_DisplaySpecialSymbol_After
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_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_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_TypeOfAngle_Interior = _PrsDim.PrsDim_TypeOfAngle_Interior
PrsDim_TypeOfAngle_Exterior = _PrsDim.PrsDim_TypeOfAngle_Exterior
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_TypeOfDist_Unknown = _PrsDim.PrsDim_TypeOfDist_Unknown
PrsDim_TypeOfDist_Horizontal = _PrsDim.PrsDim_TypeOfDist_Horizontal
PrsDim_TypeOfDist_Vertical = _PrsDim.PrsDim_TypeOfDist_Vertical


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_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_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_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_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_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

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_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


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"""

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

        Return
        -------
        isOnPlane: bool

        Description
        -----------
        Checks if acurve belongs to aplane; if not, projects acurve in aplane and returns acurve; return true if ok.

        """
        return _PrsDim.prsdim_ComputeGeomCurve(*args)

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

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

        Return
        -------
        bool

        Description
        -----------
        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

        Return
        -------
        theIsInfinite: bool

        Description
        -----------
        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
        theExtCurve: Geom_Curve
        thePlane: Geom_Plane

        Return
        -------
        theIsInfinite: bool
        theIsOnPlane: bool

        Description
        -----------
        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
        ----------
        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

        Return
        -------
        bool

        Description
        -----------
        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

        Return
        -------
        theIsinfinite1: bool
        theIsinfinite2: bool

        Description
        -----------
        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
        theExtCurve: Geom_Curve
        thePlane: Geom_Plane

        Return
        -------
        theExtIndex: int
        theIsinfinite1: bool
        theIsinfinite2: bool

        Description
        -----------
        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
        ----------
        aVertex: TopoDS_Vertex
        point: gp_Pnt
        aPlane: Geom_Plane

        Return
        -------
        isOnPlane: bool

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

        """
        return _PrsDim.prsdim_ComputeGeometry(*args)

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

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

        Return
        -------
        None

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

        """
        return _PrsDim.prsdim_ComputeProjEdgePresentation(*args)

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

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

        Return
        -------
        None

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

        """
        return _PrsDim.prsdim_ComputeProjVertexPresentation(*args)

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

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

        Return
        -------
        float

        Description
        -----------
        Computes length of ellipse arc in parametric units.

        """
        return _PrsDim.prsdim_DistanceFromApex(*args)

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

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

        Return
        -------
        gp_Pnt

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

        """
        return _PrsDim.prsdim_Farest(*args)

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

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

        Return
        -------
        aSurfType: PrsDim_KindOfSurface
        Offset: float

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

        """
        return _PrsDim.prsdim_GetPlaneFromFace(*args)

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

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

        Return
        -------
        bool

        Description
        -----------
        Returns true if point with anattachpar is in domain of arc.

        """
        return _PrsDim.prsdim_InDomain(*args)

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

        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 to Standard_False)

        Return
        -------
        bool

        Description
        -----------
        Finds three points for the angle dimension between two curvilinear surfaces.

        """
        return _PrsDim.prsdim_InitAngleBetweenCurvilinearFaces(*args)

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

        Parameters
        ----------
        theFirstFace: TopoDS_Face
        theSecondFace: TopoDS_Face
        theCenter: gp_Pnt
        theFirstAttach: gp_Pnt
        theSecondAttach: gp_Pnt
        theIsFirstPointSet: bool (optional, default to Standard_False)

        Return
        -------
        bool

        Description
        -----------
        Finds three points for the angle dimension between two planes.

        """
        return _PrsDim.prsdim_InitAngleBetweenPlanarFaces(*args)

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

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

        Return
        -------
        aSurfaceType: PrsDim_KindOfSurface
        anOffset: float

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

        """
        return _PrsDim.prsdim_InitFaceLength(*args)

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

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

        Return
        -------
        None

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

        """
        return _PrsDim.prsdim_InitLengthBetweenCurvilinearFaces(*args)

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

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

        Return
        -------
        gp_Pnt

        Description
        -----------
        Returns the nearest point in a shape. this is used by several classes in calculation of dimensions.

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

        Return
        -------
        gp_Pnt

        Description
        -----------
        Return the nearest point on the line.

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

        Return
        -------
        bool

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

        """
        return _PrsDim.prsdim_Nearest(*args)

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

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

        Return
        -------
        IsInDomain: bool

        Description
        -----------
        Computes nearest to ellipse arc apex.

        """
        return _PrsDim.prsdim_NearestApex(*args)

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

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

        Return
        -------
        gp_Pnt

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

        """
        return _PrsDim.prsdim_ProjectPointOnLine(*args)

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

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

        Return
        -------
        gp_Pnt

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

        """
        return _PrsDim.prsdim_ProjectPointOnPlane(*args)

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

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

        Return
        -------
        gp_Pnt

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

        """
        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
    r"""Json string serializer."""
    ComputeMode_Line = _PrsDim.PrsDim_Dimension_ComputeMode_Line
    r"""Json string serializer."""
    ComputeMode_Text = _PrsDim.PrsDim_Dimension_ComputeMode_Text
    r"""Json string serializer."""


    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"""
        Return
        -------
        opencascade::handle<Prs3d_DimensionAspect>

        Description
        -----------
        Gets the dimension aspect from ais object drawer. dimension aspect contains aspects of line, text and arrows for dimension presentation.

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

    def DisplaySpecialSymbol(self, *args):
        r"""
        Return
        -------
        PrsDim_DisplaySpecialSymbol

        Description
        -----------
        Return dimension special symbol display options.

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

    def GetCustomValue(self, *args):
        r"""
        Return
        -------
        TCollection_ExtendedString

        Description
        -----------
        Gets user-defined dimension value. return dimension value string.

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

    def GetDisplayUnits(self, *args):
        r"""
        Return
        -------
        TCollection_AsciiString

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

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

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

        Description
        -----------
        Return flyout value for dimension.

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

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

        Description
        -----------
        Geometry type defines type of shapes on which the dimension is to be built. return type of geometry on which the dimension will be built.

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

    def GetModelUnits(self, *args):
        r"""
        Return
        -------
        TCollection_AsciiString

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

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

    def GetPlane(self, *args):
        r"""
        Return
        -------
        gp_Pln

        Description
        -----------
        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. return dimension plane used for presentation computing.

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

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

        Description
        -----------
        Computes absolute text position from dimension parameters (flyout, plane and text alignment).

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

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

        Description
        -----------
        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. return the dimension value (in model units) which is used during display of the presentation.

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

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

        Description
        -----------
        Return true if text position is set by user with method settextposition().

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

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

        Description
        -----------
        Check that the input geometry for dimension is valid and the presentation can be successfully computed. return true if dimension geometry is ok.

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

    def KindOfDimension(self, *args):
        r"""
        Return
        -------
        PrsDim_KindOfDimension

        Description
        -----------
        Return the kind of dimension.

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

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

        Description
        -----------
        Returns selection tolerance for text2d: for 2d text selection detection sensitive point with tolerance is used important! only for 2d text.

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

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

        Description
        -----------
        Sets computed dimension value. resets custom value mode if it was set.

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

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

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

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

        Description
        -----------
        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: str

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

        Description
        -----------
        Sets new dimension aspect for the interactive object drawer. the dimension aspect provides dynamic properties which are generally used during computation of dimension presentations.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Specifies whether to display special symbol or not.

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

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

        Parameters
        ----------
        &: str

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

        Description
        -----------
        Sets flyout value for dimension.

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

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

        Parameters
        ----------
        &: str

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

        Description
        -----------
        Specifies special symbol.

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

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

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

        Return
        -------
        None

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

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

    def SpecialSymbol(self, *args):
        r"""
        Return
        -------
        Standard_ExtCharacter

        Description
        -----------
        Return special symbol.

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

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

        Description
        -----------
        Unsets user-defined plane. therefore the plane for dimension will be computed automatically.

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

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

        Description
        -----------
        Unsets user defined text positioning and enables text positioning by other parameters: text alignment, extension size, flyout and custom plane.

        """
        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"""

        Parameters
        ----------
        theSelObject: SelectMgr_SelectableObject
        theSelMode: PrsDim_DimensionSelectionMode
        thePriority: int (optional, default to 0)

        Return
        -------
        None

        Description
        -----------
        Initializes the dimension owner, theso, and attributes it the priority, thepriority.

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

    def SelectionMode(self, *args):
        r"""
        Return
        -------
        PrsDim_DimensionSelectionMode

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

        """
        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"""
        Return
        -------
        float

        Description
        -----------
        Returns the value for the size of the arrow identifying the relation between the two shapes.

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

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

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

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

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

        Description
        -----------
        Returns the status index of the extension shape.

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

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

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

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

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

        Description
        -----------
        Returns true if the interactive object is movable.

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

    def KindOfDimension(self, *args):
        r"""
        Return
        -------
        PrsDim_KindOfDimension

        Description
        -----------
        Indicates that the type of dimension is unknown.

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

    def Plane(self, *args):
        r"""
        Return
        -------
        opencascade::handle<Geom_Plane>

        Description
        -----------
        Returns the plane.

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

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

        Description
        -----------
        Returns the position set using setposition.

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

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

        Description
        -----------
        Returns the second shape.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Allows you to provide settings for the size of the arrow thearrowsize identifying the relation between the two shapes.

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

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

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

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

        Description
        -----------
        Allows you to set the plane theplane. this is used to define relations and dimensions in several daughter classes.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Allows you to provide the objects in the relation with settings for a non-default position.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Allows you to identify the second shape asshape relative to the first.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Allows you to provide settings for the symbol presentation.

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

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

        Parameters
        ----------
        theText: str

        Return
        -------
        None

        Description
        -----------
        Allows you to provide the settings thetext for text aspect.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Allows you to provide settings for the value theval for each object in the relation.

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

    def SymbolPrs(self, *args):
        r"""
        Return
        -------
        DsgPrs_ArrowSide

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

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

    def Text(self, *args):
        r"""
        Return
        -------
        TCollection_ExtendedString

        Description
        -----------
        Returns settings for text aspect.

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

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

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

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

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

        Description
        -----------
        Returns the value of each object in the relation.

        """
        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"""

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

        Return
        -------
        None

        Description
        -----------
        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
        ----------
        theFirstPoint: gp_Pnt
        theSecondPoint: gp_Pnt
        theThirdPoint: gp_Pnt

        Return
        -------
        None

        Description
        -----------
        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
        ----------
        theFirstVertex: TopoDS_Vertex
        theSecondVertex: TopoDS_Vertex
        theThirdVertex: TopoDS_Vertex

        Return
        -------
        None

        Description
        -----------
        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
        ----------
        theCone: TopoDS_Face

        Return
        -------
        None

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

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

        Return
        -------
        None

        Description
        -----------
        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
        thePoint: gp_Pnt

        Return
        -------
        None

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

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

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

        Description
        -----------
        Return center point forming the angle.

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

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

        Description
        -----------
        Return first point forming the angle.

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

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

        Description
        -----------
        Return first argument shape.

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

    def GetArrowsVisibility(self, *args):
        r"""
        Return
        -------
        PrsDim_TypeOfAngleArrowVisibility

        Description
        -----------
        Return the type of visibility of arrows.

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

    def GetType(self, *args):
        r"""
        Return
        -------
        PrsDim_TypeOfAngle

        Description
        -----------
        Return the current angle type.

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

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

        Description
        -----------
        Return second point forming the angle.

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

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

        Description
        -----------
        Return second argument shape.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Sets visible arrows type @param thetype [in] the type of visibility of arrows.

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

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

        Parameters
        ----------
        theUnits: str

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

        Description
        -----------
        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
        ----------
        theFirstPoint: gp_Pnt
        theSecondPoint: gp_Pnt
        theThridPoint: gp_Pnt

        Return
        -------
        None

        Description
        -----------
        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
        ----------
        theFirstVertex: TopoDS_Vertex
        theSecondVertex: TopoDS_Vertex
        theThirdVertex: TopoDS_Vertex

        Return
        -------
        None

        Description
        -----------
        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
        ----------
        theCone: TopoDS_Face

        Return
        -------
        None

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

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

        Return
        -------
        None

        Description
        -----------
        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
        thePoint: gp_Pnt

        Return
        -------
        None

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

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

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

        Parameters
        ----------
        theUnits: str

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

        Description
        -----------
        Sets angle type. @param thetype [in] the type value.

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

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

        Description
        -----------
        Return third argument 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"""

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

        Return
        -------
        None

        Description
        -----------
        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: str
        aPosition: gp_Pnt
        aSymbolPrs: DsgPrs_ArrowSide
        anArrowSize: float (optional, default to 0.0)

        Return
        -------
        None

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

        """
        _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"""

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

        Return
        -------
        None

        Description
        -----------
        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: str
        aPosition: gp_Pnt
        aSymbolPrs: DsgPrs_ArrowSide
        anArrowSize: float (optional, default to 0.0)

        Return
        -------
        None

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

        """
        _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"""

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

        Return
        -------
        None

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

        """
        _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"""

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

        Return
        -------
        None

        Description
        -----------
        Construct diameter dimension for the circle. @param thecircle [in] the circle to measure.

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

        Return
        -------
        None

        Description
        -----------
        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
        ----------
        theShape: TopoDS_Shape

        Return
        -------
        None

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

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

        Return
        -------
        None

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

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

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

        Description
        -----------
        Return anchor point on circle for diameter dimension.

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

    def Circle(self, *args):
        r"""
        Return
        -------
        gp_Circ

        Description
        -----------
        Return measured geometry circle.

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

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

        Parameters
        ----------
        theUnits: str

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

        Description
        -----------
        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
        ----------
        theShape: TopoDS_Shape

        Return
        -------
        None

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

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

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

        Parameters
        ----------
        theUnits: str

        Return
        -------
        None

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

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

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

        Description
        -----------
        Return the measured 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"""
        Return
        -------
        None

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

        """
        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"""

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

        Return
        -------
        None

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

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

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

        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

        Return
        -------
        SymbolPrs: DsgPrs_ArrowSide

        Description
        -----------
        Compute the interval location between a vertex and an edge. edge may be a line or a circle.

        """
        return _PrsDim.PrsDim_EqualDistanceRelation_ComputeOneEdgeOneVertexLength(*args)

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

        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

        Return
        -------
        SymbolPrs: DsgPrs_ArrowSide

        Description
        -----------
        Computes the location of an intreval between between two edges. firstattach , secondattach are the returned extreme points of the interval.

        """
        return _PrsDim.PrsDim_EqualDistanceRelation_ComputeTwoEdgesLength(*args)

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

        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

        Return
        -------
        SymbolPrs: DsgPrs_ArrowSide

        Description
        -----------
        Computes the interval position between two vertexs. firstattach, secondattach are the returned extreme points of the interval.

        """
        return _PrsDim.PrsDim_EqualDistanceRelation_ComputeTwoVerticesLength(*args)

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

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

        Return
        -------
        None

        Description
        -----------
        Sets the shape ashape to be used as the shape ashape3 in the framework created at construction time.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Sets the shape ashape to be used as the shape ashape4 in the framework created at construction time.

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

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

        Description
        -----------
        Returns the shape ashape3 from the framework created at construction time.

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

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

        Description
        -----------
        Returns the shape ashape4 from the framework created at construction time.

        """
        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"""

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

        Return
        -------
        None

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

        """
        _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"""

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

        Return
        -------
        None

        Description
        -----------
        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
        aPosition: gp_Pnt
        anArrowSize: float (optional, default to 0.01)

        Return
        -------
        None

        Description
        -----------
        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

        Return
        -------
        None

        Description
        -----------
        Initializes the edge ashape and the plane aplane.

        Parameters
        ----------
        aShape: TopoDS_Shape
        aPlane: Geom_Plane
        aPosition: gp_Pnt
        anArrowSize: float (optional, default to 0.01)

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

        Description
        -----------
        Constructs the wire awire. this connects vertices which are in a fixed relation.

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

    def Wire(self, *args):
        r"""
        Return
        -------
        TopoDS_Wire

        Description
        -----------
        Returns the wire which connects vertices in a fixed relation.

        """
        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"""

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

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

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

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

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

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

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

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

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

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

    def Users(self, *args):
        r"""
        Return
        -------
        TColStd_ListOfTransient

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

        """
        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"""
        Return
        -------
        None

        Description
        -----------
        Construct an empty length dimension. @sa setmeasuredgeometry(), setmeasuredshapes() for initialization.

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

        Return
        -------
        None

        Description
        -----------
        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
        ----------
        theFirstFace: TopoDS_Face
        theSecondFace: TopoDS_Face

        Return
        -------
        None

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

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

        Return
        -------
        None

        Description
        -----------
        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
        ----------
        theFirstShape: TopoDS_Shape
        theSecondShape: TopoDS_Shape
        thePlane: gp_Pln

        Return
        -------
        None

        Description
        -----------
        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
        ----------
        theEdge: TopoDS_Edge
        thePlane: gp_Pln

        Return
        -------
        None

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

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

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

        Description
        -----------
        Return first attachment point.

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

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

        Description
        -----------
        Return first attachment shape.

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

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

        Description
        -----------
        Return second attachment point.

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

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

        Description
        -----------
        Return second attachment shape.

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

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

        Parameters
        ----------
        theDirection: gp_Dir
        theUseDirection: bool (optional, default to Standard_True)

        Return
        -------
        None

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

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

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

        Parameters
        ----------
        theUnits: str

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

        Description
        -----------
        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
        ----------
        theEdge: TopoDS_Edge
        thePlane: gp_Pln

        Return
        -------
        None

        Description
        -----------
        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
        ----------
        theFirstFace: TopoDS_Face
        theSecondFace: TopoDS_Face

        Return
        -------
        None

        Description
        -----------
        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
        ----------
        theFace: TopoDS_Face
        theEdge: TopoDS_Edge

        Return
        -------
        None

        Description
        -----------
        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).

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

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

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

        Return
        -------
        None

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

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

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

        Parameters
        ----------
        theUnits: str

        Return
        -------
        None

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

        """
        return _PrsDim.PrsDim_LengthDimension_SetModelUnits(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"""

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

        Return
        -------
        None

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

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

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

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

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

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

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

        Return
        -------
        None

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

        """
        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"""

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

        Return
        -------
        None

        Description
        -----------
        Constructs the offset display object defined by the first shape afshape, the second shape asshape, the dimension aval, and the text atext.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Sets a transformation atrsf for presentation and selection to a relative position.

        """
        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"""

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

        Return
        -------
        None

        Description
        -----------
        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
        aPosition: gp_Pnt
        aSymbolPrs: DsgPrs_ArrowSide
        anArrowSize: float (optional, default to 0.01)

        Return
        -------
        None

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

        """
        _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"""

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

        Return
        -------
        None

        Description
        -----------
        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

        Return
        -------
        None

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

        """
        _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"""

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

        Return
        -------
        None

        Description
        -----------
        Create radius dimension for the circle geometry. @param thecircle [in] the circle to measure.

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

        Return
        -------
        None

        Description
        -----------
        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
        ----------
        theShape: TopoDS_Shape

        Return
        -------
        None

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

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

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

        Description
        -----------
        Return anchor point on circle for radius dimension.

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

    def Circle(self, *args):
        r"""
        Return
        -------
        gp_Circ

        Description
        -----------
        Return measured geometry circle.

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

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

        Parameters
        ----------
        theUnits: str

        Return
        -------
        None

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

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

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

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

        Return
        -------
        None

        Description
        -----------
        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
        theAnchorPoint: gp_Pnt
        theHasAnchor: bool (optional, default to Standard_True)

        Return
        -------
        None

        Description
        -----------
        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
        ----------
        theShape: TopoDS_Shape

        Return
        -------
        None

        Description
        -----------
        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
        theAnchorPoint: gp_Pnt
        theHasAnchor: bool (optional, default to Standard_True)

        Return
        -------
        None

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

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

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

        Parameters
        ----------
        theUnits: str

        Return
        -------
        None

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

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

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

        Description
        -----------
        Return the measured 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"""

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

        Return
        -------
        None

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

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

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

        Description
        -----------
        Returns the tool composed of a first shape, a second shape, and a plane. this tool is created at construction time.

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

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

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

        Return
        -------
        None

        Description
        -----------
        Sets the tool asymmetrictool composed of a first shape, a second shape, and a plane. this tool is initially created at construction time.

        """
        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"""

        Parameters
        ----------
        aFShape: TopoDS_Shape
        aSShape: TopoDS_Shape
        aPlane: Geom_Plane
        anExternRef: int (optional, default to 0)

        Return
        -------
        None

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

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

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

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

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

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

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

        Return
        -------
        None

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

        """
        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"""

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

        Return
        -------
        None

        Description
        -----------
        Max ellipse radius dimension shape can be edge , planar face or cylindrical face.

        Parameters
        ----------
        aShape: TopoDS_Shape
        aVal: float
        aText: str
        aPosition: gp_Pnt
        aSymbolPrs: DsgPrs_ArrowSide
        anArrowSize: float (optional, default to 0.0)

        Return
        -------
        None

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

        """
        _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"""

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

        Return
        -------
        None

        Description
        -----------
        Max ellipse radius dimension shape can be edge , planar face or cylindrical face.

        Parameters
        ----------
        aShape: TopoDS_Shape
        aVal: float
        aText: str
        aPosition: gp_Pnt
        aSymbolPrs: DsgPrs_ArrowSide
        anArrowSize: float (optional, default to 0.0)

        Return
        -------
        None

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

        """
        _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)



@deprecated
def prsdim_ComputeGeomCurve(*args):
	return prsdim.ComputeGeomCurve(*args)

@deprecated
def prsdim_ComputeGeometry(*args):
	return prsdim.ComputeGeometry(*args)

@deprecated
def prsdim_ComputeGeometry(*args):
	return prsdim.ComputeGeometry(*args)

@deprecated
def prsdim_ComputeGeometry(*args):
	return prsdim.ComputeGeometry(*args)

@deprecated
def prsdim_ComputeGeometry(*args):
	return prsdim.ComputeGeometry(*args)

@deprecated
def prsdim_ComputeGeometry(*args):
	return prsdim.ComputeGeometry(*args)

@deprecated
def prsdim_ComputeGeometry(*args):
	return prsdim.ComputeGeometry(*args)

@deprecated
def prsdim_ComputeGeometry(*args):
	return prsdim.ComputeGeometry(*args)

@deprecated
def prsdim_ComputeProjEdgePresentation(*args):
	return prsdim.ComputeProjEdgePresentation(*args)

@deprecated
def prsdim_ComputeProjVertexPresentation(*args):
	return prsdim.ComputeProjVertexPresentation(*args)

@deprecated
def prsdim_DistanceFromApex(*args):
	return prsdim.DistanceFromApex(*args)

@deprecated
def prsdim_Farest(*args):
	return prsdim.Farest(*args)

@deprecated
def prsdim_GetPlaneFromFace(*args):
	return prsdim.GetPlaneFromFace(*args)

@deprecated
def prsdim_InDomain(*args):
	return prsdim.InDomain(*args)

@deprecated
def prsdim_InitAngleBetweenCurvilinearFaces(*args):
	return prsdim.InitAngleBetweenCurvilinearFaces(*args)

@deprecated
def prsdim_InitAngleBetweenPlanarFaces(*args):
	return prsdim.InitAngleBetweenPlanarFaces(*args)

@deprecated
def prsdim_InitFaceLength(*args):
	return prsdim.InitFaceLength(*args)

@deprecated
def prsdim_InitLengthBetweenCurvilinearFaces(*args):
	return prsdim.InitLengthBetweenCurvilinearFaces(*args)

@deprecated
def prsdim_Nearest(*args):
	return prsdim.Nearest(*args)

@deprecated
def prsdim_Nearest(*args):
	return prsdim.Nearest(*args)

@deprecated
def prsdim_Nearest(*args):
	return prsdim.Nearest(*args)

@deprecated
def prsdim_NearestApex(*args):
	return prsdim.NearestApex(*args)

@deprecated
def prsdim_ProjectPointOnLine(*args):
	return prsdim.ProjectPointOnLine(*args)

@deprecated
def prsdim_ProjectPointOnPlane(*args):
	return prsdim.ProjectPointOnPlane(*args)

@deprecated
def prsdim_TranslatePointToBound(*args):
	return prsdim.TranslatePointToBound(*args)

@deprecated
def PrsDim_EqualDistanceRelation_ComputeOneEdgeOneVertexLength(*args):
	return PrsDim_EqualDistanceRelation.ComputeOneEdgeOneVertexLength(*args)

@deprecated
def PrsDim_EqualDistanceRelation_ComputeTwoEdgesLength(*args):
	return PrsDim_EqualDistanceRelation.ComputeTwoEdgesLength(*args)

@deprecated
def PrsDim_EqualDistanceRelation_ComputeTwoVerticesLength(*args):
	return PrsDim_EqualDistanceRelation.ComputeTwoVerticesLength(*args)



