public HitRecord hitNearestPoint(Vector3D start, Vector3D direction,
			double mint, double maxt) {
		Vector3D solution = getHitSolution(start, direction);
		if (solution != null && solution.x > 0 && solution.y > 0
				&& solution.x + solution.y < 1 && solution.z > mint
				&& solution.z < maxt) {
			Vector3D ab = Vector3D.Substract(verticles[1], verticles[0]);
			Vector3D ac = Vector3D.Substract(verticles[2], verticles[0]);
			Vector3D[] vecs = {ab, ac, verticles[0]};
			double[] coes = {solution.x, solution.y, 1};
			Vector3D hitPt = Vector3D.LinearSum(vecs, coes);
			HitRecord record = new HitRecord(hitPt, this, solution.z);
			return record;
		} else {
			return null;
		}
	}