public void clear() {
    // System.err.println("run clear");
    ForceSimulator fsim = getForceSimulator();
    fsim.clear();

    // make sure we have force items to work with
    TupleSet t = (TupleSet) m_vis.getGroup(m_nodeGroup);

    Iterator iter = m_vis.visibleItems(m_nodeGroup);
    while (iter.hasNext()) {
      VisualItem item = (VisualItem) iter.next();
      if (!item.canGet(ANCHORITEM, ForceItem.class)) break;
      // get force item
      ForceItem fitem = (ForceItem) item.get(FORCEITEM);
      if (fitem != null) {
        fitem.location[0] = (float) item.getEndX();
        fitem.location[1] = (float) item.getEndY();
        fitem.mass = getMassValue(item);

        // get spring anchor
        ForceItem aitem = (ForceItem) item.get(ANCHORITEM);
        // only reset if an anchor exists
        if (aitem != null) {
          aitem.location[0] = fitem.location[0];
          aitem.location[1] = fitem.location[1];

          fsim.addItem(fitem);
          fsim.addSpring(fitem, aitem, 0);
        }
      }
    }
  }