Raytrace-like mirror plane tool in Rhino 7?

Is there a way to create a tool, which is basically a plane that acts like a mirror to a straight line (or a point), so that the latter gets mirrored in the exact opposite direction; just like what happens on a real-life mirror? For example, if I create that blue line shown on the image and then set the plane to be the mirror, the end result should be another accurately mirrored line (the red one) with the same length in the corresponding direction.
If history is enabled, any change in the position or orientation of the line (or its control points) should force the mirrored line to follow suit. For example, a rotation of the mirror plane by 4 degrees will result in a rotation of the mirrored geometry by 8 degrees.

Currently, I do a simple “hack” to simulate that by setting the CPlane to lay on the actual flat plane in the scene, then rotate and copy the line at 180 degrees around the Z-axis of the CPlane (the black line seen in the image). It works with History as long as I don’t alter the position of the mirror plane. However, this is a bit slow and requires to set a new CPlane after each time the mirror plane is being moved or rotated in the 3d space.

This particular kind of “ray-tracing of geometry”, such as lines and points, is very handy for architects and product designers who would like to evaluate the direction of light that points towards the model. Not to be confused with the ray-tracing rendering. :slight_smile:

Hi @Rhino_Bulgaria
Just making sure that you know about the Bounce command? It’s been in Rhino since forever, and does most of what you are asking - I think - using surfaces. And works with history.
HTH, Jakob

1 Like

Although it seems only surfaces update. @pascal, it would be nice to be able to update the ray vector using history as well, instead of having to draw a new one when moving the position of the (light) source. I see no way of doing that currently, but maybe a Use existing line option that could be history enabled?

1 Like

Hi Jakob -

I filed that feature request as RH-59765.


Wow, I have never bothered to try this command until now. It works exactly in the way you described! And is history enabled, too. The only thing that could be improved is to be able (as you mentioned) to move the input ray vector to update the output one. :slight_smile:

RH-59765 is fixed in the latest WIP

1 Like