/**
* @see prefuse.action.Action#run(double)
*/
public void run(double frac) {
TupleSet ts = m_vis.getGroup(m_group);
int nn = ts.getTupleCount();
Rectangle2D r = getLayoutBounds();
double height = r.getHeight();
double width = r.getWidth();
double cx = r.getCenterX();
double cy = r.getCenterY();
double radius = m_radius;
if (radius <= 0) {
radius = 0.45 * (height < width ? height : width);
}
Iterator items = ts.tuples();
for (int i=0; items.hasNext(); i++) {
VisualItem n = (VisualItem)items.next();
double angle = (2*Math.PI*i) / nn;
double x = Math.cos(angle)*radius + cx;
double y = Math.sin(angle)*radius + cy;