mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-10 17:22:09 +10:00
fix submini tube orientation
This commit is contained in:
@@ -134,7 +134,7 @@ public class SubminiTube extends AbstractTransparentComponent<String> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public VisibilityPolicy getControlPointVisibilityPolicy(int index) {
|
public VisibilityPolicy getControlPointVisibilityPolicy(int index) {
|
||||||
return VisibilityPolicy.ALWAYS;
|
return getFolded() ? VisibilityPolicy.ALWAYS : VisibilityPolicy.WHEN_SELECTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -166,18 +166,18 @@ public class SubminiTube extends AbstractTransparentComponent<String> {
|
|||||||
switch (orientation) {
|
switch (orientation) {
|
||||||
case DEFAULT:
|
case DEFAULT:
|
||||||
dx = 0;
|
dx = 0;
|
||||||
dy = leadSpacing;
|
dy = -leadSpacing;
|
||||||
break;
|
break;
|
||||||
case _90:
|
case _90:
|
||||||
dx = -leadSpacing;
|
dx = leadSpacing;
|
||||||
dy = 0;
|
dy = 0;
|
||||||
break;
|
break;
|
||||||
case _180:
|
case _180:
|
||||||
dx = 0;
|
dx = 0;
|
||||||
dy = -leadSpacing;
|
dy = leadSpacing;
|
||||||
break;
|
break;
|
||||||
case _270:
|
case _270:
|
||||||
dx = leadSpacing;
|
dx = -leadSpacing;
|
||||||
dy = 0;
|
dy = 0;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
@@ -191,33 +191,33 @@ public class SubminiTube extends AbstractTransparentComponent<String> {
|
|||||||
int centerY = (controlPoints[controlPoints.length - 2].y + y) / 2;
|
int centerY = (controlPoints[controlPoints.length - 2].y + y) / 2;
|
||||||
switch (orientation) {
|
switch (orientation) {
|
||||||
case DEFAULT:
|
case DEFAULT:
|
||||||
if (folded)
|
|
||||||
dx += length + leadLength + diameter / 2;
|
|
||||||
else
|
|
||||||
dx = -leadSpacing;
|
|
||||||
dy = 0;
|
|
||||||
break;
|
|
||||||
case _90:
|
|
||||||
dx = 0;
|
|
||||||
if (folded)
|
|
||||||
dy += length + leadLength + diameter / 2;
|
|
||||||
else
|
|
||||||
dy = -leadSpacing;
|
|
||||||
break;
|
|
||||||
case _180:
|
|
||||||
if (folded)
|
if (folded)
|
||||||
dx -= length + leadLength + diameter / 2;
|
dx -= length + leadLength + diameter / 2;
|
||||||
else
|
else
|
||||||
dx = leadSpacing;
|
dx = leadSpacing;
|
||||||
dy = 0;
|
dy = 0;
|
||||||
break;
|
break;
|
||||||
case _270:
|
case _90:
|
||||||
dx = 0;
|
dx = 0;
|
||||||
if (folded)
|
if (folded)
|
||||||
dy -= length + leadLength + diameter / 2;
|
dy -= length + leadLength + diameter / 2;
|
||||||
else
|
else
|
||||||
dy = leadSpacing;
|
dy = leadSpacing;
|
||||||
break;
|
break;
|
||||||
|
case _180:
|
||||||
|
if (folded)
|
||||||
|
dx += length + leadLength + diameter / 2;
|
||||||
|
else
|
||||||
|
dx = -leadSpacing;
|
||||||
|
dy = 0;
|
||||||
|
break;
|
||||||
|
case _270:
|
||||||
|
dx = 0;
|
||||||
|
if (folded)
|
||||||
|
dy += length + leadLength + diameter / 2;
|
||||||
|
else
|
||||||
|
dy = -leadSpacing;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
controlPoints[controlPoints.length - 1].setLocation(centerX + dx, centerY + dy);
|
controlPoints[controlPoints.length - 1].setLocation(centerX + dx, centerY + dy);
|
||||||
}
|
}
|
||||||
@@ -264,29 +264,29 @@ public class SubminiTube extends AbstractTransparentComponent<String> {
|
|||||||
if (folded) {
|
if (folded) {
|
||||||
switch (orientation) {
|
switch (orientation) {
|
||||||
case DEFAULT:
|
case DEFAULT:
|
||||||
body[0] = new Area(new RoundRectangle2D.Double(centerX + leadLength, centerY - diameter / 2,
|
|
||||||
length, diameter, edgeRadius, edgeRadius));
|
|
||||||
body[0].add(new Area(new RoundRectangle2D.Double(centerX + leadLength + length - diameter / 2, centerY - diameter / 8,
|
|
||||||
diameter, diameter / 4, diameter / 4, diameter / 4)));
|
|
||||||
break;
|
|
||||||
case _90:
|
|
||||||
body[0] = new Area(new RoundRectangle2D.Double(centerX - diameter / 2, centerY + leadLength,
|
|
||||||
diameter, length, edgeRadius, edgeRadius));
|
|
||||||
body[0].add(new Area(new RoundRectangle2D.Double(centerX - diameter / 8, centerY + leadLength + length - diameter / 2,
|
|
||||||
diameter / 4, diameter, diameter / 4, diameter / 4)));
|
|
||||||
break;
|
|
||||||
case _180:
|
|
||||||
body[0] = new Area(new RoundRectangle2D.Double(centerX - leadLength - length, centerY - diameter / 2,
|
body[0] = new Area(new RoundRectangle2D.Double(centerX - leadLength - length, centerY - diameter / 2,
|
||||||
length, diameter, edgeRadius, edgeRadius));
|
length, diameter, edgeRadius, edgeRadius));
|
||||||
body[0].add(new Area(new RoundRectangle2D.Double(centerX - leadLength - length - diameter / 2, centerY - diameter / 8,
|
body[0].add(new Area(new RoundRectangle2D.Double(centerX - leadLength - length - diameter / 2, centerY - diameter / 8,
|
||||||
diameter, diameter / 4, diameter / 4, diameter / 4)));
|
diameter, diameter / 4, diameter / 4, diameter / 4)));
|
||||||
break;
|
break;
|
||||||
case _270:
|
case _90:
|
||||||
body[0] = new Area(new RoundRectangle2D.Double(centerX - diameter / 2, centerY - leadLength - length,
|
body[0] = new Area(new RoundRectangle2D.Double(centerX - diameter / 2, centerY - leadLength - length,
|
||||||
diameter, length, edgeRadius, edgeRadius));
|
diameter, length, edgeRadius, edgeRadius));
|
||||||
body[0].add(new Area(new RoundRectangle2D.Double(centerX - diameter / 8, centerY - leadLength - length - diameter / 2,
|
body[0].add(new Area(new RoundRectangle2D.Double(centerX - diameter / 8, centerY - leadLength - length - diameter / 2,
|
||||||
diameter / 4, diameter, diameter / 4, diameter / 4)));
|
diameter / 4, diameter, diameter / 4, diameter / 4)));
|
||||||
break;
|
break;
|
||||||
|
case _180:
|
||||||
|
body[0] = new Area(new RoundRectangle2D.Double(centerX + leadLength, centerY - diameter / 2,
|
||||||
|
length, diameter, edgeRadius, edgeRadius));
|
||||||
|
body[0].add(new Area(new RoundRectangle2D.Double(centerX + leadLength + length - diameter / 2, centerY - diameter / 8,
|
||||||
|
diameter, diameter / 4, diameter / 4, diameter / 4)));
|
||||||
|
break;
|
||||||
|
case _270:
|
||||||
|
body[0] = new Area(new RoundRectangle2D.Double(centerX - diameter / 2, centerY + leadLength,
|
||||||
|
diameter, length, edgeRadius, edgeRadius));
|
||||||
|
body[0].add(new Area(new RoundRectangle2D.Double(centerX - diameter / 8, centerY + leadLength + length - diameter / 2,
|
||||||
|
diameter / 4, diameter, diameter / 4, diameter / 4)));
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
throw new RuntimeException("Unexpected orientation: " + orientation);
|
throw new RuntimeException("Unexpected orientation: " + orientation);
|
||||||
}
|
}
|
||||||
@@ -357,7 +357,7 @@ public class SubminiTube extends AbstractTransparentComponent<String> {
|
|||||||
int centerX = (controlPoints[controlPoints.length - (getTopLead() ? 2 : 1)].x + controlPoints[0].x) / 2;
|
int centerX = (controlPoints[controlPoints.length - (getTopLead() ? 2 : 1)].x + controlPoints[0].x) / 2;
|
||||||
int centerY = (controlPoints[controlPoints.length - (getTopLead() ? 2 : 1)].y + controlPoints[0].y) / 2;
|
int centerY = (controlPoints[controlPoints.length - (getTopLead() ? 2 : 1)].y + controlPoints[0].y) / 2;
|
||||||
double increment = getDiameter().convertToPixels() / getPinCount().getValue();
|
double increment = getDiameter().convertToPixels() / getPinCount().getValue();
|
||||||
if (orientation == Orientation._90 || orientation == Orientation._180)
|
if (orientation == Orientation.DEFAULT || orientation == Orientation._270)
|
||||||
increment = -increment;
|
increment = -increment;
|
||||||
double startX = centerX - increment * (getPinCount().getValue() - 1) / 2;
|
double startX = centerX - increment * (getPinCount().getValue() - 1) / 2;
|
||||||
double startY = centerY - increment * (getPinCount().getValue() - 1) / 2;
|
double startY = centerY - increment * (getPinCount().getValue() - 1) / 2;
|
||||||
@@ -368,34 +368,34 @@ public class SubminiTube extends AbstractTransparentComponent<String> {
|
|||||||
case DEFAULT:
|
case DEFAULT:
|
||||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
||||||
g2d.setColor(finalPinBorderColor);
|
g2d.setColor(finalPinBorderColor);
|
||||||
g2d.drawLine(point.x, point.y, point.x + leadLength - leadThickness / 2, (int)(startY + increment * i));
|
g2d.drawLine(point.x, point.y, point.x - leadLength - leadThickness / 2, (int)(startY + increment * i));
|
||||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
||||||
g2d.setColor(finalPinColor);
|
g2d.setColor(finalPinColor);
|
||||||
g2d.drawLine(point.x, point.y, point.x + leadLength - leadThickness / 2, (int)(startY + increment * i));
|
g2d.drawLine(point.x, point.y, point.x - leadLength - leadThickness / 2, (int)(startY + increment * i));
|
||||||
break;
|
break;
|
||||||
case _90:
|
case _90:
|
||||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
||||||
g2d.setColor(finalPinBorderColor);
|
g2d.setColor(finalPinBorderColor);
|
||||||
g2d.drawLine(point.x, point.y, (int)(startX + increment * i), point.y + leadLength - leadThickness / 2);
|
g2d.drawLine(point.x, point.y, (int)(startX + increment * i), point.y - leadLength);
|
||||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
||||||
g2d.setColor(finalPinColor);
|
g2d.setColor(finalPinColor);
|
||||||
g2d.drawLine(point.x, point.y, (int)(startX + increment * i), point.y + leadLength - leadThickness / 2);
|
g2d.drawLine(point.x, point.y, (int)(startX + increment * i), point.y - leadLength);
|
||||||
break;
|
break;
|
||||||
case _180:
|
case _180:
|
||||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
||||||
g2d.setColor(finalPinBorderColor);
|
g2d.setColor(finalPinBorderColor);
|
||||||
g2d.drawLine(point.x, point.y, point.x - leadLength - leadThickness / 2, (int)(startY + increment * i));
|
g2d.drawLine(point.x, point.y, point.x + leadLength - leadThickness / 2, (int)(startY + increment * i));
|
||||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
||||||
g2d.setColor(finalPinColor);
|
g2d.setColor(finalPinColor);
|
||||||
g2d.drawLine(point.x, point.y, point.x - leadLength - leadThickness / 2, (int)(startY + increment * i));
|
g2d.drawLine(point.x, point.y, point.x + leadLength - leadThickness / 2, (int)(startY + increment * i));
|
||||||
break;
|
break;
|
||||||
case _270:
|
case _270:
|
||||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness));
|
||||||
g2d.setColor(finalPinBorderColor);
|
g2d.setColor(finalPinBorderColor);
|
||||||
g2d.drawLine(point.x, point.y, (int)(startX + increment * i), point.y - leadLength);
|
g2d.drawLine(point.x, point.y, (int)(startX + increment * i), point.y + leadLength - leadThickness / 2);
|
||||||
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
g2d.setStroke(ObjectCache.getInstance().fetchBasicStroke(leadThickness - 2));
|
||||||
g2d.setColor(finalPinColor);
|
g2d.setColor(finalPinColor);
|
||||||
g2d.drawLine(point.x, point.y, (int)(startX + increment * i), point.y - leadLength);
|
g2d.drawLine(point.x, point.y, (int)(startX + increment * i), point.y + leadLength - leadThickness / 2);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user