private EvaluateResult evaluate(Ray3 ray, double t) {
Point3 p = ray.pointAt(t);
Vector3 d = ray.direction();
double X2e_1 = Math.pow(Math.abs(p.x()), 2.0 / e - 1.0);
double Y2e_1 = Math.pow(Math.abs(p.y()), 2.0 / e - 1.0);
double Z2n_1 = Math.pow(Math.abs(p.z()), 2.0 / n - 1.0);
double X2e = Math.abs(p.x()) * X2e_1;
double Y2e = Math.abs(p.y()) * Y2e_1;
double Z2n = Math.abs(p.z()) * Z2n_1;
double A_1 = Math.pow(X2e + Y2e, e / n - 1.0);