X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.g3d.vtk%2Fsrc%2Forg%2Fsimantics%2Fg3d%2Fvtk%2Fcommon%2FAbstractVTKNodeMap.java;h=646fbe41cdef8300e24e71ea84eba13510995e35;hb=84132a1d750c45f9161afbd58b78572964e50d26;hp=35d3105fb451f1debc7afca7476e5d1449099007;hpb=824f36cd731304e46deb4765883e47a4eec6132e;p=simantics%2F3d.git diff --git a/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/common/AbstractVTKNodeMap.java b/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/common/AbstractVTKNodeMap.java index 35d3105f..646fbe41 100644 --- a/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/common/AbstractVTKNodeMap.java +++ b/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/common/AbstractVTKNodeMap.java @@ -21,15 +21,12 @@ import java.util.Set; import java.util.Stack; import org.simantics.db.ReadGraph; -import org.simantics.db.Resource; import org.simantics.db.Session; import org.simantics.db.WriteGraph; import org.simantics.db.common.request.ReadRequest; import org.simantics.db.common.request.WriteRequest; import org.simantics.db.exception.DatabaseException; import org.simantics.g3d.ontology.G3D; -import org.simantics.g3d.scenegraph.G3DNode; -import org.simantics.g3d.scenegraph.IG3DNode; import org.simantics.g3d.scenegraph.RenderListener; import org.simantics.g3d.scenegraph.base.INode; import org.simantics.g3d.scenegraph.base.NodeListener; @@ -50,19 +47,19 @@ public abstract class AbstractVTKNodeMap implements VTKNodeMap< protected Session session; protected IMapping mapping; - protected InteractiveVtkPanel panel; + protected VtkView view; protected MapList nodeToActor = new MapList(); protected Map actorToNode = new HashMap(); protected ParentNode rootNode; - public AbstractVTKNodeMap(Session session, IMapping mapping, InteractiveVtkPanel panel, ParentNode rootNode) { + public AbstractVTKNodeMap(Session session, IMapping mapping, VtkView view, ParentNode rootNode) { this.session = session; this.mapping = mapping; - this.panel = panel; + this.view = view; this.rootNode = rootNode; - panel.addListener(this); + view.addListener(this); mapping.addMappingListener(this); rootNode.addListener(this); } @@ -73,7 +70,7 @@ public abstract class AbstractVTKNodeMap implements VTKNodeMap< protected abstract void updateActor(E node,Set ids); public void repaint() { - panel.repaint(); + view.refresh(); } public void populate() { @@ -128,14 +125,16 @@ public abstract class AbstractVTKNodeMap implements VTKNodeMap< @Override public void updateRenderObjectsFor(INode node) { List toDelete = new ArrayList(); + view.lock(); for (vtkProp prop : nodeToActor.getValues((E)node)) { if (prop.GetVTKId() != 0) { - panel.GetRenderer().RemoveActor(prop); + view.getRenderer().RemoveActor(prop); //prop.Delete(); toDelete.add(prop); } actorToNode.remove(prop); } + view.unlock(); nodeToActor.remove((E)node); Collection coll = getActors((E)node); if (coll == null) @@ -165,7 +164,7 @@ public abstract class AbstractVTKNodeMap implements VTKNodeMap< added.add(new Pair(node, id)); rangeModified = true; } - panel.repaint(); + view.refresh(); } @SuppressWarnings("unchecked") @@ -181,7 +180,7 @@ public abstract class AbstractVTKNodeMap implements VTKNodeMap< removed.add(new Pair(node, id)); rangeModified = true; } - panel.repaint(); + view.refresh(); } @SuppressWarnings("unchecked") @@ -198,7 +197,7 @@ public abstract class AbstractVTKNodeMap implements VTKNodeMap< updated.add(node, id); rangeModified = true; } - panel.repaint(); + view.refresh(); } private boolean graphUpdates = false; @@ -461,7 +460,7 @@ public abstract class AbstractVTKNodeMap implements VTKNodeMap< @Override public void delete() { changeTracking = false; - panel.removeListener(this); + view.removeListener(this); mapping.removeMappingListener(this); List nodes = new ArrayList(nodeToActor.getKeySize());