I am coding a finite element method solver for my final project in engineering. I want to be able to select faces within a 3D geometry plotted to the user, more specifially in the mesh or maybe the originial geometry really. Think of the attached figure, but without the internal nodes being displayed, having patches filling the surfaces. The attached figure is still a preliminary figure for what's being done. I will still do some code to leave only the boundary nodes visible and yada yada.
Anyways, what would be enough for me is to be able to click on a patch at the figure window and have its id (or something equivalent) returned to a variable so I can keep track of the boundaries the user is selecting. Is there any method available to know which patch surface (or any other equivalent 3D surface) the user has selected? The same applies to boundary lines and points, but let's focus first on surfaces.