Search in sources :

Example 11 with Point

use of com.ramussoft.pb.idef.elements.Point in project ramus by Vitaliy-Yakovchuk.

the class DFDFunctionEllipse method mouseClicked.

public void mouseClicked(final FloatPoint point) {
    if (movingArea.getChangingState() == MovingArea.ARROW_CHANGING_STATE) {
        final int type = getTriangle(point);
        final Ordinate x = new Ordinate(Ordinate.TYPE_X);
        final Ordinate y = new Ordinate(Ordinate.TYPE_Y);
        final Point p = new Point(x, y);
        final SectorRefactor.PerspectivePoint pp = new SectorRefactor.PerspectivePoint();
        pp.point = p;
        switch(type) {
            case LEFT:
                {
                    pp.setFunction(getFunction(), LEFT);
                    y.setPosition(getBounds().getY() + point.getY());
                    x.setPosition(getX(y.getPosition(), true, getBounds()));
                }
                break;
            case TOP:
                {
                    pp.setFunction(getFunction(), TOP);
                    x.setPosition(getBounds().getX() + point.getX());
                    y.setPosition(getY(x.getPosition(), true, getBounds()));
                }
                break;
            case BOTTOM:
                {
                    pp.setFunction(getFunction(), BOTTOM);
                    x.setPosition(getBounds().getX() + point.getX());
                    y.setPosition(getY(x.getPosition(), false, getBounds()));
                }
                break;
            case RIGHT:
                {
                    pp.setFunction(getFunction(), RIGHT);
                    y.setPosition(getBounds().getY() + point.getY());
                    x.setPosition(getX(y.getPosition(), false, getBounds()));
                }
                break;
            default:
                return;
        }
        if (movingArea.getPointChangingType() == SectorRefactor.TYPE_START) {
            pp.type = SectorRefactor.TYPE_START;
            movingArea.getRefactor().setPoint(pp);
            movingArea.doSector();
        } else if (movingArea.getPointChangingType() == SectorRefactor.TYPE_END) {
            pp.type = SectorRefactor.TYPE_END;
            movingArea.getRefactor().setPoint(pp);
            movingArea.doSector();
        }
    }
}
Also used : SectorRefactor(com.ramussoft.pb.idef.elements.SectorRefactor) FloatPoint(com.dsoft.pb.types.FloatPoint) Point(com.ramussoft.pb.idef.elements.Point) FloatPoint(com.dsoft.pb.types.FloatPoint) Point(com.ramussoft.pb.idef.elements.Point) Ordinate(com.ramussoft.pb.idef.elements.Ordinate)

Example 12 with Point

use of com.ramussoft.pb.idef.elements.Point in project ramus by Vitaliy-Yakovchuk.

the class IDLImporter method setSegment.

private void setSegment(Arrowseg seg, MovingArea area) {
    if (seg.seted)
        return;
    List<Arrowseg> source = loadConnected(seg.source);
    List<Arrowseg> sink = loadConnected(seg.sink);
    if (source != null) {
        for (Arrowseg s : source) {
            if (!s.seted)
                setSegment(s, area);
        }
        Crosspoint c = null;
        for (Arrowseg s : source) {
            if (s.sector.getEnd() != null) {
                c = (NCrosspoint) s.sector.getEnd();
            }
        }
        if (c == null)
            c = dataPlugin.createCrosspoint();
        seg.sector.getSector().getStart().setCrosspointA(c);
        seg.sector.getSector().getStart().commit();
        for (Arrowseg s : source) {
            if (s.sector.getEnd() == null) {
                s.sector.getSector().getEnd().setCrosspointA(c);
                s.sector.getSector().getEnd().commit();
            }
        }
    }
    PaintSector ps = seg.sector;
    Point[] points = new Point[seg.pointsList.size()];
    int type = seg.getFirstPinType();
    Ordinate x = null;
    Ordinate y = null;
    if (source != null) {
        for (Arrowseg arrowseg : source) {
            int sType = arrowseg.getLastPinType();
            if (type == sType) {
                if (arrowseg.sector.getLastPin().getType() == Ordinate.TYPE_X) {
                    y = arrowseg.sector.getLastPin().getOrdinate();
                    x = arrowseg.sector.getLastPin().getPOrdinate();
                } else {
                    x = arrowseg.sector.getLastPin().getOrdinate();
                    y = arrowseg.sector.getLastPin().getPOrdinate();
                }
            } else {
                if (arrowseg.sector.getLastPin().getType() == Ordinate.TYPE_Y) {
                    x = arrowseg.sector.getLastPin().getOrdinate();
                    y = arrowseg.sector.getLastPin().getPOrdinate();
                } else {
                    y = arrowseg.sector.getLastPin().getOrdinate();
                    x = arrowseg.sector.getLastPin().getPOrdinate();
                }
            }
        }
    }
    if (x == null) {
        x = new Ordinate(Ordinate.TYPE_X);
        x.setPosition(seg.pointsList.get(0).getX());
    }
    if (y == null) {
        y = new Ordinate(Ordinate.TYPE_Y);
        y.setPosition(seg.pointsList.get(0).getY());
    }
    points[0] = new Point(x, y);
    for (int i = 1; i < seg.pointsList.size(); i++) {
        FloatPoint point = seg.pointsList.get(i);
        type = seg.getPinType(i - 1);
        if (type == Ordinate.TYPE_X) {
            x = new Ordinate(Ordinate.TYPE_X);
            x.setPosition(point.getX());
        } else {
            y = new Ordinate(Ordinate.TYPE_Y);
            y.setPosition(point.getY());
        }
        if ((i == seg.pointsList.size() - 1) && (sink != null) && (sink.size() == 1)) {
            Arrowseg s = sink.get(0);
            List<Arrowseg> list = loadConnected(s.source);
            for (Arrowseg arrowseg : list) {
                if (arrowseg.seted) {
                    Point point2 = arrowseg.sector.getLastPin().getEnd();
                    Ordinate xo = point2.getXOrdinate();
                    for (Point point3 : xo.getPoints()) {
                        point3.setXOrdinate(x);
                    }
                    Ordinate yo = point2.getYOrdinate();
                    for (Point point3 : yo.getPoints()) {
                        point3.setYOrdinate(y);
                    }
                }
            }
        }
        points[i] = new Point(x, y);
    }
    ps.setPoints(points);
    if (source == null)
        initCrosspoint(seg.sector.getSector().getStart(), seg.source, area, seg.sector, true, seg);
    if (sink == null) {
        initCrosspoint(seg.sector.getSector().getEnd(), seg.sink, area, seg.sector, false, seg);
    }
    seg.seted = true;
}
Also used : FloatPoint(com.dsoft.pb.types.FloatPoint) PaintSector(com.ramussoft.pb.idef.elements.PaintSector) Point(com.ramussoft.pb.idef.elements.Point) FloatPoint(com.dsoft.pb.types.FloatPoint) Crosspoint(com.ramussoft.pb.Crosspoint) Crosspoint(com.ramussoft.pb.Crosspoint) Point(com.ramussoft.pb.idef.elements.Point) FloatPoint(com.dsoft.pb.types.FloatPoint) Ordinate(com.ramussoft.pb.idef.elements.Ordinate)

Example 13 with Point

use of com.ramussoft.pb.idef.elements.Point in project ramus by Vitaliy-Yakovchuk.

the class DFDObject method mouseClicked.

public void mouseClicked(final FloatPoint point) {
    if (movingArea.getChangingState() == MovingArea.ARROW_CHANGING_STATE) {
        final int type = getTriangle(point);
        final Ordinate x = new Ordinate(Ordinate.TYPE_X);
        final Ordinate y = new Ordinate(Ordinate.TYPE_Y);
        final Point p = new Point(x, y);
        final SectorRefactor.PerspectivePoint pp = new SectorRefactor.PerspectivePoint();
        pp.point = p;
        switch(type) {
            case LEFT:
                {
                    pp.setFunction(getFunction(), LEFT);
                    y.setPosition(getBounds().getY() + point.getY());
                    x.setPosition(getX(y.getPosition(), true, getBounds()));
                }
                break;
            case TOP:
                {
                    pp.setFunction(getFunction(), TOP);
                    x.setPosition(getBounds().getX() + point.getX());
                    y.setPosition(getY(x.getPosition(), true, getBounds()));
                }
                break;
            case BOTTOM:
                {
                    pp.setFunction(getFunction(), BOTTOM);
                    x.setPosition(getBounds().getX() + point.getX());
                    y.setPosition(getY(x.getPosition(), false, getBounds()));
                }
                break;
            case RIGHT:
                {
                    pp.setFunction(getFunction(), RIGHT);
                    y.setPosition(getBounds().getY() + point.getY());
                    x.setPosition(getX(y.getPosition(), false, getBounds()));
                }
                break;
            default:
                return;
        }
        if (movingArea.getPointChangingType() == SectorRefactor.TYPE_START) {
            pp.type = SectorRefactor.TYPE_START;
            movingArea.getRefactor().setPoint(pp);
            movingArea.doSector();
        } else if (movingArea.getPointChangingType() == SectorRefactor.TYPE_END) {
            pp.type = SectorRefactor.TYPE_END;
            movingArea.getRefactor().setPoint(pp);
            movingArea.doSector();
        }
    }
}
Also used : SectorRefactor(com.ramussoft.pb.idef.elements.SectorRefactor) FloatPoint(com.dsoft.pb.types.FloatPoint) Point(com.ramussoft.pb.idef.elements.Point) FloatPoint(com.dsoft.pb.types.FloatPoint) Point(com.ramussoft.pb.idef.elements.Point) Ordinate(com.ramussoft.pb.idef.elements.Ordinate)

Example 14 with Point

use of com.ramussoft.pb.idef.elements.Point in project ramus by Vitaliy-Yakovchuk.

the class DFDObject method getTriangle.

protected int getTriangle(final FloatPoint point) {
    int res = -1;
    FloatPoint l = getLocation();
    for (int type = MovingPanel.RIGHT; type <= MovingPanel.TOP; type++) {
        GeneralPath gp = getTrianglePath(type);
        double y = point.getY() + l.getY();
        double x = point.getX() + l.getX();
        if (gp.contains(new Point2D.Double(x, y))) {
            res = type;
            break;
        }
    }
    return res;
}
Also used : FloatPoint(com.dsoft.pb.types.FloatPoint) GeneralPath(java.awt.geom.GeneralPath) Point2D(java.awt.geom.Point2D) FloatPoint(com.dsoft.pb.types.FloatPoint) Point(com.ramussoft.pb.idef.elements.Point)

Example 15 with Point

use of com.ramussoft.pb.idef.elements.Point in project ramus by Vitaliy-Yakovchuk.

the class AbstractClassicTemplate method createOutPoint.

private void createOutPoint(final MovingArea movingArea, final Function f) {
    SectorRefactor.PerspectivePoint pp;
    final Ordinate x = new Ordinate(Ordinate.TYPE_X);
    final Ordinate y = new Ordinate(Ordinate.TYPE_Y);
    final Point p = new Point(x, y);
    pp = new SectorRefactor.PerspectivePoint();
    pp.point = p;
    pp.setFunction(f, RIGHT);
    pp.type = SectorRefactor.TYPE_START;
    x.setPosition(f.getBounds().getRight());
    y.setPosition(getY(f));
    movingArea.getRefactor().setPoint(pp);
    movingArea.doSector();
}
Also used : SectorRefactor(com.ramussoft.pb.idef.elements.SectorRefactor) Point(com.ramussoft.pb.idef.elements.Point) Ordinate(com.ramussoft.pb.idef.elements.Ordinate)

Aggregations

Point (com.ramussoft.pb.idef.elements.Point)21 FloatPoint (com.dsoft.pb.types.FloatPoint)19 SectorRefactor (com.ramussoft.pb.idef.elements.SectorRefactor)12 Ordinate (com.ramussoft.pb.idef.elements.Ordinate)11 PaintSector (com.ramussoft.pb.idef.elements.PaintSector)6 Crosspoint (com.ramussoft.pb.Crosspoint)5 GeneralPath (java.awt.geom.GeneralPath)4 Point2D (java.awt.geom.Point2D)4 Function (com.ramussoft.pb.Function)3 FRectangle (com.dsoft.pb.types.FRectangle)2 Row (com.ramussoft.pb.Row)2 Sector (com.ramussoft.pb.Sector)2 PerspectivePoint (com.ramussoft.pb.idef.elements.SectorRefactor.PerspectivePoint)2 MovingLabel (com.ramussoft.pb.idef.visual.MovingLabel)2 ArrayList (java.util.ArrayList)2 Vector (java.util.Vector)2 MemoryData (com.dsoft.utils.DataLoader.MemoryData)1 AbstractSector (com.ramussoft.pb.data.AbstractSector)1 NFunction (com.ramussoft.pb.data.negine.NFunction)1 NSector (com.ramussoft.pb.data.negine.NSector)1