protected void computeOptionMarqueeSelection(PInputEvent pie) {
ArrayList<WorldObjectImpl> unselectList = new ArrayList<WorldObjectImpl>();
Iterator<WorldObjectImpl> selectionEn = selectedObjects.iterator();
while (selectionEn.hasNext()) {
WorldObjectImpl node = selectionEn.next();
if (!allObjects.contains(node) && marqueeObjects.contains(node)) {
marqueeObjects.remove(node);
unselectList.add(node);
}
}
unselect(unselectList);
// Then select the rest
selectionEn = allObjects.iterator();
while (selectionEn.hasNext()) {
WorldObjectImpl node = selectionEn.next();
if (!selectedObjects.contains(node) && !marqueeObjects.contains(node) && isSelectable(node)) {
marqueeObjects.add(node);
} else if (!isSelectable(node)) {
selectionEn.remove();
}