Examples of Handle


Examples of com.cburch.draw.model.Handle

    int xq = loc.getX();
    int yq = loc.getY();
    ClosestResult ret = new ClosestResult();
    ret.dist = Double.MAX_VALUE;
    if (hs.length > 0) {
      Handle h0 = hs[0];
      int x0 = h0.getX();
      int y0 = h0.getY();
      int stop = closed ? hs.length : (hs.length - 1);
      for(int i = 0; i < stop; i++) {
        Handle h1 = hs[(i + 1) % hs.length];
        int x1 = h1.getX();
        int y1 = h1.getY();
        double d = LineUtil.ptDistSqSegment(x0, y0, x1, y1, xq, yq);
        if (d < ret.dist) {
          ret.dist = d;
          ret.prevHandle = h0;
          ret.nextHandle = h1;
        }
        h0 = h1;
        x0 = x1;
        y0 = y1;
      }
    }
    if (ret.dist == Double.MAX_VALUE) {
      return null;
    } else {
      Handle h0 = ret.prevHandle;
      Handle h1 = ret.nextHandle;
      double[] p = LineUtil.nearestPointSegment(xq, yq,
          h0.getX(), h0.getY(), h1.getX(), h1.getY());
      ret.loc = Location.create((int) Math.round(p[0]),
          (int) Math.round(p[1]));
      return ret;
    }
  }
View Full Code Here

Examples of com.cburch.draw.model.Handle

    int x0 = bds.getX();
    int y0 = bds.getY();
    int x1 = x0 + bds.getWidth();
    int y1 = y0 + bds.getHeight();
    if (gesture == null) {
      return new Handle[] { new Handle(this, x0, y0),
          new Handle(this, x1, y0), new Handle(this, x1, y1),
          new Handle(this, x0, y1) };
    } else {
      int hx = gesture.getHandle().getX();
      int hy = gesture.getHandle().getY();
      int dx = gesture.getDeltaX();
      int dy = gesture.getDeltaY();
      int newX0 = x0 == hx ? x0 + dx : x0;
      int newY0 = y0 == hy ? y0 + dy : y0;
      int newX1 = x1 == hx ? x1 + dx : x1;
      int newY1 = y1 == hy ? y1 + dy : y1;
      if (gesture.isShiftDown()) {
        if (gesture.isAltDown()) {
          if (x0 == hx) newX1 -= dx;
          if (x1 == hx) newX0 -= dx;
          if (y0 == hy) newY1 -= dy;
          if (y1 == hy) newY0 -= dy;

          int w = Math.abs(newX1 - newX0);
          int h = Math.abs(newY1 - newY0);
          if (w > h) { // reduce width to h
            int dw = (w - h) / 2;
            newX0 -= (newX0 > newX1 ? 1 : -1) * dw;
            newX1 -= (newX1 > newX0 ? 1 : -1) * dw;
          } else {
            int dh = (h - w) / 2;
            newY0 -= (newY0 > newY1 ? 1 : -1) * dh;
            newY1 -= (newY1 > newY0 ? 1 : -1) * dh;
          }
        } else {
          int w = Math.abs(newX1 - newX0);
          int h = Math.abs(newY1 - newY0);
          if (w > h) { // reduce width to h
            if (x0 == hx) {
              newX0 = newX1 + (newX0 > newX1 ? 1 : -1) * h;
            }
            if (x1 == hx) {
              newX1 = newX0 + (newX1 > newX0 ? 1 : -1) * h;
            }
          } else { // reduce height to w
            if (y0 == hy) {
              newY0 = newY1 + (newY0 > newY1 ? 1 : -1) * w;
            }
            if (y1 == hy) {
              newY1 = newY0 + (newY1 > newY0 ? 1 : -1) * w;
            }
          }
        }
      } else {
        if (gesture.isAltDown()) {
          if (x0 == hx) newX1 -= dx;
          if (x1 == hx) newX0 -= dx;
          if (y0 == hy) newY1 -= dy;
          if (y1 == hy) newY0 -= dy;
        } else {
          ; // already handled
        }
      }
      return new Handle[] { new Handle(this, newX0, newY0),
        new Handle(this, newX1, newY0), new Handle(this, newX1, newY1),
        new Handle(this, newX0, newY1) };
    }
  }
View Full Code Here

Examples of com.cburch.draw.model.Handle

  @Override
  public Handle moveHandle(HandleGesture gesture) {
    Handle[] oldHandles = getHandleArray(null);
    Handle[] newHandles = getHandleArray(gesture);
    Handle moved = gesture == null ? null : gesture.getHandle();
    Handle result = null;
    int x0 = Integer.MAX_VALUE;
    int x1 = Integer.MIN_VALUE;
    int y0 = Integer.MAX_VALUE;
    int y1 = Integer.MIN_VALUE;
    int i = -1;
View Full Code Here

Examples of com.cburch.draw.model.Handle

    if (gesture == null) {
      Bounds bds = bounds;
      draw(g, bds.getX(), bds.getY(), bds.getWidth(), bds.getHeight());
    } else {
      Handle[] handles = getHandleArray(gesture);
      Handle p0 = handles[0];
      Handle p1 = handles[2];
      int x0 = p0.getX();
      int y0 = p0.getY();
      int x1 = p1.getX();
      int y1 = p1.getY();
      if (x1 < x0) { int t = x0; x0 = x1; x1 = t; }
      if (y1 < y0) { int t = y0; y0 = y1; y1 = t; }
 
      draw(g, x0, y0, x1 - x0, y1 - y0);
    }
View Full Code Here

Examples of com.cburch.draw.model.Handle

      ArrayList<CanvasObject> removed;
      removed = new ArrayList<CanvasObject>(shapes.size());
      for (CanvasObject shape : shapes) {
        if (selected.remove(shape)) {
          suppressed.remove(shape);
          Handle h = selectedHandle;
          if (h != null && h.getObject() == shape) setHandleSelected(null);
          removed.add(shape);
        }
      }
      if (!removed.isEmpty()) {
        fireChanged(SelectionEvent.ACTION_REMOVED, removed);
View Full Code Here

Examples of com.cburch.draw.model.Handle

    removed = new ArrayList<CanvasObject>(shapes.size());
    for (CanvasObject shape : shapes) {
      if (selected.contains(shape)) {
        selected.remove(shape);
        suppressed.remove(shape);
        Handle h = selectedHandle;
        if (h != null && h.getObject() == shape) setHandleSelected(null);
        removed.add(shape);
      } else {
        selected.add(shape);
        added.add(shape);
      }
View Full Code Here

Examples of com.cburch.draw.model.Handle

  public Handle getSelectedHandle() {
    return selectedHandle;
  }
 
  public void setHandleSelected(Handle handle) {
    Handle cur = selectedHandle;
    boolean same = cur == null ? handle == null : cur.equals(handle);
    if (!same) {
      selectedHandle = handle;
      curHandleGesture = null;
      Collection<CanvasObject> objs;
      if (handle == null) {
View Full Code Here

Examples of com.cburch.draw.model.Handle

  public void setHandleGesture(HandleGesture gesture) {
    HandleGesture g = curHandleGesture;
    if (g != null) suppressed.remove(g.getHandle().getObject());
   
    Handle h = gesture.getHandle();
    suppressed.put(h.getObject(), MOVING_HANDLE);
    curHandleGesture = gesture;
  }
View Full Code Here

Examples of com.cburch.draw.model.Handle

    case CanvasModelEvent.ACTION_REMOVED:
      Collection<? extends CanvasObject> affected = event.getAffected();
      if (affected != null) {
        selected.removeAll(affected);
        suppressed.keySet().removeAll(affected);
        Handle h = selectedHandle;
        if (h != null && affected.contains(h.getObject())) {
          setHandleSelected(null);
        }
      }
      break;
    case CanvasModelEvent.ACTION_HANDLE_DELETED:
View Full Code Here

Examples of com.cburch.draw.model.Handle

    newHandle = model.moveHandle(gesture);
  }
 
  @Override
  void undoSub(CanvasModel model) {
    Handle oldHandle = gesture.getHandle();
    int dx = oldHandle.getX() - newHandle.getX();
    int dy = oldHandle.getY() - newHandle.getY();
    HandleGesture reverse = new HandleGesture(newHandle, dx, dy, 0);
    model.moveHandle(reverse);
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.