(Roi roi)
| 574 | } |
| 575 | |
| 576 | void doIrregularSetup(Roi roi) { |
| 577 | n = ((PolygonRoi)roi).getNCoordinates(); |
| 578 | int[] ix = ((PolygonRoi)roi).getXCoordinates(); |
| 579 | int[] iy = ((PolygonRoi)roi).getYCoordinates(); |
| 580 | x = new double[n]; |
| 581 | y = new double[n]; |
| 582 | for (int i=0; i<n; i++) { |
| 583 | x[i] = ix[i]; |
| 584 | y[i] = iy[i]; |
| 585 | } |
| 586 | if (roi.getType()==Roi.FREELINE) { |
| 587 | // smooth line |
| 588 | for (int i=1; i<n-1; i++) { |
| 589 | x[i] = (x[i-1] + x[i] + x[i+1])/3.0+0.5; |
| 590 | y[i] = (y[i-1] + y[i] + y[i+1])/3.0+0.5; |
| 591 | } |
| 592 | } |
| 593 | Rectangle r = roi.getBounds(); |
| 594 | xbase = r.x; |
| 595 | ybase = r.y; |
| 596 | length = 0.0; |
| 597 | double segmentLength; |
| 598 | double xdelta, ydelta; |
| 599 | segmentLengths = new double[n]; |
| 600 | dx = new double[n]; |
| 601 | dy = new double[n]; |
| 602 | for (int i=0; i<(n-1); i++) { |
| 603 | xdelta = x[i+1] - x[i]; |
| 604 | ydelta = y[i+1] - y[i]; |
| 605 | segmentLength = Math.sqrt(xdelta*xdelta+ydelta*ydelta); |
| 606 | length += segmentLength; |
| 607 | segmentLengths[i] = segmentLength; |
| 608 | dx[i] = xdelta; |
| 609 | dy[i] = ydelta; |
| 610 | } |
| 611 | } |
| 612 | |
| 613 | private float[] getLine(ImageProcessor ip, double x1, double y1, double x2, double y2, float[] data) { |
| 614 | double dx = x2-x1; |
no test coverage detected