//Integrate pointcloud already transformed to target frame
  void Chisel::IntegratePointCloud(const ProjectionIntegrator& integrator, const PointCloud& cloud, const Vec3& sensorOrigin, float minDist, float maxDist)
  {
    ChunkVoxelMap updatedVoxels;

    //TODO: parallelize
    for (const Vec3& point : cloud.GetPoints())
    {
        IntegrateRay(integrator, updatedVoxels, sensorOrigin, point, minDist, maxDist);
    }

    DetermineUpdatedChunks(updatedVoxels);
  }
  //Integrate pointcloud after transforming to target frame
  void Chisel::IntegratePointCloud(const ProjectionIntegrator& integrator, const PointCloud& cloud, const Transform& extrinsic, float minDist, float maxDist)
  {
    ChunkVoxelMap updatedVoxels;
    const Vec3& start = extrinsic.translation();

    //TODO: parallelize
    for (const Vec3& point : cloud.GetPoints())
    {
        Vec3 point_transformed = extrinsic * point;
        IntegrateRay(integrator, updatedVoxels, start, point_transformed, minDist, maxDist);
    }

    DetermineUpdatedChunks(updatedVoxels);
  }