--- /dev/null
+package org.simantics.scenegraph.utils;
+
+import java.awt.BasicStroke;
+import java.awt.Color;
+import java.awt.Font;
+import java.awt.Graphics2D;
+import java.awt.Rectangle;
+import java.awt.Shape;
+import java.awt.geom.AffineTransform;
+import java.awt.geom.PathIterator;
+import java.awt.geom.Point2D;
+import java.awt.geom.Rectangle2D;
+
+public class SVGPassthruShape implements Shape {
+
+ private String source;
+ public final static Font DEFAULT_FONT = Font.decode(null);
+
+ public SVGPassthruShape(String source) {
+ this.source = source;
+ }
+
+ public String getSource() {
+ return source;
+ }
+
+ public static void resetG2D(Graphics2D g2d) {
+ g2d.setColor(new Color(0, 0, 0));
+ g2d.setBackground(new Color(0, 0, 0));
+ g2d.setStroke(new BasicStroke());
+ g2d.setFont(DEFAULT_FONT);
+ QualityHints.HIGH_QUALITY_HINTS.setQuality(g2d);
+ }
+
+ @Override
+ public Rectangle getBounds() {
+ return new Rectangle();
+ }
+
+ @Override
+ public Rectangle2D getBounds2D() {
+ return new Rectangle2D.Double();
+ }
+
+ @Override
+ public boolean contains(double x, double y) {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Point2D p) {
+ return false;
+ }
+
+ @Override
+ public boolean intersects(double x, double y, double w, double h) {
+ return false;
+ }
+
+ @Override
+ public boolean intersects(Rectangle2D r) {
+ return false;
+ }
+
+ @Override
+ public boolean contains(double x, double y, double w, double h) {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Rectangle2D r) {
+ return false;
+ }
+
+ @Override
+ public PathIterator getPathIterator(AffineTransform at) {
+ return new EmptyPathIterator();
+ }
+
+ @Override
+ public PathIterator getPathIterator(AffineTransform at, double flatness) {
+ return new EmptyPathIterator();
+ }
+
+ private class EmptyPathIterator implements PathIterator {
+
+ @Override
+ public void next() {
+
+ }
+
+ @Override
+ public boolean isDone() {
+ return true;
+ }
+
+ @Override
+ public int getWindingRule() {
+ return 0;
+ }
+
+ @Override
+ public int currentSegment(double[] coords) {
+ return 0;
+ }
+
+ @Override
+ public int currentSegment(float[] coords) {
+ return 0;
+ }
+ };
+
+}