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();
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();
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);
}
});
}
public void delete() {
mesh = null;
- clearActorsAWT();
+ clearActorsVTK();
}
}