double width;
double data;
double distance, near, nearx, neary, nearz;
+ double xmin, ymin, zmin, xmax, ymax, zmax;
double max;
double dstData;
break;
}
- for(x=0; x<out->HeaderN.x; x++) {
- DEBUGPRINT1("%d\n", (int)x);
- for(y=0; y<out->HeaderN.y; y++) {
for(z=0; z<out->HeaderN.z; z++) {
- near = max;
-
+ DEBUGPRINT1("%d\n", (int)z);
+ for(y=0; y<out->HeaderN.y; y++) {
+ for(x=0; x<out->HeaderN.x; x++) {
mrcPixelDataGet(in, x, y, z, &data, mrcPixelRePart, mrcPixelHowNearest);
if(0<data) {
dstData = data;
} else {
+ near = max;
dstData = 0;
- for(offsetx=MAX(0, x-width); offsetx<MIN(x+width, out->HeaderN.x); offsetx++) {
- for(offsety=MAX(0, y-width); offsety<MIN(y+width, out->HeaderN.y); offsety++) {
- for(offsetz=MAX(0, z-width); offsetz<MIN(z+width, out->HeaderN.z); offsetz++) {
- mrcPixelDataGet(in, offsetx, offsety, offsetz, &data, mrcPixelRePart, mrcPixelHowNearest);
+ xmin = MAX(0, x-width); xmax = MIN(x+width, out->HeaderN.x - 1);
+ ymin = MAX(0, y-width); ymax = MIN(y+width, out->HeaderN.y - 1);
+ zmin = MAX(0, z-width); zmax = MIN(z+width, out->HeaderN.z - 1);
+ for(offsetz=zmin; offsetz<=zmax; offsetz++) {
+ for(offsety=ymin; offsety<=ymax; offsety++) {
+ for(offsetx=xmin; offsetx<=xmax; offsetx++) {
distance = sqrt(SQR(offsetx -x) + SQR(offsety - y) + SQR(offsetz - z));
- if(0<data && distance < near) {
- near = distance;
- nearx = offsetx;
- neary = offsety;
- nearz = offsetz;
- dstData = data;
+ if(distance<width) {
+ mrcPixelDataGet(in, offsetx, offsety, offsetz, &data, mrcPixelRePart, mrcPixelHowNearest);
+ if(0<data) {
+ if(distance < near) {
+ near = distance;
+ nearx = offsetx;
+ neary = offsety;
+ nearz = offsetz;
+ dstData = data;
+ }
+ }
}
}
}
dstData = 0;
}
break;
+ default:
+ fprintf(stderr, "Not supported envelop: %d\n", linfo.envelop);
+ exit(EXIT_FAILURE);
+ break;
}
}
}