Search in sources :

Example 11 with Size

use of com.willwinder.ugs.nbp.designer.model.Size in project Universal-G-Code-Sender by winder.

the class SvgReader method parseRectangle.

private AbstractEntity parseRectangle(Rectangle2D shape) {
    Rectangle rectangle = new Rectangle(shape.getX(), shape.getY());
    rectangle.setSize(new Size(shape.getWidth(), shape.getHeight()));
    return rectangle;
}
Also used : Size(com.willwinder.ugs.nbp.designer.model.Size) Rectangle(com.willwinder.ugs.nbp.designer.entities.cuttable.Rectangle)

Example 12 with Size

use of com.willwinder.ugs.nbp.designer.model.Size in project Universal-G-Code-Sender by winder.

the class SvgReader method parseEllipse.

private AbstractEntity parseEllipse(Ellipse2D shape) {
    Ellipse circle = new Ellipse(shape.getX(), shape.getY());
    circle.setSize(new Size(shape.getWidth(), shape.getHeight()));
    return circle;
}
Also used : Ellipse(com.willwinder.ugs.nbp.designer.entities.cuttable.Ellipse) Size(com.willwinder.ugs.nbp.designer.model.Size)

Example 13 with Size

use of com.willwinder.ugs.nbp.designer.model.Size in project Universal-G-Code-Sender by winder.

the class ResizeControl method performScaling.

private void performScaling(Point2D mousePosition) {
    int decimals = 1;
    Size size = getSelectionManager().getSize();
    Entity target = getSelectionManager();
    Point2D deltaMovement = new Point2D.Double(Utils.roundToDecimals(mousePosition.getX() - getPosition().getX() - startOffset.getX(), decimals), Utils.roundToDecimals(mousePosition.getY() - getPosition().getY() - startOffset.getY(), decimals));
    Point2D scaleFactor = getScaleFactor(deltaMovement.getX() / size.getWidth(), deltaMovement.getY() / size.getHeight());
    Size newSize = new Size(Utils.roundToDecimals(target.getSize().getWidth() * scaleFactor.getX(), decimals), Utils.roundToDecimals(target.getSize().getHeight() * scaleFactor.getY(), decimals));
    // Do not scale if the entity will become too small after operation
    if (newSize.getWidth() < 1 || newSize.getHeight() < 1) {
        return;
    }
    target.move(getDeltaMovement(size, newSize));
    target.setSize(newSize);
}
Also used : Entity(com.willwinder.ugs.nbp.designer.entities.Entity) Point2D(java.awt.geom.Point2D) Size(com.willwinder.ugs.nbp.designer.model.Size)

Example 14 with Size

use of com.willwinder.ugs.nbp.designer.model.Size in project Universal-G-Code-Sender by winder.

the class ResizeControl method getDeltaMovement.

private Point2D getDeltaMovement(Size size, Size newSize) {
    Size deltaSize = new Size(size.getWidth() - newSize.getWidth(), size.getHeight() - newSize.getHeight());
    Point2D movement = new Point2D.Double(0, 0);
    if (location == Location.BOTTOM_LEFT) {
        movement.setLocation(deltaSize.getWidth(), deltaSize.getHeight());
    } else if (location == Location.BOTTOM_RIGHT) {
        movement.setLocation(0, deltaSize.getHeight());
    } else if (location == Location.TOP_LEFT) {
        movement.setLocation(deltaSize.getWidth(), 0);
    } else if (location == Location.LEFT) {
        movement.setLocation(deltaSize.getWidth(), 0);
    } else if (location == Location.BOTTOM) {
        movement.setLocation(0, deltaSize.getHeight());
    }
    return movement;
}
Also used : Point2D(java.awt.geom.Point2D) Size(com.willwinder.ugs.nbp.designer.model.Size)

Example 15 with Size

use of com.willwinder.ugs.nbp.designer.model.Size in project Universal-G-Code-Sender by winder.

the class DxfReader method parseCircles.

private Group parseCircles(DXFLayer layer) {
    Group circlesGroup = new Group();
    List<DXFCircle> circles = layer.getDXFEntities(DXFConstants.ENTITY_TYPE_CIRCLE);
    if (circles != null) {
        for (DXFCircle circle : circles) {
            double radius = circle.getRadius() * MILLIMETERS_PER_INCH;
            Ellipse ellipse = new Ellipse((circle.getCenterPoint().getX() * MILLIMETERS_PER_INCH) - radius, (circle.getCenterPoint().getY() * MILLIMETERS_PER_INCH) - radius);
            ellipse.setSize(new Size(radius * 2, radius * 2));
            circlesGroup.addChild(ellipse);
        }
    }
    return circlesGroup;
}
Also used : Group(com.willwinder.ugs.nbp.designer.entities.cuttable.Group) Ellipse(com.willwinder.ugs.nbp.designer.entities.cuttable.Ellipse) Size(com.willwinder.ugs.nbp.designer.model.Size)

Aggregations

Size (com.willwinder.ugs.nbp.designer.model.Size)23 Point2D (java.awt.geom.Point2D)10 Test (org.junit.Test)10 Rectangle (com.willwinder.ugs.nbp.designer.entities.cuttable.Rectangle)8 Ellipse (com.willwinder.ugs.nbp.designer.entities.cuttable.Ellipse)4 Design (com.willwinder.ugs.nbp.designer.model.Design)3 Entity (com.willwinder.ugs.nbp.designer.entities.Entity)2 Segment (com.willwinder.ugs.nbp.designer.io.gcode.path.Segment)2 SegmentType (com.willwinder.ugs.nbp.designer.io.gcode.path.SegmentType)2 Axis (com.willwinder.universalgcodesender.model.Axis)2 PartialPosition (com.willwinder.universalgcodesender.model.PartialPosition)2 List (java.util.List)2 Collectors (java.util.stream.Collectors)2 Assert (org.junit.Assert)2 AddAction (com.willwinder.ugs.nbp.designer.actions.AddAction)1 Cuttable (com.willwinder.ugs.nbp.designer.entities.cuttable.Cuttable)1 Group (com.willwinder.ugs.nbp.designer.entities.cuttable.Group)1 Text (com.willwinder.ugs.nbp.designer.entities.cuttable.Text)1 GcodePath (com.willwinder.ugs.nbp.designer.io.gcode.path.GcodePath)1 ActionEvent (java.awt.event.ActionEvent)1