/**
   * @param z
   * @param targetZ
   */
  private Vector3f calculateTerrainCollision(
      float x, float y, float z, float targetX, float targetY, float targetZ, Ray ray) {

    float x2 = targetX - x;
    float y2 = targetY - y;
    int intD = (int) Math.abs(ray.getLimit());

    for (float s = 0; s < intD; s += 2) {
      float tempX = x + (x2 * s / ray.getLimit());
      float tempY = y + (y2 * s / ray.getLimit());
      Vector3f result = terraionCollision(tempX, tempY, ray);
      if (result != null) {
        return result;
      }
    }
    return null;
  }