Commit 8e408fbf authored by Björn Richerzhagen's avatar Björn Richerzhagen
Browse files

OSM-Visualization and Movement Model

- Refactored data scaling to adhere to the world dimensions specified in
meters
- Scaling of UI elements is now done in a unified fashion by the
VisualizationInjector
parent 2fa7daee
...@@ -45,8 +45,8 @@ public class ModularMovementModelViz extends JComponent { ...@@ -45,8 +45,8 @@ public class ModularMovementModelViz extends JComponent {
private ModularMovementModel movementModel; private ModularMovementModel movementModel;
public ModularMovementModelViz(ModularMovementModel model) { public ModularMovementModelViz(ModularMovementModel model) {
setBounds(0, 0, VisualizationInjector.WORLD_X, setBounds(0, 0, VisualizationInjector.getWorldX(),
VisualizationInjector.WORLD_Y); VisualizationInjector.getWorldY());
setOpaque(true); setOpaque(true);
setVisible(true); setVisible(true);
this.movementModel = model; this.movementModel = model;
...@@ -64,10 +64,12 @@ public class ModularMovementModelViz extends JComponent { ...@@ -64,10 +64,12 @@ public class ModularMovementModelViz extends JComponent {
// draw border // draw border
g2.setColor(Color.BLACK); g2.setColor(Color.BLACK);
g2.setStroke(new BasicStroke(1f)); g2.setStroke(new BasicStroke(1f));
g2.drawOval(point.x - 15, point.y - 15, 30, 30); g2.drawOval(VisualizationInjector.scaleValue(point.x) - 15,
VisualizationInjector.scaleValue(point.y) - 15, 30, 30);
g2.setColor(new Color(0.2f, 0.8f, 0.2f, 0.6f)); g2.setColor(new Color(0.2f, 0.8f, 0.2f, 0.6f));
g2.fillOval(point.x - 15, point.y - 15, 30, 30); g2.fillOval(VisualizationInjector.scaleValue(point.x) - 15,
VisualizationInjector.scaleValue(point.y) - 15, 30, 30);
} }
} }
......
...@@ -20,6 +20,8 @@ ...@@ -20,6 +20,8 @@
package de.tud.kom.p2psim.impl.topology.movement.modularosm; package de.tud.kom.p2psim.impl.topology.movement.modularosm;
import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView.VisualizationInjector;
public class GPSCalculation { public class GPSCalculation {
private static double latCenter; private static double latCenter;
...@@ -31,7 +33,15 @@ public class GPSCalculation { ...@@ -31,7 +33,15 @@ public class GPSCalculation {
} }
private void setScaleFactor() { private void setScaleFactor() {
this.scaleFactor = Math.pow(2.0d, (13-zoom)); //this.scaleFactor = Math.pow(2.0d, (13 - zoom));
/*
* BR: set scaleFactor to fixed zoom level 15 (as in this case, 1px ==
* 1m) - this way, the world-size specified in the configs is valid on
* all zoom levels.
*/
this.scaleFactor = 0.125;
// 17: 2, 16: 1, 15: 0.5, 14: 0.25
VisualizationInjector.setScale(Math.pow(2.0d, (zoom - 16)));
} }
public static double getLatCenter() { public static double getLatCenter() {
......
...@@ -20,7 +20,6 @@ ...@@ -20,7 +20,6 @@
package de.tud.kom.p2psim.impl.topology.movement.modularosm; package de.tud.kom.p2psim.impl.topology.movement.modularosm;
import java.awt.BasicStroke;
import java.awt.Color; import java.awt.Color;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Graphics2D; import java.awt.Graphics2D;
...@@ -30,6 +29,7 @@ import java.awt.RenderingHints; ...@@ -30,6 +29,7 @@ import java.awt.RenderingHints;
import javax.swing.JComponent; import javax.swing.JComponent;
import de.tud.kom.p2psim.impl.topology.movement.modularosm.attraction.AttractionPoint; import de.tud.kom.p2psim.impl.topology.movement.modularosm.attraction.AttractionPoint;
import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView;
import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView.VisualizationInjector; import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView.VisualizationInjector;
/** /**
...@@ -43,9 +43,11 @@ public class ModularMovementModelViz extends JComponent { ...@@ -43,9 +43,11 @@ public class ModularMovementModelViz extends JComponent {
private ModularMovementModel movementModel; private ModularMovementModel movementModel;
private static Color COLOR_ATTR_POINT = new Color(0.2f, 0.2f, 0.2f, 0.4f);
public ModularMovementModelViz(ModularMovementModel model) { public ModularMovementModelViz(ModularMovementModel model) {
setBounds(0, 0, VisualizationInjector.WORLD_X, setBounds(0, 0, VisualizationInjector.getWorldX(),
VisualizationInjector.WORLD_Y); VisualizationInjector.getWorldY());
setOpaque(true); setOpaque(true);
setVisible(true); setVisible(true);
this.movementModel = model; this.movementModel = model;
...@@ -62,11 +64,13 @@ public class ModularMovementModelViz extends JComponent { ...@@ -62,11 +64,13 @@ public class ModularMovementModelViz extends JComponent {
Point point = aPoint.getRealPosition().asPoint(); Point point = aPoint.getRealPosition().asPoint();
// draw border // draw border
g2.setColor(Color.BLACK); g2.setColor(Color.BLACK);
g2.setStroke(new BasicStroke(1f)); g2.setFont(VisualizationTopologyView.FONT_MEDIUM);
g2.drawOval(point.x - 15, point.y - 15, 20, 20); g2.drawString(aPoint.getName(),
g2.drawString(aPoint.getName(), point.x - 15, point.y - 15); VisualizationInjector.scaleValue(point.x) - 15,
g2.setColor(new Color(0.2f, 0.8f, 0.2f, 0.6f)); VisualizationInjector.scaleValue(point.y) - 15);
g2.fillOval(point.x - 15, point.y - 15, 20, 20); g2.setColor(COLOR_ATTR_POINT);
g2.fillOval(VisualizationInjector.scaleValue(point.x) - 15,
VisualizationInjector.scaleValue(point.y) - 15, 20, 20);
} }
} }
......
...@@ -46,7 +46,8 @@ public class ShowGoogleMapsMapViz extends JComponent implements IMapVisualizatio ...@@ -46,7 +46,8 @@ public class ShowGoogleMapsMapViz extends JComponent implements IMapVisualizatio
private boolean initialized = false; private boolean initialized = false;
public ShowGoogleMapsMapViz() { public ShowGoogleMapsMapViz() {
setBounds(0, 0, VisualizationInjector.WORLD_X, VisualizationInjector.WORLD_Y); setBounds(0, 0, VisualizationInjector.getWorldX(),
VisualizationInjector.getWorldY());
setOpaque(true); setOpaque(true);
setVisible(true); setVisible(true);
} }
...@@ -97,7 +98,10 @@ public class ShowGoogleMapsMapViz extends JComponent implements IMapVisualizatio ...@@ -97,7 +98,10 @@ public class ShowGoogleMapsMapViz extends JComponent implements IMapVisualizatio
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON); RenderingHints.VALUE_ANTIALIAS_ON);
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.4f)); g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.4f));
Image imageToDraw = resize(Toolkit.getDefaultToolkit().getImage(tempImageFilePath), VisualizationInjector.WORLD_X, VisualizationInjector.WORLD_Y); Image imageToDraw = resize(
Toolkit.getDefaultToolkit().getImage(tempImageFilePath),
VisualizationInjector.getWorldX(),
VisualizationInjector.getWorldY());
g2.drawImage(imageToDraw , 0, 0, this); g2.drawImage(imageToDraw , 0, 0, this);
} }
......
...@@ -39,53 +39,61 @@ import javax.swing.JComponent; ...@@ -39,53 +39,61 @@ import javax.swing.JComponent;
import de.tud.kom.p2psim.impl.topology.movement.modularosm.GPSCalculation; import de.tud.kom.p2psim.impl.topology.movement.modularosm.GPSCalculation;
import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView.VisualizationInjector; import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView.VisualizationInjector;
public class ShowMapQuestMapViz extends JComponent implements IMapVisualization{ public class ShowMapQuestMapViz extends JComponent
implements IMapVisualization {
private String tempImageFilePath; private String tempImageFilePath;
private String mapType; private String mapType;
private String mapQuestKey; private String mapQuestKey;
private boolean initialized = false; private boolean initialized = false;
public ShowMapQuestMapViz() { public ShowMapQuestMapViz() {
setBounds(0, 0, VisualizationInjector.WORLD_X, VisualizationInjector.WORLD_Y); setBounds(0, 0, VisualizationInjector.getWorldX(),
VisualizationInjector.getWorldY());
setOpaque(true); setOpaque(true);
setVisible(true); setVisible(true);
} }
private void initializeImage() { private void initializeImage() {
if(!initialized) { if (!initialized) {
tempImageFilePath = tempImageFilePath + tempImageFilePath = tempImageFilePath + "mapquest"
"mapquest" + + GPSCalculation.getLatCenter()
GPSCalculation.getLatCenter() + + GPSCalculation.getLonCenter() + GPSCalculation.getZoom()
GPSCalculation.getLonCenter() + + VisualizationInjector.getWorldX()
GPSCalculation.getZoom() + + VisualizationInjector.getWorldY() + mapType + ".jpg";
mapType + ".jpg";
// Check if the file with same properties (same location) already
//Check if the file with same properties (same location) already exists // exists
File f = new File(tempImageFilePath); File f = new File(tempImageFilePath);
if(!f.exists()) { if (!f.exists()) {
try { try {
String imageUrl = "http://www.mapquestapi.com/staticmap/v4/getmap?key=" + mapQuestKey + "&type=" + mapType + "&imagetype=jpeg&center=" + String imageUrl = "http://www.mapquestapi.com/staticmap/v4/getmap?key="
GPSCalculation.getLatCenter() + "," + + mapQuestKey + "&type=" + mapType
GPSCalculation.getLonCenter() + "&zoom=" + + "&imagetype=jpeg&center="
((GPSCalculation.getZoom())+1) + "&size=1000,1000"; + GPSCalculation.getLatCenter() + ","
URL url = new URL(imageUrl); + GPSCalculation.getLonCenter() + "&zoom="
InputStream is = url.openStream(); + ((GPSCalculation.getZoom()) + 1) + "&size="
OutputStream os = new FileOutputStream(tempImageFilePath); + VisualizationInjector.getWorldX() + ","
+ VisualizationInjector.getWorldY();
byte[] b = new byte[2048]; URL url = new URL(imageUrl);
int length; InputStream is = url.openStream();
OutputStream os = new FileOutputStream(tempImageFilePath);
while ((length = is.read(b)) != -1) {
os.write(b, 0, length); byte[] b = new byte[2048];
} int length;
is.close(); while ((length = is.read(b)) != -1) {
os.close(); os.write(b, 0, length);
} catch (IOException e) { }
e.printStackTrace();
} is.close();
os.close();
} catch (IOException e) {
e.printStackTrace();
}
} }
initialized = true; initialized = true;
} }
...@@ -94,28 +102,32 @@ public class ShowMapQuestMapViz extends JComponent implements IMapVisualization{ ...@@ -94,28 +102,32 @@ public class ShowMapQuestMapViz extends JComponent implements IMapVisualization{
@Override @Override
public void paint(Graphics g) { public void paint(Graphics g) {
initializeImage(); initializeImage();
super.paintComponent(g); super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g; Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON); RenderingHints.VALUE_ANTIALIAS_ON);
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.4f)); g2.setComposite(
Image imageToDraw = resize(Toolkit.getDefaultToolkit().getImage(tempImageFilePath), VisualizationInjector.WORLD_X, VisualizationInjector.WORLD_Y); AlphaComposite.getInstance(AlphaComposite.SRC_OVER, 0.4f));
g2.drawImage(imageToDraw , 0, 0, this); Image imageToDraw = resize(
Toolkit.getDefaultToolkit().getImage(tempImageFilePath),
VisualizationInjector.getWorldX(),
VisualizationInjector.getWorldY());
g2.drawImage(imageToDraw, 0, 0, this);
} }
public void setTempImageFilePath(String tempImageFilePath) { public void setTempImageFilePath(String tempImageFilePath) {
this.tempImageFilePath = tempImageFilePath; this.tempImageFilePath = tempImageFilePath;
} }
public void setMapType(String mapType) { public void setMapType(String mapType) {
this.mapType = mapType; this.mapType = mapType;
} }
public void setMapQuestKey(String mapQuestKey) { public void setMapQuestKey(String mapQuestKey) {
this.mapQuestKey = mapQuestKey; this.mapQuestKey = mapQuestKey;
} }
/** /**
* Resizes the given image to the given width and height * Resizes the given image to the given width and height
* *
...@@ -124,17 +136,20 @@ public class ShowMapQuestMapViz extends JComponent implements IMapVisualization{ ...@@ -124,17 +136,20 @@ public class ShowMapQuestMapViz extends JComponent implements IMapVisualization{
* @param height * @param height
*/ */
private Image resize(Image originalImage, int width, int height) { private Image resize(Image originalImage, int width, int height) {
int type = BufferedImage.TYPE_INT_ARGB; int type = BufferedImage.TYPE_INT_ARGB;
BufferedImage resizedImage = new BufferedImage(width, height, type); BufferedImage resizedImage = new BufferedImage(width, height, type);
Graphics2D g = resizedImage.createGraphics(); Graphics2D g = resizedImage.createGraphics();
g.setComposite(AlphaComposite.Src); g.setComposite(AlphaComposite.Src);
g.setRenderingHint(RenderingHints.KEY_INTERPOLATION, RenderingHints.VALUE_INTERPOLATION_BILINEAR); g.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY); RenderingHints.VALUE_INTERPOLATION_BILINEAR);
g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); g.setRenderingHint(RenderingHints.KEY_RENDERING,
RenderingHints.VALUE_RENDER_QUALITY);
g.drawImage(originalImage, 0, 0, width, height, this); g.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
g.dispose(); RenderingHints.VALUE_ANTIALIAS_ON);
return resizedImage;
g.drawImage(originalImage, 0, 0, width, height, this);
g.dispose();
return resizedImage;
} }
} }
...@@ -100,8 +100,6 @@ public class VisualizationTopologyView extends JFrame implements TopologyView, ...@@ -100,8 +100,6 @@ public class VisualizationTopologyView extends JFrame implements TopologyView,
protected final int WORLD_Y; protected final int WORLD_Y;
public static double SCALE;
protected HashMap<INodeID, TopologyComponentVis> compVisPerHost = new HashMap<INodeID, TopologyComponentVis>(); protected HashMap<INodeID, TopologyComponentVis> compVisPerHost = new HashMap<INodeID, TopologyComponentVis>();
protected final WorldPanel worldPanel; protected final WorldPanel worldPanel;
...@@ -127,12 +125,10 @@ public class VisualizationTopologyView extends JFrame implements TopologyView, ...@@ -127,12 +125,10 @@ public class VisualizationTopologyView extends JFrame implements TopologyView,
/** /**
* *
*/ */
@XMLConfigurableConstructor({ "worldX", "worldY", "scale" }) @XMLConfigurableConstructor({ "worldX", "worldY" })
public VisualizationTopologyView(int worldX, int worldY, double scale) { public VisualizationTopologyView(int worldX, int worldY) {
WORLD_X = worldX; WORLD_X = worldX;
WORLD_Y = worldY; WORLD_Y = worldY;
SCALE = scale;
worldPanel = new WorldPanel(); worldPanel = new WorldPanel();
visManager = new ComponentVisManager(worldPanel); visManager = new ComponentVisManager(worldPanel);
...@@ -233,8 +229,8 @@ public class VisualizationTopologyView extends JFrame implements TopologyView, ...@@ -233,8 +229,8 @@ public class VisualizationTopologyView extends JFrame implements TopologyView,
if (model == null) if (model == null)
return; return;
weakWaypointComponentVis = new WeakWaypointComponentVis(this, model); weakWaypointComponentVis = new WeakWaypointComponentVis(model);
strongWaypointComponentVis = new StrongWaypointComponentVis(this, model); strongWaypointComponentVis = new StrongWaypointComponentVis(model);
this.visManager.addComponent("Streets", 0, weakWaypointComponentVis); this.visManager.addComponent("Streets", 0, weakWaypointComponentVis);
this.visManager this.visManager
.addComponent("Waypoints", 0, strongWaypointComponentVis); .addComponent("Waypoints", 0, strongWaypointComponentVis);
...@@ -249,7 +245,7 @@ public class VisualizationTopologyView extends JFrame implements TopologyView, ...@@ -249,7 +245,7 @@ public class VisualizationTopologyView extends JFrame implements TopologyView,
if (model == null) if (model == null)
return; return;
obstacleComponentVis = new ObstacleComponentVis(this, model); obstacleComponentVis = new ObstacleComponentVis(model);
this.visManager.addComponent("Buildings", 0, obstacleComponentVis); this.visManager.addComponent("Buildings", 0, obstacleComponentVis);
// worldPanel.add(obstacleComponentVis); // worldPanel.add(obstacleComponentVis);
} }
...@@ -314,8 +310,9 @@ public class VisualizationTopologyView extends JFrame implements TopologyView, ...@@ -314,8 +310,9 @@ public class VisualizationTopologyView extends JFrame implements TopologyView,
public WorldPanel() { public WorldPanel() {
this.setLayout(null); this.setLayout(null);
this.setPreferredSize(new Dimension((int) (WORLD_X / SCALE), this.setPreferredSize(
(int) (WORLD_Y / SCALE))); new Dimension(VisualizationInjector.getWorldX(),
VisualizationInjector.getWorldY()));
} }
@Override @Override
...@@ -337,17 +334,15 @@ public class VisualizationTopologyView extends JFrame implements TopologyView, ...@@ -337,17 +334,15 @@ public class VisualizationTopologyView extends JFrame implements TopologyView,
g2.setColor(Color.DARK_GRAY); g2.setColor(Color.DARK_GRAY);
g2.fillRect(0, 0, getWidth(), getHeight()); g2.fillRect(0, 0, getWidth(), getHeight());
g2.setColor(Color.WHITE); g2.setColor(Color.WHITE);
g2.fillRect(0, 0, (int) (WORLD_X / SCALE), (int) (WORLD_Y / SCALE)); g2.fillRect(0, 0, VisualizationInjector.getWorldX(),
VisualizationInjector.getWorldY());
g2.setPaint(Color.BLACK); g2.setPaint(Color.BLACK);
g2.drawLine(10, 10, (int) (10 + 50 / SCALE), 10); g2.drawString("100 meters", 10, 15);
g2.drawLine(10, 30, 10 + VisualizationInjector.scaleValue(100), 30);
} }
} }
public double getScale() {
return SCALE;
}
public void notifyInteractionListenersOnClick(long hostid, boolean isActive) { public void notifyInteractionListenersOnClick(long hostid, boolean isActive) {
VisualizationInjector.notifyInteractionListenersOnClick(hostid, VisualizationInjector.notifyInteractionListenersOnClick(hostid,
isActive); isActive);
...@@ -395,9 +390,11 @@ public class VisualizationTopologyView extends JFrame implements TopologyView, ...@@ -395,9 +390,11 @@ public class VisualizationTopologyView extends JFrame implements TopologyView,
protected static long eventMask = AWTEvent.MOUSE_MOTION_EVENT_MASK protected static long eventMask = AWTEvent.MOUSE_MOTION_EVENT_MASK
+ AWTEvent.MOUSE_EVENT_MASK; + AWTEvent.MOUSE_EVENT_MASK;
public static int WORLD_X = 0; private static int WORLD_X = 0;
private static int WORLD_Y = 0;
public static int WORLD_Y = 0; private static double SCALE = 1;
protected static Map<String, PlottingView> plottingViews = Maps protected static Map<String, PlottingView> plottingViews = Maps
.newHashMap(); .newHashMap();
...@@ -565,12 +562,51 @@ public class VisualizationTopologyView extends JFrame implements TopologyView, ...@@ -565,12 +562,51 @@ public class VisualizationTopologyView extends JFrame implements TopologyView,
} }
} }
/**
* Returns a SCALED x-length of the world size, only to be used by
* visualizations.
*
* @return
*/
public static int getWorldX() { public static int getWorldX() {
return WORLD_X; // return WORLD_X;
return (int) (WORLD_X * getScale());
} }
/**
* Returns a SCALED y-length of the world size, only to be used by
* visualizations.
*
* @return
*/
public static int getWorldY() { public static int getWorldY() {
return WORLD_Y; // return WORLD_Y;
return (int) (WORLD_Y * getScale());
}
/**
* Still needed by OSM-loader (Fabio), however: should not be used
* anymore. The coordinates should be final.
*
* @param x
* @param y
*/
@Deprecated
public static void setWorldCoordinates(int x, int y) {
WORLD_X = x;
WORLD_Y = y;
}
public static double getScale() {
return SCALE;
}
public static void setScale(double scale) {
SCALE = scale;
}
public static int scaleValue(double value) {
return (int) (value * getScale());
} }
public static void injectComponent(String name, int priority, public static void injectComponent(String name, int priority,
......
...@@ -60,7 +60,8 @@ public class SimControlPanel extends JToolBar implements ActionListener, ...@@ -60,7 +60,8 @@ public class SimControlPanel extends JToolBar implements ActionListener,
public SimControlPanel() { public SimControlPanel() {
super("Control"); super("Control");
this.setFloatable(false); this.setFloatable(false);
this.setPreferredSize(new Dimension(VisualizationInjector.WORLD_X, 30)); this.setPreferredSize(
new Dimension(VisualizationInjector.getWorldX(), 30));
this.setLayout(new BoxLayout(this, BoxLayout.LINE_AXIS)); this.setLayout(new BoxLayout(this, BoxLayout.LINE_AXIS));
this.add(getPlayPauseButton()); this.add(getPlayPauseButton());
this.add(Box.createHorizontalGlue()); this.add(Box.createHorizontalGlue());
......
...@@ -27,7 +27,7 @@ import java.util.Set; ...@@ -27,7 +27,7 @@ import java.util.Set;
import javax.swing.JComponent; import javax.swing.JComponent;
import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView; import de.tud.kom.p2psim.impl.simengine.Simulator;
import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView.VisualizationInjector; import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView.VisualizationInjector;
import de.tud.kom.p2psim.impl.topology.views.visualization.ui.VisHelper; import de.tud.kom.p2psim.impl.topology.views.visualization.ui.VisHelper;
import de.tudarmstadt.maki.simonstrator.api.common.graph.IEdge; import de.tudarmstadt.maki.simonstrator.api.common.graph.IEdge;
...@@ -42,27 +42,12 @@ import de.tudarmstadt.maki.simonstrator.api.component.topology.TopologyID; ...@@ -42,27 +42,12 @@ import de.tudarmstadt.maki.simonstrator.api.component.topology.TopologyID;
*/ */
public class LinkComponentVis extends JComponent { public class LinkComponentVis extends JComponent {
/**
*
*/
private final VisualizationTopologyView visualizationTopologyView;
private TopologyComponentVis src; private TopologyComponentVis src;
public LinkComponentVis(VisualizationTopologyView visualizationTopologyView, public LinkComponentVis(TopologyComponentVis src) {
TopologyComponentVis src) {
this.visualizationTopologyView = visualizationTopologyView;
this.src = src; this.src = src;
setBounds(0, 0, setBounds(0, 0, VisualizationInjector.getWorldX(),
(int) (this.visualizationTopologyView.getWorldDimensions() VisualizationInjector.getWorldY());
.getX() / this.visualizationTopologyView.getScale()),
(int) (this.visualizationTopologyView.getWorldDimensions()
.getY() / this.visualizationTopologyView.getScale()));
setBounds(0, 0,
(int) (this.visualizationTopologyView.getWorldDimensions()
.getX() / this.visualizationTopologyView.getScale()),
(int) (this.visualizationTopologyView.getWorldDimensions()
.getY() / this.visualizationTopologyView.getScale()));
setOpaque(false); setOpaque(false);
} }
...@@ -71,17 +56,20 @@ public class LinkComponentVis extends JComponent { ...@@ -71,17 +56,20 @@ public class LinkComponentVis extends JComponent {
super.paintComponent(g); super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g; Graphics2D g2 = (Graphics2D) g;
Simulator.getScheduler().pause();
TopologyID tId = src.getTopologyComp().getTopologyID(NetInterfaceName.WIFI, true); TopologyID tId = src.getTopologyComp().getTopologyID(NetInterfaceName.WIFI, true);
Set<IEdge> neighbors = new HashSet<IEdge>(src.getTopologyComp().getNeighbors(tId)); Set<IEdge> neighbors = new HashSet<IEdge>(src.getTopologyComp().getNeighbors(tId));
for (IEdge mAddr : neighbors) { for (IEdge mAddr : neighbors) {
TopologyComponentVis dst = VisualizationInjector TopologyComponentVis dst = VisualizationInjector
.getTopologyComponentVis(mAddr.toId()); .getTopologyComponentVis(mAddr.toId());
double scale = this.visualizationTopologyView.getScale(); VisHelper.drawArrow(g2,
VisHelper.drawArrow(g2, src.getPosition().getX() / scale, VisualizationInjector.scaleValue(src.getPosition().getX()),
src.getPosition().getY() / scale, VisualizationInjector.scaleValue(src.getPosition().getY()),
dst.getPosition().getX() / scale, VisualizationInjector.scaleValue(dst.getPosition().getX()),
dst.getPosition().getY() / scale, 2); VisualizationInjector.scaleValue(dst.getPosition().getY()),
2);
} }
Simulator.getScheduler().unpause();
} }
} }
\ No newline at end of file
...@@ -55,8 +55,8 @@ public class NodeInfoComponentVis extends JComponent { ...@@ -55,8 +55,8 @@ public class NodeInfoComponentVis extends JComponent {
public <T extends HostComponent> NodeInfoComponentVis( public <T extends HostComponent> NodeInfoComponentVis(
final Class<T> componentClass) { final Class<T> componentClass) {
setBounds(0, 0, VisualizationInjector.WORLD_X, setBounds(0, 0, VisualizationInjector.getWorldX(),
VisualizationInjector.WORLD_Y); VisualizationInjector.getWorldY());
setOpaque(true); setOpaque(true);
setVisible(true); setVisible(true);
......
...@@ -37,7 +37,7 @@ import de.tud.kom.p2psim.api.topology.obstacles.Obstacle; ...@@ -37,7 +37,7 @@ import de.tud.kom.p2psim.api.topology.obstacles.Obstacle;
import de.tud.kom.p2psim.api.topology.obstacles.ObstacleModel; import de.tud.kom.p2psim.api.topology.obstacles.ObstacleModel;
import de.tud.kom.p2psim.api.topology.obstacles.ObstacleModelListener; import de.tud.kom.p2psim.api.topology.obstacles.ObstacleModelListener;
import de.tud.kom.p2psim.impl.topology.obstacles.PolygonObstacle; import de.tud.kom.p2psim.impl.topology.obstacles.PolygonObstacle;
import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView; import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView.VisualizationInjector;
/** /**
* *
...@@ -46,25 +46,21 @@ import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView; ...@@ -46,25 +46,21 @@ import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView;
*/ */
public class ObstacleComponentVis extends JComponent implements ObstacleModelListener { public class ObstacleComponentVis extends JComponent implements ObstacleModelListener {
/**
*
*/
private final VisualizationTopologyView visualizationTopologyView;
protected BufferedImage image; protected BufferedImage image;
protected volatile boolean needsRedraw = true; protected volatile boolean needsRedraw = true;
private ObstacleModel model; private ObstacleModel model;
public ObstacleComponentVis(VisualizationTopologyView visualizationTopologyView, ObstacleModel model) { public ObstacleComponentVis(ObstacleModel model) {
this.visualizationTopologyView = visualizationTopologyView;
this.model = model; this.model = model;
setBounds(0, 0, (int)(this.visualizationTopologyView.getWorldDimensions().getX() / this.visualizationTopologyView.getScale()), (int)(this.visualizationTopologyView.getWorldDimensions().getY() / this.visualizationTopologyView.getScale())); setBounds(0, 0, VisualizationInjector.getWorldX(),
VisualizationInjector.getWorldY());
setOpaque(false); setOpaque(false);
setVisible(true); setVisible(true);
image = new BufferedImage((int)(this.visualizationTopologyView.getWorldDimensions().getX() / this.visualizationTopologyView.getScale()), (int)(this.visualizationTopologyView.getWorldDimensions().getY() / this.visualizationTopologyView.getScale()), BufferedImage.TYPE_INT_ARGB); image = new BufferedImage(VisualizationInjector.getWorldX(),
VisualizationInjector.getWorldY(), BufferedImage.TYPE_INT_ARGB);
} }
...@@ -87,7 +83,9 @@ public class ObstacleComponentVis extends JComponent implements ObstacleModelLis ...@@ -87,7 +83,9 @@ public class ObstacleComponentVis extends JComponent implements ObstacleModelLis
Composite c = g2.getComposite(); Composite c = g2.getComposite();
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f)); g2.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f));
Rectangle2D.Double rect = new Rectangle2D.Double(0, 0, (int)(this.visualizationTopologyView.getWorldDimensions().getX() / this.visualizationTopologyView.getScale()), (int)(this.visualizationTopologyView.getWorldDimensions().getY() / this.visualizationTopologyView.getScale())); Rectangle2D.Double rect = new Rectangle2D.Double(0, 0,
VisualizationInjector.getWorldX(),
VisualizationInjector.getWorldY());
g2.fill(rect); g2.fill(rect);
g2.setComposite(c); g2.setComposite(c);
...@@ -124,14 +122,16 @@ public class ObstacleComponentVis extends JComponent implements ObstacleModelLis ...@@ -124,14 +122,16 @@ public class ObstacleComponentVis extends JComponent implements ObstacleModelLis
} }
label = "Damping: " + obstacle.dampingFactor(); label = "Damping: " + obstacle.dampingFactor();
shape = pObstacle.getAwtPolygon(this.visualizationTopologyView.getScale()); shape = pObstacle.getAwtPolygon(VisualizationInjector.getScale());
int[] xpoints = pObstacle.getXPoints(); int[] xpoints = pObstacle.getXPoints();
int[] ypoints = pObstacle.getYPoints(); int[] ypoints = pObstacle.getYPoints();
for (int i = 0; i < xpoints.length; i++) { for (int i = 0; i < xpoints.length; i++) {
xpoints[i] = (int)(xpoints[i] / this.visualizationTopologyView.getScale()); xpoints[i] = (int) (xpoints[i]
ypoints[i] = (int)(ypoints[i] / this.visualizationTopologyView.getScale()); / VisualizationInjector.getScale());
ypoints[i] = (int) (ypoints[i]
/ VisualizationInjector.getScale());
} }
shape = new Polygon(xpoints, ypoints, xpoints.length); shape = new Polygon(xpoints, ypoints, xpoints.length);
......
...@@ -93,8 +93,8 @@ public class SocialViewComponentVis extends JComponent implements ...@@ -93,8 +93,8 @@ public class SocialViewComponentVis extends JComponent implements
} }
} }
setBounds(0, 0, VisualizationInjector.WORLD_X, setBounds(0, 0, VisualizationInjector.getWorldX(),
VisualizationInjector.WORLD_Y); VisualizationInjector.getWorldY());
setOpaque(true); setOpaque(true);
setVisible(true); setVisible(true);
......
...@@ -35,76 +35,75 @@ import javax.swing.JComponent; ...@@ -35,76 +35,75 @@ import javax.swing.JComponent;
import de.tud.kom.p2psim.api.topology.waypoints.WaypointModel; import de.tud.kom.p2psim.api.topology.waypoints.WaypointModel;
import de.tud.kom.p2psim.api.topology.waypoints.WaypointModelListener; import de.tud.kom.p2psim.api.topology.waypoints.WaypointModelListener;
import de.tud.kom.p2psim.impl.topology.PositionVector; import de.tud.kom.p2psim.impl.topology.PositionVector;
import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView; import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView.VisualizationInjector;
import de.tud.kom.p2psim.impl.topology.waypoints.graph.Path; import de.tud.kom.p2psim.impl.topology.waypoints.graph.Path;
import de.tud.kom.p2psim.impl.topology.waypoints.graph.StrongWaypoint; import de.tud.kom.p2psim.impl.topology.waypoints.graph.StrongWaypoint;
import de.tud.kom.p2psim.impl.topology.waypoints.graph.Waypoint; import de.tud.kom.p2psim.impl.topology.waypoints.graph.Waypoint;
import de.tudarmstadt.maki.simonstrator.api.Randoms; import de.tudarmstadt.maki.simonstrator.api.Randoms;
public class StrongWaypointComponentVis extends JComponent implements WaypointModelListener { public class StrongWaypointComponentVis extends JComponent
implements WaypointModelListener {
/** /**
* *
*/ */
private final VisualizationTopologyView visualizationTopologyView;
protected final int WAYPOINT_STRONG_RADIUS = 2; protected final int WAYPOINT_STRONG_RADIUS = 2;
protected final int WAYPOINT_WEAK_RADIUS = 1; protected final int WAYPOINT_WEAK_RADIUS = 1;
protected Color COLOR_PATH; protected Color COLOR_PATH;
protected Color COLOR_STRONG_WAYPOINT; protected Color COLOR_STRONG_WAYPOINT;
protected Color COLOR_WEAK_WAYPOINT; protected Color COLOR_WEAK_WAYPOINT;
protected Random rnd = Randoms protected Random rnd = Randoms.getRandom(StrongWaypointComponentVis.class);
.getRandom(StrongWaypointComponentVis.class);
protected BufferedImage image; protected BufferedImage image;
protected volatile boolean needsRedraw = true; protected volatile boolean needsRedraw = true;
private WaypointModel model; private WaypointModel model;
private double scale; public StrongWaypointComponentVis(WaypointModel model) {
public StrongWaypointComponentVis(VisualizationTopologyView visualizationTopologyView, WaypointModel model) {
this.visualizationTopologyView = visualizationTopologyView;
this.model = model; this.model = model;
setBounds(0, 0, (int)(this.visualizationTopologyView.getWorldDimensions().getX() / this.visualizationTopologyView.getScale()), (int)(this.visualizationTopologyView.getWorldDimensions().getY() / this.visualizationTopologyView.getScale())); setBounds(0, 0, VisualizationInjector.getWorldX(),
setBounds(0, 0, (int) (this.visualizationTopologyView.getWorldDimensions().getX() / this.visualizationTopologyView.getScale()), (int) (this.visualizationTopologyView.getWorldDimensions().getY() / this.visualizationTopologyView.getScale())); VisualizationInjector.getWorldY());
setOpaque(false); setOpaque(false);
setVisible(true); setVisible(true);
COLOR_STRONG_WAYPOINT = new Color(30, 144, 255, 255); COLOR_STRONG_WAYPOINT = new Color(30, 144, 255, 255);
COLOR_WEAK_WAYPOINT = new Color(30, 144, 255, 200); COLOR_WEAK_WAYPOINT = new Color(30, 144, 255, 200);
COLOR_PATH = new Color(49, 79, 79, 130); COLOR_PATH = new Color(49, 79, 79, 130);
image = new BufferedImage((int)(this.visualizationTopologyView.getWorldDimensions().getX() / this.visualizationTopologyView.getScale()), (int)(this.visualizationTopologyView.getWorldDimensions().getY() / this.visualizationTopologyView.getScale()), BufferedImage.TYPE_INT_ARGB); image = new BufferedImage(VisualizationInjector.getWorldX(),
VisualizationInjector.getWorldY(), BufferedImage.TYPE_INT_ARGB);
} }
@Override @Override
protected void paintComponent(Graphics g) { protected void paintComponent(Graphics g) {
super.paintComponent(g); super.paintComponent(g);
if (needsRedraw) if (needsRedraw)
redraw(); redraw();
Graphics2D g2 = (Graphics2D) g; Graphics2D g2 = (Graphics2D) g;
g2.drawImage(image, 0, 0, null); g2.drawImage(image, 0, 0, null);
} }
protected void redraw() { protected void redraw() {
needsRedraw = false; needsRedraw = false;
scale = this.visualizationTopologyView.getScale();
Graphics2D g2 = (Graphics2D) image.getGraphics(); Graphics2D g2 = (Graphics2D) image.getGraphics();
Composite c = g2.getComposite(); Composite c = g2.getComposite();
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f)); g2.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f));
Rectangle2D.Double rect = new Rectangle2D.Double(0, 0, (int)(this.visualizationTopologyView.getWorldDimensions().getX()/this.visualizationTopologyView.getScale()), (int)(this.visualizationTopologyView.getWorldDimensions().getY()/this.visualizationTopologyView.getScale())); Rectangle2D.Double rect = new Rectangle2D.Double(0, 0,
VisualizationInjector.getWorldX(),
VisualizationInjector.getWorldY());
g2.fill(rect); g2.fill(rect);
g2.setComposite(c); g2.setComposite(c);
try { try {
drawWaypoints(g2); drawWaypoints(g2);
} catch (RuntimeException e) { } catch (RuntimeException e) {
...@@ -126,10 +125,13 @@ public class StrongWaypointComponentVis extends JComponent implements WaypointMo ...@@ -126,10 +125,13 @@ public class StrongWaypointComponentVis extends JComponent implements WaypointMo
if (wp instanceof StrongWaypoint) { if (wp instanceof StrongWaypoint) {
g2.setColor(COLOR_STRONG_WAYPOINT); g2.setColor(COLOR_STRONG_WAYPOINT);
g2.fillOval((int)((pos.getX() - WAYPOINT_STRONG_RADIUS)/scale), g2.fillOval(
(int)((pos.getY() - WAYPOINT_STRONG_RADIUS)/scale), VisualizationInjector.scaleValue(pos.getX())
(int)((WAYPOINT_STRONG_RADIUS * 2)/scale), - WAYPOINT_STRONG_RADIUS,
(int)((WAYPOINT_STRONG_RADIUS * 2)/scale)); VisualizationInjector.scaleValue(pos.getY())
- WAYPOINT_STRONG_RADIUS,
(WAYPOINT_STRONG_RADIUS * 2),
(WAYPOINT_STRONG_RADIUS * 2));
} }
} }
} }
......
...@@ -72,7 +72,7 @@ public class TopologyComponentVis extends JComponent { ...@@ -72,7 +72,7 @@ public class TopologyComponentVis extends JComponent {
this.visualizationTopologyView = visualizationTopologyView; this.visualizationTopologyView = visualizationTopologyView;
tComp = comp; tComp = comp;
posVec = comp.getRealPosition(); posVec = comp.getRealPosition();
hostid = comp.getHost().getHostId(); hostid = comp.getHost().getId().value();
String peerColor = comp.getHost().getProperties().getProperty("peerColor"); String peerColor = comp.getHost().getProperties().getProperty("peerColor");
if (peerColor != null) { if (peerColor != null) {
...@@ -81,10 +81,12 @@ public class TopologyComponentVis extends JComponent { ...@@ -81,10 +81,12 @@ public class TopologyComponentVis extends JComponent {
} }
Point position = comp.getRealPosition().asPoint(); Point position = comp.getRealPosition().asPoint();
setBounds((int) (position.x / this.visualizationTopologyView.getScale() - COMPONENT_PADDING), setBounds(
(int) (position.y / this.visualizationTopologyView.getScale() - COMPONENT_PADDING), VisualizationInjector.scaleValue(position.getX())
2 * COMPONENT_PADDING, - COMPONENT_PADDING,
2 * COMPONENT_PADDING); VisualizationInjector.scaleValue(position.getY())
- COMPONENT_PADDING,
2 * COMPONENT_PADDING, 2 * COMPONENT_PADDING);
setOpaque(false); setOpaque(false);
this.addMouseListener(new MouseAdapter() { this.addMouseListener(new MouseAdapter() {
...@@ -126,10 +128,11 @@ public class TopologyComponentVis extends JComponent { ...@@ -126,10 +128,11 @@ public class TopologyComponentVis extends JComponent {
protected void paintComponent(Graphics g) { protected void paintComponent(Graphics g) {
super.paintComponent(g); super.paintComponent(g);
setLocation((int) ((posVec.getX() / this.visualizationTopologyView.getScale() - COMPONENT_PADDING)), setLocation(
(int) ((posVec.getY() VisualizationInjector.scaleValue(posVec.getX())
/ this.visualizationTopologyView.getScale() - COMPONENT_PADDING,
- COMPONENT_PADDING))); VisualizationInjector.scaleValue(posVec.getY())
- COMPONENT_PADDING);
Graphics2D g2 = (Graphics2D) g; Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING, g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON); RenderingHints.VALUE_ANTIALIAS_ON);
...@@ -152,16 +155,15 @@ public class TopologyComponentVis extends JComponent { ...@@ -152,16 +155,15 @@ public class TopologyComponentVis extends JComponent {
g2.setColor(Color.BLACK); g2.setColor(Color.BLACK);
g2.setFont(VisualizationTopologyView.FONT_TINY); g2.setFont(VisualizationTopologyView.FONT_TINY);
g2.drawString("ID: " + hostid, 0, COMPONENT_PADDING g2.drawString(String.valueOf(hostid), COMPONENT_PADDING,
- COMPONENT_RADIUS); COMPONENT_PADDING - COMPONENT_RADIUS);
g2.setColor(Color.BLACK); g2.setColor(Color.BLACK);
} }
protected void toggleActive() { protected void toggleActive() {
active = !active; active = !active;
if (active) { if (active) {
lcVis = new LinkComponentVis(this.visualizationTopologyView, lcVis = new LinkComponentVis(TopologyComponentVis.this);
TopologyComponentVis.this);
VisualizationInjector.getWorldPanel().add(lcVis); VisualizationInjector.getWorldPanel().add(lcVis);
} else if (lcVis != null) { } else if (lcVis != null) {
VisualizationInjector.getWorldPanel().remove(lcVis); VisualizationInjector.getWorldPanel().remove(lcVis);
......
...@@ -38,7 +38,7 @@ import javax.swing.JComponent; ...@@ -38,7 +38,7 @@ import javax.swing.JComponent;
import de.tud.kom.p2psim.api.topology.waypoints.WaypointModel; import de.tud.kom.p2psim.api.topology.waypoints.WaypointModel;
import de.tud.kom.p2psim.api.topology.waypoints.WaypointModelListener; import de.tud.kom.p2psim.api.topology.waypoints.WaypointModelListener;
import de.tud.kom.p2psim.impl.topology.PositionVector; import de.tud.kom.p2psim.impl.topology.PositionVector;
import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView; import de.tud.kom.p2psim.impl.topology.views.VisualizationTopologyView.VisualizationInjector;
import de.tud.kom.p2psim.impl.topology.waypoints.graph.DefaultWeightedEdgeRetrievableGraph; import de.tud.kom.p2psim.impl.topology.waypoints.graph.DefaultWeightedEdgeRetrievableGraph;
import de.tud.kom.p2psim.impl.topology.waypoints.graph.Path; import de.tud.kom.p2psim.impl.topology.waypoints.graph.Path;
import de.tud.kom.p2psim.impl.topology.waypoints.graph.Waypoint; import de.tud.kom.p2psim.impl.topology.waypoints.graph.Waypoint;
...@@ -52,10 +52,6 @@ import de.tudarmstadt.maki.simonstrator.api.Randoms; ...@@ -52,10 +52,6 @@ import de.tudarmstadt.maki.simonstrator.api.Randoms;
*/ */
public class WeakWaypointComponentVis extends JComponent implements WaypointModelListener { public class WeakWaypointComponentVis extends JComponent implements WaypointModelListener {
/**
*
*/
private final VisualizationTopologyView visualizationTopologyView;
protected final int WAYPOINT_STRONG_RADIUS = 2; protected final int WAYPOINT_STRONG_RADIUS = 2;
protected final int WAYPOINT_WEAK_RADIUS = 1; protected final int WAYPOINT_WEAK_RADIUS = 1;
...@@ -72,21 +68,20 @@ public class WeakWaypointComponentVis extends JComponent implements WaypointMode ...@@ -72,21 +68,20 @@ public class WeakWaypointComponentVis extends JComponent implements WaypointMode
protected volatile boolean needsRedraw = true; protected volatile boolean needsRedraw = true;
private WaypointModel model; private WaypointModel model;
private double scale;
public WeakWaypointComponentVis(VisualizationTopologyView visualizationTopologyView, WaypointModel model) { public WeakWaypointComponentVis(WaypointModel model) {
this.visualizationTopologyView = visualizationTopologyView;
this.model = model; this.model = model;
setBounds(0, 0, (int)(this.visualizationTopologyView.getWorldDimensions().getX() / this.visualizationTopologyView.getScale()), (int)(this.visualizationTopologyView.getWorldDimensions().getY() / this.visualizationTopologyView.getScale())); setBounds(0, 0, VisualizationInjector.getWorldX(),
setBounds(0, 0, (int) (this.visualizationTopologyView.getWorldDimensions().getX() / this.visualizationTopologyView.getScale()), (int) (this.visualizationTopologyView.getWorldDimensions().getY() / this.visualizationTopologyView.getScale())); VisualizationInjector.getWorldY());
setOpaque(false); setOpaque(false);
setVisible(true); setVisible(true);
COLOR_STRONG_WAYPOINT = new Color(30, 144, 255, 255); COLOR_STRONG_WAYPOINT = new Color(30, 144, 255, 255);
COLOR_WEAK_WAYPOINT = new Color(30, 144, 255, 200); COLOR_WEAK_WAYPOINT = new Color(30, 144, 255, 200);
COLOR_PATH = new Color(49, 79, 79, 130); COLOR_PATH = new Color(49, 79, 79, 130);
image = new BufferedImage((int)(this.visualizationTopologyView.getWorldDimensions().getX() / this.visualizationTopologyView.getScale()), (int)(this.visualizationTopologyView.getWorldDimensions().getY() / this.visualizationTopologyView.getScale()), BufferedImage.TYPE_INT_ARGB); image = new BufferedImage(VisualizationInjector.getWorldX(),
VisualizationInjector.getWorldY(),
BufferedImage.TYPE_INT_ARGB);
} }
@Override @Override
...@@ -103,14 +98,14 @@ public class WeakWaypointComponentVis extends JComponent implements WaypointMode ...@@ -103,14 +98,14 @@ public class WeakWaypointComponentVis extends JComponent implements WaypointMode
protected void redraw() { protected void redraw() {
needsRedraw = false; needsRedraw = false;
scale = this.visualizationTopologyView.getScale();
Graphics2D g2 = (Graphics2D) image.getGraphics(); Graphics2D g2 = (Graphics2D) image.getGraphics();
Composite c = g2.getComposite(); Composite c = g2.getComposite();
g2.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f)); g2.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR, 0.0f));
Rectangle2D.Double rect = new Rectangle2D.Double(0, 0, (int)(this.visualizationTopologyView.getWorldDimensions().getX()/this.visualizationTopologyView.getScale()), (int)(this.visualizationTopologyView.getWorldDimensions().getY()/this.visualizationTopologyView.getScale())); Rectangle2D.Double rect = new Rectangle2D.Double(0, 0,
VisualizationInjector.getWorldX(),
VisualizationInjector.getWorldY());
g2.fill(rect); g2.fill(rect);
g2.setComposite(c); g2.setComposite(c);
...@@ -167,11 +162,12 @@ public class WeakWaypointComponentVis extends JComponent implements WaypointMode ...@@ -167,11 +162,12 @@ public class WeakWaypointComponentVis extends JComponent implements WaypointMode
g2.setColor(pathColor); g2.setColor(pathColor);
g2.setStroke(new BasicStroke(0.8f)); g2.setStroke(new BasicStroke(0.8f));
g2.drawLine((int)(sourcePos.getX()/scale),
(int)(sourcePos.getY()/scale),
(int)(targetPos.getX()/scale),
(int)(targetPos.getY()/scale));
g2.drawLine(VisualizationInjector.scaleValue(sourcePos.getX()),
VisualizationInjector.scaleValue(sourcePos.getY()),
VisualizationInjector.scaleValue(targetPos.getX()),
VisualizationInjector.scaleValue(targetPos.getY()));
usedWaypoints.add(p); usedWaypoints.add(p);
} }
} }
...@@ -205,10 +201,10 @@ public class WeakWaypointComponentVis extends JComponent implements WaypointMode ...@@ -205,10 +201,10 @@ public class WeakWaypointComponentVis extends JComponent implements WaypointMode
g2.setColor(COLOR_PATH); g2.setColor(COLOR_PATH);
g2.setStroke(new BasicStroke(0.8f)); g2.setStroke(new BasicStroke(0.8f));
g2.drawLine((int)(sourcePos.getX()/scale), g2.drawLine(VisualizationInjector.scaleValue(sourcePos.getX()),
(int)(sourcePos.getY()/scale), VisualizationInjector.scaleValue(sourcePos.getY()),
(int)(targetPos.getX()/scale), VisualizationInjector.scaleValue(targetPos.getX()),
(int)(targetPos.getY()/scale)); VisualizationInjector.scaleValue(targetPos.getY()));
} }
} }
...@@ -220,10 +216,12 @@ public class WeakWaypointComponentVis extends JComponent implements WaypointMode ...@@ -220,10 +216,12 @@ public class WeakWaypointComponentVis extends JComponent implements WaypointMode
if (wp instanceof WeakWaypoint) { if (wp instanceof WeakWaypoint) {
g2.setColor(COLOR_WEAK_WAYPOINT); g2.setColor(COLOR_WEAK_WAYPOINT);
g2.fillOval((int)((pos.getX() - WAYPOINT_WEAK_RADIUS)/scale), g2.fillOval(
(int)((pos.getY() - WAYPOINT_WEAK_RADIUS)/scale), VisualizationInjector.scaleValue(pos.getX())
(int)((WAYPOINT_WEAK_RADIUS * 2)/scale), - WAYPOINT_WEAK_RADIUS,
(int)((WAYPOINT_WEAK_RADIUS * 2)/scale)); VisualizationInjector.scaleValue(pos.getY())
- WAYPOINT_WEAK_RADIUS,
WAYPOINT_WEAK_RADIUS * 2, WAYPOINT_WEAK_RADIUS * 2);
} }
} }
} }
......
...@@ -40,8 +40,8 @@ public class MapLoader implements Component { ...@@ -40,8 +40,8 @@ public class MapLoader implements Component {
public MapLoader(double worldX, double worldY) { public MapLoader(double worldX, double worldY) {
dimensions = new PositionVector(worldX, worldY); dimensions = new PositionVector(worldX, worldY);
VisualizationTopologyView.VisualizationInjector.WORLD_X = (int)worldX; VisualizationTopologyView.VisualizationInjector
VisualizationTopologyView.VisualizationInjector.WORLD_Y = (int)worldY; .setWorldCoordinates((int) worldX, (int) worldY);
} }
/** /**
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment