diff --git a/src/main/java/com/marginallyclever/convenience/Bezier.java b/src/main/java/com/marginallyclever/convenience/Bezier.java
index 5876308f9..a24922dc8 100644
--- a/src/main/java/com/marginallyclever/convenience/Bezier.java
+++ b/src/main/java/com/marginallyclever/convenience/Bezier.java
@@ -1,5 +1,6 @@
package com.marginallyclever.convenience;
+import javax.vecmath.Point2d;
import java.util.ArrayList;
import java.util.List;
@@ -33,15 +34,15 @@ public Bezier(double x0,double y0,double x1,double y1,double x2,double y2,double
// Based on https://github.com/pelson/antigrain/blob/master/agg-2.4/src/agg_curves.cpp
// and https://github.com/mattdesl/adaptive-bezier-curve
- public List generateCurvePoints(double distanceTolerance) {
- ArrayList points = new ArrayList();
- points.add(new Point2D(x0,y0));
+ public List generateCurvePoints(double distanceTolerance) {
+ List points = new ArrayList<>();
+ points.add(new Point2d(x0,y0));
recursive(x0,y0,x1,y1,x2,y2,x3,y3,points,distanceTolerance*distanceTolerance,0);
- points.add(new Point2D(x3,y3));
+ points.add(new Point2d(x3,y3));
return points;
}
- private void recursive(double x1,double y1,double x2,double y2,double x3,double y3,double x4,double y4,ArrayList points, double distanceTolerance,int level) {
+ private void recursive(double x1,double y1,double x2,double y2,double x3,double y3,double x4,double y4,List points, double distanceTolerance,int level) {
if(level > recursionLimit)
return;
@@ -74,7 +75,7 @@ private void recursive(double x1,double y1,double x2,double y2,double x3,double
if((d2 + d3)*(d2 + d3) <= distanceTolerance * (dx*dx + dy*dy)) {
// If the curvature doesn't exceed the distanceTolerance value we tend to finish subdivisions.
if(angleTolerance < curveAngleToleranceEpsilon) {
- points.add(new Point2D(x1234, y1234));
+ points.add(new Point2d(x1234, y1234));
return;
}
@@ -87,17 +88,17 @@ private void recursive(double x1,double y1,double x2,double y2,double x3,double
if(da1 + da2 < angleTolerance) {
// Finally we can stop the recursion
- points.add(new Point2D(x1234, y1234));
+ points.add(new Point2d(x1234, y1234));
return;
}
if(cuspLimit != 0.0) {
if(da1 > cuspLimit) {
- points.add(new Point2D(x2, y2));
+ points.add(new Point2d(x2, y2));
return;
}
if(da2 > cuspLimit) {
- points.add(new Point2D(x3, y3));
+ points.add(new Point2d(x3, y3));
return;
}
}
@@ -107,7 +108,7 @@ private void recursive(double x1,double y1,double x2,double y2,double x3,double
// p1,p3,p4 are co-linear, p2 is considerable
if(d2 * d2 <= distanceTolerance * (dx*dx + dy*dy)) {
if(angleTolerance < curveAngleToleranceEpsilon) {
- points.add(new Point2D(x1234, y1234));
+ points.add(new Point2d(x1234, y1234));
return;
}
@@ -116,14 +117,14 @@ private void recursive(double x1,double y1,double x2,double y2,double x3,double
if(da1 >= Math.PI) da1 = 2.0*Math.PI - da1;
if(da1 < angleTolerance) {
- points.add(new Point2D(x2, y2));
- points.add(new Point2D(x3, y3));
+ points.add(new Point2d(x2, y2));
+ points.add(new Point2d(x3, y3));
return;
}
if(cuspLimit != 0.0) {
if(da1 > cuspLimit) {
- points.add(new Point2D(x2, y2));
+ points.add(new Point2d(x2, y2));
return;
}
}
@@ -132,7 +133,7 @@ private void recursive(double x1,double y1,double x2,double y2,double x3,double
// p1,p2,p4 are co-linear, p3 is considerable
if(d3 * d3 <= distanceTolerance * (dx*dx + dy*dy)) {
if(angleTolerance < curveAngleToleranceEpsilon) {
- points.add(new Point2D(x1234, y1234));
+ points.add(new Point2d(x1234, y1234));
return;
}
@@ -141,14 +142,14 @@ private void recursive(double x1,double y1,double x2,double y2,double x3,double
if(da1 >= Math.PI) da1 = 2.0*Math.PI - da1;
if(da1 < angleTolerance) {
- points.add(new Point2D(x2, y2));
- points.add(new Point2D(x3, y3));
+ points.add(new Point2d(x2, y2));
+ points.add(new Point2d(x3, y3));
return;
}
if(cuspLimit != 0.0) {
if(da1 > cuspLimit) {
- points.add(new Point2D(x3, y3));
+ points.add(new Point2d(x3, y3));
return;
}
}
@@ -158,7 +159,7 @@ private void recursive(double x1,double y1,double x2,double y2,double x3,double
dx = x1234 - (x1 + x4) / 2.0;
dy = y1234 - (y1 + y4) / 2.0;
if(dx*dx + dy*dy <= distanceTolerance) {
- points.add(new Point2D(x1234, y1234));
+ points.add(new Point2d(x1234, y1234));
return;
}
}
@@ -170,9 +171,9 @@ private void recursive(double x1,double y1,double x2,double y2,double x3,double
recursive(x1234, y1234, x234, y234, x34, y34, x4, y4, points, distanceTolerance, level + 1);
}
- protected ArrayList generateCurvePointsOld() {
- ArrayList list = new ArrayList();
- list.add(new Point2D(x0,y0));
+ protected ArrayList generateCurvePointsOld() {
+ ArrayList list = new ArrayList();
+ list.add(new Point2d(x0,y0));
double steps=25;
for(double k=1;k generateCurvePointsOld() {
double yabc = getYAt(j);
//*/
- list.add(new Point2D(xabc,yabc));
+ list.add(new Point2d(xabc,yabc));
}
- list.add(new Point2D(x3,y3));
+ list.add(new Point2d(x3,y3));
return list;
}
diff --git a/src/main/java/com/marginallyclever/convenience/LineInterpolator.java b/src/main/java/com/marginallyclever/convenience/LineInterpolator.java
index 82229c202..eab058cef 100644
--- a/src/main/java/com/marginallyclever/convenience/LineInterpolator.java
+++ b/src/main/java/com/marginallyclever/convenience/LineInterpolator.java
@@ -1,14 +1,17 @@
package com.marginallyclever.convenience;
+import javax.vecmath.Point2d;
+import javax.vecmath.Vector2d;
+
public class LineInterpolator {
static public final double SMALL_VALUE = 1e-5;
- protected Point2D start = new Point2D();
- protected Point2D end = new Point2D();
+ protected Point2d start = new Point2d();
+ protected Point2d end = new Point2d();
public LineInterpolator() {}
- public LineInterpolator(Point2D start,Point2D end) {
+ public LineInterpolator(Point2d start,Point2d end) {
this.start.set(start);
this.end.set(end);
}
@@ -18,7 +21,7 @@ public LineInterpolator(Point2D start,Point2D end) {
* @param t [0...1]
* @param p will be to set to (b-a)*t+a
*/
- public void getPoint(double t,Point2D p) {
+ public void getPoint(double t,Point2d p) {
p.x = (end.x - start.x) * t + start.x;
p.y = (end.y - start.y) * t + start.y;
}
@@ -27,15 +30,15 @@ public void getPoint(double t,Point2D p) {
* @param t [0...1]
* @param v set to the approximate tangent to the line at at t
*/
- public void getTangent(double t,Point2D v) {
+ public void getTangent(double t, Vector2d v) {
if(t<0) t=0;
if(t>1-SMALL_VALUE) t=1-SMALL_VALUE;
double t0 = t;
double t1 = t + SMALL_VALUE;
- Point2D c0 = new Point2D();
- Point2D c1 = new Point2D();
+ Point2d c0 = new Point2d();
+ Point2d c1 = new Point2d();
getPoint(t0,c0);
getPoint(t1,c1);
v.x = c1.x-c0.x;
@@ -52,26 +55,26 @@ public void getTangent(double t,Point2D v) {
* @param t [0...1]
* @param n set to the normal to the approximate tangent to the line at at t
*/
- public void getNormal(double t,Point2D n) {
+ public void getNormal(double t,Vector2d n) {
getTangent(t,n);
double z = n.y;
n.y = -n.x;
n.x = z;
}
- public Point2D getStart() {
+ public Point2d getStart() {
return start;
}
- public void setStart(Point2D start) {
+ public void setStart(Point2d start) {
this.start = start;
}
- public Point2D getEnd() {
+ public Point2d getEnd() {
return end;
}
- public void setEnd(Point2D end) {
+ public void setEnd(Point2d end) {
this.end = end;
}
}
diff --git a/src/main/java/com/marginallyclever/convenience/LineInterpolatorSinCurve.java b/src/main/java/com/marginallyclever/convenience/LineInterpolatorSinCurve.java
index d7fbe8045..a99f3f99e 100644
--- a/src/main/java/com/marginallyclever/convenience/LineInterpolatorSinCurve.java
+++ b/src/main/java/com/marginallyclever/convenience/LineInterpolatorSinCurve.java
@@ -1,6 +1,8 @@
package com.marginallyclever.convenience;
+import javax.vecmath.Point2d;
+
/**
* Given a line segment as the X axis and an amplitude, this class will generate a sin curve along the line.
*/
@@ -12,15 +14,15 @@ public LineInterpolatorSinCurve() {
super();
}
- public LineInterpolatorSinCurve(Point2D a,Point2D b) {
+ public LineInterpolatorSinCurve(Point2d a, Point2d b) {
super(a,b);
}
@Override
- public void getPoint(double t, Point2D c) {
+ public void getPoint(double t, Point2d c) {
// line b-a (bitTan) is the tangent of the overall curve, and bigNorm is orthogonal to bigTan.
- Point2D bigTan = new Point2D();
- Point2D bigNorm = new Point2D();
+ Point2d bigTan = new Point2d();
+ Point2d bigNorm = new Point2d();
bigTan.x = end.x- start.x;
bigTan.y = end.y- start.y;
diff --git a/src/main/java/com/marginallyclever/convenience/Point2D.java b/src/main/java/com/marginallyclever/convenience/Point2D.java
deleted file mode 100644
index 62a0d6ce1..000000000
--- a/src/main/java/com/marginallyclever/convenience/Point2D.java
+++ /dev/null
@@ -1,72 +0,0 @@
-package com.marginallyclever.convenience;
-
-/**
- * A 2D point class with some useful methods.
- * @author Dan Royer
- * @since 7.0.0
- */
-public class Point2D {
- public double x,y;
-
- public Point2D() {}
-
- public Point2D(Point2D b) {
- this(b.x,b.y);
- }
-
- public Point2D(double x0,double y0) {
- x=x0;
- y=y0;
- }
-
- public void set(double x0,double y0) {
- x=x0;
- y=y0;
- }
-
- public void set(Point2D p) {
- x=p.x;
- y=p.y;
- }
-
- public double lengthSquared() {
- return x*x+y*y;
- }
-
- public double length() {
- return Math.sqrt(lengthSquared());
- }
-
- public void scale(double scale) {
- x*=scale;
- y*=scale;
- }
-
- public double distanceSquared(Point2D p) {
- double dx = x-p.x;
- double dy = y-p.y;
- return dx*dx + dy*dy;
- }
-
- public double distance(Point2D p) {
- return Math.sqrt(distanceSquared(p));
- }
-
- public void normalize() {
- double len = length();
- if(len!=0) {
- double ilen = 1.0/len;
- x*=ilen;
- y*=ilen;
- }
- }
-
- public boolean equalsEpsilon(Point2D b, double epsilon) {
- return distance(b) < epsilon;
- }
-
- public void add(Point2D b){
- x += b.x;
- y += b.y;
- }
-}
diff --git a/src/main/java/com/marginallyclever/convenience/QuadGraph.java b/src/main/java/com/marginallyclever/convenience/QuadGraph.java
index 95b695674..1d34685d5 100644
--- a/src/main/java/com/marginallyclever/convenience/QuadGraph.java
+++ b/src/main/java/com/marginallyclever/convenience/QuadGraph.java
@@ -1,5 +1,6 @@
package com.marginallyclever.convenience;
+import javax.vecmath.Point2d;
import java.awt.geom.Rectangle2D;
import java.util.ArrayList;
import java.util.List;
@@ -10,7 +11,7 @@
public class QuadGraph {
private static final int MAX_POINTS = 5;
public final Rectangle2D bounds = new Rectangle2D.Double();
- public final List sites = new ArrayList<>();
+ public final List sites = new ArrayList<>();
public QuadGraph[] children = null;
/**
@@ -42,13 +43,13 @@ public void split() {
private void moveSitesIntoChildren() {
// put all sites into the new children
- for(Point2D c : sites) {
+ for(Point2d c : sites) {
addCellToOneQuadrant(c);
}
sites.clear();
}
- public boolean insert(Point2D e) {
+ public boolean insert(Point2d e) {
if(bounds.contains(e.x,e.y)) {
if(sites.size() d) {
bestD = d;
@@ -89,7 +90,7 @@ public Point2D search(Point2D p) {
if(children != null) {
for (int i = 0; i < 4; ++i) {
// look into the children
- Point2D bestChildFound = children[i].search(p);
+ Point2d bestChildFound = children[i].search(p);
if (bestChildFound != null && bestFound == null) {
double d = p.distanceSquared(bestChildFound);
if(bestD > d) {
diff --git a/src/main/java/com/marginallyclever/makelangelo/Camera.java b/src/main/java/com/marginallyclever/makelangelo/Camera.java
index 12a68b66a..d0767f165 100644
--- a/src/main/java/com/marginallyclever/makelangelo/Camera.java
+++ b/src/main/java/com/marginallyclever/makelangelo/Camera.java
@@ -1,8 +1,9 @@
package com.marginallyclever.makelangelo;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.util.PreferencesHelper;
+import javax.vecmath.Point2d;
+
/**
* All information about the position and zoom level of the virtual eye looking through the PreviewPanel at the robot/art
* @author Dan Royer
@@ -42,7 +43,7 @@ private void limitCameraZoom() {
// scale the picture of the robot to fake a zoom.
public void zoom(int amount) {
- zoom(amount, new Point2D());
+ zoom(amount, new Point2d());
}
/**
@@ -50,8 +51,8 @@ public void zoom(int amount) {
* @param input a point relative to the center of the camera view.
* @return the input converted to world-space coordinates.
*/
- public Point2D screenToWorldSpace(Point2D input) {
- Point2D output = new Point2D();
+ public Point2d screenToWorldSpace(Point2d input) {
+ Point2d output = new Point2d();
// TODO this is not quite right.
output.x = px + input.x * zoom/width;
output.y = py + input.y * zoom/width;
@@ -63,14 +64,14 @@ public Point2D screenToWorldSpace(Point2D input) {
* @param amount amount to zoom
* @param cursor center of zoom, relative to camera.
*/
- public void zoom(int amount, Point2D cursor) {
- Point2D before = screenToWorldSpace(cursor);
+ public void zoom(int amount, Point2d cursor) {
+ Point2d before = screenToWorldSpace(cursor);
//zoom -= (double)amount * ZOOM_STEP_SIZE;
double zoomScale = (double)amount * ZOOM_STEP_SIZE;
zoom = zoom * (1.0 + zoomScale);
limitCameraZoom();
- Point2D after = screenToWorldSpace(cursor);
+ Point2d after = screenToWorldSpace(cursor);
px -= after.x - before.x;
py -= after.y - before.y;
diff --git a/src/main/java/com/marginallyclever/makelangelo/MainMenu.java b/src/main/java/com/marginallyclever/makelangelo/MainMenu.java
index 93d5e5c1f..345f45a6e 100644
--- a/src/main/java/com/marginallyclever/makelangelo/MainMenu.java
+++ b/src/main/java/com/marginallyclever/makelangelo/MainMenu.java
@@ -433,39 +433,7 @@ public void windowClosing(WindowEvent e) {
dialog.setLocationRelativeTo(SwingUtilities.getWindowAncestor(this));
dialog.setVisible(true);
}
-/*
- private JMenu createSettingsMenu() {
- JMenu menu = new JMenu(Translator.get("MenuSettings"));
- menu.setMnemonic('S');
- JMenuItem bOpenPlotterSettings = new JMenuItem(Translator.get("OpenPlotterSettings"));
- bOpenPlotterSettings.addActionListener((e)-> openPlotterSettings());
- bOpenPlotterSettings.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P, SHORTCUT_CTRL));//"ctrl P"
- menu.add(bOpenPlotterSettings);
-
- return menu;
- }
-
- private void openPaperSettings() {
- PaperSettingsPanel settings = new PaperSettingsPanel(app.getPaper());
- JDialog dialog = new JDialog(SwingUtilities.getWindowAncestor(this),Translator.get("PaperSettings.Title"));
- dialog.add(settings);
- dialog.setMinimumSize(new Dimension(300,300));
- dialog.pack();
-
- app.enableMenuBar(false);
- dialog.addWindowListener(new WindowAdapter() {
- @Override
- public void windowClosing(WindowEvent e) {
- settings.save();
- app.enableMenuBar(true);
- }
- });
-
- dialog.setLocationRelativeTo(SwingUtilities.getWindowAncestor(this));
- dialog.setVisible(true);
- }
-*/
public RecentFiles getRecentFiles() {
return recentFiles;
}
diff --git a/src/main/java/com/marginallyclever/makelangelo/apps/plottercontrols/JogPanel.java b/src/main/java/com/marginallyclever/makelangelo/apps/plottercontrols/JogPanel.java
index eb2a73f32..60cfa82ba 100644
--- a/src/main/java/com/marginallyclever/makelangelo/apps/plottercontrols/JogPanel.java
+++ b/src/main/java/com/marginallyclever/makelangelo/apps/plottercontrols/JogPanel.java
@@ -2,7 +2,6 @@
import com.marginallyclever.convenience.ButtonIcon;
import com.marginallyclever.convenience.CommandLineOptions;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.makelangelo.Translator;
import com.marginallyclever.makelangelo.plotter.Plotter;
import com.marginallyclever.makelangelo.plotter.PlotterEvent;
@@ -11,6 +10,7 @@
import org.slf4j.LoggerFactory;
import javax.swing.*;
+import javax.vecmath.Point2d;
import java.awt.*;
import java.awt.event.ActionEvent;
@@ -62,7 +62,7 @@ public JogPanel(Plotter plotter) {
y/=10;
}
logger.debug("Move {},{}", x, y);
- Point2D p = plotter.getPos();
+ Point2d p = plotter.getPos();
p.x+=x;
p.y+=y;
plotter.setPos(p.x,p.y);
diff --git a/src/main/java/com/marginallyclever/makelangelo/apps/plottercontrols/MarlinPlotterPanel.java b/src/main/java/com/marginallyclever/makelangelo/apps/plottercontrols/MarlinPlotterPanel.java
index 357d94f75..f939d8433 100644
--- a/src/main/java/com/marginallyclever/makelangelo/apps/plottercontrols/MarlinPlotterPanel.java
+++ b/src/main/java/com/marginallyclever/makelangelo/apps/plottercontrols/MarlinPlotterPanel.java
@@ -1,7 +1,6 @@
package com.marginallyclever.makelangelo.apps.plottercontrols;
import com.marginallyclever.communications.NetworkSessionEvent;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.convenience.W3CColorNames;
import com.marginallyclever.convenience.helpers.StringHelper;
import com.marginallyclever.makelangelo.plotter.Plotter;
@@ -10,6 +9,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.vecmath.Point2d;
import java.awt.*;
/**
@@ -87,7 +87,7 @@ private void sendEngage() {
}
private void sendGoto() {
- Point2D p = myPlotter.getPos();
+ Point2d p = myPlotter.getPos();
String msg = myPlotter.getPenIsUp()
? MarlinPlotterPanel.getTravelToString(myPlotter.getSettings(), p.x, p.y)
: MarlinPlotterPanel.getDrawToString(myPlotter.getSettings(), p.x, p.y);
@@ -150,7 +150,7 @@ protected void onHearM114(String message) {
try {
String position = message.substring(0, message.indexOf("Count"));
String[] majorParts = position.split("\s");
- Point2D pos = myPlotter.getPos();
+ Point2d pos = myPlotter.getPos();
for (String s : majorParts) {
String[] minorParts = s.split(":");
diff --git a/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/PreviewPanel.java b/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/PreviewPanel.java
index 90654cf1f..8e3149473 100644
--- a/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/PreviewPanel.java
+++ b/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/PreviewPanel.java
@@ -3,7 +3,6 @@
import com.jogamp.opengl.*;
import com.jogamp.opengl.awt.GLJPanel;
import com.jogamp.opengl.util.FPSAnimator;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.convenience.helpers.MatrixHelper;
import com.marginallyclever.convenience.helpers.ResourceHelper;
import com.marginallyclever.makelangelo.Camera;
@@ -28,6 +27,7 @@
import javax.swing.*;
import javax.swing.event.EventListenerList;
import javax.vecmath.Matrix4d;
+import javax.vecmath.Point2d;
import javax.vecmath.Vector2d;
import javax.vecmath.Vector3d;
import java.awt.*;
@@ -125,7 +125,7 @@ public void mouseWheelMoved(MouseWheelEvent e) {
int notches = e.getWheelRotation();
if (notches == 0) return;
- Point2D p = new Point2D(e.getPoint().x,e.getPoint().y);
+ Point2d p = new Point2d(e.getPoint().x,e.getPoint().y);
Rectangle r = me.getBounds();
p.x -= r.getCenterX();
p.y -= r.getCenterY();
diff --git a/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Cartesian.java b/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Cartesian.java
index 84fccdf67..01120a9b8 100644
--- a/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Cartesian.java
+++ b/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Cartesian.java
@@ -1,12 +1,13 @@
package com.marginallyclever.makelangelo.apps.previewpanel.plotterrenderer;
import com.jogamp.opengl.GL3;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.makelangelo.Mesh;
import com.marginallyclever.makelangelo.apps.previewpanel.ShaderProgram;
import com.marginallyclever.makelangelo.plotter.Plotter;
import com.marginallyclever.makelangelo.plotter.plottersettings.PlotterSettings;
+import javax.vecmath.Point2d;
+
public class Cartesian implements PlotterRenderer {
public final double CARTESIAN_MOTOR_MOUNT_SIZE =45; //cm
public final double CARTESIAN_PLOTTER_SIZE=60; //cm
@@ -33,7 +34,7 @@ public void updatePlotterSettings(PlotterSettings settings) {
private void paintGantryAndHead(GL3 gl, Plotter plotter) {
//double dx, dy;
- Point2D pos = plotter.getPos();
+ Point2d pos = plotter.getPos();
double gx = pos.x;
double gy = pos.y;
double gz = (plotter.getPenIsUp() ? plotter.getSettings().getDouble(PlotterSettings.PEN_ANGLE_UP) : plotter.getSettings().getDouble(PlotterSettings.PEN_ANGLE_DOWN))/10;
diff --git a/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Makelangelo5.java b/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Makelangelo5.java
index 39fd23395..a61e45092 100644
--- a/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Makelangelo5.java
+++ b/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Makelangelo5.java
@@ -1,7 +1,6 @@
package com.marginallyclever.makelangelo.apps.previewpanel.plotterrenderer;
import com.jogamp.opengl.GL3;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.convenience.helpers.DrawingHelper;
import com.marginallyclever.makelangelo.Mesh;
import com.marginallyclever.makelangelo.apps.previewpanel.ShaderProgram;
@@ -10,6 +9,8 @@
import com.marginallyclever.makelangelo.texture.TextureFactory;
import com.marginallyclever.makelangelo.texture.TextureWithMetadata;
+import javax.vecmath.Point2d;
+
public class Makelangelo5 implements PlotterRenderer {
private final TextureWithMetadata textureMainBody = TextureFactory.loadTexture("/textures/makelangelo5.png");
private final TextureWithMetadata textureMotors = TextureFactory.loadTexture("/textures/makelangelo5-motors.png");
@@ -73,7 +74,7 @@ public void updatePlotterSettings(PlotterSettings settings) {
}
public void paintPenHolderToCounterweights(GL3 gl, Plotter robot) {
- Point2D pos = robot.getPos();
+ Point2d pos = robot.getPos();
double gx = pos.x;
double gy = pos.y;
diff --git a/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Makelangelo5Huge.java b/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Makelangelo5Huge.java
index 6bf5544da..630f1bc68 100644
--- a/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Makelangelo5Huge.java
+++ b/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Makelangelo5Huge.java
@@ -1,13 +1,14 @@
package com.marginallyclever.makelangelo.apps.previewpanel.plotterrenderer;
import com.jogamp.opengl.GL3;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.makelangelo.apps.previewpanel.ShaderProgram;
import com.marginallyclever.makelangelo.plotter.Plotter;
import com.marginallyclever.makelangelo.plotter.plottersettings.PlotterSettings;
import com.marginallyclever.makelangelo.texture.TextureFactory;
import com.marginallyclever.makelangelo.texture.TextureWithMetadata;
+import javax.vecmath.Point2d;
+
import static com.marginallyclever.convenience.helpers.DrawingHelper.paintTexture;
public class Makelangelo5Huge implements PlotterRenderer {
@@ -69,7 +70,7 @@ private void paintControlBoxFancy(GL3 gl, Plotter robot,TextureWithMetadata text
}
public void paintPenHolderToCounterweights(GL3 gl, Plotter robot) {
- Point2D pos = robot.getPos();
+ Point2d pos = robot.getPos();
double gx = pos.x;
double gy = pos.y;
diff --git a/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/MakelangeloCustom.java b/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/MakelangeloCustom.java
index dd7296ef0..6275f2c59 100644
--- a/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/MakelangeloCustom.java
+++ b/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/MakelangeloCustom.java
@@ -157,7 +157,7 @@ private void paintPenHolderToCounterweights(GL3 gl, Plotter robot ) {
/*
PlotterSettings settings = robot.getSettings();
double dx,dy;
- Point2D pos = robot.getPos();
+ Point2d pos = robot.getPos();
double gx = pos.x;
double gy = pos.y;
diff --git a/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Polargraph.java b/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Polargraph.java
index b7f6b7e53..7c3bb5bc2 100644
--- a/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Polargraph.java
+++ b/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Polargraph.java
@@ -1,12 +1,13 @@
package com.marginallyclever.makelangelo.apps.previewpanel.plotterrenderer;
import com.jogamp.opengl.GL3;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.makelangelo.Mesh;
import com.marginallyclever.makelangelo.apps.previewpanel.ShaderProgram;
import com.marginallyclever.makelangelo.plotter.Plotter;
import com.marginallyclever.makelangelo.plotter.plottersettings.PlotterSettings;
+import javax.vecmath.Point2d;
+
/**
* Common methods for drawing Polargraph machines.
* @author Dan Royer
@@ -25,7 +26,7 @@ public abstract class Polargraph implements PlotterRenderer {
* @param beltR length of belt (mm)
* @return cartesian coordinate
*/
- public Point2D FK(Plotter plotter,double beltL, double beltR) {
+ public Point2d FK(Plotter plotter,double beltL, double beltR) {
double top = plotter.getSettings().getDouble(PlotterSettings.LIMIT_TOP);
double right = plotter.getSettings().getDouble(PlotterSettings.LIMIT_RIGHT);
double left = plotter.getSettings().getDouble(PlotterSettings.LIMIT_LEFT);
@@ -40,7 +41,7 @@ public Point2D FK(Plotter plotter,double beltL, double beltR) {
double x = theta * a - b/2;
double y = top - Math.sqrt(1.0 - theta * theta) * a;
- return new Point2D(x, y);
+ return new Point2d(x, y);
}
/**
@@ -48,9 +49,9 @@ public Point2D FK(Plotter plotter,double beltL, double beltR) {
* @param plotter the plotter
* @param x cartesian x
* @param y cartesian y
- * @return Point2D with x=belt left and y=belt right.
+ * @return Point2d with x=belt left and y=belt right.
*/
- public Point2D IK(Plotter plotter,double x,double y) {
+ public Point2d IK(Plotter plotter,double x,double y) {
double right = plotter.getSettings().getDouble(PlotterSettings.LIMIT_RIGHT);
double left = plotter.getSettings().getDouble(PlotterSettings.LIMIT_LEFT);
double top = plotter.getSettings().getDouble(PlotterSettings.LIMIT_TOP);
@@ -61,7 +62,7 @@ public Point2D IK(Plotter plotter,double x,double y) {
dx = right-x;
double b2 = Math.sqrt(dx*dx+dy*dy);
- return new Point2D(b1,b2);
+ return new Point2d(b1,b2);
}
@Override
@@ -169,7 +170,7 @@ private void paintControlBox(GL3 gl, Plotter robot) {
static public void paintPenHolderToCounterweights(GL3 gl, Plotter robot) {
- Point2D pos = robot.getPos();
+ Point2d pos = robot.getPos();
double gx = pos.x;
double gy = pos.y;
diff --git a/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Zarplotter.java b/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Zarplotter.java
index 24ba89426..d717a2ec2 100644
--- a/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Zarplotter.java
+++ b/src/main/java/com/marginallyclever/makelangelo/apps/previewpanel/plotterrenderer/Zarplotter.java
@@ -33,7 +33,7 @@ private void paintPenHolderToCounterweights(GL3 gl, Plotter robot) {
/*
PlotterSettings settings = robot.getSettings();
//double dx, dy;
- Point2D pos = robot.getPos();
+ Point2d pos = robot.getPos();
double gx = pos.x;
double gy = pos.y;
@@ -156,8 +156,8 @@ private void paintControlBox(GL3 gl,Plotter plotter) {
}
/*
@Override
- public Point2D getHome() {
- return new Point2D(0,0);
+ public Point2d getHome() {
+ return new Point2d(0,0);
}
@Override
diff --git a/src/main/java/com/marginallyclever/makelangelo/donatelloimpl/nodes/PatternOnPath.java b/src/main/java/com/marginallyclever/makelangelo/donatelloimpl/nodes/PatternOnPath.java
index ba4c338bf..a676743cb 100644
--- a/src/main/java/com/marginallyclever/makelangelo/donatelloimpl/nodes/PatternOnPath.java
+++ b/src/main/java/com/marginallyclever/makelangelo/donatelloimpl/nodes/PatternOnPath.java
@@ -1,12 +1,13 @@
package com.marginallyclever.makelangelo.donatelloimpl.nodes;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.makelangelo.turtle.Turtle;
import com.marginallyclever.nodegraphcore.DockReceiving;
import com.marginallyclever.nodegraphcore.DockShipping;
import com.marginallyclever.nodegraphcore.Node;
import com.marginallyclever.nodegraphcore.Packet;
+import javax.vecmath.Point2d;
+
public class PatternOnPath extends Node {
private final DockReceiving pattern = new DockReceiving<>("pattern", Turtle.class, new Turtle());
private final DockReceiving path = new DockReceiving<>("path", Turtle.class, new Turtle());
@@ -40,7 +41,7 @@ public void update() {
}
double n=0;
for(int i=0;i(px,py) = path(index), where path(0) is the start and path(path.length) is the end.
* (nx,ny) = the approximate normal at path(index). This is approximated by finding
@@ -45,11 +47,11 @@ public void update() {
double c0 = index.getValue().doubleValue();
if (c0 > 0) {
double c1 = c0 + EPSILON;
- Point2D p0 = myPath.interpolate(c0);
+ Point2d p0 = myPath.interpolate(c0);
px.send(new Packet<>(p0.x));
px.send(new Packet<>(p0.y));
- Point2D p1;
+ Point2d p1;
if(c1>total) {
p1 = myPath.interpolate(total);
p0 = myPath.interpolate(total-EPSILON);
@@ -58,7 +60,7 @@ public void update() {
}
double dx = p1.x - p0.x;
double dy = p1.y - p0.y;
- Point2D n = new Point2D(dx,dy);
+ Vector2d n = new Vector2d(dx,dy);
n.normalize();
nx.send(new Packet<>(n.x));
ny.send(new Packet<>(n.y));
diff --git a/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_EdgeDetection.java b/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_EdgeDetection.java
index fe38b343b..d8956ec97 100644
--- a/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_EdgeDetection.java
+++ b/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_EdgeDetection.java
@@ -1,6 +1,5 @@
package com.marginallyclever.makelangelo.makeart.imageconverter;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.makelangelo.Translator;
import com.marginallyclever.makelangelo.makeart.TransformedImage;
import com.marginallyclever.makelangelo.makeart.imagefilter.FilterDesaturate;
@@ -11,6 +10,7 @@
import com.marginallyclever.makelangelo.select.SelectSlider;
import com.marginallyclever.makelangelo.turtle.Turtle;
+import javax.vecmath.Point2d;
import java.awt.geom.Rectangle2D;
/**
@@ -171,7 +171,7 @@ float lerp(float a,float b,float v) {
return a + (b - a) * v;
}
- Point2D lerpEdge(int x0, int y0, int x1, int y1) {
+ Point2d lerpEdge(int x0, int y0, int x1, int y1) {
float in0 = brightness(img.sample(x0,y0,sampleSize));
float in1 = brightness(img.sample(x1,y1,sampleSize));
@@ -179,10 +179,10 @@ Point2D lerpEdge(int x0, int y0, int x1, int y1) {
v=Math.max(0,Math.min(1,v));
float x3 = lerp((float)x0,(float)x1,v);
float y3 = lerp((float)y0,(float)y1,v);
- return new Point2D(x3,y3);
+ return new Point2d(x3,y3);
}
- void line(Point2D a,Point2D b) {
+ void line(Point2d a,Point2d b) {
turtle.jumpTo(px+a.x,py+a.y);
turtle.moveTo(px+b.x,py+b.y);
}
@@ -190,16 +190,16 @@ void line(Point2D a,Point2D b) {
void case1(int x0,int y0) {
int x1 = x0+stepSize;
int y1 = y0+stepSize;
- Point2D a = lerpEdge(x0,y0,x0,y1);
- Point2D b = lerpEdge(x0,y0,x1,y0);
+ Point2d a = lerpEdge(x0,y0,x0,y1);
+ Point2d b = lerpEdge(x0,y0,x1,y0);
line(a,b);
}
void case2(int x0,int y0) {
int x1 = x0+stepSize;
int y1 = y0+stepSize;
- Point2D a = lerpEdge(x1,y0,x0,y0);
- Point2D b = lerpEdge(x1,y0,x1,y1);
+ Point2d a = lerpEdge(x1,y0,x0,y0);
+ Point2d b = lerpEdge(x1,y0,x1,y1);
line(a,b);
}
@@ -207,16 +207,16 @@ void case2(int x0,int y0) {
void case3(int x0,int y0) {
int x1 = x0+stepSize;
int y1 = y0+stepSize;
- Point2D a = lerpEdge(x0,y0,x0,y1);
- Point2D b = lerpEdge(x1,y0,x1,y1);
+ Point2d a = lerpEdge(x0,y0,x0,y1);
+ Point2d b = lerpEdge(x1,y0,x1,y1);
line(a,b);
}
void case4(int x0,int y0) {
int x1 = x0+stepSize;
int y1 = y0+stepSize;
- Point2D a = lerpEdge(x1,y1,x0,y1);
- Point2D b = lerpEdge(x1,y1,x1,y0);
+ Point2d a = lerpEdge(x1,y1,x0,y1);
+ Point2d b = lerpEdge(x1,y1,x1,y0);
line(a,b);
}
@@ -230,8 +230,8 @@ void case5(int x0,int y0) {
void case6(int x0,int y0) {
int x1 = x0+stepSize;
int y1 = y0+stepSize;
- Point2D a = lerpEdge(x0,y0,x1,y0);
- Point2D b = lerpEdge(x0,y1,x1,y1);
+ Point2d a = lerpEdge(x0,y0,x1,y0);
+ Point2d b = lerpEdge(x0,y1,x1,y1);
line(a,b);
}
@@ -239,8 +239,8 @@ void case6(int x0,int y0) {
void case7(int x0,int y0) {
int x1 = x0+stepSize;
int y1 = y0+stepSize;
- Point2D a = lerpEdge(x0,y1,x0,y0);
- Point2D b = lerpEdge(x0,y1,x1,y1);
+ Point2d a = lerpEdge(x0,y1,x0,y0);
+ Point2d b = lerpEdge(x0,y1,x1,y1);
line(a,b);
}
diff --git a/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_FlowField.java b/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_FlowField.java
index 2c1cd90f8..fd726ec0f 100644
--- a/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_FlowField.java
+++ b/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_FlowField.java
@@ -1,6 +1,5 @@
package com.marginallyclever.makelangelo.makeart.imageconverter;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.convenience.noise.Noise;
import com.marginallyclever.convenience.noise.NoiseFactory;
import com.marginallyclever.convenience.noise.PerlinNoise;
@@ -11,6 +10,7 @@
import com.marginallyclever.makelangelo.select.*;
import com.marginallyclever.makelangelo.turtle.Turtle;
+import javax.vecmath.Point2d;
import javax.vecmath.Vector2d;
import java.awt.*;
import java.awt.geom.Rectangle2D;
@@ -179,11 +179,11 @@ public static boolean getRightAngle() {
}
private static class SampleAt {
- public Point2D p;
- public Point2D n;
+ public Point2d p;
+ public Vector2d n;
public double value;
- public SampleAt(Point2D p, Point2D n,double value) {
+ public SampleAt(Point2d p, Vector2d n,double value) {
this.p = p;
this.n = n;
this.value = value;
@@ -206,7 +206,7 @@ protected void convertLine(TransformedImage img, Turtle line) {
double offset = (double)j-halfPasses;
for(SampleAt sample : samples) {
// move to the adjusted point
- Point2D p3 = new Point2D(sample.n);
+ Point2d p3 = new Point2d(sample.n);
p3.scale(offset*sample.value);
p3.add(sample.p);
if(first) {
@@ -226,14 +226,14 @@ private SampleAt[] calculateSamplesOnce(TransformedImage img, Turtle line) {
int numSamples = (int)(len/samplingRate);
SampleAt [] samples = new SampleAt[numSamples];
- Point2D p = line.interpolate(0.0);
+ Point2d p = line.interpolate(0.0);
for(int i=0;i convertLine(TransformedImage img, Point2D a, Point2D b, int numSamples, double sampleRadius) {
- List points = new ArrayList<>();
+ protected List convertLine(TransformedImage img, Point2d a, Point2d b, int numSamples, double sampleRadius) {
+ List points = new ArrayList<>();
- Point2D dir = new Point2D(b.x-a.x,b.y-a.y);
+ Vector2d dir = new Vector2d(b.x-a.x,b.y-a.y);
double len = dir.length();
dir.scale(1.0/len);
@@ -106,7 +107,7 @@ protected List convertLine(TransformedImage img, Point2D a, Point2D b,
double z = 1.0 - img.sample( x, y, sampleRadius ) / 255.0f;
//z *= z; // quadratic curve
double py = y + waveIntensity * z - waveIntensity/2.0f;
- points.add(new Point2D(x,py));
+ points.add(new Point2d(x,py));
}
return points;
}
@@ -131,8 +132,8 @@ public void start(Paper paper, TransformedImage image) {
// from bottom to top of the image...
int i=0;
- Point2D lineStart = new Point2D();
- Point2D lineEnd = new Point2D();
+ Point2d lineStart = new Point2d();
+ Point2d lineEnd = new Point2d();
turtle = new Turtle();
@@ -157,12 +158,12 @@ public void start(Paper paper, TransformedImage image) {
Collections.reverse(heights);
// sample the image along the line
- List points = convertLine(img,lineStart,lineEnd,numSamples,sampleRate);
+ List points = convertLine(img,lineStart,lineEnd,numSamples,sampleRate);
boolean first=true;
// mask the line using the heights values and update heights as we go
for(int j=0;j<=numSamples;++j) {
- Point2D p = points.get(j);
+ Point2d p = points.get(j);
double x = p.x;
double heightNew = p.y;
double heightOld = heights.get(j);
diff --git a/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_Moire.java b/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_Moire.java
index 858fdf7c3..12758ae58 100644
--- a/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_Moire.java
+++ b/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_Moire.java
@@ -2,7 +2,6 @@
import com.marginallyclever.convenience.LineInterpolator;
import com.marginallyclever.convenience.LineInterpolatorSinCurve;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.makelangelo.Translator;
import com.marginallyclever.makelangelo.makeart.TransformedImage;
import com.marginallyclever.makelangelo.makeart.imagefilter.FilterDesaturate;
@@ -11,6 +10,8 @@
import com.marginallyclever.makelangelo.select.SelectOneOfMany;
import com.marginallyclever.makelangelo.turtle.Turtle;
+import javax.vecmath.Point2d;
+import javax.vecmath.Vector2d;
import java.awt.geom.Rectangle2D;
import java.util.ArrayList;
import java.util.ListIterator;
@@ -72,7 +73,7 @@ public void setDirectionIndex(int value) {
direction = value;
}
- protected void convertLine(TransformedImage img, double spaceBetweenLines, double halfStep, Point2D a, Point2D b) {
+ protected void convertLine(TransformedImage img, double spaceBetweenLines, double halfStep, Point2d a, Point2d b) {
LineInterpolatorSinCurve line = new LineInterpolatorSinCurve(a,b);
line.setAmplitude(0.4);
@@ -82,8 +83,8 @@ protected void convertLine(TransformedImage img, double spaceBetweenLines, doubl
// examine the line once. all Z values will be in the range 0...1
ArrayList zList = new ArrayList<>();
- Point2D p = new Point2D();
- //Point2D n = new Point2D();
+ Point2d p = new Point2d();
+ //Point2d n = new Point2d();
double maxPixel=0;
@@ -180,8 +181,8 @@ protected void convertLine(TransformedImage img, double spaceBetweenLines, doubl
protected void lineInternal(double maxPulseNow,double z,LineInterpolator line,double t) {
double pulseSize = maxPulseNow * z;
- Point2D p = new Point2D();
- Point2D n = new Point2D();
+ Point2d p = new Point2d();
+ Vector2d n = new Vector2d();
line.getPoint(t, p);
line.getNormal(t, n);
double x=myPaper.getCenterX()+p.x + n.x*pulseSize;
@@ -210,8 +211,8 @@ public void start(Paper paper, TransformedImage image) {
double spaceBetweenLines = blockScale;
// from top to bottom of the image...
- Point2D a = new Point2D();
- Point2D b = new Point2D();
+ Point2d a = new Point2d();
+ Point2d b = new Point2d();
turtle = new Turtle();
diff --git a/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_Pulse.java b/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_Pulse.java
index 1d402ed4b..63f5cac79 100644
--- a/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_Pulse.java
+++ b/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_Pulse.java
@@ -1,6 +1,5 @@
package com.marginallyclever.makelangelo.makeart.imageconverter;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.makelangelo.Translator;
import com.marginallyclever.makelangelo.makeart.TransformedImage;
import com.marginallyclever.makelangelo.makeart.imagefilter.FilterDesaturate;
@@ -10,6 +9,8 @@
import com.marginallyclever.makelangelo.select.SelectSlider;
import com.marginallyclever.makelangelo.turtle.Turtle;
+import javax.vecmath.Point2d;
+import javax.vecmath.Vector2d;
import java.awt.geom.Rectangle2D;
@@ -72,11 +73,11 @@ public void setDirectionIndex(int value) {
direction = value;
}
- protected void convertLine(TransformedImage img, double zigZagSpacing, double halfStep, Point2D a, Point2D b) {
- Point2D dir = new Point2D(b.x-a.x,b.y-a.y);
+ protected void convertLine(TransformedImage img, double zigZagSpacing, double halfStep, Point2d a, Point2d b) {
+ Vector2d dir = new Vector2d(b.x-a.x,b.y-a.y);
double len = dir.length();
dir.scale(1.0/len);
- Point2D ortho = new Point2D(-dir.y,dir.x);
+ Vector2d ortho = new Vector2d(-dir.y,dir.x);
double cx = myPaper.getCenterX();
double cy = myPaper.getCenterY();
@@ -135,8 +136,8 @@ protected void convertOneLayer(TransformedImage img) {
double x, y = 0;
int i=0;
- Point2D a = new Point2D();
- Point2D b = new Point2D();
+ Point2d a = new Point2d();
+ Point2d b = new Point2d();
turtle = new Turtle();
diff --git a/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_PulseCMYK.java b/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_PulseCMYK.java
index faf4e8d04..dc25e92a7 100644
--- a/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_PulseCMYK.java
+++ b/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_PulseCMYK.java
@@ -1,6 +1,5 @@
package com.marginallyclever.makelangelo.makeart.imageconverter;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.makelangelo.Translator;
import com.marginallyclever.makelangelo.makeart.TransformedImage;
import com.marginallyclever.makelangelo.makeart.imagefilter.FilterCMYK;
@@ -10,6 +9,8 @@
import com.marginallyclever.makelangelo.select.SelectSlider;
import com.marginallyclever.makelangelo.turtle.Turtle;
+import javax.vecmath.Point2d;
+import javax.vecmath.Vector2d;
import java.awt.*;
import java.awt.geom.Rectangle2D;
@@ -91,12 +92,12 @@ public void setDirectionIndex(int value) {
* @param a the start of the line
* @param b the end of the line
*/
- protected void convertLine(TransformedImage img, double halfLineHeight, Point2D a, Point2D b) {
- Point2D normal = new Point2D(b.x-a.x,b.y-a.y);
+ protected void convertLine(TransformedImage img, double halfLineHeight, Point2d a, Point2d b) {
+ Vector2d normal = new Vector2d(b.x-a.x,b.y-a.y);
double len = normal.length();
normal.scale(1.0/len);
- Point2D orthogonal = new Point2D(-normal.y,normal.x);
+ Vector2d orthogonal = new Vector2d(-normal.y,normal.x);
double cx = myPaper.getCenterX();
double cy = myPaper.getCenterY();
@@ -162,8 +163,8 @@ protected void outputChannel(TransformedImage img,Color channel) {
double x, y = 0;
int i=0;
- Point2D a = new Point2D();
- Point2D b = new Point2D();
+ Point2d a = new Point2d();
+ Point2d b = new Point2d();
turtle.setColor(channel);
diff --git a/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_QuadTreeInstant.java b/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_QuadTreeInstant.java
index 912240cf4..ed9d15cd5 100644
--- a/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_QuadTreeInstant.java
+++ b/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_QuadTreeInstant.java
@@ -1,6 +1,5 @@
package com.marginallyclever.makelangelo.makeart.imageconverter;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.makelangelo.Translator;
import com.marginallyclever.makelangelo.makeart.TransformedImage;
import com.marginallyclever.makelangelo.makeart.imagefilter.FilterDesaturate;
@@ -8,6 +7,7 @@
import com.marginallyclever.makelangelo.select.SelectSlider;
import com.marginallyclever.makelangelo.turtle.Turtle;
+import javax.vecmath.Point2d;
import java.awt.geom.Rectangle2D;
/**
@@ -98,14 +98,14 @@ public void start(Paper paper, TransformedImage image){
turtle = new Turtle();
Rectangle2D.Double rect = myPaper.getMarginRectangle();
- Point2D topLeftP = new Point2D(rect.getMaxX(),rect.getMaxY());
- Point2D bottomRightP = new Point2D(rect.getMinX(),rect.getMinY());
+ Point2d topLeftP = new Point2d(rect.getMaxX(),rect.getMaxY());
+ Point2d bottomRightP = new Point2d(rect.getMinX(),rect.getMinY());
BoxCondition boxCondition = new BoxCondition(true,true,true,true);
recurse(topLeftP, bottomRightP, boxCondition, 0,baseCutOff);
fireConversionFinished();
}
- private float getAverageOfRegion(Point2D topLeft, Point2D bottomRight) {
+ private float getAverageOfRegion(Point2d topLeft, Point2d bottomRight) {
float sum = 0;
int c = 0;
for(int i=(int)topLeft.x; i maxDepth) return;
float average = getAverageOfRegion(topLeft, bottomRight);
@@ -128,18 +128,18 @@ private void recurse(Point2D topLeft, Point2D bottomRight, BoxCondition boxCondi
// only draw the sides of the box that are needed
if(boxCondition.drawTop) {
drawLine(topLeft,
- new Point2D(bottomRight.x, topLeft.y));
+ new Point2d(bottomRight.x, topLeft.y));
}
if(boxCondition.drawBottom) {
- drawLine(new Point2D(topLeft.x, bottomRight.y),
+ drawLine(new Point2d(topLeft.x, bottomRight.y),
bottomRight);
}
if(boxCondition.drawLeft) {
drawLine(topLeft,
- new Point2D(topLeft.x, bottomRight.y));
+ new Point2d(topLeft.x, bottomRight.y));
}
if(boxCondition.drawRight) {
- drawLine(new Point2D(bottomRight.x, topLeft.y),
+ drawLine(new Point2d(bottomRight.x, topLeft.y),
bottomRight);
}
@@ -150,31 +150,31 @@ private void recurse(Point2D topLeft, Point2D bottomRight, BoxCondition boxCondi
int h2 = (int)(topLeft.y - bottomRight.y)/2;
// top left corner
recurse(topLeft,
- new Point2D(topLeft.x + w2, topLeft.y-h2),
+ new Point2d(topLeft.x + w2, topLeft.y-h2),
new BoxCondition(false,true,false,true),
curDepth+1,
newCutOff);
// top right corner
- recurse(new Point2D(topLeft.x + w2, topLeft.y),
- new Point2D(bottomRight.x, topLeft.y-h2),
+ recurse(new Point2d(topLeft.x + w2, topLeft.y),
+ new Point2d(bottomRight.x, topLeft.y-h2),
new BoxCondition(false,true,true,false),
curDepth+1,
newCutOff);
// bottom left corner
- recurse(new Point2D(topLeft.x, topLeft.y-h2),
- new Point2D(topLeft.x+w2, bottomRight.y),
+ recurse(new Point2d(topLeft.x, topLeft.y-h2),
+ new Point2d(topLeft.x+w2, bottomRight.y),
new BoxCondition(true,false,false,true),
curDepth+1,
newCutOff);
// bottom right corner
- recurse(new Point2D(topLeft.x+w2, topLeft.y-h2),
+ recurse(new Point2d(topLeft.x+w2, topLeft.y-h2),
bottomRight,
new BoxCondition(true,false,true,false),
curDepth+1,
newCutOff);
}
- private void drawLine(Point2D p1, Point2D p2) {
+ private void drawLine(Point2d p1, Point2d p2) {
double px = myPaper.getCenterX();
double py = myPaper.getCenterY();
diff --git a/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_Wander.java b/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_Wander.java
index 8f6a72d11..22b8c6269 100644
--- a/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_Wander.java
+++ b/src/main/java/com/marginallyclever/makelangelo/makeart/imageconverter/Converter_Wander.java
@@ -13,8 +13,8 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.vecmath.Point2d;
import java.awt.*;
-import java.awt.geom.Point2D;
import java.awt.geom.Rectangle2D;
import java.util.LinkedList;
import java.util.Random;
@@ -34,16 +34,12 @@ public class Converter_Wander extends ImageConverter {
private static final Random random = new Random();
private static class Bucket {
- public Point2D a,b;
- public LinkedList unsortedPoints;
- public LinkedList sortedPoints;
+ public final Point2d a = new Point2d();
+ public final Point2d b = new Point2d();
+ public final LinkedList unsortedPoints = new LinkedList<>();
+ public final LinkedList sortedPoints = new LinkedList<>();
- public Bucket() {
- a = new Point2D.Double();
- b = new Point2D.Double();
- unsortedPoints = new LinkedList<>();
- sortedPoints = new LinkedList<>();
- }
+ public Bucket() {}
}
public Converter_Wander() {
@@ -116,15 +112,15 @@ protected void outputChannel(TransformedImage img, Color newColor, int pointsPer
for(by=0;by=-1;bx-=wMod) {
Bucket b = new Bucket();
- b.a.setLocation(xLeft+bx , yBottom+by );
- b.b.setLocation(xLeft+bx+wMod, yBottom+by+hMod);
+ b.a.set(xLeft+bx , yBottom+by );
+ b.b.set(xLeft+bx+wMod, yBottom+by+hMod);
buckets.push(b);
}
}
@@ -148,7 +144,7 @@ protected void outputChannel(TransformedImage img, Color newColor, int pointsPer
Bucket b = buckets.get(j);
if( b.a.getX()<=endPX && b.b.getX()>endPX &&
b.a.getY()<=endPY && b.b.getY()>endPY ) {
- b.unsortedPoints.addLast(new Point2D.Double(endPX,endPY));
+ b.unsortedPoints.addLast(new Point2d(endPX,endPY));
++actualPoints;
break;
}
@@ -161,14 +157,14 @@ protected void outputChannel(TransformedImage img, Color newColor, int pointsPer
//logger.debug(j+" of "+buckets.size()+ " has "+buckets.get(j).unsortedPoints.size()+" points");
// assume we start at the center of the image, for those machines with no pen up option.
- Point2D a = new Point2D.Double(0, 0);
+ Point2d a = new Point2d(0, 0);
if (!bucket.unsortedPoints.isEmpty()) {
while (!bucket.unsortedPoints.isEmpty()) {
double bestLen = Double.MAX_VALUE;
int bestI = 0;
for (int i = 0; i < bucket.unsortedPoints.size(); ++i) {
- double len = a.distanceSq(bucket.unsortedPoints.get(i));
+ double len = a.distanceSquared(bucket.unsortedPoints.get(i));
if (bestLen > len) {
bestLen = len;
bestI = i;
@@ -187,7 +183,7 @@ protected void outputChannel(TransformedImage img, Color newColor, int pointsPer
for (Bucket bucket : buckets) {
while (!bucket.sortedPoints.isEmpty()) {
- Point2D a = bucket.sortedPoints.pop();
+ Point2d a = bucket.sortedPoints.pop();
turtle.moveTo(px+a.getX(), py+a.getY());
turtle.penDown();
}
diff --git a/src/main/java/com/marginallyclever/makelangelo/makeart/io/LoadSVG.java b/src/main/java/com/marginallyclever/makelangelo/makeart/io/LoadSVG.java
index cf1d131e4..ccc4e3bca 100644
--- a/src/main/java/com/marginallyclever/makelangelo/makeart/io/LoadSVG.java
+++ b/src/main/java/com/marginallyclever/makelangelo/makeart/io/LoadSVG.java
@@ -1,7 +1,6 @@
package com.marginallyclever.makelangelo.makeart.io;
import com.marginallyclever.convenience.Bezier;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.convenience.W3CColorNames;
import com.marginallyclever.makelangelo.turtle.Turtle;
import org.apache.batik.anim.dom.*;
@@ -18,6 +17,7 @@
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.vecmath.Matrix3d;
+import javax.vecmath.Point2d;
import javax.vecmath.Vector3d;
import java.awt.*;
import java.io.InputStream;
@@ -441,8 +441,8 @@ private void doCubicCurveAbs(SVGPathSeg item, Matrix3d m) {
p1.x,p1.y,
p2.x,p2.y,
p3.x,p3.y);
- List points = b.generateCurvePoints(0.1);
- for(Point2D p : points) myTurtle.moveTo(p.x,p.y);
+ List points = b.generateCurvePoints(0.1);
+ for(Point2d p : points) myTurtle.moveTo(p.x,p.y);
pathPoint.set(p3);
isNewPath=true;
}
diff --git a/src/main/java/com/marginallyclever/makelangelo/makeart/tools/InfillTurtle.java b/src/main/java/com/marginallyclever/makelangelo/makeart/tools/InfillTurtle.java
index 9916e72e4..025e2625b 100644
--- a/src/main/java/com/marginallyclever/makelangelo/makeart/tools/InfillTurtle.java
+++ b/src/main/java/com/marginallyclever/makelangelo/makeart/tools/InfillTurtle.java
@@ -2,7 +2,6 @@
import com.marginallyclever.convenience.LineCollection;
import com.marginallyclever.convenience.LineSegment2D;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.makelangelo.turtle.Turtle;
import javax.vecmath.Point2d;
@@ -187,7 +186,7 @@ public int compare(Point2d o1, Point2d o2) {
* TODO move this to com.marginallyclever.convenience.LineHelper?
* @param alpha first line segment
* @param beta second line segment
- * @return intersection {@link Point2D} or null
+ * @return intersection {@link Point2d} or null
*/
private Point2d getIntersection(LineSegment2D alpha, LineSegment2D beta) {
double s1_x = alpha.end.x - alpha.start.x;
diff --git a/src/main/java/com/marginallyclever/makelangelo/makeart/turtlegenerator/Generator_Polyeder.java b/src/main/java/com/marginallyclever/makelangelo/makeart/turtlegenerator/Generator_Polyeder.java
index 85e3e72cb..02b86a338 100644
--- a/src/main/java/com/marginallyclever/makelangelo/makeart/turtlegenerator/Generator_Polyeder.java
+++ b/src/main/java/com/marginallyclever/makelangelo/makeart/turtlegenerator/Generator_Polyeder.java
@@ -1,6 +1,5 @@
package com.marginallyclever.makelangelo.makeart.turtlegenerator;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.makelangelo.Translator;
import com.marginallyclever.makelangelo.select.SelectInteger;
import com.marginallyclever.makelangelo.select.SelectOneOfMany;
@@ -8,6 +7,7 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.vecmath.Point2d;
import java.util.ArrayList;
/**
@@ -39,21 +39,21 @@ public static class Model {
* @since 7.24.0
*/
public static class Transform {
- public Point2D org;
+ public Point2d org;
public double x_x,x_y,y_x,y_y;
public Transform()
{
- org = new Point2D();
+ org = new Point2d();
org.x=0;
org.y=0;
x_x=y_y=1;
x_y=y_x=0;
}
- public Point2D trans(Point2D pt)
+ public Point2d trans(Point2d pt)
{
- Point2D a=new Point2D();
+ Point2d a=new Point2d();
a.x=org.x+pt.x*x_x+pt.y*y_x;
a.y=org.y+pt.x*x_y+pt.y*y_y;
return a;
@@ -71,7 +71,7 @@ public Transform dup()
return t1;
}
- public void walk(Point2D d)
+ public void walk(Point2d d)
{
org.x += d.x*x_x + d.y*y_x;
org.y += d.x*x_y + d.y*y_y;
@@ -189,8 +189,8 @@ private void geneneratePolygonStep(Turtle turtle,Transform t) {
if(code == 1)
{
// draw a flap
- Point2D pos=new Point2D();
- Point2D abspos;
+ Point2d pos=new Point2d();
+ Point2d abspos;
pos.x=0;
pos.y=size/2f;
@@ -220,16 +220,16 @@ private void geneneratePolygonStep(Turtle turtle,Transform t) {
{
// polygon with `code` number of points.
- t.walk(new Point2D(-size/(2*Math.tan(Math.PI/code)),0));
+ t.walk(new Point2d(-size/(2*Math.tan(Math.PI/code)),0));
double r=size/(2*Math.sin(Math.PI/code));
for(i=0;i<=code;i++)
{
double ang=2*Math.PI*(i-0.5)/(double)code;
- Point2D pos=new Point2D();
+ Point2d pos=new Point2d();
pos.x=r*Math.cos(ang);
pos.y=r*Math.sin(ang);
- Point2D abspos=t.trans(pos);
+ Point2d abspos=t.trans(pos);
turtle.moveTo(abspos.x,abspos.y);
if(i == 0) turtle.penDown();
}
@@ -241,7 +241,7 @@ private void geneneratePolygonStep(Turtle turtle,Transform t) {
logger.debug("turn {}", i);
Transform t1=t.dup();
t1.rotate(2*Math.PI*i/(double)code);
- t1.walk(new Point2D(size/(2*Math.tan(Math.PI/code)),0));
+ t1.walk(new Point2d(size/(2*Math.tan(Math.PI/code)),0));
t1.rotate(Math.PI);
// recursion.
geneneratePolygonStep(turtle,t1);
diff --git a/src/main/java/com/marginallyclever/makelangelo/makeart/turtlegenerator/lineweight/LineWeightByImageIntensity.java b/src/main/java/com/marginallyclever/makelangelo/makeart/turtlegenerator/lineweight/LineWeightByImageIntensity.java
index 37f83072c..a36e4b396 100644
--- a/src/main/java/com/marginallyclever/makelangelo/makeart/turtlegenerator/lineweight/LineWeightByImageIntensity.java
+++ b/src/main/java/com/marginallyclever/makelangelo/makeart/turtlegenerator/lineweight/LineWeightByImageIntensity.java
@@ -2,7 +2,6 @@
import com.marginallyclever.convenience.LineCollection;
import com.marginallyclever.convenience.LineSegment2D;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.makelangelo.Translator;
import com.marginallyclever.makelangelo.makeart.TransformedImage;
import com.marginallyclever.makelangelo.makeart.turtlegenerator.TurtleGenerator;
@@ -173,11 +172,11 @@ private void generateOneThickLine(Turtle turtle, LineWeight line) {
// collect all the points, write them at the end.
for(int pass=0; pass<=numPasses; ++pass) {
double ratio = pass/numPasses;
- List offsetLine = generateOneThickLinePass(line,start,ratio);
+ List offsetLine = generateOneThickLinePass(line,start,ratio);
if((pass%2)==1) Collections.reverse(offsetLine);
// draw pass
- for( Point2D p : offsetLine ) {
+ for( Point2d p : offsetLine ) {
if(first) {
turtle.jumpTo(p.x,p.y);
first=false;
@@ -187,15 +186,15 @@ private void generateOneThickLine(Turtle turtle, LineWeight line) {
}
}
- private List generateOneThickLinePass(LineWeight line,LineWeightSegment start,double distance) {
- List offsetSequence = new ArrayList<>();
+ private List generateOneThickLinePass(LineWeight line,LineWeightSegment start,double distance) {
+ List offsetSequence = new ArrayList<>();
// add first point at start of line
double [] s0 = getOffsetLine(start, adjustedOffset(start.weight,distance));
Vector2d unit = line.segments.get(0).getUnit();
unit.scale(distance);
- offsetSequence.add(new Point2D(s0[0]-unit.x,s0[1]-unit.y));
+ offsetSequence.add(new Point2d(s0[0]-unit.x,s0[1]-unit.y));
// add the middle points of the line
for(int i=1;i generateOneThickLinePass(LineWeight line,LineWeightSegment
s0[0],s0[1],s0[2],s0[3],
s1[0],s1[1],s1[2],s1[3]
);
- offsetSequence.add(new Point2D(inter[0],inter[1]));
- //offsetSequence.add(new Point2D(s1[0],s1[1]));
+ offsetSequence.add(new Point2d(inter[0],inter[1]));
+ //offsetSequence.add(new Point2d(s1[0],s1[1]));
} else {
- offsetSequence.add(new Point2D(s1[0], s1[1]));
+ offsetSequence.add(new Point2d(s1[0], s1[1]));
}
s0=s1;
}
// add the last point of the line
unit = line.segments.get(line.segments.size()-1).getUnit();
unit.scale(distance);
- offsetSequence.add(new Point2D(s0[2]+unit.x,s0[3]+unit.y));
+ offsetSequence.add(new Point2d(s0[2]+unit.x,s0[3]+unit.y));
return offsetSequence;
}
diff --git a/src/main/java/com/marginallyclever/makelangelo/plotter/Plotter.java b/src/main/java/com/marginallyclever/makelangelo/plotter/Plotter.java
index 385ccdc7b..4062b1558 100644
--- a/src/main/java/com/marginallyclever/makelangelo/plotter/Plotter.java
+++ b/src/main/java/com/marginallyclever/makelangelo/plotter/Plotter.java
@@ -1,14 +1,11 @@
package com.marginallyclever.makelangelo.plotter;
-import com.jogamp.opengl.GL3;
-import com.marginallyclever.convenience.Point2D;
-import com.marginallyclever.makelangelo.apps.previewpanel.PreviewListener;
-import com.marginallyclever.makelangelo.apps.previewpanel.PreviewPanel;
import com.marginallyclever.makelangelo.paper.Paper;
import com.marginallyclever.makelangelo.plotter.plottersettings.PlotterSettings;
import com.marginallyclever.makelangelo.turtle.TurtleMove;
import javax.swing.event.EventListenerList;
+import javax.vecmath.Point2d;
import java.security.InvalidParameterException;
/**
@@ -27,13 +24,13 @@ public class Plotter implements Cloneable {
// if pen is "up" then it is not drawing.
private boolean penIsUp = false;
// current pen position
- private Point2D pos = new Point2D(0,0);
+ private Point2d pos = new Point2d(0,0);
@Override
public Object clone() throws CloneNotSupportedException {
Plotter b = (Plotter)super.clone();
b.listeners = new EventListenerList();
- b.pos = new Point2D();
+ b.pos = new Point2d();
b.pos.set(this.pos);
return b;
}
@@ -125,7 +122,7 @@ public void setPos(double x, double y) {
/**
* @return the current pen holder position.
*/
- public Point2D getPos() {
+ public Point2d getPos() {
return pos;
}
diff --git a/src/main/java/com/marginallyclever/makelangelo/plotter/marlinsimulation/MarlinSimulation.java b/src/main/java/com/marginallyclever/makelangelo/plotter/marlinsimulation/MarlinSimulation.java
index 5d48757d2..50d153e92 100644
--- a/src/main/java/com/marginallyclever/makelangelo/plotter/marlinsimulation/MarlinSimulation.java
+++ b/src/main/java/com/marginallyclever/makelangelo/plotter/marlinsimulation/MarlinSimulation.java
@@ -1,12 +1,12 @@
package com.marginallyclever.makelangelo.plotter.marlinsimulation;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.makelangelo.plotter.plottersettings.PlotterSettings;
import com.marginallyclever.makelangelo.turtle.Turtle;
import com.marginallyclever.makelangelo.turtle.TurtleMove;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.vecmath.Point2d;
import javax.vecmath.Vector3d;
import java.util.Iterator;
import java.util.LinkedList;
@@ -531,7 +531,7 @@ public void historyAction(Turtle t,SegmentFunction consumer) {
double downAngle = settings.getDouble(PlotterSettings.PEN_ANGLE_DOWN);
boolean isUp=true;
- Point2D home = settings.getHome();
+ Point2d home = settings.getHome();
double lx=home.x;
double ly=home.y;
poseNow.set(lx,ly,upAngle);
diff --git a/src/main/java/com/marginallyclever/makelangelo/plotter/plottersettings/PlotterSettings.java b/src/main/java/com/marginallyclever/makelangelo/plotter/plottersettings/PlotterSettings.java
index 2ca7f14fc..03804952f 100644
--- a/src/main/java/com/marginallyclever/makelangelo/plotter/plottersettings/PlotterSettings.java
+++ b/src/main/java/com/marginallyclever/makelangelo/plotter/plottersettings/PlotterSettings.java
@@ -1,10 +1,10 @@
package com.marginallyclever.makelangelo.plotter.plottersettings;
-import com.marginallyclever.convenience.Point2D;
import com.marginallyclever.makelangelo.apps.previewpanel.plotterrenderer.PlotterRendererFactory;
import com.marginallyclever.util.PreferencesHelper;
import org.json.JSONObject;
+import javax.vecmath.Point2d;
import java.awt.*;
import java.util.Arrays;
import java.util.prefs.Preferences;
@@ -330,8 +330,8 @@ public void setDoubleArray(String key,double [] values) throws NullPointerExcept
setString(key,Arrays.toString(values));
}
- public Point2D getHome() {
- return new Point2D(0,0);
+ public Point2d getHome() {
+ return new Point2d(0,0);
}
/**
diff --git a/src/main/java/com/marginallyclever/makelangelo/turtle/Turtle.java b/src/main/java/com/marginallyclever/makelangelo/turtle/Turtle.java
index 95cd36b3d..52dfab08a 100644
--- a/src/main/java/com/marginallyclever/makelangelo/turtle/Turtle.java
+++ b/src/main/java/com/marginallyclever/makelangelo/turtle/Turtle.java
@@ -2,7 +2,6 @@
import com.marginallyclever.convenience.LineCollection;
import com.marginallyclever.convenience.LineSegment2D;
-import com.marginallyclever.convenience.Point2D;
import javax.vecmath.Point2d;
import javax.vecmath.Vector2d;
@@ -249,8 +248,8 @@ public void forward(double distance) {
* Calculate the limits of drawing lines in this turtle history
**/
public Rectangle2D.Double getBounds() {
- Point2D top = new Point2D();
- Point2D bottom = new Point2D();
+ Point2d top = new Point2d();
+ Point2d bottom = new Point2d();
getBounds(top,bottom);
Rectangle2D.Double r = new Rectangle.Double();
@@ -267,7 +266,7 @@ public Rectangle2D.Double getBounds() {
* @param top maximum limits
* @param bottom minimum limits
*/
- private void getBounds(Point2D top,Point2D bottom) {
+ private void getBounds(Point2d top,Point2d bottom) {
bottom.x=Float.MAX_VALUE;
bottom.y=Float.MAX_VALUE;
top.x=-Float.MAX_VALUE;
@@ -299,7 +298,7 @@ private void getBounds(Point2D top,Point2D bottom) {
}
}
- private void getBoundsInternal(Point2D top,Point2D bottom,TurtleMove m) {
+ private void getBoundsInternal(Point2d top,Point2d bottom,TurtleMove m) {
if (top.x < m.x) top.x = m.x;
if (top.y < m.y) top.y = m.y;
if (bottom.x > m.x) bottom.x = m.x;
@@ -544,7 +543,7 @@ public double getDrawDistance() {
* @param t a value from 0...{@link Turtle#getDrawDistance()}, inclusive.
* @return a point along the drawn lines of this {@link Turtle}
*/
- public Point2D interpolate(double t) {
+ public Point2d interpolate(double t) {
double d=0;
TurtleMove prev = new TurtleMove(0,0,MovementType.TRAVEL);
for( TurtleMove m : history) {
@@ -555,7 +554,7 @@ public Point2D interpolate(double t) {
if(d+change>=t) { // d < t < d+change
double v = (t-d==0)? 0 : (t-d) / change;
v = Math.max(Math.min(v,1),0);
- return new Point2D(
+ return new Point2d(
prev.x + dx * v,
prev.y + dy * v);
}
@@ -565,7 +564,7 @@ public Point2D interpolate(double t) {
prev = m;
}
}
- return new Point2D(prev.x,prev.y);
+ return new Point2d(prev.x,prev.y);
}
@Override
diff --git a/src/main/resources/languages/english.xml b/src/main/resources/languages/english.xml
index 9227d2070..72441287b 100644
--- a/src/main/resources/languages/english.xml
+++ b/src/main/resources/languages/english.xml
@@ -87,12 +87,10 @@
ReportBugReport an issue
MenuManualRead the Friendly Manual
MenuAboutAbout
- MenuSettingsSettings
MenuOpenFileOpen File...
MenuImportFileImport File...
MenuSaveFileSave File...
MenuReopenFileReopen last file
- MenuViewView
MenuView.zoomInZoom +
MenuView.zoomOutZoom -
MenuView.zoomFitZoom to fit
diff --git a/src/test/java/com/marginallyclever/makelangelo/turtle/TurtleTest.java b/src/test/java/com/marginallyclever/makelangelo/turtle/TurtleTest.java
index 90f4d5434..e71ee7c6c 100644
--- a/src/test/java/com/marginallyclever/makelangelo/turtle/TurtleTest.java
+++ b/src/test/java/com/marginallyclever/makelangelo/turtle/TurtleTest.java
@@ -1,8 +1,8 @@
package com.marginallyclever.makelangelo.turtle;
-import com.marginallyclever.convenience.Point2D;
import org.junit.jupiter.api.Test;
+import javax.vecmath.Point2d;
import java.awt.*;
import java.awt.geom.Rectangle2D;
import java.util.List;
@@ -281,7 +281,7 @@ public void testInterpolate() {
double d = turtle.getDrawDistance();
assertEquals(1000,d);
for(int i=0;i<=10;++i) {
- assertTrue(new Point2D(i * 100, 0).distance(turtle.interpolate(d*(double)i/10.0)) < EPSILON);
+ assertTrue(new Point2d(i * 100, 0).distance(turtle.interpolate(d*(double)i/10.0)) < EPSILON);
}
}
}
\ No newline at end of file