Open CASCADE Technology  7.3.1.dev
Data Structures | Public Types | Public Member Functions | Protected Types | Protected Member Functions
AIS_Dimension Class Reference

AIS_Dimension is a base class for 2D presentations of linear (length, diameter, radius) and angular dimensions. More...

#include <AIS_Dimension.hxx>

Inheritance diagram for AIS_Dimension:
Inheritance graph
[legend]

Data Structures

struct  SelectionGeometry
 Selection geometry of dimension presentation. The structure is filled with data during compute of presentation, then this data is used to generate selection sensitives when computing selection. More...
 

Public Types

enum  ComputeMode { ComputeMode_All = 0, ComputeMode_Line = 1, ComputeMode_Text = 2 }
 Specifies supported presentation compute modes. Used to compute only parts of presentation for advanced highlighting. More...
 
- Public Types inherited from Standard_Transient
typedef void base_type
 Returns a type descriptor about this object. More...
 

Public Member Functions

 AIS_Dimension (const AIS_KindOfDimension theType)
 Constructor with default parameters values. More...
 
Standard_Real GetValue () const
 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. More...
 
void SetComputedValue ()
 Sets computed dimension value. Resets custom value mode if it was set. More...
 
void SetCustomValue (const Standard_Real theValue)
 Sets user-defined dimension value. The user-defined dimension value is specified in model space, and affect by unit conversion during the display. More...
 
void SetCustomValue (const TCollection_ExtendedString &theValue)
 Sets user-defined dimension value. Unit conversion during the display is not applyed. More...
 
const TCollection_ExtendedStringGetCustomValue () const
 Gets user-defined dimension value. More...
 
const gp_PlnGetPlane () const
 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. More...
 
Standard_Integer GetGeometryType () const
 Geometry type defines type of shapes on which the dimension is to be built. More...
 
virtual void SetCustomPlane (const gp_Pln &thePlane)
 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. More...
 
void UnsetCustomPlane ()
 Unsets user-defined plane. Therefore the plane for dimension will be computed automatically. More...
 
Standard_Boolean IsTextPositionCustom () const
 
virtual void SetTextPosition (const gp_Pnt &)
 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. More...
 
virtual const gp_Pnt GetTextPosition () const
 Computes absolute text position from dimension parameters (flyout, plane and text alignment). More...
 
Handle< Prs3d_DimensionAspectDimensionAspect () const
 Gets the dimension aspect from AIS object drawer. Dimension aspect contains aspects of line, text and arrows for dimension presentation. More...
 
void SetDimensionAspect (const Handle< Prs3d_DimensionAspect > &theDimensionAspect)
 Sets new dimension aspect for the interactive object drawer. The dimension aspect provides dynamic properties which are generally used during computation of dimension presentations. More...
 
AIS_KindOfDimension KindOfDimension () const
 
virtual AIS_KindOfInteractive Type () const override
 
virtual Standard_Boolean AcceptDisplayMode (const Standard_Integer theMode) const override
 Returns true if the class of objects accepts the display mode theMode. The interactive context can have a default mode of representation for the set of Interactive Objects. This mode may not be accepted by object. More...
 
AIS_DisplaySpecialSymbol DisplaySpecialSymbol () const
 
void SetDisplaySpecialSymbol (const AIS_DisplaySpecialSymbol theDisplaySpecSymbol)
 Specifies whether to display special symbol or not. More...
 
Standard_ExtCharacter SpecialSymbol () const
 
void SetSpecialSymbol (const Standard_ExtCharacter theSpecialSymbol)
 Specifies special symbol. More...
 
virtual const TCollection_AsciiStringGetDisplayUnits () const
 
virtual const TCollection_AsciiStringGetModelUnits () const
 
virtual void SetDisplayUnits (const TCollection_AsciiString &)
 
virtual void SetModelUnits (const TCollection_AsciiString &)
 
void UnsetFixedTextPosition ()
 Unsets user defined text positioning and enables text positioning by other parameters: text alignment, extension size, flyout and custom plane. More...
 
Standard_Real SelToleranceForText2d () const
 Returns selection tolerance for text2d: For 2d text selection detection sensitive point with tolerance is used Important! Only for 2d text. More...
 
void SetSelToleranceForText2d (const Standard_Real theTol)
 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. More...
 
Standard_Real GetFlyout () const
 
void SetFlyout (const Standard_Real theFlyout)
 Sets flyout value for dimension. More...
 
virtual Standard_Boolean IsValid () const
 Check that the input geometry for dimension is valid and the presentation can be successfully computed. More...
 
- Public Member Functions inherited from AIS_InteractiveObject
virtual Standard_Integer Signature () const
 Specifies additional characteristics of Interactive Objects. A signature is, in fact, an index with integer values assigned different properties. This method is frequently used in conjuction with Type to give a particular type and signature to an Interactive Object. By default, the Interactive Object has a None type and a signature of 0. Among the datums, this signature is attributed to the shape The remaining datums have the following default signatures: More...
 
virtual Standard_Boolean AcceptShapeDecomposition () const
 Informs the graphic context that the interactive Object may be decomposed into sub-shapes for dynamic selection. The most used Interactive Object is AIS_Shape. Activation methods for standard selection modes are proposed in the Interactive Context. These include selection by vertex or by edges. For datums with the same behavior as AIS_Shape, such as vetices and edges, we must redefine the virtual method so that AcceptShapeDecomposition returns false. Rule for selection : Mode 0 : Selection of the interactive Object itself Mode 1 : Selection of vertices Mode 2 : Selection Of Edges Mode 3 : Selection Of Wires Mode 4 : Selection Of Faces ... More...
 
void SetCurrentFacingModel (const Aspect_TypeOfFacingModel aModel=Aspect_TOFM_BOTH_SIDE)
 change the current facing model apply on polygons for SetColor(), SetTransparency(), SetMaterial() methods default facing model is Aspect_TOFM_TWO_SIDE. This mean that attributes is applying both on the front and back face. More...
 
Aspect_TypeOfFacingModel CurrentFacingModel () const
 Returns the current facing model which is in effect. More...
 
virtual void SetColor (const Quantity_Color &theColor)
 Only the interactive object knowns which Drawer attribute is affected by the color, if any (ex: for a wire,it's the wireaspect field of the drawer, but for a vertex, only the point aspect field is affected by the color). WARNING : Do not forget to set the corresponding fields here (hasOwnColor and myDrawer->SetColor()) More...
 
virtual void UnsetColor ()
 Removes color settings. Only the Interactive Object knows which Drawer attribute is affected by the color setting. For a wire, for example, wire aspect is the attribute affected. For a vertex, however, only point aspect is affected by the color setting. More...
 
virtual void SetWidth (const Standard_Real aValue)
 Allows you to provide the setting aValue for width. Only the Interactive Object knows which Drawer attribute is affected by the width setting. More...
 
virtual void UnsetWidth ()
 
virtual Standard_Integer DefaultDisplayMode () const
 Returns the default display mode. This method is to be implemented when the main mode is not mode 0. More...
 
void Redisplay (const Standard_Boolean AllModes=Standard_False)
 Updates the active presentation; if <AllModes> = Standard_True all the presentations inside are recomputed. IMPORTANT: It is preferable to call Redisplay method of corresponding AIS_InteractiveContext instance for cases when it is accessible. This method just redirects call to myCTXPtr, so this class field must be up to date for proper result. More...
 
void SetInfiniteState (const Standard_Boolean aFlag=Standard_True)
 Sets the infinite state flag aFlage. if <aFlag> = True , the interactiveObject is considered as infinite, i.e. its graphic presentations are not taken in account for View FitAll... More...
 
Standard_Boolean IsInfinite () const
 Returns true if the interactive object is infinite. In this case, its graphic presentations are not taken into account in the fit-all view. More...
 
Standard_Boolean HasInteractiveContext () const
 Indicates whether the Interactive Object has a pointer to an interactive context. More...
 
Handle< AIS_InteractiveContextGetContext () const
 Returns the context pointer to the interactive context. More...
 
virtual void SetContext (const Handle< AIS_InteractiveContext > &aCtx)
 Sets the interactive context aCtx and provides a link to the default drawing tool or "Drawer" if there is none. More...
 
Standard_Boolean HasOwner () const
 Returns true if the object has an owner attributed to it. The owner can be a shape for a set of sub-shapes or a sub-shape for sub-shapes which it is composed of, and takes the form of a transient. More...
 
const Handle< Standard_Transient > & GetOwner () const
 Returns the owner of the Interactive Object. The owner can be a shape for a set of sub-shapes or a sub-shape for sub-shapes which it is composed of, and takes the form of a transient. There are two types of owners: More...
 
void SetOwner (const Handle< Standard_Transient > &theApplicativeEntity)
 Allows you to attribute the owner theApplicativeEntity to an Interactive Object. This can be a shape for a set of sub-shapes or a sub-shape for sub-shapes which it is composed of. The owner takes the form of a transient. More...
 
void ClearOwner ()
 Each Interactive Object has methods which allow us to attribute an Owner to it in the form of a Transient. This method removes the owner from the graphic entity. More...
 
Standard_Boolean HasDisplayMode () const
 Returns true if the Interactive Object has a display mode setting. Otherwise, it is displayed in Neutral Point. More...
 
void SetDisplayMode (const Standard_Integer aMode)
 Sets the display mode aMode for the interactive object. An object can have its own temporary display mode, which is different from that proposed by the interactive context. The range of possibilities currently proposed is the following: More...
 
void UnsetDisplayMode ()
 Removes display mode settings from the interactive object. More...
 
Standard_Integer DisplayMode () const
 Returns the display mode setting of the Interactive Object. The range of possibilities is the following: More...
 
Standard_Boolean HasHilightMode () const
 Returns true if the Interactive Object is in highlight mode. More...
 
Standard_Integer HilightMode () const
 Returns highlight display mode. This is obsolete method for backward compatibility - use ::HilightAttributes() and ::DynamicHilightAttributes() instead. More...
 
void SetHilightMode (const Standard_Integer theMode)
 Sets highlight display mode. This is obsolete method for backward compatibility - use ::HilightAttributes() and ::DynamicHilightAttributes() instead. More...
 
void UnsetHilightMode ()
 Unsets highlight display mode. More...
 
Standard_Boolean HasColor () const
 Returns true if the Interactive Object has color. More...
 
virtual void Color (Quantity_Color &theColor) const
 Returns the color setting of the Interactive Object. More...
 
Standard_Boolean HasWidth () const
 Returns true if the Interactive Object has width. More...
 
Standard_Real Width () const
 Returns the width setting of the Interactive Object. More...
 
Standard_Boolean HasMaterial () const
 Returns true if the Interactive Object has a setting for material. More...
 
virtual Graphic3d_NameOfMaterial Material () const
 Returns the current material setting. This will be on of the following materials: More...
 
virtual void SetMaterial (const Graphic3d_MaterialAspect &aName)
 Sets the material aMat defining this display attribute for the interactive object. Material aspect determines shading aspect, color and transparency of visible entities. More...
 
virtual void UnsetMaterial ()
 Removes the setting for material. More...
 
virtual void SetTransparency (const Standard_Real aValue=0.6)
 Attributes a setting aValue for transparency. The transparency value should be between 0.0 and 1.0. At 0.0 an object will be totally opaque, and at 1.0, fully transparent. Warning At a value of 1.0, there may be nothing visible. More...
 
Standard_Boolean IsTransparent () const
 Returns true if there is a transparency setting. More...
 
virtual Standard_Real Transparency () const
 Returns the transparency setting. This will be between 0.0 and 1.0. At 0.0 an object will be totally opaque, and at 1.0, fully transparent. More...
 
virtual void UnsetTransparency ()
 Removes the transparency setting. The object is opaque by default. More...
 
virtual void UnsetAttributes () override
 Clears settings provided by the drawing tool aDrawer. More...
 
Standard_Boolean HasPresentation () const
 Returns TRUE when this object has a presentation in the current DisplayMode() More...
 
Handle< Prs3d_PresentationPresentation () const
 Returns the current presentation of this object according to the current DisplayMode() More...
 
void SetAspect (const Handle< Prs3d_BasicAspect > &anAspect)
 Sets the graphic basic aspect to the current presentation. More...
 
virtual void SetPolygonOffsets (const Standard_Integer aMode, const Standard_ShortReal aFactor=1.0, const Standard_ShortReal aUnits=0.0)
 Sets up polygon offsets for this object. It modifies all existing presentations of <anObj> (if any), so it is reasonable to call this method after <anObj> has been displayed. Otherwise, Compute() method should pass Graphic3d_AspectFillArea3d aspect from <myDrawer> to Graphic3d_Group to make polygon offsets work. More...
 
virtual Standard_Boolean HasPolygonOffsets () const
 Returns Standard_True if <myDrawer> has non-null shading aspect. More...
 
virtual void PolygonOffsets (Standard_Integer &aMode, Standard_ShortReal &aFactor, Standard_ShortReal &aUnits) const
 Retrieves current polygon offsets settings from <myDrawer>. More...
 
virtual void BoundingBox (Bnd_Box &theBndBox) override
 Returns bounding box of object correspondingly to its current display mode. More...
 
void SetIsoOnTriangulation (const Standard_Boolean theIsEnabled)
 Enables or disables on-triangulation build of isolines according to the flag given. More...
 
void SynchronizeAspects ()
 Synchronize presentation aspects after their modification. More...
 
- Public Member Functions inherited from SelectMgr_SelectableObject
virtual ~SelectMgr_SelectableObject ()
 Clears all selections of the object. More...
 
void RecomputePrimitives ()
 Re-computes the sensitive primitives for all modes. IMPORTANT: Do not use this method to update selection primitives except implementing custom selection manager! This method does not take into account necessary BVH updates, but may invalidate the pointers it refers to. TO UPDATE SELECTION properly from outside classes, use method UpdateSelection. More...
 
void RecomputePrimitives (const Standard_Integer theMode)
 Re-computes the sensitive primitives which correspond to the <theMode>th selection mode. IMPORTANT: Do not use this method to update selection primitives except implementing custom selection manager! selection manager! This method does not take into account necessary BVH updates, but may invalidate the pointers it refers to. TO UPDATE SELECTION properly from outside classes, use method UpdateSelection. More...
 
void AddSelection (const Handle< SelectMgr_Selection > &aSelection, const Standard_Integer aMode)
 Adds the selection aSelection with the selection mode index aMode to this framework. More...
 
void ClearSelections (const Standard_Boolean update=Standard_False)
 Empties all the selections in the SelectableObject <update> parameter defines whether all object's selections should be flagged for further update or not. This improved method can be used to recompute an object's selection (without redisplaying the object completely) when some selection mode is activated not for the first time. More...
 
const Handle< SelectMgr_Selection > & Selection (const Standard_Integer theMode) const
 Returns the selection having specified selection mode or NULL. More...
 
Standard_Boolean HasSelection (const Standard_Integer theMode) const
 Returns true if a selection corresponding to the selection mode theMode was computed for this object. More...
 
const SelectMgr_SequenceOfSelectionSelections () const
 Return the sequence of selections. More...
 
void Init ()
 Begins the iteration scanning for sensitive primitives. More...
 
Standard_Boolean More () const
 Continues the iteration scanning for sensitive primitives. More...
 
void Next ()
 Continues the iteration scanning for sensitive primitives. More...
 
const Handle< SelectMgr_Selection > & CurrentSelection () const
 Returns the current selection in this framework. More...
 
void ResetTransformation () override
 resets local transformation to identity. More...
 
virtual void UpdateTransformation () override
 Recomputes the location of the selection aSelection. More...
 
virtual void UpdateTransformations (const Handle< SelectMgr_Selection > &aSelection)
 Updates locations in all sensitive entities from <aSelection> and in corresponding entity owners. More...
 
virtual void HilightSelected (const Handle< PrsMgr_PresentationManager3d > &PM, const SelectMgr_SequenceOfOwner &Seq)
 Method which draws selected owners ( for fast presentation draw ) More...
 
virtual void ClearSelected ()
 Method which clear all selected owners belonging to this selectable object ( for fast presentation draw ) More...
 
virtual void ClearDynamicHighlight (const Handle< PrsMgr_PresentationManager3d > &theMgr)
 Method that needs to be implemented when the object manages selection and dynamic highlighting on its own. Clears or invalidates dynamic highlight presentation. By default it clears immediate draw of given presentation manager. More...
 
virtual void HilightOwnerWithColor (const Handle< PrsMgr_PresentationManager3d > &thePM, const Handle< Prs3d_Drawer > &theStyle, const Handle< SelectMgr_EntityOwner > &theOwner)
 Method which hilight an owner belonging to this selectable object ( for fast presentation draw ) More...
 
virtual Standard_Boolean IsAutoHilight () const
 If returns True, the old mechanism for highlighting selected objects is used (HilightSelected Method may be empty). If returns False, the HilightSelected method will be fully responsible for highlighting selected entity owners belonging to this selectable object. More...
 
virtual void SetAutoHilight (const Standard_Boolean newAutoHilight)
 Set AutoHilight property to true or false Sets up Transform Persistence Mode for this object. More...
 
Handle< Prs3d_PresentationGetHilightPresentation (const Handle< PrsMgr_PresentationManager3d > &TheMgr)
 
Handle< Prs3d_PresentationGetSelectPresentation (const Handle< PrsMgr_PresentationManager3d > &TheMgr)
 
virtual void ErasePresentations (Standard_Boolean theToRemove)
 Removes presentations returned by GetHilightPresentation() and GetSelectPresentation(). More...
 
virtual void SetZLayer (const Graphic3d_ZLayerId theLayerId) override
 Set Z layer ID and update all presentations of the selectable object. The layers mechanism allows drawing objects in higher layers in overlay of objects in lower layers. More...
 
void UpdateSelection (const Standard_Integer theMode=-1)
 Sets update status FULL to selections of the object. Must be used as the only method of UpdateSelection from outer classes to prevent BVH structures from being outdated. More...
 
void SetAssemblyOwner (const Handle< SelectMgr_EntityOwner > &theOwner, const Standard_Integer theMode=-1)
 Sets common entity owner for assembly sensitive object entities. More...
 
Bnd_Box BndBoxOfSelected (const Handle< SelectMgr_IndexedMapOfOwner > &theOwners)
 Returns a bounding box of sensitive entities with the owners given if they are a part of activated selection. More...
 
Standard_Integer GlobalSelectionMode () const
 Returns the mode for selection of object as a whole. More...
 
virtual Handle< SelectMgr_EntityOwnerGlobalSelOwner () const
 Returns the owner of mode for selection of object as a whole. More...
 
virtual const Handle< SelectMgr_EntityOwner > & GetAssemblyOwner () const
 Returns common entity owner if the object is an assembly. More...
 
- Public Member Functions inherited from PrsMgr_PresentableObject
PrsMgr_PresentationsPresentations ()
 
PrsMgr_TypeOfPresentation3d TypeOfPresentation3d () const
 Returns information on whether the object accepts display in HLR mode or not. More...
 
const Handle< Graphic3d_TransformPers > & TransformPersistence () const
 Returns Transformation Persistence defining a special Local Coordinate system where this presentable object is located or NULL handle if not defined. Position of the object having Transformation Persistence is mutable and depends on camera position. The same applies to a bounding box of the object. More...
 
virtual void SetTransformPersistence (const Handle< Graphic3d_TransformPers > &theTrsfPers)
 Sets up Transform Persistence defining a special Local Coordinate system where this object should be located. Note that management of Transform Persistence object is more expensive than of the normal one, because it requires its position being recomputed basing on camera position within each draw call / traverse. More...
 
void SetTransformPersistence (const Graphic3d_TransModeFlags theMode, const gp_Pnt &thePoint=gp_Pnt(0.0, 0.0, 0.0))
 Sets up Transform Persistence Mode for this object. This function used to lock in object position, rotation and / or zooming relative to camera position. Object will be drawn in the origin setted by thePoint parameter (except Graphic3d_TMF_TriedronPers flag. More...
 
Graphic3d_TransModeFlags GetTransformPersistenceMode () const
 Gets Transform Persistence Mode for this object. More...
 
gp_Pnt GetTransformPersistencePoint () const
 Gets point of transform persistence for this object. More...
 
void SetTypeOfPresentation (const PrsMgr_TypeOfPresentation3d aType)
 
Standard_Boolean ToBeUpdated (Standard_Boolean theToIncludeHidden=Standard_False) const
 Returns TRUE if any active presentation has invalidation flag. More...
 
void SetToUpdate (Standard_Integer theMode)
 Flags presentation to be updated; UpdatePresentations() will recompute these presentations. More...
 
void SetToUpdate ()
 flags all the Presentations to be Updated. More...
 
void ToBeUpdated (TColStd_ListOfInteger &ListOfMode) const
 gives the list of modes which are flagged "to be updated". More...
 
const Handle< Geom_Transformation > & LocalTransformationGeom () const
 Return the local transformation. Note that the local transformation of the object having Transformation Persistence is applied within Local Coordinate system defined by this Persistence. More...
 
void SetLocalTransformation (const gp_Trsf &theTrsf)
 Sets local transformation to theTransformation. Note that the local transformation of the object having Transformation Persistence is applied within Local Coordinate system defined by this Persistence. More...
 
void SetLocalTransformation (const Handle< Geom_Transformation > &theTrsf)
 Sets local transformation to theTransformation. Note that the local transformation of the object having Transformation Persistence is applied within Local Coordinate system defined by this Persistence. More...
 
Standard_Boolean HasTransformation () const
 Returns true if object has a transformation that is different from the identity. More...
 
const Handle< Geom_Transformation > & TransformationGeom () const
 Return the transformation taking into account transformation of parent object(s). Note that the local transformation of the object having Transformation Persistence is applied within Local Coordinate system defined by this Persistence. More...
 
const gp_TrsfLocalTransformation () const
 Return the local transformation. Note that the local transformation of the object having Transformation Persistence is applied within Local Coordinate system defined by this Persistence. More...
 
const gp_TrsfTransformation () const
 Return the transformation taking into account transformation of parent object(s). Note that the local transformation of the object having Transformation Persistence is applied within Local Coordinate system defined by this Persistence. More...
 
const gp_GTrsfInversedTransformation () const
 
Graphic3d_ZLayerId ZLayer () const
 Get ID of Z layer. More...
 
virtual void AddClipPlane (const Handle< Graphic3d_ClipPlane > &thePlane)
 Adds clip plane for graphical clipping for all display mode presentations. The composition of clip planes truncates the rendering space to convex volume. Please be aware that number of supported clip plane is limited. The planes which exceed the limit are ignored. Besides of this, some planes can be already set in view where the object is shown: the number of these planes should be substracted from limit to predict the maximum possible number of object clipping planes. More...
 
virtual void RemoveClipPlane (const Handle< Graphic3d_ClipPlane > &thePlane)
 Removes previously added clip plane. More...
 
virtual void SetClipPlanes (const Handle< Graphic3d_SequenceOfHClipPlane > &thePlanes)
 Set clip planes for graphical clipping for all display mode presentations. The composition of clip planes truncates the rendering space to convex volume. Please be aware that number of supported clip plane is limited. The planes which exceed the limit are ignored. Besides of this, some planes can be already set in view where the object is shown: the number of these planes should be subtracted from limit to predict the maximum possible number of object clipping planes. More...
 
void SetClipPlanes (const Graphic3d_SequenceOfHClipPlane &thePlanes)
 
const Handle< Graphic3d_SequenceOfHClipPlane > & ClipPlanes () const
 Get clip planes. More...
 
virtual void SetMutable (const Standard_Boolean theIsMutable)
 Sets if the object has mutable nature (content or location will be changed regularly). This method should be called before object displaying to take effect. More...
 
Standard_Boolean IsMutable () const
 Returns true if object has mutable nature (content or location are be changed regularly). Mutable object will be managed in different way than static onces (another optimizations). More...
 
virtual void AddChild (const Handle< PrsMgr_PresentableObject > &theObject)
 Makes theObject child of current object in scene hierarchy. More...
 
virtual void RemoveChild (const Handle< PrsMgr_PresentableObject > &theObject)
 Removes theObject from children of current object in scene hierarchy. More...
 
const PrsMgr_ListOfPresentableObjectsChildren () const
 Returns children of the current object. More...
 
Standard_Boolean HasOwnPresentations () const
 Returns true if object should have own presentations. More...
 
PrsMgr_PresentableObjectPointer Parent () const
 Returns parent of current object in scene hierarchy. More...
 
virtual void SetAttributes (const Handle< Prs3d_Drawer > &theDrawer)
 Initializes the drawing tool theDrawer. More...
 
const Handle< Prs3d_Drawer > & Attributes () const
 Returns the attributes settings. More...
 
const Handle< Prs3d_Drawer > & HilightAttributes () const
 Returns the hilight attributes settings. When not NULL, overrides both Prs3d_TypeOfHighlight_LocalSelected and Prs3d_TypeOfHighlight_Selected defined within AIS_InteractiveContext. More...
 
virtual void SetHilightAttributes (const Handle< Prs3d_Drawer > &theDrawer)
 Initializes the hilight drawing tool theDrawer. More...
 
const Handle< Prs3d_Drawer > & DynamicHilightAttributes () const
 Returns the hilight attributes settings. When not NULL, overrides both Prs3d_TypeOfHighlight_LocalDynamic and Prs3d_TypeOfHighlight_Dynamic defined within AIS_InteractiveContext. More...
 
virtual void SetDynamicHilightAttributes (const Handle< Prs3d_Drawer > &theDrawer)
 Initializes the dynamic hilight drawing tool. More...
 
virtual void UnsetHilightAttributes ()
 Clears settings provided by the hilight drawing tool theDrawer. More...
 
- Public Member Functions inherited from Standard_Transient
 Standard_Transient ()
 Empty constructor. More...
 
 Standard_Transient (const Standard_Transient &)
 Copy constructor – does nothing. More...
 
Standard_Transientoperator= (const Standard_Transient &)
 Assignment operator, needed to avoid copying reference counter. More...
 
virtual ~Standard_Transient ()
 Destructor must be virtual. More...
 
virtual void Delete () const
 Memory deallocator for transient classes. More...
 
virtual const opencascade::handle< Standard_Type > & DynamicType () const
 Returns a type descriptor about this object. More...
 
Standard_Boolean IsInstance (const opencascade::handle< Standard_Type > &theType) const
 Returns a true value if this is an instance of Type. More...
 
Standard_Boolean IsInstance (const Standard_CString theTypeName) const
 Returns a true value if this is an instance of TypeName. More...
 
Standard_Boolean IsKind (const opencascade::handle< Standard_Type > &theType) const
 Returns true if this is an instance of Type or an instance of any class that inherits from Type. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
 
Standard_Boolean IsKind (const Standard_CString theTypeName) const
 Returns true if this is an instance of TypeName or an instance of any class that inherits from TypeName. Note that multiple inheritance is not supported by OCCT RTTI mechanism. More...
 
Standard_TransientThis () const
 Returns non-const pointer to this object (like const_cast). For protection against creating handle to objects allocated in stack or call from constructor, it will raise exception Standard_ProgramError if reference counter is zero. More...
 
Standard_Integer GetRefCount () const
 Get the reference counter of this object. More...
 
void IncrementRefCounter () const
 Increments the reference counter of this object. More...
 
Standard_Integer DecrementRefCounter () const
 Decrements the reference counter of this object; returns the decremented value. More...
 

Protected Types

enum  GeometryType {
  GeometryType_UndefShapes, GeometryType_Edge, GeometryType_Face, GeometryType_Points,
  GeometryType_Edges, GeometryType_Faces, GeometryType_EdgeFace, GeometryType_EdgeVertex
}
 Geometry type defines type of shapes on which the dimension is to be built. Some type of geometry allows automatic plane computing and can be built without user-defined plane Another types can't be built without user-defined plane. More...
 
enum  LabelPosition {
  LabelPosition_None = 0x00, LabelPosition_Left = 0x01, LabelPosition_Right = 0x02, LabelPosition_HCenter = 0x04,
  LabelPosition_HMask = LabelPosition_Left | LabelPosition_Right | LabelPosition_HCenter, LabelPosition_Above = 0x10, LabelPosition_Below = 0x20, LabelPosition_VCenter = 0x40,
  LabelPosition_VMask = LabelPosition_Above | LabelPosition_Below | LabelPosition_VCenter
}
 Specifies supported at base level horizontal and vertical label positions for drawing extension lines and centered text. More...
 
enum  ValueType { ValueType_Computed, ValueType_CustomReal, ValueType_CustomText }
 

Protected Member Functions

Standard_Real ValueToDisplayUnits () const
 
TCollection_ExtendedString GetValueString (Standard_Real &theWidth) const
 Get formatted value string and its model space width. More...
 
void DrawArrow (const Handle< Prs3d_Presentation > &thePresentation, const gp_Pnt &theLocation, const gp_Dir &theDirection)
 Performs drawing of 2d or 3d arrows on the working plane. More...
 
void drawText (const Handle< Prs3d_Presentation > &thePresentation, const gp_Pnt &theTextPos, const gp_Dir &theTextDir, const TCollection_ExtendedString &theText, const Standard_Integer theLabelPosition)
 Performs drawing of 2d or 3d text on the working plane. More...
 
void DrawExtension (const Handle< Prs3d_Presentation > &thePresentation, const Standard_Real theExtensionSize, const gp_Pnt &theExtensionStart, const gp_Dir &theExtensionDir, const TCollection_ExtendedString &theLabelString, const Standard_Real theLabelWidth, const Standard_Integer theMode, const Standard_Integer theLabelPosition)
 Performs computing of dimension linear extension with text. More...
 
void DrawLinearDimension (const Handle< Prs3d_Presentation > &thePresentation, const Standard_Integer theMode, const gp_Pnt &theFirstPoint, const gp_Pnt &theSecondPoint, const Standard_Boolean theIsOneSide=Standard_False)
 Performs computing of linear dimension (for length, diameter, radius and so on). Please note that this method uses base dimension properties, like working plane flyout length, drawer attributes. More...
 
virtual void ComputeFlyoutLinePoints (const gp_Pnt &theFirstPoint, const gp_Pnt &theSecondPoint, gp_Pnt &theLineBegPoint, gp_Pnt &theLineEndPoint)
 Computes points bounded the flyout line for linear dimension. More...
 
void ComputeLinearFlyouts (const Handle< SelectMgr_Selection > &theSelection, const Handle< SelectMgr_EntityOwner > &theOwner, const gp_Pnt &theFirstPoint, const gp_Pnt &theSecondPoint)
 Compute selection sensitives for linear dimension flyout lines (length, diameter, radius). Please note that this method uses base dimension properties: working plane and flyout length. More...
 
Standard_Boolean InitCircularDimension (const TopoDS_Shape &theShape, gp_Circ &theCircle, gp_Pnt &theMiddleArcPoint, Standard_Boolean &theIsClosed)
 Performs initialization of circle and middle arc point from the passed shape which is assumed to contain circular geometry. More...
 
void PointsForArrow (const gp_Pnt &thePeakPnt, const gp_Dir &theDirection, const gp_Dir &thePlane, const Standard_Real theArrowLength, const Standard_Real theArrowAngle, gp_Pnt &theSidePnt1, gp_Pnt &theSidePnt2)
 Produce points for triangular arrow face. More...
 
gp_Pnt GetTextPositionForLinear (const gp_Pnt &theFirstPoint, const gp_Pnt &theSecondPoint, const Standard_Boolean theIsOneSide=Standard_False) const
 Compute point of text position for dimension parameters for linear kinds of dimensions (length, radius, diameter). More...
 
void FitTextAlignmentForLinear (const gp_Pnt &theFirstPoint, const gp_Pnt &theSecondPoint, const Standard_Boolean theIsOneSide, const Prs3d_DimensionTextHorizontalPosition &theHorizontalTextPos, Standard_Integer &theLabelPosition, Standard_Boolean &theIsArrowsExternal) const
 Fits text alignment relatively to the dimension line. More...
 
Standard_Boolean AdjustParametersForLinear (const gp_Pnt &theTextPos, const gp_Pnt &theFirstPoint, const gp_Pnt &theSecondPoint, Standard_Real &theExtensionSize, Prs3d_DimensionTextHorizontalPosition &theAlignment, Standard_Real &theFlyout, gp_Pln &thePlane, Standard_Boolean &theIsPlaneOld) const
 Adjusts aspect parameters according the text position: extension size, vertical text alignment and flyout. More...
 
Behavior to implement
virtual Standard_Boolean CheckPlane (const gp_Pln &) const
 Override this method to check if user-defined plane is valid for the dimension geometry. More...
 
virtual Standard_Real ComputeValue () const
 Override this method to computed value of dimension. More...
 
virtual void ComputeFlyoutSelection (const Handle< SelectMgr_Selection > &, const Handle< SelectMgr_EntityOwner > &)
 Override this method to compute selection primitives for flyout lines (if the dimension provides it). This callback is a only a part of base selection computation routine. More...
 
virtual void ComputeSelection (const Handle< SelectMgr_Selection > &theSelection, const Standard_Integer theMode) override
 Base procedure of computing selection (based on selection geometry data). More...
 
- Protected Member Functions inherited from AIS_InteractiveObject
void replaceAspects (const Graphic3d_MapOfAspectsToAspects &theMap)
 Replace aspects of existing (computed) presentation groups, so that the new aspects can be applied without recomputing presentation. It is NOT recommended approach, because user has to fill such map and then search for each occurrence in computed groups. The recommended approach is computing presentation with necessary customized aspects, and then modify them directly followed by SynchronizeAspects() call. More...
 
 AIS_InteractiveObject (const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d=PrsMgr_TOP_AllView)
 The TypeOfPresention3d means that the interactive object may have a presentation dependant of the view of Display. More...
 
- Protected Member Functions inherited from SelectMgr_SelectableObject
 SelectMgr_SelectableObject (const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d=PrsMgr_TOP_AllView)
 
void setGlobalSelMode (const Standard_Integer theMode)
 
virtual void UpdateClipping () override
 Update clipping planes state. More...
 
virtual void updateSelection (const Standard_Integer theMode)
 
- Protected Member Functions inherited from PrsMgr_PresentableObject
 PrsMgr_PresentableObject (const PrsMgr_TypeOfPresentation3d aTypeOfPresentation3d=PrsMgr_TOP_AllView)
 
virtual ~PrsMgr_PresentableObject ()
 
virtual void Compute (const Handle< PrsMgr_PresentationManager3d > &aPresentationManager, const Handle< Prs3d_Presentation > &aPresentation, const Standard_Integer aMode)
 Calculates the 3D view aPresentation and its updates. The latter are managed by aPresentationManager. aPresentableObject has the display mode aMode; this has the default value of 0, that is, the wireframe display mode. More...
 
virtual void Compute (const Handle< Prs3d_Projector > &aProjector, const Handle< Prs3d_Presentation > &aPresentation)
 Calculates the 3D view aPresentation and its updates. The latter are managed by aPresentationManager. Each of the views in the viewer and every modification such as rotation, for example, entails recalculation. It must be redefined to implement hidden line removal for the object. The user never calls this method himself. This is done via the InteractiveContext object and is dependent on the point of view from which the object is displayed. More...
 
virtual void Compute (const Handle< Prs3d_Projector > &aProjector, const Handle< Geom_Transformation > &aTrsf, const Handle< Prs3d_Presentation > &aPresentation)
 Calculates the 3D view aPresentation and its updates. The latter are managed by aPresentationManager. A point of view is provided by the projector aProjector, and the geometric transformation which has transformed associated presentable objects is specified by aTrsf. This function is to be used in case where a hidden line removal display cannot be calculated automatically. This occurs when associated presentable objects have been transformed geometrically, but not translated. Warning The transformation aTrsf must be applied to the object before computation. More...
 
Standard_Boolean UpdatePresentations (Standard_Boolean theToIncludeHidden=Standard_False)
 Recomputes invalidated presentations of the object. More...
 
void Update (Standard_Boolean theToIncludeHidden=Standard_False)
 Recomputes all presentations of the object. More...
 
void Update (Standard_Integer theMode, Standard_Boolean theToClearOther)
 Recomputes the presentation in the given mode. More...
 
virtual void Fill (const Handle< PrsMgr_PresentationManager > &aPresentationManager, const Handle< PrsMgr_Presentation > &aPresentation, const Standard_Integer aMode)
 High-level interface for controlling polygon offsets. More...
 
virtual void SetCombinedParentTransform (const Handle< Geom_Transformation > &theTrsf)
 Sets myCombinedParentTransform to theTransformation. Thus object receives transformation from parent node and able to derive its own. More...
 
virtual void setLocalTransformation (const Handle< Geom_Transformation > &theTransformation)
 Sets local transformation to theTransformation. More...
 
void recomputeComputed () const
 Recompute computed (HLR) presentations (when view is in computed mode). More...
 

Static Protected Member Functions

Static auxilliary methods for geometry extraction
static Standard_Boolean CircleFromPlanarFace (const TopoDS_Face &theFace, Handle< Geom_Curve > &theCurve, gp_Pnt &theFirstPoint, gp_Pnt &theLastPoint)
 If it is possible extracts circle from planar face. More...
 
static Standard_Boolean CircleFromEdge (const TopoDS_Edge &theEdge, gp_Circ &theCircle, gp_Pnt &theFirstPoint, gp_Pnt &theLastPoint)
 If it is possible extracts circle from the edge. More...
 

Protected Attributes

Selection geometry
struct AIS_Dimension::SelectionGeometry mySelectionGeom
 Sensitive point tolerance for 2d text selection. More...
 
Standard_Real mySelToleranceForText2d
 Sensitive point tolerance for 2d text selection. More...
 
Value properties
ValueType myValueType
 type of value (computed or user-defined) More...
 
Standard_Real myCustomValue
 type of value (computed or user-defined) More...
 
TCollection_ExtendedString myCustomStringValue
 Value of the dimension (computed or user-defined). More...
 
Fixed text position properties
gp_Pnt myFixedTextPosition
 Stores text position fixed by user. More...
 
Standard_Boolean myIsTextPositionFixed
 Is the text label position fixed by user. More...
 
Units properties
Standard_ExtCharacter mySpecialSymbol
 Special symbol. More...
 
AIS_DisplaySpecialSymbol myDisplaySpecialSymbol
 Special symbol display options. More...
 
- Protected Attributes inherited from AIS_InteractiveObject
AIS_InteractiveContextmyCTXPtr
 
Handle< Standard_TransientmyOwner
 
Standard_ShortReal myOwnWidth
 
Aspect_TypeOfFacingModel myCurrentFacingModel
 
Standard_Boolean myInfiniteState
 
Standard_Boolean hasOwnColor
 
Standard_Boolean hasOwnMaterial
 
- Protected Attributes inherited from SelectMgr_SelectableObject
SelectMgr_SequenceOfSelection myselections
 
Handle< Prs3d_PresentationmySelectionPrs
 
Handle< Prs3d_PresentationmyHilightPrs
 
Standard_Boolean myAutoHilight
 
- Protected Attributes inherited from PrsMgr_PresentableObject
PrsMgr_Presentations myPresentations
 
Handle< Graphic3d_SequenceOfHClipPlanemyClipPlanes
 
Handle< Prs3d_DrawermyDrawer
 
Handle< Prs3d_DrawermyHilightDrawer
 
Handle< Prs3d_DrawermyDynHilightDrawer
 
PrsMgr_TypeOfPresentation3d myTypeOfPresentation3d
 
Standard_Boolean myIsMutable
 
Standard_Boolean myHasOwnPresentations
 

Geometrical properties

GeometryType myGeometryType
 defines type of shapes on which the dimension is to be built. More...
 
gp_Pln myPlane
 Plane where dimension will be built (computed or user defined). More...
 
Standard_Boolean myIsPlaneCustom
 Is plane defined by user (otherwise it will be computed automatically). More...
 
Standard_Real myFlyout
 Flyout distance. More...
 
Standard_Boolean myIsGeometryValid
 Is dimension geometry properly defined. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from Standard_Transient
static const char * get_type_name ()
 Returns a type descriptor about this object. More...
 
static const opencascade::handle< Standard_Type > & get_type_descriptor ()
 Returns type descriptor of Standard_Transient class. More...
 

Detailed Description

AIS_Dimension is a base class for 2D presentations of linear (length, diameter, radius) and angular dimensions.

The dimensions provide measurement of quantities, such as lengths or plane angles. The measurement of dimension "value" is done in model space "as is". These "value" are said to be represented in "model units", which can be specified by user. During the display the measured value converted from "model units" to "display units". The display and model units are stored in common Prs3d_Drawer (drawer of the context) to share it between all dimensions. The specified by user units are stored in the dimension's drawer.

As a drawing, the dimension is composed from the following components:

 Linear dimensions:
 extension
  line                                     arrow
      -->|------- main dimension line -------|<--
         |                                   |
         |flyout                       flyout|
         |                                   |
         +-----------------------------------+
attachment                                attachment
 point                                       point
 Angular dimensions:
                 extension
                    line
                       -->|+++++
                    arrow |     +++
                          |        90(deg) - main dimension line
                   flyout |         +++
                          |           +
                          o---flyout---
                        center         ^ 
                        point          | extension
                                         line

Being a 2D drawings, the dimensions are created on imaginary plane, called "dimension plane", which can be thought of as reference system of axes (X,Y,N) for constructing the presentation.

The role of axes of the dimension plane is to guide you through the encapsualted automations of presentation building to help you understand how is the presentation will look and how it will be oriented in model space during construction.

Orientation of dimension line in model space relatively to the base shapes is defined with the flyouts. Flyouts specify length of flyout lines and their orientation relatively to the attachment points on the working plane. For linear dimensions: Direction of flyouts is specified with direction of main dimension line (vector from the first attachment to the second attachment) and the normal of the dimension plane. Positive direction of flyouts is defined by vector multiplication: AttachVector * PlaneNormal. For angular dimensions: Flyouts are defined by vectors from the center point to the attachment points. These vectors directions are supposed to be the positive directions of flyouts. Negative flyouts directions means that these vectors should be reversed (and dimension will be built out of the angle constructed with center and two attach points).

The dimension plane can be constructed automatically by application (where possible, it depends on the measured geometry). It can be also set by user. However, if the user-defined plane does not fit the geometry of the dimension (attach points do not belong to it), the dimension could not be built. If it is not possible to compute automatic plane (for example, in case of length between two points) the user is supposed to specify the custom plane.

Since the dimensions feature automated construction procedures from an arbitrary shapes, the interfaces to check the validness are also implemented. Once the measured geometry is specified, the one can inquire the validness status by calling "IsValid()" method. If the result is TRUE, then all of public parameters should be pre-computed and ready. The presentation should be also computable. Otherwise, the parameters may return invalid values. In this case, the presentation will not be computed and displayed.

The dimension support two local selection modes: main dimension line selection and text label selection. These modes can be used to develop interactive modification of dimension presentations. The component highlighting in these selection modes is provided by AIS_DimensionOwner class. Please note that selection is unavailable until the presentation is computed.

The specific drawing attributes are controlled through Prs3d_DimensionAspect. The one can change color, arrows, text and arrow style and specify positioning of value label by setting corresponding values to the aspect.

Such set of parameters that consists of:

Member Enumeration Documentation

◆ ComputeMode

Specifies supported presentation compute modes. Used to compute only parts of presentation for advanced highlighting.

Enumerator
ComputeMode_All 

"0" is reserved as neutral mode

ComputeMode_Line 

corresponds to selection mode

ComputeMode_Text 

corresponds to selection mode

◆ GeometryType

Geometry type defines type of shapes on which the dimension is to be built. Some type of geometry allows automatic plane computing and can be built without user-defined plane Another types can't be built without user-defined plane.

Enumerator
GeometryType_UndefShapes 
GeometryType_Edge 
GeometryType_Face 
GeometryType_Points 
GeometryType_Edges 
GeometryType_Faces 
GeometryType_EdgeFace 
GeometryType_EdgeVertex 

◆ LabelPosition

Specifies supported at base level horizontal and vertical label positions for drawing extension lines and centered text.

Enumerator
LabelPosition_None 
LabelPosition_Left 
LabelPosition_Right 
LabelPosition_HCenter 
LabelPosition_HMask 
LabelPosition_Above 
LabelPosition_Below 
LabelPosition_VCenter 
LabelPosition_VMask 

◆ ValueType

enum AIS_Dimension::ValueType
protected
Enumerator
ValueType_Computed 
ValueType_CustomReal 
ValueType_CustomText 

Constructor & Destructor Documentation

◆ AIS_Dimension()

AIS_Dimension::AIS_Dimension ( const AIS_KindOfDimension  theType)

Constructor with default parameters values.

Parameters
theType[in] the type of dimension.

Member Function Documentation

◆ AcceptDisplayMode()

virtual Standard_Boolean AIS_Dimension::AcceptDisplayMode ( const Standard_Integer  theMode) const
inlineoverridevirtual

Returns true if the class of objects accepts the display mode theMode. The interactive context can have a default mode of representation for the set of Interactive Objects. This mode may not be accepted by object.

Reimplemented from AIS_InteractiveObject.

◆ AdjustParametersForLinear()

Standard_Boolean AIS_Dimension::AdjustParametersForLinear ( const gp_Pnt theTextPos,
const gp_Pnt theFirstPoint,
const gp_Pnt theSecondPoint,
Standard_Real theExtensionSize,
Prs3d_DimensionTextHorizontalPosition theAlignment,
Standard_Real theFlyout,
gp_Pln thePlane,
Standard_Boolean theIsPlaneOld 
) const
protected

Adjusts aspect parameters according the text position: extension size, vertical text alignment and flyout.

Parameters
theTextPos[in] the user defined 3d point of text position
theFirstPoint[in] the first point of linear measurement.
theSecondPoint[in] the second point of linear measurement.
theExtensionSize[out] the adjusted extension size
theAlignment[out] the horizontal label alignment.
theFlyout[out] the adjusted value of flyout.
thePlane[out] the new plane that contains theTextPos and attachment points.
theIsPlaneOld[out] shows if new plane is computed.

◆ CheckPlane()

virtual Standard_Boolean AIS_Dimension::CheckPlane ( const gp_Pln ) const
inlineprotectedvirtual

Override this method to check if user-defined plane is valid for the dimension geometry.

Parameters
thePlane[in] the working plane for positioning every dimension in the application.
Returns
true is the plane is suitable for building dimension with computed dimension geometry.

Reimplemented in AIS_AngleDimension, AIS_LengthDimension, AIS_DiameterDimension, and AIS_RadiusDimension.

◆ CircleFromEdge()

static Standard_Boolean AIS_Dimension::CircleFromEdge ( const TopoDS_Edge theEdge,
gp_Circ theCircle,
gp_Pnt theFirstPoint,
gp_Pnt theLastPoint 
)
staticprotected

If it is possible extracts circle from the edge.

Parameters
theEdge[in] input edge to extract circle from
theCircle[out] circle
theFirstPoint[out] the point of the first parameter of the circlular curve
theSecondPoint[out] the point of the last parameter of the circlular curve
Returns
TRUE in case of successful circle extraction.

◆ CircleFromPlanarFace()

static Standard_Boolean AIS_Dimension::CircleFromPlanarFace ( const TopoDS_Face theFace,
Handle< Geom_Curve > &  theCurve,
gp_Pnt theFirstPoint,
gp_Pnt theLastPoint 
)
staticprotected

If it is possible extracts circle from planar face.

Parameters
theFace[in] the planar face
theCurve[out] the circular curve
theFirstPoint[out] the point of the first parameter of the circlular curve
theSecondPoint[out] the point of the last parameter of the circlular curve
Returns
TRUE in case of successful circle extraction

◆ ComputeFlyoutLinePoints()

virtual void AIS_Dimension::ComputeFlyoutLinePoints ( const gp_Pnt theFirstPoint,
const gp_Pnt theSecondPoint,
gp_Pnt theLineBegPoint,
gp_Pnt theLineEndPoint 
)
protectedvirtual

Computes points bounded the flyout line for linear dimension.

Parameters
theFirstPoint[in] the first attach point of linear dimension.
theSecondPoint[in] the second attach point of linear dimension.
theLineBegPoint[out] the first attach point of linear dimension.
theLineEndPoint[out] the second attach point of linear dimension.

Reimplemented in AIS_LengthDimension.

◆ ComputeFlyoutSelection()

virtual void AIS_Dimension::ComputeFlyoutSelection ( const Handle< SelectMgr_Selection > &  ,
const Handle< SelectMgr_EntityOwner > &   
)
inlineprotectedvirtual

Override this method to compute selection primitives for flyout lines (if the dimension provides it). This callback is a only a part of base selection computation routine.

Reimplemented in AIS_AngleDimension, AIS_LengthDimension, and AIS_DiameterDimension.

◆ ComputeLinearFlyouts()

void AIS_Dimension::ComputeLinearFlyouts ( const Handle< SelectMgr_Selection > &  theSelection,
const Handle< SelectMgr_EntityOwner > &  theOwner,
const gp_Pnt theFirstPoint,
const gp_Pnt theSecondPoint 
)
protected

Compute selection sensitives for linear dimension flyout lines (length, diameter, radius). Please note that this method uses base dimension properties: working plane and flyout length.

Parameters
theSelection[in] the selection structure to fill with selection primitives.
theOwner[in] the selection entity owner.
theFirstPoint[in] the first attach point of linear dimension.
theSecondPoint[in] the second attach point of linear dimension.

◆ ComputeSelection()

virtual void AIS_Dimension::ComputeSelection ( const Handle< SelectMgr_Selection > &  theSelection,
const Standard_Integer  theMode 
)
overrideprotectedvirtual

Base procedure of computing selection (based on selection geometry data).

Parameters
theSelection[in] the selection structure to will with primitives.
theMode[in] the selection mode.

Implements SelectMgr_SelectableObject.

◆ ComputeValue()

virtual Standard_Real AIS_Dimension::ComputeValue ( ) const
inlineprotectedvirtual

Override this method to computed value of dimension.

Returns
value from the measured geometry.

Reimplemented in AIS_AngleDimension, AIS_LengthDimension, AIS_DiameterDimension, and AIS_RadiusDimension.

◆ DimensionAspect()

Handle< Prs3d_DimensionAspect > AIS_Dimension::DimensionAspect ( ) const
inline

Gets the dimension aspect from AIS object drawer. Dimension aspect contains aspects of line, text and arrows for dimension presentation.

◆ DisplaySpecialSymbol()

AIS_DisplaySpecialSymbol AIS_Dimension::DisplaySpecialSymbol ( ) const
inline
Returns
dimension special symbol display options.

◆ DrawArrow()

void AIS_Dimension::DrawArrow ( const Handle< Prs3d_Presentation > &  thePresentation,
const gp_Pnt theLocation,
const gp_Dir theDirection 
)
protected

Performs drawing of 2d or 3d arrows on the working plane.

Parameters
theLocation[in] the location of the arrow tip.
theDirection[in] the direction from the tip to the bottom of the arrow.

◆ DrawExtension()

void AIS_Dimension::DrawExtension ( const Handle< Prs3d_Presentation > &  thePresentation,
const Standard_Real  theExtensionSize,
const gp_Pnt theExtensionStart,
const gp_Dir theExtensionDir,
const TCollection_ExtendedString theLabelString,
const Standard_Real  theLabelWidth,
const Standard_Integer  theMode,
const Standard_Integer  theLabelPosition 
)
protected

Performs computing of dimension linear extension with text.

Parameters
thePresentation[in] the presentation to fill with graphical primitives.
theExtensionSize[in] the size of extension line.
theExtensionStart[in] the point where extension line connects to dimension.
theExtensionDir[in] the direction of extension line.
theLabelString[in] the string with value.
theLabelWidth[in] the geometrical width computed for value string.
theMode[in] the display mode.
theLabelPosition[in] position flags for the text label.

◆ DrawLinearDimension()

void AIS_Dimension::DrawLinearDimension ( const Handle< Prs3d_Presentation > &  thePresentation,
const Standard_Integer  theMode,
const gp_Pnt theFirstPoint,
const gp_Pnt theSecondPoint,
const Standard_Boolean  theIsOneSide = Standard_False 
)
protected

Performs computing of linear dimension (for length, diameter, radius and so on). Please note that this method uses base dimension properties, like working plane flyout length, drawer attributes.

Parameters
thePresentation[in] the presentation to fill with primitives.
theMode[in] the presentation compute mode.
theFirstPoint[in] the first attach point of linear dimension.
theSecondPoint[in] the second attach point of linear dimension.
theIsOneSide[in] specifies whether the dimension has only one flyout line.

◆ drawText()

void AIS_Dimension::drawText ( const Handle< Prs3d_Presentation > &  thePresentation,
const gp_Pnt theTextPos,
const gp_Dir theTextDir,
const TCollection_ExtendedString theText,
const Standard_Integer  theLabelPosition 
)
protected

Performs drawing of 2d or 3d text on the working plane.

Parameters
theTextPos[in] the position of the text label.
theTestDir[in] the direction of the text label.
theText[in] the text label string.
theLabelPosition[in] the text label vertical and horizontal positioning option respectively to the main dimension line.
Returns
text width relative to the dimension working plane. For 2d text this value will be zero.

◆ FitTextAlignmentForLinear()

void AIS_Dimension::FitTextAlignmentForLinear ( const gp_Pnt theFirstPoint,
const gp_Pnt theSecondPoint,
const Standard_Boolean  theIsOneSide,
const Prs3d_DimensionTextHorizontalPosition theHorizontalTextPos,
Standard_Integer theLabelPosition,
Standard_Boolean theIsArrowsExternal 
) const
protected

Fits text alignment relatively to the dimension line.

Parameters
theFirstPoint[in] the first attachment point.
theSecondPoint[in] the second attachment point.
theIsOneSide[in] is the arrow displayed only on the one side of the dimension.
theHorizontalTextPos[in] the text horizontal position (alignment).
theLabelPosition[out] the label position, contains bits that defines vertical and horizontal alignment. (for internal usage in count text position)
theIsArrowExternal[out] is the arrows external, if arrow orientation in the dimension aspect is Prs3d_DAO_Fit, it fits arrow orientation automatically.

◆ GetCustomValue()

const TCollection_ExtendedString& AIS_Dimension::GetCustomValue ( ) const

Gets user-defined dimension value.

Returns
dimension value string.

◆ GetDisplayUnits()

virtual const TCollection_AsciiString& AIS_Dimension::GetDisplayUnits ( ) const
virtual

◆ GetFlyout()

Standard_Real AIS_Dimension::GetFlyout ( ) const
inline
Returns
flyout value for dimension.

◆ GetGeometryType()

Standard_Integer AIS_Dimension::GetGeometryType ( ) const
inline

Geometry type defines type of shapes on which the dimension is to be built.

Returns
type of geometry on which the dimension will be built.

◆ GetModelUnits()

virtual const TCollection_AsciiString& AIS_Dimension::GetModelUnits ( ) const
virtual

◆ GetPlane()

const gp_Pln& AIS_Dimension::GetPlane ( ) const

Get the dimension plane in which the 2D dimension presentation is computed. By default, if plane is not defined by user, it is computed automatically after dimension geometry is computed. If computed dimension geometry (points) can't be placed on the user-defined plane, dimension geometry was set as invalid (validity flag is set to false) and dimension presentation will not be computed. If user-defined plane allow geometry placement on it, it will be used for computing of the dimension presentation.

Returns
dimension plane used for presentation computing.

◆ GetTextPosition()

virtual const gp_Pnt AIS_Dimension::GetTextPosition ( ) const
inlinevirtual

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

Reimplemented in AIS_AngleDimension, AIS_LengthDimension, AIS_DiameterDimension, and AIS_RadiusDimension.

◆ GetTextPositionForLinear()

gp_Pnt AIS_Dimension::GetTextPositionForLinear ( const gp_Pnt theFirstPoint,
const gp_Pnt theSecondPoint,
const Standard_Boolean  theIsOneSide = Standard_False 
) const
protected

Compute point of text position for dimension parameters for linear kinds of dimensions (length, radius, diameter).

◆ GetValue()

Standard_Real AIS_Dimension::GetValue ( ) const
inline

Gets dimension measurement value. If the value to display is not specified by user, then the dimension object is responsible to compute it on its own in model space coordinates.

Returns
the dimension value (in model units) which is used during display of the presentation.

◆ GetValueString()

TCollection_ExtendedString AIS_Dimension::GetValueString ( Standard_Real theWidth) const
protected

Get formatted value string and its model space width.

Parameters
theWidth[out] the model space with of the string.
Returns
formatted dimension value string.

◆ InitCircularDimension()

Standard_Boolean AIS_Dimension::InitCircularDimension ( const TopoDS_Shape theShape,
gp_Circ theCircle,
gp_Pnt theMiddleArcPoint,
Standard_Boolean theIsClosed 
)
protected

Performs initialization of circle and middle arc point from the passed shape which is assumed to contain circular geometry.

Parameters
theShape[in] the shape to explore.
theCircle[out] the circle geometry.
theMiddleArcPoint[out] the middle point of the arc.
theIsClosed[out] returns TRUE if the geometry is closed circle.
Returns
TRUE if the the circle is successfully got from the input shape.

◆ IsTextPositionCustom()

Standard_Boolean AIS_Dimension::IsTextPositionCustom ( ) const
inline
Returns
TRUE if text position is set by user with method SetTextPosition().

◆ IsValid()

virtual Standard_Boolean AIS_Dimension::IsValid ( ) const
inlinevirtual

Check that the input geometry for dimension is valid and the presentation can be successfully computed.

Returns
TRUE if dimension geometry is ok.

◆ KindOfDimension()

AIS_KindOfDimension AIS_Dimension::KindOfDimension ( ) const
inline
Returns
the kind of dimension.

◆ PointsForArrow()

void AIS_Dimension::PointsForArrow ( const gp_Pnt thePeakPnt,
const gp_Dir theDirection,
const gp_Dir thePlane,
const Standard_Real  theArrowLength,
const Standard_Real  theArrowAngle,
gp_Pnt theSidePnt1,
gp_Pnt theSidePnt2 
)
protected

Produce points for triangular arrow face.

Parameters
thePeakPnt[in] the arrow peak position.
theDirection[in] the arrow direction.
thePlane[in] the face plane.
theArrowLength[in] the length of arrow.
theArrowAngle[in] the angle of arrow.
theSidePnt1[out] the first side point.
theSidePnt2[out] the second side point.

◆ SelToleranceForText2d()

Standard_Real AIS_Dimension::SelToleranceForText2d ( ) const
inline

Returns selection tolerance for text2d: For 2d text selection detection sensitive point with tolerance is used Important! Only for 2d text.

◆ SetComputedValue()

void AIS_Dimension::SetComputedValue ( )
inline

Sets computed dimension value. Resets custom value mode if it was set.

◆ SetCustomPlane()

virtual void AIS_Dimension::SetCustomPlane ( const gp_Pln thePlane)
virtual

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.

◆ SetCustomValue() [1/2]

void AIS_Dimension::SetCustomValue ( const Standard_Real  theValue)

Sets user-defined dimension value. The user-defined dimension value is specified in model space, and affect by unit conversion during the display.

Parameters
theValue[in] the user-defined value to display.

◆ SetCustomValue() [2/2]

void AIS_Dimension::SetCustomValue ( const TCollection_ExtendedString theValue)

Sets user-defined dimension value. Unit conversion during the display is not applyed.

Parameters
theValue[in] the user-defined value to display.

◆ SetDimensionAspect()

void AIS_Dimension::SetDimensionAspect ( const Handle< Prs3d_DimensionAspect > &  theDimensionAspect)

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

◆ SetDisplaySpecialSymbol()

void AIS_Dimension::SetDisplaySpecialSymbol ( const AIS_DisplaySpecialSymbol  theDisplaySpecSymbol)

Specifies whether to display special symbol or not.

◆ SetDisplayUnits()

virtual void AIS_Dimension::SetDisplayUnits ( const TCollection_AsciiString )
inlinevirtual

◆ SetFlyout()

void AIS_Dimension::SetFlyout ( const Standard_Real  theFlyout)

Sets flyout value for dimension.

◆ SetModelUnits()

virtual void AIS_Dimension::SetModelUnits ( const TCollection_AsciiString )
inlinevirtual

◆ SetSelToleranceForText2d()

void AIS_Dimension::SetSelToleranceForText2d ( const Standard_Real  theTol)

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.

◆ SetSpecialSymbol()

void AIS_Dimension::SetSpecialSymbol ( const Standard_ExtCharacter  theSpecialSymbol)

Specifies special symbol.

◆ SetTextPosition()

virtual void AIS_Dimension::SetTextPosition ( const gp_Pnt )
inlinevirtual

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.

Parameters
theTextPos[in] the point of text position.

Reimplemented in AIS_AngleDimension, AIS_LengthDimension, AIS_DiameterDimension, and AIS_RadiusDimension.

◆ SpecialSymbol()

Standard_ExtCharacter AIS_Dimension::SpecialSymbol ( ) const
inline
Returns
special symbol.

◆ Type()

virtual AIS_KindOfInteractive AIS_Dimension::Type ( ) const
inlineoverridevirtual
Returns
the kind of interactive.

Reimplemented from AIS_InteractiveObject.

◆ UnsetCustomPlane()

void AIS_Dimension::UnsetCustomPlane ( )
inline

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

◆ UnsetFixedTextPosition()

void AIS_Dimension::UnsetFixedTextPosition ( )

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

◆ ValueToDisplayUnits()

Standard_Real AIS_Dimension::ValueToDisplayUnits ( ) const
protected

Field Documentation

◆ myCustomStringValue

TCollection_ExtendedString AIS_Dimension::myCustomStringValue
protected

Value of the dimension (computed or user-defined).

◆ myCustomValue

Standard_Real AIS_Dimension::myCustomValue
protected

type of value (computed or user-defined)

Value of the dimension (computed or user-defined).

◆ myDisplaySpecialSymbol

AIS_DisplaySpecialSymbol AIS_Dimension::myDisplaySpecialSymbol
protected

Special symbol display options.

◆ myFixedTextPosition

gp_Pnt AIS_Dimension::myFixedTextPosition
protected

Stores text position fixed by user.

◆ myFlyout

Standard_Real AIS_Dimension::myFlyout
protected

Flyout distance.

◆ myGeometryType

GeometryType AIS_Dimension::myGeometryType
protected

defines type of shapes on which the dimension is to be built.

◆ myIsGeometryValid

Standard_Boolean AIS_Dimension::myIsGeometryValid
protected

Is dimension geometry properly defined.

◆ myIsPlaneCustom

Standard_Boolean AIS_Dimension::myIsPlaneCustom
protected

Is plane defined by user (otherwise it will be computed automatically).

◆ myIsTextPositionFixed

Standard_Boolean AIS_Dimension::myIsTextPositionFixed
protected

Is the text label position fixed by user.

◆ myPlane

gp_Pln AIS_Dimension::myPlane
protected

Plane where dimension will be built (computed or user defined).

◆ mySelectionGeom

struct AIS_Dimension::SelectionGeometry AIS_Dimension::mySelectionGeom
protected

Sensitive point tolerance for 2d text selection.

◆ mySelToleranceForText2d

Standard_Real AIS_Dimension::mySelToleranceForText2d
protected

Sensitive point tolerance for 2d text selection.

◆ mySpecialSymbol

Standard_ExtCharacter AIS_Dimension::mySpecialSymbol
protected

Special symbol.

◆ myValueType

ValueType AIS_Dimension::myValueType
protected

type of value (computed or user-defined)

Value of the dimension (computed or user-defined).


The documentation for this class was generated from the following file: