I tried a coulpe of ideas to draw on top of the viewer3d object but none work. The only way I can think of is to get an image screenshot of the viewer3d (as discussed in this thread)
frame = getframe(viewer.Parent);
then set the visibility of the viewer3d off, use the captured image instead, and so on.
But this doesn't seem like a convinent method. I would appreciate any suggestions.