Compare commits

...

1 Commits

Author SHA1 Message Date
Bane Stojkovic af83a69ee0 initial 2025-05-17 21:29:52 +02:00
5 changed files with 94 additions and 2 deletions
@@ -2,15 +2,24 @@ package org.diylc.components.boards;
import org.diylc.common.Orientation;
import org.diylc.components.AbstractComponent;
import org.diylc.core.BoardUndersideDisplay;
import org.diylc.core.IBoard;
import org.diylc.core.annotations.EditableProperty;
import org.diylc.core.measures.Size;
import org.diylc.core.measures.SizeUnit;
public abstract class AbstractProtoBoard extends AbstractComponent<Void> {
public abstract class AbstractProtoBoard extends AbstractComponent<Void> implements IBoard {
private static final long serialVersionUID = 1L;
public static final Size DEFAULT_UNDERSIDE_OFFSET = new Size(0.1, SizeUnit.in);
protected Orientation orientation;
protected BoardUndersideDisplay boardUndersideDisplay = BoardUndersideDisplay.NONE;
protected Size undersideOffset = DEFAULT_UNDERSIDE_OFFSET;
private Boolean undersideTransparency = true;
@EditableProperty
public Orientation getOrientation() {
if (orientation == null)
@@ -21,4 +30,48 @@ public abstract class AbstractProtoBoard extends AbstractComponent<Void> {
public void setOrientation(Orientation orientation) {
this.orientation = orientation;
}
@EditableProperty(name = "Underside Display")
@Override
public BoardUndersideDisplay getUndersideDisplay() {
if (this.boardUndersideDisplay == null) {
this.boardUndersideDisplay = BoardUndersideDisplay.NONE;
}
return this.boardUndersideDisplay;
}
public void setUndersideDisplay(BoardUndersideDisplay boardUndersideDisplay) {
this.boardUndersideDisplay = boardUndersideDisplay;
}
@EditableProperty(name = "Underside Offset")
@Override
public Size getUndersideOffset() {
if (undersideOffset == null) {
undersideOffset = DEFAULT_UNDERSIDE_OFFSET;
}
return undersideOffset;
}
public void setUndersideOffset(Size undersideOffset) {
this.undersideOffset = undersideOffset;
}
@EditableProperty(name = "Underside Transparency")
@Override
public Boolean getUndersideTransparency() {
if (undersideTransparency == null) {
undersideTransparency = true;
}
return undersideTransparency;
}
public void setUndersideTransparency(Boolean undersideTransparency) {
this.undersideTransparency = undersideTransparency;
}
@Override
public boolean shouldExportToGerber() {
return false;
}
}
@@ -369,6 +369,13 @@ public class Breadboard extends AbstractProtoBoard {
public String getControlPointNodeName(int index) {
return null;
}
@Override
public Rectangle2D getBoardRectangle() {
Point2D finalSecondPoint = getControlPoint(1);
return new Rectangle2D.Double(Math.min(point.getX(), finalSecondPoint.getX()), Math.min(point.getY(), finalSecondPoint.getY()),
Math.abs(finalSecondPoint.getX() - point.getX()), Math.abs(finalSecondPoint.getY() - point.getY()));
}
@Override
public Rectangle2D getCachingBounds() {
@@ -720,6 +720,16 @@ public class EurorackStripboard extends AbstractProtoBoard {
return null;
}
@Override
public Rectangle2D getBoardRectangle() {
Point2D finalSecondPoint = getControlPoint(1);
double offset = BODY_OFFSET_Y.convertToPixels();
return new Rectangle2D.Double(Math.min(point.getX(), finalSecondPoint.getX()) - offset,
Math.min(point.getY(), finalSecondPoint.getY()) - offset,
Math.abs(finalSecondPoint.getX() - point.getX()) + offset,
Math.abs(finalSecondPoint.getY() - point.getY()) + offset);
}
@Override
public Rectangle2D getCachingBounds() {
Point2D finalSecondPoint = getControlPoint(1);
@@ -685,6 +685,13 @@ public class ProtoBoard extends AbstractProtoBoard {
public String getControlPointNodeName(int index) {
return null;
}
@Override
public Rectangle2D getBoardRectangle() {
Point2D finalSecondPoint = getControlPoint(1);
return new Rectangle2D.Double(Math.min(point.getX(), finalSecondPoint.getX()), Math.min(point.getY(), finalSecondPoint.getY()),
Math.abs(finalSecondPoint.getX() - point.getX()), Math.abs(finalSecondPoint.getY() - point.getY()));
}
@Override
public Rectangle2D getCachingBounds() {
@@ -510,6 +510,21 @@ public class ProtoBoard780 extends AbstractProtoBoard {
return null;
}
@Override
public Rectangle2D getBoardRectangle() {
double spacing = SPACING.convertToPixels();
double offsetX = X_OFFSET.convertToPixels();
double dx = translateToGrid ? -offsetX : 0;
double dy = translateToGrid ? spacing / 2 : 0;
Point2D finalSecondPoint = getControlPoint(1);
return new Rectangle2D.Double(Math.min(point.getX(), finalSecondPoint.getX()) + dx,
Math.min(point.getY(), finalSecondPoint.getY()) + dy,
Math.abs(finalSecondPoint.getX() - point.getX()),
Math.abs(finalSecondPoint.getY() - point.getY()));
}
@Override
public Rectangle2D getCachingBounds() {
double spacing = SPACING.convertToPixels();