Search in sources :

Example 1 with DeleteMeshCommand

use of org.concord.energy3d.undo.DeleteMeshCommand in project energy3d by concord-consortium.

the class Foundation method deleteMesh.

public void deleteMesh(final Mesh m) {
    final List<HousePart> toDelete = new ArrayList<HousePart>();
    for (final HousePart p : children) {
        if (p instanceof Meshable) {
            final MeshLocator l = ((Meshable) p).getMeshLocator();
            if (l != null && m == l.find()) {
                toDelete.add(p);
            }
        }
    }
    if (!toDelete.isEmpty()) {
        for (final HousePart p : toDelete) {
            Scene.getInstance().remove(p, false);
        }
    }
    final DeleteMeshCommand c = new DeleteMeshCommand(m, this, toDelete);
    final Node n = m.getParent();
    n.detachChild(m);
    clearSelectedMesh();
    removeEmptyNodes();
    getNodeState(n).deleteMesh(((UserData) m.getUserData()).getMeshIndex());
    draw();
    SceneManager.getInstance().getUndoManager().addEdit(c);
}
Also used : Node(com.ardor3d.scenegraph.Node) ArrayList(java.util.ArrayList) DeleteMeshCommand(org.concord.energy3d.undo.DeleteMeshCommand)

Aggregations

Node (com.ardor3d.scenegraph.Node)1 ArrayList (java.util.ArrayList)1 DeleteMeshCommand (org.concord.energy3d.undo.DeleteMeshCommand)1