private void calcRotatedPoint(float t, int i, boolean isPrecision) { tRaster[i] = t; double tPI = t * Math.PI; double xT = Math.sin(tPI) * cosTheta; double yT = Math.cos(tPI); double xR = radius * (xT * cosPhi - yT * sinPhi); double yR = radius * (xT * sinPhi + yT * cosPhi); double z2 = radius2 - (xR * xR + yR * yR); double zR = (z2 > 0 ? Math.sqrt(z2) : 0); if (isPrecision) { txRaster[i] = (float) xR; tyRaster[i] = (float) yR; tzRaster[i] = (float) zR; } else if (tEvenDiameter) { xRaster[i] = (int) (xR - 0.5); yRaster[i] = (int) (yR - 0.5); zRaster[i] = (int) (zR + 0.5); } else { xRaster[i] = (int) (xR); yRaster[i] = (int) (yR); zRaster[i] = (int) (zR + 0.5); } fp8IntensityUp[i] = Shade3D.calcFp8Intensity((float) xR, (float) yR, (float) zR); }