X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Fgizmo%2FTerminalSelectionGizmo.java;h=f194c8dbbbfa3c82923ca77ddb178d954af7b371;hb=a899aac9dd52296206f302a20a8e7bae2501cf2c;hp=422e022a95db65dfb96ba84b373971699ec92fa4;hpb=a460e609147d064dd3da464bcf1626845e0f93b4;p=simantics%2F3d.git diff --git a/org.simantics.plant3d/src/org/simantics/plant3d/gizmo/TerminalSelectionGizmo.java b/org.simantics.plant3d/src/org/simantics/plant3d/gizmo/TerminalSelectionGizmo.java index 422e022a..f194c8db 100644 --- a/org.simantics.plant3d/src/org/simantics/plant3d/gizmo/TerminalSelectionGizmo.java +++ b/org.simantics.plant3d/src/org/simantics/plant3d/gizmo/TerminalSelectionGizmo.java @@ -10,11 +10,10 @@ import javax.vecmath.Vector3d; import org.simantics.g3d.scenegraph.RenderListener; import org.simantics.g3d.tools.PluginTools; -import org.simantics.g3d.vtk.common.InteractiveVtkPanel; +import org.simantics.g3d.vtk.common.VtkView; import org.simantics.g3d.vtk.gizmo.vtkGizmo; import org.simantics.g3d.vtk.utils.vtkUtil; import org.simantics.plant3d.Activator; -import org.simantics.plant3d.scenegraph.InlineComponent; import org.simantics.plant3d.scenegraph.PipelineComponent; import org.simantics.plant3d.scenegraph.controlpoint.PipeControlPoint.PositionType; @@ -46,10 +45,10 @@ public class TerminalSelectionGizmo extends vtkGizmo { Vector3d prev = new Vector3d(); Vector3d next = new Vector3d(); - InteractiveVtkPanel panel; + VtkView panel; private RenderListener listener; - public TerminalSelectionGizmo(InteractiveVtkPanel panel) { + public TerminalSelectionGizmo(VtkView panel) { this.panel = panel; this.listener = new RenderListener() { @@ -78,8 +77,13 @@ public class TerminalSelectionGizmo extends vtkGizmo { }; } + vtkRenderer getRenderer() { + return panel.getRenderer(); + } + + @Override - public void attach(Object renderingPart) { + public void attach(VtkView renderingPart) { if (nextProp == null) { loadData(); @@ -107,26 +111,29 @@ public class TerminalSelectionGizmo extends vtkGizmo { } protected void attachActors() { + panel.lock(); vtkRenderer ren = getRenderer(); if (showPrev) { - ren.AddActor(prevProp); + ren.AddActor2D(prevProp); } if (showNext) { - ren.AddActor(nextProp); + ren.AddActor2D(nextProp); } if (showMiddle) { - ren.AddActor(middleProp); + ren.AddActor2D(middleProp); } - + panel.unlock(); } @Override protected void deattachActors() { panel.removeListener(listener); + panel.lock(); vtkRenderer ren = getRenderer(); ren.RemoveActor(prevProp); ren.RemoveActor(nextProp); ren.RemoveActor(middleProp); + panel.unlock(); } public void setComponent(PipelineComponent component, Set allowed) { @@ -149,10 +156,11 @@ public class TerminalSelectionGizmo extends vtkGizmo { throw new RuntimeException("Cannot resolve required image files."); vtkPoints points = new vtkPoints(); - points.InsertNextPoint(-8, -8, 0.0); - points.InsertNextPoint( 8, -8, 0.0); - points.InsertNextPoint( 8, 8, 0.0); - points.InsertNextPoint(-8, 8, 0.0); + double pw = 8; + points.InsertNextPoint(-pw, -pw, 0.0); + points.InsertNextPoint( pw, -pw, 0.0); + points.InsertNextPoint( pw, pw, 0.0); + points.InsertNextPoint(-pw, pw, 0.0); vtkCellArray cellArray = new vtkCellArray(); @@ -195,7 +203,7 @@ public class TerminalSelectionGizmo extends vtkGizmo { plusTex.SetInterpolate(1); vtkPolyDataMapper2D mapper = new vtkPolyDataMapper2D(); - mapper.SetInput(quad); + mapper.SetInputData(quad); nextProp = new vtkTexturedActor2D(); prevProp = new vtkTexturedActor2D(); @@ -214,6 +222,15 @@ public class TerminalSelectionGizmo extends vtkGizmo { middleProp.SetPickable(1); + middleProp.SetWidth(pw); + middleProp.SetHeight(pw); + + prevProp.SetWidth(pw); + prevProp.SetHeight(pw); + + nextProp.SetWidth(pw); + nextProp.SetHeight(pw); + plusReader.GetOutputPort().Delete(); plusReader.Delete(); middleReader.GetOutputPort().Delete();