0031193: Visualization - OpenGl_Flipping wrong text position if local transformation set
[occt.git] / src / AIS / AIS_TextLabel.cxx
index cd99f68..6fb02a2 100644 (file)
@@ -37,9 +37,10 @@ IMPLEMENT_STANDARD_RTTIEXT(AIS_TextLabel,AIS_InteractiveObject)
 //purpose  :
 //=======================================================================
 AIS_TextLabel::AIS_TextLabel()
-: myText             ("?"),
-  myHasOrientation3D (Standard_False),
-  myHasFlipping      (Standard_False)
+: myText              ("?"),
+  myHasOrientation3D  (Standard_False),
+  myHasOwnAnchorPoint (Standard_True),
+  myHasFlipping       (Standard_False)
 {
   myDrawer->SetTextAspect (new Prs3d_TextAspect());
   myDrawer->SetDisplayMode (0);
@@ -322,7 +323,12 @@ void AIS_TextLabel::Compute (const Handle(PrsMgr_PresentationManager3d)& /*thePr
 
         gp_Ax2 anOrientation = myOrientation3D;
         anOrientation.SetLocation (aPosition);
-        Prs3d_Text::Draw (Prs3d_Root::CurrentGroup (thePrs), anAsp, myText, myOrientation3D, !myHasFlipping);
+        Standard_Boolean aHasOwnAnchor = HasOwnAnchorPoint();
+        if (myHasFlipping)
+        {
+          aHasOwnAnchor = Standard_False; // always not using own anchor if flipping
+        }
+        Prs3d_Text::Draw (Prs3d_Root::CurrentGroup (thePrs), anAsp, myText, myOrientation3D, aHasOwnAnchor);
         if (myHasFlipping && isInit)
         {
           Prs3d_Root::CurrentGroup (thePrs)->SetFlippingOptions (Standard_False, gp_Ax2());