Rotation of an object at an arbitrary pivot point

I am developing an ultrasound system with an inertial tracker attached to a linear array ultrasound probe as shown in the first figure of powerpoint and slide notes.!Ao_mcYEsQIFVhAKLDa4UKb8rVNFQ?e=B12guY . I am using the Witmotion inertial sensor, usb frame grabber, and the plus toolkit to acquire the image and tracking data. In slicer I can see the motion of the tracker and appropriate expected motion of the tracked image in the 3D window. I want to be able to use the probe as rectal ultrasound, with the anus as a pivot point at an arbitrary point somewhere along the probe length, which in real life experience as a retired gastroenterologist is generally true. With a fixed probe pivot point, the inertial tracker estimates both the probe translations and rotations.

My question is how to I set up transformation matrixes so that I use a fixed pivot point for the ultrasound probe as shown in my first figure. The second powerpoint slide shows the effect of a pivot point on probe and image positions as determined by the inertial tracker. I understand that rotations can be done with objects not at (0,0,0) origin using a translation of the object to origin, rotational transformation and then translation of object back to its original position. I don’t see a provision how to do this using plus toolkit and slicer. Some direction would be greatly appreciated.

I made YouTube demo for my mechanical engineer son to explain what I was doing, which shows setup for anyone who is interested.

You can set adjust the rotation point position by putting the ProbeToReference transform under a new transform (ReferenceToRAS), which contains a simple translation. Setting up appropriate transformations for your system is explained in detail in SlicerIGT tutorials.