mirror of
https://github.com/bancika/diy-layout-creator
synced 2026-11-07 12:24:58 +10:00
initial
This commit is contained in:
+55
-2
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user