Hello, thank you for your reply.
I had a good look at that link, and I do think it helped a lot.
It is possible that I am closer than I thought.
I actually have code that rotates a point (using Rodrigues' rotation formula). However, this seems to rotate about the wrong origin point.
I think if I could translate the nodes back to the origin, rotate them, then translate them again by the same distance, I could accomplish the rotation.
The angle to rotate by seems to be given by the code you posted.
Wikipedia says about Rodrigues formula:
"By extension, this can be used to transform all three basis vectors to compute a rotation matrix in SO(3), the group of all rotation matrices, from an axis–angle representation"
So, this should work... I will give it a go as soon as I can, and post an update either way, thanks again!