use of net.sf.latexdraw.parsers.svg.SVGDocument in project latexdraw by arnobl.
the class SVGTriangle method toSVG.
@Override
public SVGElement toSVG(final SVGDocument doc) {
if (doc == null || doc.getFirstChild().getDefs() == null) {
return null;
}
final SVGElement root = new SVGGElement(doc);
root.setAttribute(LNamespace.LATEXDRAW_NAMESPACE + ':' + LNamespace.XML_TYPE, LNamespace.XML_TYPE_TRIANGLE);
root.setAttribute(SVGAttributes.SVG_ID, getSVGID());
final double gap = getPositionGap() / 2d;
final IPoint pt1 = shape.getTopLeftPoint();
final IPoint pt2 = shape.getBottomRightPoint();
final IPoint p1 = ShapeFactory.INST.createPoint((pt1.getX() + pt2.getX()) / 2d, pt1.getY());
final IPoint p2 = ShapeFactory.INST.createPoint(pt2.getX(), pt2.getY());
final IPoint p3 = ShapeFactory.INST.createPoint(pt1.getX(), pt2.getY());
final double p1x = p1.getX();
final double p1y = p1.getY();
final double p2x = p2.getX();
final double p2y = p2.getY();
final double p3x = p3.getX();
double cornerGap1 = MathUtils.INST.getCornerGap(ShapeFactory.INST.createPoint(p1x, p2y), p1, p2, gap);
double cornerGap2 = MathUtils.INST.getCornerGap(shape.getGravityCentre(), p2, p3, gap);
if (p2x > p3x) {
cornerGap2 *= -1d;
}
if (p1y > p2y) {
cornerGap1 *= -1d;
}
final String points = p1x + "," + (p1y - cornerGap1) + " " + (p2x - cornerGap2) + "," + (p2y + (p1y < p2y ? gap : -gap)) + " " + (p3x + cornerGap2) + "," + (p2y + (p1y < p2y ? gap : -gap));
final String ltdPoints = shape.getPoints().stream().map(pt -> Stream.of(String.valueOf(pt.getX()), String.valueOf(pt.getY()))).flatMap(s -> s).collect(Collectors.joining(" "));
setShadowPolygon(doc, root, points);
final SVGElement elt = new SVGPolygonElement(doc);
elt.setAttribute(SVGAttributes.SVG_POINTS, points);
root.appendChild(elt);
root.setAttribute(LNamespace.LATEXDRAW_NAMESPACE + ':' + LNamespace.XML_POINTS, ltdPoints);
setDbleBorderPolygon(doc, root, points);
setSVGAttributes(doc, elt, true);
setSVGRotationAttribute(root);
return root;
}
use of net.sf.latexdraw.parsers.svg.SVGDocument in project latexdraw by arnobl.
the class JFXToSVG method pathToSVGPath.
/**
* Converts a JFX path to an SVGPath.
* @param path To JFX path to convert.
* @param doc The SVG document.
* @return The created SVGPath.
* @throws NullPointerException If one of the given parameter is null.
*/
public SVGPathElement pathToSVGPath(final Path path, final SVGDocument doc) {
final SVGPathElement svgPath = new SVGPathElement(doc);
final SVGPathSegList list = new SVGPathSegList();
list.addAll(path.getElements().stream().map(elt -> createSVGPathSeg(elt)).filter(elt -> elt != null).collect(Collectors.toList()));
svgPath.setPathData(list);
copyPropertiesToSVG(svgPath, path);
return svgPath;
}
use of net.sf.latexdraw.parsers.svg.SVGDocument in project latexdraw by arnobl.
the class TestSVGAttr method setUp.
@Before
public void setUp() {
SVGDocument doc = new SVGDocument();
node = (SVGElement) doc.createElement("tag1");
}
use of net.sf.latexdraw.parsers.svg.SVGDocument in project latexdraw by arnobl.
the class TestSVGDocument method setUp.
@Before
public void setUp() throws MalformedSVGDocument, URISyntaxException, IOException {
doc1 = new SVGDocument();
doc2 = new SVGDocument(new URI("src/test/resources/test.svg"));
}
use of net.sf.latexdraw.parsers.svg.SVGDocument in project latexdraw by arnobl.
the class TestSVGDocument method testIsEqualNodeURI.
@Test
public void testIsEqualNodeURI() throws MalformedSVGDocument, URISyntaxException, IOException {
SVGDocument doc = new SVGDocument(new URI("src/test/resources/test.svg"));
assertTrue(doc2.isEqualNode(doc));
assertFalse(doc2.isEqualNode(null));
assertFalse(doc2.isEqualNode(doc1));
}
Aggregations