1 package org.simantics.g3d.vtk.shape;
3 import org.simantics.g3d.shape.Mesh;
4 import org.simantics.utils.threads.AWTThread;
5 import org.simantics.utils.threads.ThreadUtils;
8 import vtk.vtkRenderer;
10 public class vtkMeshObject {
12 private vtkPanel panel;
15 private MeshActor meshActor;
17 public vtkMeshObject(vtkPanel panel, Mesh mesh) {
22 public void visualizeMesh() {
24 meshActor = new MeshActor();
25 meshActor.setMesh(mesh);
26 //System.out.println("Set mesh " + mesh.getVertices().size() + " " + mesh.getIndices().size() + " " + this);
30 public MeshActor getActor() {
31 assert (Thread.currentThread() == AWTThread.getThreadAccess().getThread());
35 public void showActorsAWT() {
36 //System.out.println("showActorsAWT " + this + " " + meshActor != null);
37 assert (Thread.currentThread() == AWTThread.getThreadAccess().getThread());
38 vtkRenderer ren = panel.GetRenderer();
39 if (meshActor != null)
40 ren.AddActor(meshActor);
43 public void showActors() {
44 ThreadUtils.asyncExec(AWTThread.getThreadAccess(), new Runnable() {
53 public void clearActorsAWT() {
54 assert (Thread.currentThread() == AWTThread.getThreadAccess().getThread());
56 if (meshActor == null)
58 //System.out.println("clearActorsAwt " + this);
59 vtkRenderer ren = panel.GetRenderer();
63 if (meshActor.GetVTKId() != 0) {
64 ren.RemoveActor(meshActor);
71 private void clearActorsAWT(MeshActor meshActor) {
72 assert (Thread.currentThread() == AWTThread.getThreadAccess().getThread());
74 if (meshActor == null)
76 //System.out.println("clearActorsAwt2 " + this);
77 vtkRenderer ren = panel.GetRenderer();
81 if (meshActor.GetVTKId() != 0) {
82 ren.RemoveActor(meshActor);
89 public void clearActors() {
90 if (meshActor == null)
92 ThreadUtils.asyncExec(AWTThread.getThreadAccess(), new Runnable() {
96 clearActorsAWT(meshActor);
101 public void dispose() {
106 public void delete() {