Skip to content

Commit 174ff30

Browse files
committed
[svg] opt out very small pen moving in compact form
If relative position changes only by small value - ignore this change. Let exclude rounding effects for testing when compact SVG form created
1 parent 4591acd commit 174ff30

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

graf2d/postscript/src/TSVG.cxx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,8 @@
3434
Int_t TSVG::fgLineJoin = 0;
3535
Int_t TSVG::fgLineCap = 0;
3636

37+
const Double_t kEpsilon = 1e-9;
38+
3739
/** \class TSVG
3840
\ingroup PS
3941
@@ -468,6 +470,10 @@ void TSVG::DrawPolyLine(Int_t nn, TPoints *xy)
468470
iydi = YtoSVG(xy[i].GetY());
469471
ix = ixdi - ixd0;
470472
iy = iydi - iyd0;
473+
if (fCompact && (TMath::Abs(ix) < kEpsilon))
474+
ix = 0;
475+
if (fCompact && (TMath::Abs(iy) < kEpsilon))
476+
iy = 0;
471477
ixd0 = ixdi;
472478
iyd0 = iydi;
473479
if( ix && iy) {
@@ -538,6 +544,10 @@ void TSVG::DrawPolyLineNDC(Int_t nn, TPoints *xy)
538544
iydi = VtoSVG(xy[i].GetY());
539545
ix = ixdi - ixd0;
540546
iy = iydi - iyd0;
547+
if (fCompact && (TMath::Abs(ix) < kEpsilon))
548+
ix = 0;
549+
if (fCompact && (TMath::Abs(iy) < kEpsilon))
550+
iy = 0;
541551
ixd0 = ixdi;
542552
iyd0 = iydi;
543553
if( ix && iy) {
@@ -1442,6 +1452,10 @@ void TSVG::DrawPS(Int_t nn, Double_t *xw, Double_t *yw)
14421452
iydi = YtoSVG(yw[i]);
14431453
ix = ixdi - ixd0;
14441454
iy = iydi - iyd0;
1455+
if (fCompact && (TMath::Abs(ix) < kEpsilon))
1456+
ix = 0;
1457+
if (fCompact && (TMath::Abs(iy) < kEpsilon))
1458+
iy = 0;
14451459
ixd0 = ixdi;
14461460
iyd0 = iydi;
14471461
if( ix && iy) {

0 commit comments

Comments
 (0)