]> OCCT Git - occt-copy.git/commitdiff
Corrected text position for multi-line labels
authoraba <aba@opencascade.com>
Mon, 10 Aug 2015 16:47:48 +0000 (19:47 +0300)
committeraba <aba@opencascade.com>
Mon, 10 Aug 2015 16:47:48 +0000 (19:47 +0300)
src/AIS/AIS_Dimension.cxx
tests/bugs/vis/bug26507_2
tests/bugs/vis/bug26507_5 [new file with mode: 0644]

index dce54af8404bd81cb47aab0277a59bd8c134e99a..bc3b8ade5092753aecbbd4e1c74893a2cf5e610a 100755 (executable)
@@ -813,9 +813,11 @@ void AIS_Dimension::DrawExtension (const Handle(Prs3d_Presentation)& thePresenta
     if (hasLabel && myLeaderSegmentLength > 0 && myIsTextAligned)
     {
       gp_Lin aSegmentLine (anExtEnd, aTextDir);
-      Standard_Real aSegmentLength = (theLabelPosition & LabelPosition_VCenter) ? myLeaderSegmentLength : theLabelWidth + myLeaderSegmentLength;
+      Standard_Real aSegmentLength = !(theLabelPosition & LabelPosition_Above || theLabelPosition & LabelPosition_Below)
+        ? myLeaderSegmentLength : theLabelWidth + myLeaderSegmentLength;
       aSegmentPoint  = ElCLib::Value (aSegmentLength, aSegmentLine);
-      aTextPos = (theLabelPosition & LabelPosition_VCenter) ? aSegmentPoint : ElCLib::Value (myLeaderSegmentLength, aSegmentLine);
+      aTextPos = !(theLabelPosition & LabelPosition_Above || theLabelPosition & LabelPosition_Below)
+        ? aSegmentPoint : ElCLib::Value (myLeaderSegmentLength, aSegmentLine);
     }
 
     DrawText (thePresentation,
index cd28be0ebab5d3f0aa8a0d1f0b4f28e8dce2b752..d3e464b1b17a7aae5263ec036f767353aa621a45 100644 (file)
@@ -25,7 +25,7 @@ vdimension dim2 -length -plane xoy -shapes lengthP1 lengthP3 -text 3d -aligntext
 vdimension dim3 -length -plane xoy -shapes lengthP2 lengthP3 -text 3d -flyout -10 -aligntext 1.0 0.0 0.0 -segment 5 -label left
 
 # Text on the left side - it is aligned
-vdimension dim4 -length -plane xoy -shapes lengthP2 lengthP4 -text 3d -flyout -10 -aligntext 1.0 0.0 0.0 -segment 25 -label left
+vdimension dim4 -length -plane xoy -shapes lengthP2 lengthP4 -text 3d -flyout -10 -aligntext 1.0 0.0 0.0 -segment 25 -label right
 
 # Text on the left side - it is aligned
 vdimension dim5 -length -plane xoy -shapes lengthP4 lengthP3 -text 3d -flyout -10 -aligntext 1.0 0.0 0.0 -label left above -segment 10 
diff --git a/tests/bugs/vis/bug26507_5 b/tests/bugs/vis/bug26507_5
new file mode 100644 (file)
index 0000000..0d81a0a
--- /dev/null
@@ -0,0 +1,34 @@
+puts "================================================================"
+puts "CR26507"
+puts "Visualization - Improved presentations of dimensions"
+puts "================================================================"
+puts ""
+puts "User-defined orientation of text label"
+puts "Line segment aligned with text"
+
+#set anImage1 $imagedir/${casename}_1.png
+
+vinit Viewer1/View
+vbottom
+
+vpoint lengthP1 0 0 0
+vpoint lengthP2 100 0 0
+vpoint lengthP3 100 100 0
+vpoint lengthP4 0 100 0
+# Text in center - custom aligment does not taken into account
+#vdimension dim1 -length -plane xoy -shapes lengthP1 lengthP2 -text 3d -aligntext 1.0 0.0 0.0 -flyout -10
+
+# Text on the right side - it is aligned
+#vdimension dim2 -length -plane xoy -shapes lengthP1 lengthP3 -text 3d -aligntext 1.0 0.0 0.0 -segment 0 -label right
+
+# Text on the left side - it is aligned
+#vdimension dim3 -length -plane xoy -shapes lengthP2 lengthP3 -text 3d -flyout -10 -aligntext 1.0 0.0 0.0 -segment 5 -label left
+
+# Text on the left side - it is aligned
+vdimension dim4 -length -plane xoy -shapes lengthP4 lengthP1 -text 3d -valuetext "0.6\n1.58\nTHICKNESS" -flyout -10 -aligntext 1.0 0.0 0.0 -segment 10 -label right firstline
+
+# Text on the left side - it is aligned
+#vdimension dim5 -length -plane xoy -shapes lengthP4 lengthP3 -text 3d -flyout -10 -aligntext 1.0 0.0 0.0 -label left above -segment 10 
+vfit
+#finalize and dump
+set only_screen 1
\ No newline at end of file