X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.g3d.vtk%2Fsrc%2Forg%2Fsimantics%2Fg3d%2Fvtk%2Fshape%2FvtkMeshObject.java;h=466d0864bef56c871d93cb708450fb8b836aabfc;hb=84132a1d750c45f9161afbd58b78572964e50d26;hp=0e60a270f24ce699a243ed3c16c00dbe8250630e;hpb=86739231beb0535bde4abae49d2011e3a042810b;p=simantics%2F3d.git diff --git a/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/shape/vtkMeshObject.java b/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/shape/vtkMeshObject.java index 0e60a270..466d0864 100644 --- a/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/shape/vtkMeshObject.java +++ b/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/shape/vtkMeshObject.java @@ -1,62 +1,63 @@ package org.simantics.g3d.vtk.shape; import org.simantics.g3d.shape.Mesh; -import org.simantics.utils.threads.AWTThread; +import org.simantics.g3d.vtk.common.VtkView; import org.simantics.utils.threads.ThreadUtils; -import vtk.vtkPanel; import vtk.vtkRenderer; public class vtkMeshObject { - private vtkPanel panel; + private VtkView panel; private Mesh mesh; private MeshActor meshActor; - public vtkMeshObject(vtkPanel panel, Mesh mesh) { + public vtkMeshObject(VtkView panel, Mesh mesh) { this.mesh = mesh; this.panel = panel; } public void visualizeMesh() { - clearActorsAWT(); + clearActorsVTK(); meshActor = new MeshActor(); meshActor.setMesh(mesh); //System.out.println("Set mesh " + mesh.getVertices().size() + " " + mesh.getIndices().size() + " " + this); - showActorsAWT(); + showActorsVTK(); } public MeshActor getActor() { - assert (Thread.currentThread() == AWTThread.getThreadAccess().getThread()); + assert (Thread.currentThread() == panel.getThreadQueue().getThread()); return meshActor; } - public void showActorsAWT() { + public void showActorsVTK() { //System.out.println("showActorsAWT " + this + " " + meshActor != null); - assert (Thread.currentThread() == AWTThread.getThreadAccess().getThread()); - vtkRenderer ren = panel.GetRenderer(); + assert (Thread.currentThread() == panel.getThreadQueue().getThread()); + panel.lock(); + vtkRenderer ren = panel.getRenderer(); if (meshActor != null) ren.AddActor(meshActor); + panel.unlock(); } public void showActors() { - ThreadUtils.asyncExec(AWTThread.getThreadAccess(), new Runnable() { + ThreadUtils.asyncExec(panel.getThreadQueue(), new Runnable() { @Override public void run() { - showActorsAWT(); + showActorsVTK(); } }); } - public void clearActorsAWT() { - assert (Thread.currentThread() == AWTThread.getThreadAccess().getThread()); + public void clearActorsVTK() { + assert (Thread.currentThread() == panel.getThreadQueue().getThread()); if (meshActor == null) return; //System.out.println("clearActorsAwt " + this); - vtkRenderer ren = panel.GetRenderer(); + vtkRenderer ren = panel.getRenderer(); if (ren == null) return; panel.lock(); @@ -68,13 +69,13 @@ public class vtkMeshObject { meshActor = null; } - private void clearActorsAWT(MeshActor meshActor) { - assert (Thread.currentThread() == AWTThread.getThreadAccess().getThread()); + private void clearActorsVTK(MeshActor meshActor) { + assert (Thread.currentThread() == panel.getThreadQueue().getThread()); if (meshActor == null) return; //System.out.println("clearActorsAwt2 " + this); - vtkRenderer ren = panel.GetRenderer(); + vtkRenderer ren = panel.getRenderer(); if (ren == null) return; panel.lock(); @@ -89,11 +90,11 @@ public class vtkMeshObject { public void clearActors() { if (meshActor == null) return; - ThreadUtils.asyncExec(AWTThread.getThreadAccess(), new Runnable() { + ThreadUtils.asyncExec(panel.getThreadQueue(), new Runnable() { @Override public void run() { - clearActorsAWT(meshActor); + clearActorsVTK(meshActor); } }); } @@ -105,7 +106,7 @@ public class vtkMeshObject { public void delete() { mesh = null; - clearActorsAWT(); + clearActorsVTK(); } }