From 78dcd27e1de18802201d2b9f32efde639d66fee6 Mon Sep 17 00:00:00 2001 From: Branislav Stojkovic Date: Wed, 20 Mar 2019 20:06:38 +0100 Subject: [PATCH] Some schematic symbols (transistors, potentiometer...) get into bad state when rotated and flipped at the same time --- .../diylc/components/Abstract3LegSymbol.java | 34 +++++++++++------- diylc/diylc-swing/lib/diylc-core.jar | Bin 277492 -> 277492 bytes diylc/diylc-swing/library/main.jar | Bin 618171 -> 618236 bytes diylc/diylc-swing/update.xml | 4 +++ 4 files changed, 26 insertions(+), 12 deletions(-) diff --git a/diylc/diylc-library/src/org/diylc/components/Abstract3LegSymbol.java b/diylc/diylc-library/src/org/diylc/components/Abstract3LegSymbol.java index d9fb06f2..46b0f1e7 100644 --- a/diylc/diylc-library/src/org/diylc/components/Abstract3LegSymbol.java +++ b/diylc/diylc-library/src/org/diylc/components/Abstract3LegSymbol.java @@ -104,8 +104,6 @@ public abstract class Abstract3LegSymbol extends AbstractComponent { } g2d.setColor(finalColor); - // Draw transistor - if (this.body == null) { this.body = getBody(); applyOrientation(this.body); @@ -164,7 +162,7 @@ public abstract class Abstract3LegSymbol extends AbstractComponent { if (getMoveLabel()) { drawCenteredText(g2d, label, controlPoints[3].x, controlPoints[3].y, flip == SymbolFlipping.X ? HorizontalAlignment.RIGHT - : HorizontalAlignment.LEFT, VerticalAlignment.CENTER); + : HorizontalAlignment.CENTER, VerticalAlignment.CENTER); } else { drawCenteredText(g2d, label, getLabelX(shapeRect, textRect, fontMetrics, outlineMode), getLabelY(shapeRect, textRect, fontMetrics, outlineMode), flip == SymbolFlipping.X ? HorizontalAlignment.RIGHT @@ -194,22 +192,22 @@ public abstract class Abstract3LegSymbol extends AbstractComponent { protected void updateControlPoints() { int pinSpacing = (int) PIN_SPACING.convertToPixels(); - Point[] controlPoints = getNewControlPoints(); - // Update control points. + Point[] controlPoints = getNewControlPoints(); + int x = controlPoints[0].x; int y = controlPoints[0].y; - - int f = flip == SymbolFlipping.X ? -1 : 1; - int d = flip == SymbolFlipping.X ? (int) PIN_SPACING.convertToPixels() / 2 : 0; - - controlPoints[1].x = x + f * pinSpacing * 2; + + // set default point positions + controlPoints[1].x = x + pinSpacing * 2; controlPoints[1].y = y - pinSpacing * 2; - controlPoints[2].x = x + f * pinSpacing * 2; + controlPoints[2].x = x + pinSpacing * 2; controlPoints[2].y = y + pinSpacing * 2; - controlPoints[3].x = x + f * (int) (PIN_SPACING.convertToPixels() * 1.5 + d); + controlPoints[3].x = x + (int) (PIN_SPACING.convertToPixels() * 2); + controlPoints[3].y = y; + // apply rotation if needed if (getOrientation() != Orientation.DEFAULT) { Point first = controlPoints[0]; @@ -218,6 +216,18 @@ public abstract class Abstract3LegSymbol extends AbstractComponent { for (int i = 1; i < controlPoints.length; i++) { rotate.transform(controlPoints[i], controlPoints[i]); } + } + + // flip at the end + if (flip == SymbolFlipping.X) { + controlPoints[1].x = controlPoints[0].x - (controlPoints[1].x - controlPoints[0].x); + controlPoints[2].x = controlPoints[0].x - (controlPoints[2].x - controlPoints[0].x); + controlPoints[3].x = controlPoints[0].x - (controlPoints[3].x - controlPoints[0].x); + } + if (flip == SymbolFlipping.Y) { + controlPoints[1].y = controlPoints[0].y - (controlPoints[1].y - controlPoints[0].y); + controlPoints[2].y = controlPoints[0].y - (controlPoints[2].y - controlPoints[0].y); + controlPoints[3].y = controlPoints[0].y - (controlPoints[3].y - controlPoints[0].y); } } diff --git a/diylc/diylc-swing/lib/diylc-core.jar b/diylc/diylc-swing/lib/diylc-core.jar index 71a6474e15b0ce25bbaef38ee8d56971512aa81d..97907000df3490acb13f84ab6e311f2e0b9caad6 100644 GIT binary patch delta 4684 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 E4=3H@`Tzg` delta 4684 zcmY*bc|eub66Y*l7B81o;Ic1*fS`hGE&(bk3L>JYD7jEBnVQ*ZxmzizC0*^aP=VAI zeM!pG>+;f6%rY~>vedNYA)A5%Dxf0o%*^-C`-k7mZ)Sco=bZ1H%e^+|du`6f>0b>5`n?Kd3bGXsN=e=E2Q{a#^# z=#L7oKztIJj`itL$%yNs*8*Bx`u+m)wS6}t{c4OEu_!hWv7-NAOlywofb84x4@`k@KXa&GG$D1Y@MJ4m;z+|~&2!uBeFVLPrt zFtB7CHzgLooVB{>vq@%dW3yLS?pF5D9J_>n#euRA6#Q-H+U}4%qx@-XeB!`w$ZtJp zzyV4RnbALXm7%K+7t?Vx(&OaWwDhJM!x?vU^4 zG^U($N0CM6{Sh}^7$qTot?DF-?zr5He9@KbIK-lB^r?j2IEC^0znd_ArFuEW^J<vu3jou()F`OGReTeD(;Lq!(Bz8dqOrnFi<-{yHlpIk(l`Lv|~xJ1TAK=T6&g` zw6$(;W^=I6aG#w(<7_)~L*tJ}Y%&@NU2HrW>p5SBhJ%4Wi^d{*9)yO)$RilEJMPH) zB6G)?t4pt#4mVC)w7`>(M&^h&{}PS4{`?m-l7qPq8dF30YBc@~=gZNU9>tHK;oXnl zMZ*}!2ca=4k(XoBhe><}?o9q5{<6Rix7!&HueX_v&09<>F{%&OD_EMeN+WmG)+chK z_K%ULS!bp2Xsq9y%D+Ixlr;Vo8tQPjps_B4zk`PJSWX|_iX6S!-xK&S424bR8X702 z@{MR@P3MWIymkgR!QHlMGr281&06VfeiMkbbNE|uyRDA%dAuVSX-jw$ybIR2WqckQ zr7O8Q3&k8O-> zpfU6;zl6;_&+*g9{P6?tgL=lFcs7Qn{mk)4!MgAg?}5zQzw%=42v2|g(HTBV)H9Q< zHDBe?)+xX9cQK>pD&LL9#_QZ2<#ztXt=J&{AHETOv#hu7@)xN=D-Q?+W`&#h8JQdp z5$X!el5o+2RSP0@X7gYX4Ci4zJVXq~wb=JUdUf`}qycI*;wiw(HDU;$xmIKV&aM^kZ=ANXR*VEx`M#Q6om#(g zV(X~r#X151mudR};VINHrk=!Ks~4joe!5;{0lGD)VHD;zh{1rC1~C!vR)d%Zm~o46 z?=3M2e0f`B15Uh6e!1?mMv)8rkD&;79&3;rw}4?U(i z4V^Uigii8zbyDB9PTH5uC$#PlpNJ7qf8&YB102vr{F*K?3j7OQ7~kR{VH>y1m#~^G zCnSCho=oDyBq_Tr>eUg0qAX%X@E0~G8^!Kj?z)pDSwiq(oy)CqZ|f! z+ffb&>~E48fGbT@|E-QjC(@mu<2ENb8uIF#sIIRw<-eliF=sgv;?jlkvR$ZttBV{3 z{C{1je}7lPHLhy?iofPcbv@k(7r2rBzunY+sdzVcwOgi^(f;HGQM^>g+92v5 z7fk${!BnUA+gJNLSoVg+nnEa;8$!X75NduWgqkPyBz|>I`UrmPNuu7NYAAKN3PKgH z@Jk)rLseY)!^7y3d>p3gm0umEHc?@0FN&||MVIMfFEza4eZ%PzEe@yr|Af=!a*v=( zGbe)T4@S_XvX7)kVQ!?H3iW4nzh`fH6jt_@1=zQ@oC!EGiu}D%5?@4*XgM4B<4-Ki5(8BY&EXM|5UdH|_auE^lW4t%lc>MP0P4SZ0L^`V0G*H5K-&M=1Ia%ykj}AdAk8s;5b5k1B(whq DhJqh} diff --git a/diylc/diylc-swing/library/main.jar b/diylc/diylc-swing/library/main.jar index 6fc597c6dac245645d77b79cab04c5ae883527ed..111b958dbf8566d599df6a5043fd99b75af9e194 100644 GIT binary patch delta 16204 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 A2><{9 delta 16158 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 Scan "library" folder for any additional JAR files that may contain more components + + BUG_FIX + Some schematic symbols (transistors, potentiometer...) get into bad state when rotated and flipped at the same time + BUG_FIX Z-order of components sometimes gets wrong when importing a DIY file into another file