public Intersection findIntersect(Ray r) {
		double d = r.getDirection().dot(normal);
		if (d == 0) {
			return null;
		}
		double t = (point.dot(normal) - normal.dot(r.getOrigin())) / d;
		if (t > getTol()) {
			Vector i = r.position(t);
			Vector n = d > 0 ? normal.negate() : normal;
			return new Intersection(t, r, i, n, material);
		}
		return null;
	}