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;
import vtk.vtkCellPicker;
import vtk.vtkGenericRenderWindowInteractor;
import vtk.vtkInteractorStyleTrackballCamera;
+import vtk.vtkObject;
import vtk.vtkObjectBase;
import vtk.vtkPanel;
import vtk.vtkPointPicker;
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
}
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;
repaint();
}
+ @Override
+ public double upscale(double d) {
+ return DPIUtil.upscale(d);
+ }
+
+ @Override
+ public int upscale(int i) {
+ return DPIUtil.upscale(i);
+ }
+
}