Search in sources :

Example 21 with IRectangle

use of net.sf.latexdraw.models.interfaces.shape.IRectangle in project latexdraw by arnobl.

the class TestCanvasCreation method testDrawRectangle.

@Test
public void testDrawRectangle() {
    pencil.setCurrentChoice(EditionChoice.RECT);
    final Point2D pos = point(canvas).query();
    drag(pos, MouseButton.PRIMARY).dropBy(100d, 200d).sleep(SLEEP);
    assertEquals(1, drawing.size());
    assertTrue(drawing.getShapeAt(0) instanceof IRectangle);
    assertEquals(100d, drawing.getShapeAt(0).getWidth(), 0.00001d);
    assertEquals(200d, drawing.getShapeAt(0).getHeight(), 0.00001d);
    assertEquals(-Canvas.getMargins() + canvas.screenToLocal(pos).getX(), ((IRectangle) drawing.getShapeAt(0)).getPosition().getX(), 0.00001d);
    assertEquals(-Canvas.getMargins() + canvas.screenToLocal(pos).getY(), drawing.getShapeAt(0).getTopLeftPoint().getY(), 0.00001d);
}
Also used : Point2D(javafx.geometry.Point2D) IRectangle(net.sf.latexdraw.models.interfaces.shape.IRectangle) Test(org.junit.Test)

Example 22 with IRectangle

use of net.sf.latexdraw.models.interfaces.shape.IRectangle in project latexdraw by arnobl.

the class TestModifyShapeProperty method configureShapes.

private void configureShapes() {
    final IGrid grid = ShapeFactory.INST.createGrid(ShapeFactory.INST.createPoint());
    final IAxes axes = ShapeFactory.INST.createAxes(ShapeFactory.INST.createPoint());
    final IDot dot = ShapeFactory.INST.createDot(ShapeFactory.INST.createPoint());
    final ICircle circle = ShapeFactory.INST.createCircle();
    final IEllipse ell = ShapeFactory.INST.createEllipse();
    final IText txt = ShapeFactory.INST.createText();
    final IBezierCurve bc = ShapeFactory.INST.createBezierCurve(Collections.emptyList());
    final IPolyline pl = ShapeFactory.INST.createPolyline(Collections.emptyList());
    final IPolygon pg = ShapeFactory.INST.createPolygon(Collections.emptyList());
    final ITriangle tr = ShapeFactory.INST.createTriangle();
    final IRhombus rh = ShapeFactory.INST.createRhombus();
    final IRectangle r1 = ShapeFactory.INST.createRectangle();
    final IPlot plot = ShapeFactory.INST.createPlot(ShapeFactory.INST.createPoint(), 0d, 1d, "x", false);
    final ICircleArc carc = ShapeFactory.INST.createCircleArc();
    final ISquare sq = ShapeFactory.INST.createSquare();
    final IFreehand fh = ShapeFactory.INST.createFreeHand(Collections.emptyList());
    r1.setLineStyle(LineStyle.DASHED);
    r1.setBordersPosition(BorderPos.INTO);
    r1.setFillingStyle(FillingStyle.PLAIN);
    r1.setThickness(2.3);
    r1.setHasDbleBord(true);
    r1.setLineArc(0.2);
    r1.setDbleBordSep(1.3);
    r1.setHatchingsAngle(0.33);
    r1.setHatchingsSep(9.1);
    r1.setHatchingsWidth(12.11);
    r1.setShadowAngle(0.1);
    r1.setGradMidPt(0.66);
    r1.setHatchingsCol(DviPsColors.CYAN);
    r1.setLineColour(DviPsColors.NAVYBLUE);
    r1.setShadowSize(87.2);
    r1.setFillingCol(DviPsColors.CARNATIONPINK);
    r1.setShadowCol(DviPsColors.CORNFLOWERBLUE);
    r1.setDashSepBlack(1.2);
    r1.setDashSepWhite(2.1);
    r1.setDotSep(23.1);
    r1.setGradAngle(1.3);
    r1.setDbleBordCol(DviPsColors.RED);
    r1.setGradColEnd(DviPsColors.BITTERSWEET);
    r1.setGradColStart(DviPsColors.FORESTGREEN);
    r1.setShowPts(true);
    final IRectangle r2 = ShapeFactory.INST.createRectangle();
    r2.setLineStyle(LineStyle.SOLID);
    r2.setBordersPosition(BorderPos.MID);
    r2.setFillingStyle(FillingStyle.HLINES);
    r2.setThickness(6.3);
    r2.setHasShadow(true);
    r2.setLineArc(0.33);
    r2.setDbleBordSep(2.3);
    r2.setHatchingsAngle(-0.53);
    r2.setHatchingsSep(1.1);
    r2.setHatchingsWidth(2.11);
    r2.setShadowAngle(-0.1);
    r2.setGradMidPt(0.31);
    r2.setHatchingsCol(DviPsColors.APRICOT);
    r2.setLineColour(DviPsColors.YELLOW);
    r2.setShadowSize(8.1);
    r2.setFillingCol(DviPsColors.CERULEAN);
    r2.setShadowCol(DviPsColors.DARKORCHID);
    r1.setDashSepBlack(11.2);
    r1.setDashSepWhite(21.1);
    r1.setDotSep(231.1);
    r1.setGradAngle(11.3);
    r1.setDbleBordCol(DviPsColors.ROYALBLUE);
    r1.setGradColEnd(DviPsColors.CADETBLUE);
    r1.setGradColStart(DviPsColors.OLIVE);
    txt.copy(r1);
    ell.copy(r1);
    circle.copy(r2);
    dot.copy(r2);
    bc.copy(r2);
    pl.copy(r1);
    pg.copy(r2);
    tr.copy(r1);
    rh.copy(r2);
    plot.copy(r1);
    carc.copy(r2);
    sq.copy(r1);
    fh.copy(r2);
    group.addShape(r1);
    group.addShape(txt);
    group.addShape(grid);
    group.addShape(pl);
    group.addShape(pg);
    group.addShape(r2);
    group.addShape(axes);
    group.addShape(ell);
    group.addShape(circle);
    group.addShape(tr);
    group.addShape(rh);
    group.addShape(dot);
    group.addShape(bc);
    group.addShape(plot);
    group.addShape(carc);
    group.addShape(sq);
    group.addShape(fh);
}
Also used : IPlot(net.sf.latexdraw.models.interfaces.shape.IPlot) ICircle(net.sf.latexdraw.models.interfaces.shape.ICircle) IDot(net.sf.latexdraw.models.interfaces.shape.IDot) IEllipse(net.sf.latexdraw.models.interfaces.shape.IEllipse) IGrid(net.sf.latexdraw.models.interfaces.shape.IGrid) IAxes(net.sf.latexdraw.models.interfaces.shape.IAxes) IPolygon(net.sf.latexdraw.models.interfaces.shape.IPolygon) IFreehand(net.sf.latexdraw.models.interfaces.shape.IFreehand) IBezierCurve(net.sf.latexdraw.models.interfaces.shape.IBezierCurve) IPolyline(net.sf.latexdraw.models.interfaces.shape.IPolyline) ITriangle(net.sf.latexdraw.models.interfaces.shape.ITriangle) ICircleArc(net.sf.latexdraw.models.interfaces.shape.ICircleArc) IText(net.sf.latexdraw.models.interfaces.shape.IText) ISquare(net.sf.latexdraw.models.interfaces.shape.ISquare) IRhombus(net.sf.latexdraw.models.interfaces.shape.IRhombus) IRectangle(net.sf.latexdraw.models.interfaces.shape.IRectangle)

Example 23 with IRectangle

use of net.sf.latexdraw.models.interfaces.shape.IRectangle in project latexdraw by arnobl.

the class TestTabSelector method testClickCanvasActivationsOnSelectedShape.

@Test
public void testClickCanvasActivationsOnSelectedShape() {
    final IRectangle rectangle = ShapeFactory.INST.createRectangle(ShapeFactory.INST.createPoint(), 100, 50);
    final Canvas canvas = injector.getInstance(Canvas.class);
    Platform.runLater(() -> {
        canvas.getDrawing().addShape(rectangle);
        canvas.getDrawing().getSelection().addShape(rectangle);
    });
    WaitForAsyncUtils.waitForFxEvents();
    clickOn(tabPane.lookup("#tabPST"));
    clickOn(tabPane.lookup("#canvasTab"));
    WaitForAsyncUtils.waitForFxEvents();
    sleep(100L);
    Mockito.verify(deleter, Mockito.times(1)).setActivated(true);
}
Also used : Canvas(net.sf.latexdraw.view.jfx.Canvas) IRectangle(net.sf.latexdraw.models.interfaces.shape.IRectangle) Test(org.junit.Test)

Example 24 with IRectangle

use of net.sf.latexdraw.models.interfaces.shape.IRectangle in project latexdraw by arnobl.

the class SVGShape method getSVGHatchingsPath.

/**
 * @return The path of the hatchings of the shape.
 */
public SVGPathSegList getSVGHatchingsPath() {
    final SVGPathSegList path = new SVGPathSegList();
    if (!shape.hasHatchings()) {
        return path;
    }
    final String hatchingStyle = shape.getFillingStyle().getLatexToken();
    final double hatchingAngle = shape.getHatchingsAngle();
    final IRectangle bound = ShapeFactory.INST.createRectangle(shape.getFullTopLeftPoint(), shape.getFullBottomRightPoint());
    switch(hatchingStyle) {
        case PSTricksConstants.TOKEN_FILL_VLINES:
        case PSTricksConstants.TOKEN_FILL_VLINES_F:
            getSVGHatchingsPath2(path, hatchingAngle, bound);
            break;
        case PSTricksConstants.TOKEN_FILL_HLINES:
        case PSTricksConstants.TOKEN_FILL_HLINES_F:
            getSVGHatchingsPath2(path, hatchingAngle > 0 ? hatchingAngle - Math.PI / 2. : hatchingAngle + Math.PI / 2., bound);
            break;
        case PSTricksConstants.TOKEN_FILL_CROSSHATCH:
        case PSTricksConstants.TOKEN_FILL_CROSSHATCH_F:
            getSVGHatchingsPath2(path, hatchingAngle, bound);
            getSVGHatchingsPath2(path, hatchingAngle > 0 ? hatchingAngle - Math.PI / 2. : hatchingAngle + Math.PI / 2., bound);
            break;
    }
    return path;
}
Also used : SVGPathSegList(net.sf.latexdraw.parsers.svg.path.SVGPathSegList) IRectangle(net.sf.latexdraw.models.interfaces.shape.IRectangle)

Example 25 with IRectangle

use of net.sf.latexdraw.models.interfaces.shape.IRectangle in project latexdraw by arnobl.

the class TestPSTGeneralFeatures method testBugpssetsetOfShapes.

@Test
public void testBugpssetsetOfShapes() {
    parser("\\psframe(0.5,0.5)(1.5,1.5)\\psdot[linewidth=1cm,dotsize=1](1,1)\\psset{unit=2}\\psframe(0.5,0.5)(1.5,1.5)\\psdot(2," + "2)");
    IRectangle rec = getShapeAt(0);
    assertEquals(0.5 * IShape.PPC, rec.getX(), 0.000001);
    assertEquals(-0.5 * IShape.PPC, rec.getY(), 0.000001);
    assertEquals(IShape.PPC, rec.getWidth(), 0.000001);
    assertEquals(IShape.PPC, rec.getHeight(), 0.000001);
    IDot dot = getShapeAt(1);
    assertEquals(IShape.PPC, dot.getX(), 0.000001);
    assertEquals(-IShape.PPC, dot.getY(), 0.000001);
    rec = getShapeAt(2);
    assertEquals(0.5 * 2d * IShape.PPC, rec.getX(), 0.000001);
    assertEquals(-0.5 * 2d * IShape.PPC, rec.getY(), 0.000001);
    assertEquals(2d * IShape.PPC, rec.getWidth(), 0.000001);
    assertEquals(2d * IShape.PPC, rec.getHeight(), 0.000001);
    dot = getShapeAt(3);
    assertEquals(2d * 2d * IShape.PPC, dot.getX(), 0.000001);
    assertEquals(-2d * 2d * IShape.PPC, dot.getY(), 0.000001);
}
Also used : IDot(net.sf.latexdraw.models.interfaces.shape.IDot) IRectangle(net.sf.latexdraw.models.interfaces.shape.IRectangle) Test(org.junit.Test)

Aggregations

IRectangle (net.sf.latexdraw.models.interfaces.shape.IRectangle)39 Test (org.junit.Test)33 HelperTest (net.sf.latexdraw.HelperTest)5 IGrid (net.sf.latexdraw.models.interfaces.shape.IGrid)5 ICircle (net.sf.latexdraw.models.interfaces.shape.ICircle)2 IDot (net.sf.latexdraw.models.interfaces.shape.IDot)2 IEllipse (net.sf.latexdraw.models.interfaces.shape.IEllipse)2 IPoint (net.sf.latexdraw.models.interfaces.shape.IPoint)2 IText (net.sf.latexdraw.models.interfaces.shape.IText)2 Theory (org.junit.experimental.theories.Theory)2 Point2D (javafx.geometry.Point2D)1 ILineArcProp (net.sf.latexdraw.models.interfaces.prop.ILineArcProp)1 IAxes (net.sf.latexdraw.models.interfaces.shape.IAxes)1 IBezierCurve (net.sf.latexdraw.models.interfaces.shape.IBezierCurve)1 ICircleArc (net.sf.latexdraw.models.interfaces.shape.ICircleArc)1 IFreehand (net.sf.latexdraw.models.interfaces.shape.IFreehand)1 IPlot (net.sf.latexdraw.models.interfaces.shape.IPlot)1 IPolygon (net.sf.latexdraw.models.interfaces.shape.IPolygon)1 IPolyline (net.sf.latexdraw.models.interfaces.shape.IPolyline)1 IPositionShape (net.sf.latexdraw.models.interfaces.shape.IPositionShape)1