Getting multiple face indexes by intersecting with a circle

Hi everyone, I managed to give color to faces with raycasting. I get face indexes and update their colors. However, I am able to update them one by one. What I try to do is having a marker (circle and resizable ) around the cursor and check for intersected faces. By doing that I can get all face indexes and do update operations.


for instance i get this example from MeshLab, as I drag the gray circle it gives the red color to the faces of the bunny. There is also a useful example but I had some trouble while implementing it to 3d model hence the example is for planes.

Is not possible to find multiple intersection points of a mesh with another one?