protected Vector3 getNormal(GeometryIntersection x) {
Point3 p = x.getPosition();
double A = Math.pow(Math.pow(Math.abs(p.x()), 2.0 / e) + Math.pow(Math.abs(p.y()), 2.0 / e), e / n - 1.0);
double X = A * Math.pow(Math.abs(p.x()), 2.0 / e - 1.0);
double Y = A * Math.pow(Math.abs(p.y()), 2.0 / e - 1.0);
double Z = Math.pow(Math.abs(p.z()), 2.0 / n - 1.0);
return new Vector3(
Math.signum(p.x()) * X,
Math.signum(p.y()) * Y,