In object graphics, it is very easy to rotate graphics atoms around the origin using the `IDLgrModel::rotate` method. But this rotation is always rotating around the origin. What if you want to rotate about a non-origin point? The technique is simple: translate the point of rotation to the origin, rotate, and translate back.
[`VISgrModel`](http://michaelgalloy.com/wp-content/uploads/2009/10/visgrmodel__define.pro) ([docs](http://docs.idldev.com/vis/objectgraphics/visgrmodel__define.html)) is a replacement for `IDLgrModel` that makes this a bit less of a hassle. It is created in the same way as `IDLgrModel` and used like this:
model->rotate, [0, 1, 0], 1, about=[-0.5, 0., 0.]
The default value for `ABOUT` is `[0., 0., 0.]`, so it falls back to the standard `IDLgrModel` behavior.