X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Fgizmo%2FTerminalSelectionGizmo.java;fp=org.simantics.plant3d%2Fsrc%2Forg%2Fsimantics%2Fplant3d%2Fgizmo%2FTerminalSelectionGizmo.java;h=f194c8dbbbfa3c82923ca77ddb178d954af7b371;hb=84132a1d750c45f9161afbd58b78572964e50d26;hp=287ce3401a513a27c36fd293050fb4385972b931;hpb=6308b57b2793abbd92da9e004f9f7c068f18eba6;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 287ce340..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(); @@ -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();