X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.g3d.vtk%2Fsrc%2Forg%2Fsimantics%2Fg3d%2Fvtk%2Fawt%2FInteractiveVtkPanel.java;h=761309e2697b18e0d9cdcbdfd68fada219ba9cc9;hb=refs%2Fchanges%2F50%2F4550%2F1;hp=df91a5d4c7960d1735e311aadcaa7754b5b57583;hpb=84132a1d750c45f9161afbd58b78572964e50d26;p=simantics%2F3d.git diff --git a/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/awt/InteractiveVtkPanel.java b/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/awt/InteractiveVtkPanel.java index df91a5d4..761309e2 100644 --- a/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/awt/InteractiveVtkPanel.java +++ b/org.simantics.g3d.vtk/src/org/simantics/g3d/vtk/awt/InteractiveVtkPanel.java @@ -16,9 +16,11 @@ import java.awt.event.MouseEvent; import java.util.ArrayList; import java.util.List; +import org.eclipse.core.runtime.Platform; import org.simantics.g3d.scenegraph.RenderListener; import org.simantics.g3d.vtk.action.vtkAction; import org.simantics.g3d.vtk.common.VtkView; +import org.simantics.scenegraph.utils.DPIUtil; import org.simantics.utils.threads.AWTThread; import org.simantics.utils.threads.IThreadWorkQueue; @@ -29,6 +31,7 @@ import vtk.vtkAssemblyPath; import vtk.vtkCellPicker; import vtk.vtkGenericRenderWindowInteractor; import vtk.vtkInteractorStyleTrackballCamera; +import vtk.vtkObject; import vtk.vtkObjectBase; import vtk.vtkPanel; import vtk.vtkPointPicker; @@ -42,25 +45,31 @@ import vtk.vtkScenePicker; public class InteractiveVtkPanel extends vtkPanel implements VtkView { protected vtkGenericRenderWindowInteractor iren; - + public vtkGenericRenderWindowInteractor getRenderWindowInteractor() { - return this.iren; - } + return this.iren; + } private static final long serialVersionUID = 2815073937537950615L; public InteractiveVtkPanel() { super(); + + if (!Platform.inDevelopmentMode()) { + // This is actually a static method in C++ + new vtkObject().GlobalWarningDisplayOff(); + } + iren = new vtkGenericRenderWindowInteractor(); iren.SetRenderWindow(rw); - iren.TimerEventResetsTimerOff(); - iren.SetSize(200, 200); - iren.ConfigureEvent(); - vtkInteractorStyleTrackballCamera style = new vtkInteractorStyleTrackballCamera(); - iren.SetInteractorStyle(style); - addDeletable(style); - addDeletable(iren); + iren.TimerEventResetsTimerOff(); + iren.SetSize(200, 200); + iren.ConfigureEvent(); + vtkInteractorStyleTrackballCamera style = new vtkInteractorStyleTrackballCamera(); + iren.SetInteractorStyle(style); + addDeletable(style); + addDeletable(iren); } @Override @@ -119,14 +128,29 @@ public class InteractiveVtkPanel extends vtkPanel implements VtkView { } public void setSize(int x, int y) { - if (windowset == 1) { - Lock(); - rw.SetSize(x, y); - iren.SetSize(x, y); - iren.ConfigureEvent(); - UnLock(); - } - } + super.setSize(x, y); + } + + public void _setSize(int x, int y) { + System.out.println(this.getClass().getSimpleName() + " " + windowset + " setSize " +x + " " + y); + if (windowset == 1) { + + Lock(); + rw.SetSize(x, y); + iren.SetSize(x, y); + iren.ConfigureEvent(); + UnLock(); + } else { + if (x > 1000) + System.out.println(); + } + } + + @Override + public void setBounds(int x, int y, int width, int height) { + super.setBounds(x, y, width, height); + _setSize(width, height); + } private vtkScenePicker scenePicker; @@ -432,6 +456,16 @@ public class InteractiveVtkPanel extends vtkPanel implements VtkView { repaint(); } + @Override + public double upscale(double d) { + return DPIUtil.upscale(d); + } + + @Override + public int upscale(int i) { + return DPIUtil.upscale(i); + } + }