#include <AIS_InteractiveObject.hxx>
#include <gp_Pnt.hxx>
+#include <gp_Ax2.hxx>
#include <Graphic3d_VerticalTextAlignment.hxx>
#include <Graphic3d_HorizontalTextAlignment.hxx>
#include <Font_FontAspect.hxx>
//! Default constructor
Standard_EXPORT AIS_TextLabel();
+ //! Return TRUE for supported display mode.
+ virtual Standard_Boolean AcceptDisplayMode (const Standard_Integer theMode) const Standard_OVERRIDE { return theMode == 0; }
+
//! Setup color of entire text.
Standard_EXPORT virtual void SetColor (const Quantity_Color& theColor) Standard_OVERRIDE;
- //! Setup color of entire text.
- Standard_EXPORT virtual void SetColor (const Quantity_NameOfColor theColor) Standard_OVERRIDE;
+ //! Setup transparency within [0, 1] range.
+ Standard_EXPORT virtual void SetTransparency (const Standard_Real theValue) Standard_OVERRIDE;
+
+ //! Removes the transparency setting.
+ virtual void UnsetTransparency() Standard_OVERRIDE { SetTransparency (0.0); }
+
+ //! Material has no effect for text label.
+ virtual void SetMaterial (const Graphic3d_MaterialAspect& ) Standard_OVERRIDE {}
//! Setup text.
Standard_EXPORT void SetText (const TCollection_ExtendedString& theText);
//! Setup font.
Standard_EXPORT void SetFont (Standard_CString theFont);
-private:
+ //! Setup label orientation in the model 3D space.
+ Standard_EXPORT void SetOrientation3D (const gp_Ax2& theOrientation);
+
+ //! Reset label orientation in the model 3D space.
+ Standard_EXPORT void UnsetOrientation3D ();
+
+ //! Returns position.
+ Standard_EXPORT const gp_Pnt& Position() const;
+
+ //! Returns the label text.
+ const TCollection_ExtendedString& Text() const { return myText; }
+
+ //! Returns the font of the label text.
+ Standard_EXPORT const TCollection_AsciiString& FontName() const;
+
+ //! Returns the font aspect of the label text.
+ Standard_EXPORT Font_FontAspect FontAspect() const;
+
+ //! Returns label orientation in the model 3D space.
+ Standard_EXPORT const gp_Ax2& Orientation3D() const;
+
+ //! Returns true if the current text placement mode uses text orientation in the model 3D space.
+ Standard_EXPORT Standard_Boolean HasOrientation3D() const;
+
+ Standard_EXPORT void SetFlipping (const Standard_Boolean theIsFlipping);
+
+ Standard_EXPORT Standard_Boolean HasFlipping() const;
+
+ //! Returns flag if text uses position as point of attach
+ Standard_Boolean HasOwnAnchorPoint() const { return myHasOwnAnchorPoint; }
+
+ //! Set flag if text uses position as point of attach
+ void SetOwnAnchorPoint (const Standard_Boolean theOwnAnchorPoint) { myHasOwnAnchorPoint = theOwnAnchorPoint; }
+
+ //! Define the display type of the text.
+ //!
+ //! TODT_NORMAL Default display. Text only.
+ //! TODT_SUBTITLE There is a subtitle under the text.
+ //! TODT_DEKALE The text is displayed with a 3D style.
+ //! TODT_BLEND The text is displayed in XOR.
+ //! TODT_DIMENSION Dimension line under text will be invisible.
+ Standard_EXPORT void SetDisplayType (const Aspect_TypeOfDisplayText theDisplayType);
+
+ //! Modifies the colour of the subtitle for the TODT_SUBTITLE TextDisplayType
+ //! and the colour of backgroubd for the TODT_DEKALE TextDisplayType.
+ Standard_EXPORT void SetColorSubTitle (const Quantity_Color& theColor);
+
+protected:
//! Compute
Standard_EXPORT virtual void Compute (const Handle(PrsMgr_PresentationManager3d)& thePresentationManager,
Standard_EXPORT virtual void ComputeSelection (const Handle(SelectMgr_Selection)& theSelection,
const Standard_Integer theMode) Standard_OVERRIDE;
+ //! Calculate label center, width and height
+ Standard_EXPORT Standard_Boolean calculateLabelParams (const gp_Pnt& thePosition,
+ gp_Pnt& theCenterOfLabel,
+ Standard_Real& theWidth,
+ Standard_Real& theHeight) const;
+
+ //! Calculate label transformation
+ Standard_EXPORT gp_Trsf calculateLabelTrsf (const gp_Pnt& thePosition,
+ gp_Pnt& theCenterOfLabel) const;
+
protected:
TCollection_ExtendedString myText;
- gp_Pnt myPosition;
- TCollection_AsciiString myFont;
- Font_FontAspect myFontAspect;
+ gp_Ax2 myOrientation3D;
+ Standard_Boolean myHasOrientation3D;
+ Standard_Boolean myHasOwnAnchorPoint;
+ Standard_Boolean myHasFlipping;
public:
//! CASCADE RTTI
- DEFINE_STANDARD_RTTI(AIS_TextLabel);
+ DEFINE_STANDARD_RTTIEXT(AIS_TextLabel,AIS_InteractiveObject)
};