Tabnine Logo
BezierFigure
Code IndexAdd Tabnine to your IDE (free)

How to use
BezierFigure
in
org.jhotdraw.draw

Best Java code snippets using org.jhotdraw.draw.BezierFigure (Showing top 20 results out of 315)

origin: net.imagej/ij-ui-swing

private boolean add(final BezierPath bezierPath, boolean isClosed) {
  bezierPath.setClosed(isClosed);
  BezierFigure figure = new BezierFigure(isClosed);
  figure.setBezierPath(bezierPath);
  return figures.add(figure);
}
origin: org.opentcs.thirdparty.jhotdraw/jhotdraw

@SuppressWarnings("unchecked")
protected BezierFigure createFigure() {
  BezierFigure f = (BezierFigure) prototype.clone();
  getEditor().applyDefaultAttributesTo(f);
  if (attributes != null) {
    for (Map.Entry<AttributeKey, Object> entry : attributes.entrySet()) {
      f.set(entry.getKey(), entry.getValue());
    }
  }
  return f;
}
origin: net.imagej/imagej-ui-swing

@Override
protected void drawStroke(Graphics2D g) {
  for (final BezierFigure figure : figures) {
    g.draw(figure.getBezierPath());
  }
}
origin: org.opentcs.thirdparty.jhotdraw/jhotdraw

/**
 * Adds a control point.
 */
public void addNode(BezierPath.Node p) {
  addNode(getNodeCount(), p);
}
origin: org.opentcs.thirdparty.jhotdraw/jhotdraw

public void setClosed(boolean newValue) {
  set(PATH_CLOSED, newValue);
  setConnectable(newValue);
}
origin: org.opentcs.thirdparty.jhotdraw/jhotdraw

/**
 * Convenience method for setting the point coordinate of the end point.
 * If the BezierFigure has not at least two nodes, nodes are added
 * to the figure until the BezierFigure has at least two nodes.
 */
public void setEndPoint(Point2D.Double p) {
  // Add two nodes if we haven't at least two nodes
  for (int i = getNodeCount(); i < 2; i++) {
    addNode(0, new BezierPath.Node(p.x, p.y));
  }
  setPoint(getNodeCount() - 1, p);
}
origin: org.opentcs.thirdparty.jhotdraw/jhotdraw

@Override
public Collection<Handle> createSecondaryHandles() {
  BezierFigure f = getOwner();
  LinkedList<Handle> list = new LinkedList<Handle>();
  BezierPath.Node v = f.getNode(index);
  if ((v.mask & BezierPath.C1_MASK) != 0 &&
      (index != 0 || f.isClosed())) {
    list.add(new BezierControlPointHandle(f, index, 1, getTransformOwner()));
  }
  if ((v.mask & BezierPath.C2_MASK) != 0 &&
      (index < f.getNodeCount() - 1 ||
      f.isClosed())) {
    list.add(new BezierControlPointHandle(f, index, 2, getTransformOwner()));
  }
  if (index > 0 || f.isClosed()) {
    int i = (index == 0) ? f.getNodeCount() - 1 : index - 1;
    v = f.getNode(i);
    if ((v.mask & BezierPath.C2_MASK) != 0) {
      list.add(new BezierControlPointHandle(f, i, 2, getTransformOwner()));
    }
  }
  if (index < f.getNodeCount() - 1 || f.isClosed()) {
    int i = (index == f.getNodeCount() - 1) ? 0 : index + 1;
    v = f.getNode(i);
    if ((v.mask & BezierPath.C1_MASK) != 0) {
      list.add(new BezierControlPointHandle(f, i, 1, getTransformOwner()));
    }
  }
  return list;
}
origin: org.opentcs.thirdparty.jhotdraw/jhotdraw

@Override
public void keyPressed(KeyEvent evt) {
  final BezierFigure f = getOwner();
  BezierPath.Node oldNode = f.getNode(index);
      f.willChange();
      f.setPoint(index, controlPointIndex, new Point2D.Double(oldNode.x[controlPointIndex], oldNode.y[controlPointIndex] - 1d));
      f.changed();
      view.getDrawing().fireUndoableEditHappened(new BezierNodeEdit(f, index, oldNode, f.getNode(index)));
      evt.consume();
      break;
    case KeyEvent.VK_DOWN:
      f.willChange();
      f.setPoint(index, controlPointIndex, new Point2D.Double(oldNode.x[controlPointIndex], oldNode.y[controlPointIndex] + 1d));
      f.changed();
      view.getDrawing().fireUndoableEditHappened(new BezierNodeEdit(f, index, oldNode, f.getNode(index)));
      evt.consume();
      break;
    case KeyEvent.VK_LEFT:
      f.willChange();
      f.setPoint(index, controlPointIndex, new Point2D.Double(oldNode.x[controlPointIndex] - 1d, oldNode.y[controlPointIndex]));
      f.changed();
      view.getDrawing().fireUndoableEditHappened(new BezierNodeEdit(f, index, oldNode, f.getNode(index)));
      evt.consume();
      break;
    case KeyEvent.VK_RIGHT:
      f.willChange();
      f.setPoint(index, controlPointIndex, new Point2D.Double(oldNode.x[controlPointIndex] + 1d, oldNode.y[controlPointIndex]));
      f.changed();
      view.getDrawing().fireUndoableEditHappened(new BezierNodeEdit(f, index, oldNode, f.getNode(index)));
origin: net.imagej/imagej-ui-swing

@Override
public void updateFigure(final OverlayView view, final BezierFigure figure) {
  super.updateFigure(view, figure);
  assert view.getData() instanceof GeneralPathOverlay;
  final GeneralPathOverlay gpo = (GeneralPathOverlay) view.getData();
  final GeneralPathRegionOfInterest gpr = gpo.getRegionOfInterest();
  final PathIterator pi = gpr.getGeneralPath().getPathIterator(null);
  final int nCount = figure.getNodeCount();
  int i = 0;
  final double[] pos = new double[6];
  while (!pi.isDone()) {
    pi.currentSegment(pos);
    final Node n = new Node(pos[0], pos[1]);
    if (i < nCount) figure.getNode(i).setTo(n);
    else figure.addNode(n);
    pi.next();
    i++;
  }
  while (i < figure.getNodeCount())
    figure.removeNode(i);
}
origin: org.opentcs.thirdparty.jhotdraw/jhotdraw

if (createdFigure.getNodeCount() > nodeCountBeforeDrag + 1) {
  createdFigure.willChange();
  BezierPath figurePath = createdFigure.getBezierPath();
  BezierPath digitizedPath = new BezierPath();
  for (int i = nodeCountBeforeDrag - 1, n = figurePath.size(); i < n; i++) {
  createdFigure.setBezierPath(figurePath);
  createdFigure.changed();
  nodeCountBeforeDrag = createdFigure.getNodeCount();
  if (createdFigure.getNodeCount() > 1) {
    Rectangle r = new Rectangle(anchor.x, anchor.y, 0, 0);
    r.add(evt.getX(), evt.getY());
origin: org.opentcs.thirdparty.jhotdraw/jhotdraw

protected void addPointToFigure(Point2D.Double newPoint) {
  int pointCount = createdFigure.getNodeCount();
  createdFigure.willChange();
  if (pointCount < 2) {
    createdFigure.addNode(new BezierPath.Node(newPoint));
  } else {
    Point2D.Double endPoint = createdFigure.getEndPoint();
    Point2D.Double secondLastPoint = (pointCount <= 1) ? endPoint : createdFigure.getPoint(pointCount - 2, 0);
    if (newPoint.equals(endPoint)) {
      // nothing to do
    } else if (pointCount > 1 && Geom.lineContainsPoint(newPoint.x, newPoint.y, secondLastPoint.x, secondLastPoint.y, endPoint.x, endPoint.y, 0.9f / getView().getScaleFactor())) {
      createdFigure.setPoint(pointCount - 1, 0, newPoint);
    } else {
      createdFigure.addNode(new BezierPath.Node(newPoint));
    }
  }
  createdFigure.changed();
}
origin: org.opentcs.thirdparty.jhotdraw/jhotdraw

final BezierFigure f = getOwner();
   BezierPath.Node oldValue = (BezierPath.Node) oldNode.clone();;
   BezierPath.Node newValue = f.getNode(index);
  f.willChange();
  if (index > 0 && index < f.getNodeCount() || f.isClosed()) {
    newValue.mask = (newValue.mask + 3) % 4;
  } else if (index == 0) {
    newValue.mask = ((newValue.mask & BezierPath.C1_MASK) == 0) ? BezierPath.C1_MASK : 0;
  f.setNode(index, newValue);
  f.changed();
  fireHandleRequestSecondaryHandles();
origin: org.opentcs.thirdparty.jhotdraw/jhotdraw

@Nullable
protected BezierPath.Node getBezierNode() {
  return getBezierFigure().getNodeCount() > index ? getBezierFigure().getNode(index) : null;
}
origin: org.opentcs.thirdparty.jhotdraw/jhotdraw

final BezierFigure figure = getBezierFigure();
BezierPath.Node oldValue = (BezierPath.Node) oldNode.clone();
BezierPath.Node newValue = figure.getNode(index);
if ((modifiersEx & (InputEvent.META_DOWN_MASK | InputEvent.CTRL_DOWN_MASK | InputEvent.ALT_DOWN_MASK | InputEvent.SHIFT_DOWN_MASK)) != 0) {
  figure.willChange();
  newValue.keepColinear = !newValue.keepColinear;
  if (newValue.keepColinear) {
    Point2D.Double p = figure.getPoint(index, controlPointIndex);
    double a = Math.PI + Math.atan2(p.y - newValue.y[0], p.x - newValue.x[0]);
    int c2 = (controlPointIndex == 1) ? 2 : 1;
    newValue.y[c2] = p2.y;
  figure.setNode(index, newValue);
  figure.changed();
origin: org.opentcs.thirdparty.jhotdraw/jhotdraw

public boolean handleMouseClick(Point2D.Double p, MouseEvent evt, DrawingView view) {
  if (evt.getClickCount() == 2 && view.getHandleDetailLevel() % 2 == 0) {
    willChange();
    final int index = splitSegment(p, 5f / view.getScaleFactor());
    if (index != -1) {
      final BezierPath.Node newNode = getNode(index);
      fireUndoableEditHappened(new AbstractUndoableEdit() {
      changed();
      evt.consume();
      return true;
origin: org.opentcs.thirdparty.jhotdraw/jhotdraw

@Override
public void redo() throws CannotRedoException {
  super.redo();
  willChange();
  addNode(index, newNode);
  changed();
}
origin: net.imagej/imagej-ui-swing

/**
 * Sets an attribute of the figure.
 * AttributeKey name and semantics are defined by the class implementing
 * the figure interface.
 */
@Override
public <T> void set(AttributeKey<T> key, T newValue) {
  super.set(key, newValue);
  for (final BezierFigure figure : figures) {
    figure.set(key, newValue);
  }
}
origin: net.imagej/ij-ui-swing

@Override
public boolean add(final BezierFigure figure) {
  figure.restoreAttributesTo(SwingGeneralPathFigure.this.getAttributesRestoreData());
  figure.addFigureListener(new FigureListener() {
    @Override
    public void areaInvalidated(FigureEvent e) {
origin: net.imagej/imagej-ui-swing

@Override
public Collection<Handle> createHandles(final int detailLevel) {
  final LinkedList<Handle> handles = new LinkedList<>();
  for (final BezierFigure figure : figures) {
    handles.addAll(figure.createHandles(detailLevel));
  }
  return handles;
}
origin: net.imagej/imagej-ui-swing

@Override
public Object getTransformRestoreData() {
  final List<BezierFigure> result = new ArrayList<>();
  for (final BezierFigure figure : figures) {
    result.add(figure.clone());
  }
  return result;
}
org.jhotdraw.drawBezierFigure

Javadoc

A Figure which draws an opened or a closed bezier path.

A bezier figure can be used to draw arbitrary shapes using a BezierPath. It can be used to draw an open path or a closed shape.

A BezierFigure can have straight path segments and curved segments. A straight path segment can be added by clicking on the drawing area. Curved segments can be added by dragging the mouse pointer over the drawing area.

To creation of the BezierFigure can be finished by adding a segment which closes the path, or by double clicking on the drawing area, or by selecting a different tool in the DrawingEditor.


Design Patterns

Decorator
The start and end point of a BezierFigure can be decorated with a line decoration.
Component: BezierFigure; Decorator: org.jhotdraw.draw.decoration.LineDecoration.


Most used methods

  • <init>
    Creates an empty BezierFigure, for example without anyBezierPath.Nodes. The BezierFigure will not dr
  • clone
  • getBezierPath
    Returns a clone of the bezier path of this figure.
  • set
  • setBezierPath
  • addFigureListener
  • addNode
    Adds a control point.
  • createHandles
  • getBounds
  • getNode
    Gets a control point.
  • getNodeCount
    Gets the node count.
  • removeNode
    Removes the Node at the specified index.
  • getNodeCount,
  • removeNode,
  • restoreAttributesTo,
  • setAttributeEnabled,
  • setAttributes,
  • changed,
  • chop,
  • drawCaps,
  • findSegment,
  • fireUndoableEditHappened

Popular in Java

  • Reactive rest calls using spring rest template
  • getResourceAsStream (ClassLoader)
  • setRequestProperty (URLConnection)
  • getApplicationContext (Context)
  • Container (java.awt)
    A generic Abstract Window Toolkit(AWT) container object is a component that can contain other AWT co
  • PrintStream (java.io)
    Fake signature of an existing Java class.
  • HashMap (java.util)
    HashMap is an implementation of Map. All optional operations are supported.All elements are permitte
  • ZipFile (java.util.zip)
    This class provides random read access to a zip file. You pay more to read the zip file's central di
  • JTextField (javax.swing)
  • XPath (javax.xml.xpath)
    XPath provides access to the XPath evaluation environment and expressions. Evaluation of XPath Expr
  • Top plugins for WebStorm
Tabnine Logo
  • Products

    Search for Java codeSearch for JavaScript code
  • IDE Plugins

    IntelliJ IDEAWebStormVisual StudioAndroid StudioEclipseVisual Studio CodePyCharmSublime TextPhpStormVimGoLandRubyMineEmacsJupyter NotebookJupyter LabRiderDataGripAppCode
  • Company

    About UsContact UsCareers
  • Resources

    FAQBlogTabnine AcademyTerms of usePrivacy policyJava Code IndexJavascript Code Index
Get Tabnine for your IDE now