Changeset 789 for trunk/src/org/expeditee/items
- Timestamp:
- 01/30/14 11:11:40 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/expeditee/items/Line.java
r737 r789 11 11 import java.awt.Stroke; 12 12 import java.awt.geom.AffineTransform; 13 import java.awt.geom.Point2D; 13 14 import java.util.ArrayList; 14 15 import java.util.Collection; … … 405 406 g.setStroke(new BasicStroke(getPaintThickness(), CAP, 406 407 BasicStroke.JOIN_MITER)); 407 paintArrow(g, _start, _startOffset, _endOffset);408 paintArrow(g, _end, _endOffset, _startOffset);408 paintArrow(g, getStartArrow()); 409 paintArrow(g, getEndArrow()); 409 410 410 411 if (_virtualSpot != null) { … … 429 430 430 431 } 431 432 /** 433 * Based on code from DeSL (Arrow2D) http://sourceforge.net/projects/desl/ 434 */ 435 private void paintArrow(Graphics2D g, Item withArrow, Point startOffset, 436 Point endOffset) { 432 433 /** 434 * Gets the arrow head 435 * @param withArrow 436 * @param startOffset 437 * @param endOffset 438 * @return 439 */ 440 private Shape getArrow(Item withArrow, Point startOffset, Point endOffset) { 437 441 boolean disconnectMode = withArrow._mode == Item.HighlightMode.Disconnect; 438 442 // only draw an arrowhead if necessary 439 443 if (!(this._mode == Item.HighlightMode.Disconnect && disconnectMode) 440 444 && (!withArrow.hasVisibleArrow() || withArrow.getLines().size() > 1)) 441 return ;445 return null; 442 446 443 447 int x0, x1, y0, y1; … … 462 466 // floating 463 467 if (arrowLength != AUTO_ARROWHEAD_LENGTH && (arrowRatio < 0 || arrowNibPerc < 0)) { 464 return ;468 return null; 465 469 } 466 470 … … 473 477 // wont show the arrow 474 478 if (length <= MINIMUM_ARROW_HEAD_LENGTH) 475 return ;479 return null; 476 480 if (arrowLength == AUTO_ARROWHEAD_LENGTH) { 477 481 arrowLength = getAutoArrowheadLength(length); … … 498 502 AffineTransform tx = AffineTransform.getRotateInstance(rad, x0, y0); 499 503 504 int[] rx = new int[arrowhead.npoints]; 505 int[] ry = new int[arrowhead.npoints]; 506 507 for(int i = 0; i < arrowhead.npoints; i++){ 508 Point2D p = new Point2D.Double(arrowhead.xpoints[i], arrowhead.ypoints[i]); 509 tx.transform(p,p); 510 rx[i] = (int) p.getX(); 511 ry[i] = (int) p.getY(); 512 } 513 514 return new Polygon(rx, ry, arrowhead.npoints); 515 } 516 517 public Polygon getStartArrow() { 518 return (Polygon) getArrow(_start, _startOffset, _endOffset); 519 } 520 521 public Polygon getEndArrow() { 522 return (Polygon) getArrow(_end, _endOffset, _startOffset); 523 } 524 525 /** 526 * Based on code from DeSL (Arrow2D) http://sourceforge.net/projects/desl/ 527 */ 528 private void paintArrow(Graphics2D g, Shape arrow) { 529 530 if(arrow == null) { 531 return; 532 } 500 533 501 534 // TODO … … 508 541 g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); 509 542 510 g.draw( tx.createTransformedShape((Shape) arrowhead));511 g.fill( tx.createTransformedShape((Shape) arrowhead));543 g.draw(arrow); 544 g.fill(arrow); 512 545 513 546 }
Note:
See TracChangeset
for help on using the changeset viewer.