Regarding how to modify image point/cell data

Dear all,

I am new to VTK and I want to ask a question regarding how to modify point and cell data. I am not very familiar with all the concepts yet, so please forgive me if I made any mistakes regarding the naming of objects.
Let me first describe what I want to do.

I am trying to develop a tool which simulate an etching process, which means some particles will hit a surface and remove some surface cells.

For testing purpose, I created a vtkImageData object and add some spheres/boxes. Then I extract the triangles and use the triangles for ray tracing.

I mostly followed the example:

My questions:

(1) After I obtained the locations of the hit point, I need to do the etching step, but I am not sure how to modify the data, or label of the target voxel. I am a bit confused with the concept of point data and cell data. Also the difference between vtkImageData and vtkPolyData.

(2) From ray tracing, I can get the location of the intersection point. How can I get the correct cell/voxel/point? Because the hit point is located at the interface of vacuum/solid object, and I need to get the cell in the non-vacuum material.

(3) After that, basically, if I can modify the material of surface voxel to vacuum (label=0), I can do flyingedges / marchingcube again and extract new triangles for the next ray tracing step. Is this the correct way to do?

Anyone can help with this? Thank you very much!

I am using vtk-8.2.0.