MCPcopy Create free account
hub / github.com/AstroImageJ/astroimagej / doIrregularSetup

Method doIrregularSetup

ij/src/main/java/ij/plugin/Slicer.java:576–611  ·  view source on GitHub ↗
(Roi roi)

Source from the content-addressed store, hash-verified

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;

Callers 1

getIrregularProfileMethod · 0.95

Calls 6

getNCoordinatesMethod · 0.80
getXCoordinatesMethod · 0.80
getYCoordinatesMethod · 0.80
getTypeMethod · 0.65
getBoundsMethod · 0.65
sqrtMethod · 0.45

Tested by

no test coverage detected