void Normal_Calc_Julia(VECTOR Result, int N_Max, FRACTAL *) { DBL n11 = 1.0, n12 = 0.0, n13 = 0.0, n14 = 0.0, n21 = 0.0, n22 = 1.0, n23 = 0.0, n24 = 0.0, n31 = 0.0, n32 = 0.0, n33 = 1.0, n34 = 0.0; DBL tmp; DBL x, y, z, w; int i; x = Sx[0]; y = Sy[0]; z = Sz[0]; w = Sw[0]; for (i = 1; i <= N_Max; i++) { Deriv_z2(n11, n12, n13, n14); Deriv_z2(n21, n22, n23, n24); Deriv_z2(n31, n32, n33, n34); x = Sx[i]; y = Sy[i]; z = Sz[i]; w = Sw[i]; } Result[X] = n11 * x + n12 * y + n13 * z + n14 * w; Result[Y] = n21 * x + n22 * y + n23 * z + n24 * w; Result[Z] = n31 * x + n32 * y + n33 * z + n34 * w; }
void JuliaFractalRules::CalcNormal(Vector3d& Result, int N_Max, const Fractal *, DBL **IterStack) const { DBL n11 = 1.0, n12 = 0.0, n13 = 0.0, n14 = 0.0, n21 = 0.0, n22 = 1.0, n23 = 0.0, n24 = 0.0, n31 = 0.0, n32 = 0.0, n33 = 1.0, n34 = 0.0; DBL tmp; DBL x, y, z, w; int i; x = IterStack[X][0]; y = IterStack[Y][0]; z = IterStack[Z][0]; w = IterStack[W][0]; for (i = 1; i <= N_Max; i++) { Deriv_z2(n11, n12, n13, n14); Deriv_z2(n21, n22, n23, n24); Deriv_z2(n31, n32, n33, n34); x = IterStack[X][i]; y = IterStack[Y][i]; z = IterStack[Z][i]; w = IterStack[W][i]; } Result[X] = n11 * x + n12 * y + n13 * z + n14 * w; Result[Y] = n21 * x + n22 * y + n23 * z + n24 * w; Result[Z] = n31 * x + n32 * y + n33 * z + n34 * w; }