DBL f_rounded_box(DBL *ptr, unsigned int) // 60 { DBL x2, y2, z2, x3, y3, z3; x2 = PARAM(1) - PARAM(0); y2 = PARAM(2) - PARAM(0); z2 = PARAM(3) - PARAM(0); x3 = fabs(PARAM_X); y3 = fabs(PARAM_Y); z3 = fabs(PARAM_Z); /* // Version 5 PARAM_X = (x3 < x2) ? 0 : (x3 - x2); PARAM_Y = (y3 < y2) ? 0 : (y3 - y2); PARAM_Z = (z3 < z2) ? 0 : (z3 - z2); if(!PARAM_X) { if(!PARAM_Y) { if (!PARAM_Z) { return -PARAM(0); } return (z3 - PARAM(3)); } if(!PARAM_Z) { return (y3 - PARAM(2)); } } if((!PARAM_Y) && (!PARAM_Z)) { return (x3 - PARAM(1)); } */ // Version 8 PARAM_X = (x3 < x2) ? 0 : (x3 - x2); PARAM_Y = (y3 < y2) ? 0 : (y3 - y2); PARAM_Z = (z3 < z2) ? 0 : (z3 - z2); if(!PARAM_X) { if(!PARAM_Y) { if (!PARAM_Z) { return -PARAM(0); } return (z3 - PARAM(3)); } if(!PARAM_Z) { return (y3 - PARAM(2)); } return (sqrt(PARAM_Y * PARAM_Y + PARAM_Z * PARAM_Z) - PARAM(0)); } if((!PARAM_Y) && (!PARAM_Z)) { return (x3 - PARAM(1)); } /* // Version 6 PARAM_X = x3 - x2; PARAM_Y = y3 - y2; PARAM_Z = z3 - z2; if (x3 < x2) { if (y3 < y2) { if (z3 < z2) { return -PARAM(0); } return (z3 - PARAM(3)); } if (z3 < z2) { return (y3 - PARAM(2)); } return (sqrt(PARAM_Y * PARAM_Y + PARAM_Z * PARAM_Z) - PARAM(0)); } if (y3 < y2) { if (z3 < z2) { return (x3 - PARAM(1)); } return (sqrt(PARAM_X * PARAM_X + PARAM_Z * PARAM_Z) - PARAM(0)); } if (z3 < z2) { return (sqrt(PARAM_X * PARAM_X + PARAM_Y * PARAM_Y) - PARAM(0)); } */ /* // Version 7 PARAM_X = (x3 < x2) ? 0 : (x3 - x2); PARAM_Y = (y3 < y2) ? 0 : (y3 - y2); PARAM_Z = (z3 < z2) ? 0 : (z3 - z2); if (!PARAM_X) { if (!PARAM_Y) { if (!PARAM_Z) { return -PARAM(0); } return (z3 - PARAM(3)); } if (!PARAM_Z) { return (y3 - PARAM(2)); } return (sqrt(PARAM_Y * PARAM_Y + PARAM_Z * PARAM_Z) - PARAM(0)); } if (!PARAM_Y) { if (!PARAM_Z) { return (x3 - PARAM(1)); } return (sqrt(PARAM_X * PARAM_X + PARAM_Z * PARAM_Z) - PARAM(0)); } if (!PARAM_Z) { return (sqrt(PARAM_X * PARAM_X + PARAM_Y * PARAM_Y) - PARAM(0)); } */ return (sqrt(PARAM_X * PARAM_X + PARAM_Y * PARAM_Y + PARAM_Z * PARAM_Z) - PARAM(0)); }