private void Move2D(vtkObject sender, vtkObjectEventArgs e) { if (mouseDownLeft == true) { //Get position int[] pos = renWin.GetInteractor().GetEventPosition(); vtkCoordinate coord = vtkCoordinate.New(); coord.SetCoordinateSystemToDisplay(); coord.SetValue(pos[0], pos[1]); double[] tmp = coord.GetComputedWorldValue(renWin.GetRenderers().GetFirstRenderer()); cam_pos[0] -= (tmp[0] - prev_pos[0]); cam_pos[1] -= (tmp[1] - prev_pos[1]); cam_foc[0] -= (tmp[0] - prev_pos[0]); cam_foc[1] -= (tmp[1] - prev_pos[1]); renWin.GetRenderers().GetFirstRenderer().GetActiveCamera().SetPosition(cam_pos[0], cam_pos[1], cam_pos[2]); renWin.GetRenderers().GetFirstRenderer().GetActiveCamera().SetFocalPoint(cam_foc[0], cam_foc[1], cam_foc[2]); renWin.Render(); } if (mouseDownRight == true) { int[] pos = renWin.GetInteractor().GetEventPosition(); vtkCoordinate coord = vtkCoordinate.New(); coord.SetCoordinateSystemToDisplay(); coord.SetValue(pos[0], pos[1], 0); double[] tmp = coord.GetComputedWorldValue(renWin.GetRenderers().GetFirstRenderer()); position[2] = tmp[0]; position[3] = tmp[1]; line.update(position); renWin.Render(); } }
private void SelectPointClick(vtkObject sender, vtkObjectEventArgs e) { if (ModelLoaded == true && SelectionMode == true) { int[] clickPos = Inter.GetEventPosition(); vtkPointPicker PointPicker = vtkPointPicker.New(); PointPicker.SetTolerance(0.05); PointPicker.Pick(clickPos[0], clickPos[1], 0, Viewport); vtkPoints points = Faces.GetPoints(); double[] PickPosition = PointPicker.GetPickPosition(); for (int j = 0; j < points.GetNumberOfPoints(); j++) { if (Math.Abs(points.GetPoint(j)[0] - PickPosition[0]) < 1e-6 && Math.Abs(points.GetPoint(j)[1] - PickPosition[1]) < 1e-6 && Math.Abs(points.GetPoint(j)[2] - PickPosition[2]) < 1e-6) { SelectionPoints.InsertNextPoint(PickPosition[0], PickPosition[1], PickPosition[2]); break; } } SelectionGlyph = vtkGlyph3D.New(); SelectionGlyph.SetInput(SelectionPolyData); SelectionGlyph.SetSourceConnection(SelectionSphere.GetOutputPort()); SelectionMapper.SetInputConnection(SelectionGlyph.GetOutputPort()); SelectionActor.SetMapper(SelectionMapper); // Refresh Viewport Refresh(); } }
private void pick_LeftUp(vtkObject sender, vtkObjectEventArgs e) { if (mouseDownLeft == true) { mouseDownLeft = false; } }
private void drag_RightDown(vtkObject sender, vtkObjectEventArgs e) { if (mouseDownRight == false) { //Get position int[] pos = renWin.GetInteractor().GetEventPosition(); vtkCoordinate coord = vtkCoordinate.New(); coord.SetCoordinateSystemToDisplay(); coord.SetValue(pos[0], pos[1], 0); double[] tmp = coord.GetComputedWorldValue(renWin.GetRenderers().GetFirstRenderer()); position[0] = (int)tmp[0]; position[1] = (int)tmp[1]; position[2] = (int)tmp[0]; position[3] = (int)tmp[1]; //Create new line object if (has_actor == true) { line.update(position); } else { line = new Rendering.vtkLine(renWin, slice); line.draw(position); } renWin.Render(); has_actor = true; mouseDownRight = true; } }
/// <summary> /// Highlights pieces /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void MotionCallback(vtkObject sender, vtkObjectEventArgs e) { //Make sure the piece isn't in an animation //durring a click or bad things happen if (!in_piece_rotation) { vtkRenderWindowInteractor iren = renderWindowControl1.RenderWindow.GetInteractor(); vtkInteractorStyleSwitch istyle = (vtkInteractorStyleSwitch)iren.GetInteractorStyle(); //return if the user is performing interaction if (istyle.GetState() != 0) { return; } int[] pos = iren.GetEventPosition(); int x = pos[0]; int y = pos[1]; vtkRenderer ren1 = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer(); ren1.SetDisplayPoint(x, y, ren1.GetZ(x, y)); ren1.DisplayToWorld(); double [] pt = ren1.GetWorldPoint(); double val = puzzle.SetPoint(pt[0], pt[1], pt[2]); if (!LastValExists || val != LastVal) { renderWindowControl1.RenderWindow.Render(); LastVal = val; LastValExists = true; } } }
protected override void OnMouseLeftClick(vtkObject sender, vtkObjectEventArgs e) { int[] pos = _interactor.GetEventPosition(); int x = pos[0]; int y = pos[1]; double[] positionValues = ConvertPixelPositionToGraphValues(x, y); if (positionValues != null) { this.Log.Info("Mouse Clicked At: bottom x: {0:F2}, left y: {1:F2}, top x: {2:F2}, right y: {3:F2}", positionValues[0], positionValues[1], positionValues[2], positionValues[3]); } if (CheckLeftAxis(x, y)) { return; } if (CheckBottomAxis(x, y)) { return; } if (CheckRightAxis(x, y)) { return; } if (CheckTopAxis(x, y)) { return; } }
/// <summary> /// Event fired when the graph selection is changed /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void view_SelectionChangedEvt(vtkObject sender, vtkObjectEventArgs e) { //Get the selection vtkDataRepresentation dr = view.GetRepresentation(0); vtkAnnotationLink al = dr.GetAnnotationLink(); vtkSelection sel = al.GetCurrentSelection(); vtkAbstractArray arr = null; vtkSelectionNode node = sel.GetNode(0); if (null != node) { arr = node.GetSelectionList(); } vtkIdTypeArray arr1 = (vtkIdTypeArray)arr; // Short circuit if nothing is selected... int numSelected = (int)arr1.GetNumberOfTuples(); if (0 == numSelected) { return; } vtkStringArray arr2 = ((vtkStringArray)g.GetVertexData().GetAbstractArray("label")); //get a pseudo random name if more than one are selected string name = arr2.GetValue( (int)arr1.GetValue(System.DateTime.Now.Millisecond % numSelected)); //reset the small arrayList arrListSmall = new System.Collections.ArrayList(); int hops; try { hops = System.Convert.ToInt32(toolStripTextBox3.Text); } catch (Exception) { hops = 1; } toolStripTextBox1.Text = name; toolStripTextBox1.Invalidate(); this.Update(); //Start the loading graphic and add another renderer on top for the spinning logo vtkRenderWindow win = this.renderWindowControl1.RenderWindow; win.AddRenderer(logoRenderer); win.Render(); this.webBrowser1.Url = new Uri("http://en.wikipedia.org/wiki/" + name.Replace(" ", "_")); //Start the work addLinks(g, name, hops); //Remove the spinning logo after the work is done win.RemoveRenderer(logoRenderer); win.Render(); }
{ ///<summary>execute command</summary> public static void Execute(vtkObject sender, vtkObjectEventArgs e) { foo = renWin.GetEventPending(); if ((foo) != 0) { renWin.SetAbortRender((int)1); } }
public void OnUnitWidgetPlaneParametersChanged(vtkObject sender, vtkObjectEventArgs e) { widgetUpdateLock = true; Origin = new Vector(CurrentCutUnit.Origin); Normal = new Vector(CurrentCutUnit.Normal); OnPlaneWidgetParameterChanged?.Invoke(this, new EventArgs()); widgetUpdateLock = false; }
/// <summary> /// Callback function for renWin.AbortCheckEvt /// </summary> public static void TkCheckAbort(vtkObject sender, vtkObjectEventArgs e) { foo = renWin.GetEventPending(); if ((foo) != 0) { renWin.SetAbortRender(1); } }
public void angleEndInteractionEvt(vtkObject sender, vtkObjectEventArgs e) { // Do stuff if (EndInteractionEvt != null) { EndInteractionEvt(sender, e); } }
/// <summary> /// 被选中对象高光 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void mystle_OnObjectsSelected(vtkObject sender, vtkObjectEventArgs e) { foreach (var item in m_actorDict.Keys) { item.UpdateSelectedColor(); } m_renderWinCtrl.Invalidate(); }
private void OnWidgetUpdate(vtkObject sender, vtkObjectEventArgs e) { double[] origin = planeWidget.GetOrigin(); plane.SetOrigin(origin[0], origin[1], origin[2]); double[] normal = planeWidget.GetNormal(); plane.SetNormal(normal[0], normal[1], normal[2]); Render(); OnPlaneParameterChanged?.Invoke(sender, e); }
public void Execute(IntPtr caller, uint eventId, IntPtr callData) { if (null != this.EventImpl) { bool flag; vtkObject caller2 = (vtkObject)Methods.CreateWrappedObject(0u, 4294967295u, 4294967208u, caller, true, out flag); this.EventImpl(this.Sender, new vtkObjectEventArgs(caller2, eventId, callData)); } }
// Set up a check for aborting rendering. // Create a Python function to create the text for the text mapper used // to display the results of picking. public static void CheckAbort(vtkObject caller, uint eventId, object clientData, IntPtr callData) { if (caller is vtkRenderWindow) { vtkRenderWindow renWin = (vtkRenderWindow)caller; renWin.SetAbortRender(1); } }
/// <summary> /// Refresh l'affichage de la position de la caméra /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void _interactor_RenderEvt(vtkObject sender, vtkObjectEventArgs e) { double x, y, z; x = Math.Round(Camera.GetPosition()[0], 1); y = Math.Round(Camera.GetPosition()[1], 1); z = Math.Round(Camera.GetPosition()[2], 1); String s = String.Format("Position : {0},{1},{2}", x, y, z); lblStatus.Text = s; }
void outputWindow_ErrorEvt(vtkObject sender, vtkObjectEventArgs e) { string errorString = "ERROR: unknown"; if (e.CallData != IntPtr.Zero) { errorString = System.Runtime.InteropServices.Marshal.PtrToStringAnsi(e.CallData); } throw new Exception(errorString); }
public vtkObjectEventRelay(vtkObject sender, uint eventId) : base(IntPtr.Zero, true, false) { uint num = 0u; uint num2 = 4294967295u; uint num3 = 0u; IntPtr rawCppThis = vtkObjectEventRelay.vtkObjectEventRelay_New(ref num, ref num2, ref num3); base.SetCppThis(rawCppThis, true, num != 0u && num3 >= 2u); this.Sender = sender; this.EventId = eventId; }
object ICustomMarshaler.MarshalNativeToManaged(IntPtr pNativeData) { bool flag; object obj = Methods.CreateWrappedObject(0u, 4294967295u, 4294967208u, pNativeData, true, out flag); if (obj == null) { Console.Error.WriteLine("error: *DID NOT FIND* o in MarshalNativeToManaged"); obj = new vtkObject(pNativeData, false, false); } return(obj); }
static void CheckAbort(vtkObject obj, uint eventId, Object data, IntPtr clientdata) { vtkRenderWindow renWin = vtkRenderWindow.SafeDownCast(obj); if (null != renWin) { if (renWin.GetEventPending() != 0) { renWin.SetAbortRender(1); } } }
/// <summary> /// Open the explorer window of the selected file /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void view_SelectionChangedEvt(vtkObject sender, vtkObjectEventArgs e) { // Get the selection // vtkDataRepresentation dr = view.GetRepresentation(0); vtkAnnotationLink al = dr.GetAnnotationLink(); vtkSelection sel = al.GetCurrentSelection(); vtkStringArray arr1 = null; vtkSelectionNode node = sel.GetNode(0); if (null != node) { arr1 = (vtkStringArray)node.GetSelectionList(); } string path = ""; if (null != arr1) { // If it is a directory open it, if not cut off the end // and open the directory // if (Directory.Exists(arr1.GetValue(0))) { path = arr1.GetValue(0); } else { path = Regex.Replace(arr1.GetValue(0), "\\\\[^\\\\]+\\.[^\\\\]*$", ""); } } if (path != SelectedPath) { SelectedPath = path; System.Diagnostics.Debug.WriteLine(SelectedPath); if ("" != SelectedPath) { //Create the process System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo("cmd.exe", "/C explorer " + SelectedPath); psi.CreateNoWindow = true; psi.UseShellExecute = false; System.Diagnostics.Process p = System.Diagnostics.Process.Start(psi); } } }
/// <summary> /// Called when a key is pressed /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void CharCallback(vtkObject sender, vtkObjectEventArgs e) { vtkRenderWindowInteractor iren = renderWindowControl1.RenderWindow.GetInteractor(); sbyte keycode = iren.GetKeyCode(); //if the keycode is not M if (keycode != 109 && keycode != 77) { return; } int[] pos = iren.GetEventPosition(); ButtonCallback(pos[0], pos[1]); }
private void LeftDown2D(vtkObject sender, vtkObjectEventArgs e) { if (mouseDownLeft == false) { //Get position int[] pos = renWin.GetInteractor().GetEventPosition(); vtkCoordinate coord = vtkCoordinate.New(); coord.SetCoordinateSystemToDisplay(); coord.SetValue(pos[0], pos[1], 0); double[] tmp = coord.GetComputedWorldValue(renWin.GetRenderers().GetFirstRenderer()); prev_pos[0] = tmp[0]; prev_pos[1] = tmp[1]; mouseDownLeft = true; } }
//Interactors private static void get_coordinates(vtkObject sender, vtkObjectEventArgs e) { int[] cur = renWin.GetPosition(); string txt = ""; foreach (int num in cur) { txt += System.String.Format("{0}", num); txt += "|"; } StreamWriter file = new StreamWriter(@"C:\\users\\jfrondel\\desktop\\GITS\\VTKOUTPUT.txt"); file.WriteLine(txt); }
void m_iren_RightButtonPressEvt(vtkObject sender, vtkObjectEventArgs e) { //左键按下记录矩形的起始点 if (m_pickTarget == ePickTarget.None) { return; } if (m_pickMode != ePickMode.RectPickMode) //如果不是框选则不用记录矩形起始点坐标 { return; } m_iren.GetEventPosition(ref startx, ref starty); //获取起始点 endx = startx; endy = starty; //Console.WriteLine("startx:{0},starty:{1}", startx, starty); }
public void boxInteractionCallback(vtkObject sender, vtkObjectEventArgs e) { vtkBoxWidget2 wid = vtkBoxWidget2.SafeDownCast(sender); if (wid != null) { vtkTransform vtk_transform = vtkTransform.New(); vtkBoxRepresentation rep = (vtkBoxRepresentation)wid.GetRepresentation(); rep.GetTransform(vtk_transform); sphereActorList[RegionsListBox.SelectedIndex].SetUserTransform(vtk_transform); int reg_idx = RegionsListBox.SelectedIndex; this.TransferVTKBoxWidgetTransformToMatrix(this.configurator.SimConfig.scenario.regions[reg_idx].region_box_spec); } }
{ ///<summary>execute command</summary> public static void Execute(vtkObject sender, vtkObjectEventArgs e) { //Global Variable Declaration Skipped rangeStart = rangeStart + 0.1; rangeEnd = rangeEnd + 0.1; if ((rangeEnd) > 1.0) { rangeStart = 0.0; rangeEnd = 0.2; } LUT.SetHueRange((double)rangeStart, (double)rangeEnd); LUT.Build(); }
public static vtkObject CreateInstance(string vtkclassname) { vtkObject result = null; uint mteStatus = 0u; uint mteIndex = 4294967295u; uint rawRefCount = 0u; IntPtr intPtr = vtkGraphicsFactory.vtkGraphicsFactory_CreateInstance_01(vtkclassname, ref mteStatus, ref mteIndex, ref rawRefCount); if (IntPtr.Zero != intPtr) { bool flag; result = (vtkObject)Methods.CreateWrappedObject(mteStatus, mteIndex, rawRefCount, intPtr, true, out flag); } return(result); }
private void ShowGrid(vtkObject sender, vtkObjectEventArgs e) { if (ClipPlaneActor.GetVisibility() == 1) { ClipPlaneActor.VisibilityOff(); Grid.GetTextActor().SetInput("Grid ON"); } else { ClipPlaneActor.VisibilityOn(); Grid.GetTextActor().SetInput("Grid OFF"); } Refresh(); }
private void drag_MouseMove(vtkObject sender, vtkObjectEventArgs e) { if (mouseDownLeft == true) { int[] pos = renWin.GetInteractor().GetEventPosition(); vtkCoordinate coord = vtkCoordinate.New(); coord.SetCoordinateSystemToDisplay(); coord.SetValue(pos[0], pos[1], 0); double[] tmp = coord.GetComputedWorldValue(renWin.GetRenderers().GetFirstRenderer()); position[2] = tmp[0]; position[3] = tmp[1]; line.update(position); renWin.Render(); } }
public vtkObject GetCurrentObject() { vtkObject vtkObject = null; uint mteStatus = 0u; uint mteIndex = 4294967295u; uint rawRefCount = 0u; IntPtr intPtr = vtkCollectionIterator.vtkCollectionIterator_GetCurrentObject_02(base.GetCppThis(), ref mteStatus, ref mteIndex, ref rawRefCount); if (IntPtr.Zero != intPtr) { bool flag; vtkObject = (vtkObject)Methods.CreateWrappedObject(mteStatus, mteIndex, rawRefCount, intPtr, true, out flag); if (flag) { vtkObject.Register(null); } } return(vtkObject); }
public vtkObject GetConsumer(int i) { vtkObject vtkObject = null; uint mteStatus = 0u; uint mteIndex = 4294967295u; uint rawRefCount = 0u; IntPtr intPtr = vtkProp.vtkProp_GetConsumer_10(base.GetCppThis(), i, ref mteStatus, ref mteIndex, ref rawRefCount); if (IntPtr.Zero != intPtr) { bool flag; vtkObject = (vtkObject)Methods.CreateWrappedObject(mteStatus, mteIndex, rawRefCount, intPtr, true, out flag); if (flag) { vtkObject.Register(null); } } return(vtkObject); }
// Create a Python function to create the text for the text mapper used // to display the results of picking. public void annotatePickCallback(vtkObject caller, uint eventId, object clientData, IntPtr callData) { vtkCellPicker picker = vtkCellPicker.SafeDownCast(caller); if (null != picker) { if (picker.GetCellId() < 0) { textActor.VisibilityOff(); } else { double[] selPt = picker.GetSelectionPoint(); double[] pickPos = picker.GetPickPosition(); textMapper.SetInput(String.Format("({0}, {1}, {2})", pickPos[0], pickPos[1], pickPos[2])); textActor.SetPosition(selPt); textActor.VisibilityOn(); } } }
public static void VtkEventCallback(vtkObject vtkObj, uint eventId, object obj, IntPtr ptr) { const string unexpectedMessage = "Unexpected VTK event received."; const string message = "VTK Event 0x{0:x4}: {1}"; switch ((EventIds) eventId) { case EventIds.WarningEvent: string warnDetails = Marshal.PtrToStringAnsi(ptr); Platform.Log(LogLevel.Warn, message, eventId, warnDetails); break; case EventIds.ErrorEvent: string errorDetails = Marshal.PtrToStringAnsi(ptr); Platform.Log(LogLevel.Error, message, eventId, errorDetails); break; default: Platform.Log(LogLevel.Fatal, unexpectedMessage); Debug.Fail(unexpectedMessage); break; } }
/// <summary> /// Event fired when the graph selection is changed /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void view_SelectionChangedEvt(vtkObject sender, vtkObjectEventArgs e) { //Get the selection vtkDataRepresentation dr = view.GetRepresentation(0); vtkAnnotationLink al = dr.GetAnnotationLink(); vtkSelection sel = al.GetCurrentSelection(); vtkAbstractArray arr = null; vtkSelectionNode node = sel.GetNode(0); if (null != node) { arr = node.GetSelectionList(); } vtkIdTypeArray arr1 = (vtkIdTypeArray) arr; // Short circuit if nothing is selected... int numSelected = (int) arr1.GetNumberOfTuples(); if (0 == numSelected) { return; } vtkStringArray arr2 = ((vtkStringArray)g.GetVertexData().GetAbstractArray("label")); //get a pseudo random name if more than one are selected string name = arr2.GetValue( (int)arr1.GetValue(System.DateTime.Now.Millisecond % numSelected)); //reset the small arrayList arrListSmall = new System.Collections.ArrayList(); int hops; try { hops = System.Convert.ToInt32(toolStripTextBox3.Text); } catch (Exception) { hops = 1; } toolStripTextBox1.Text = name; toolStripTextBox1.Invalidate(); this.Update(); //Start the loading graphic and add another renderer on top for the spinning logo vtkRenderWindow win = this.renderWindowControl1.RenderWindow; win.AddRenderer(logoRenderer); win.Render(); this.webBrowser1.Url = new Uri("http://en.wikipedia.org/wiki/" + name.Replace(" ", "_")); //Start the work addLinks(g, name, hops); //Remove the spinning logo after the work is done win.RemoveRenderer(logoRenderer); win.Render(); }
public static void RegisterVtkErrorEvents(vtkObject obj) { obj.AddObserver((uint) EventIds.ErrorEvent, VtkEventCallback); obj.AddObserver((uint) EventIds.WarningEvent, VtkEventCallback); }
/// <summary> /// Callback function for lineWidget2.StartInteractionEvt /// </summary> public static void BeginInteraction2(vtkObject sender, vtkObjectEventArgs e) { streamline2.VisibilityOn(); }
void RenderWindow_RightButtonPressEvt(vtkObject sender, vtkObjectEventArgs e) { this.contextMenuStripActorPicker = new ContextMenuStrip(); int[] Pos; Pos = this.iren.GetLastEventPosition(); ToolStripMenuItem ToolStripMenuItem_World = new ToolStripMenuItem("World"); ToolStripMenuItem ScaleItem = new ToolStripMenuItem("Scale"); ToolStripMenuItem_World.DropDownItems.Add(ScaleItem); ScaleItem.Click += new System.EventHandler(this.ScaleClicking); ToolStripMenuItem ColorItem = new ToolStripMenuItem("Background Color"); ToolStripMenuItem_World.DropDownItems.Add(ColorItem); ColorItem.Click += new System.EventHandler(this.ColorClicking); ToolStripMenuItem ExportViewItem = new ToolStripMenuItem("Export View"); ToolStripMenuItem_World.DropDownItems.Add(ExportViewItem); ExportViewItem.Click += new System.EventHandler(this.ExportViewClicking); if (this.ListNameObjectType.Count >= 1) { ToolStripMenuItem SelectionItem = new ToolStripMenuItem("Selection Type"); ToolStripMenuItem_World.DropDownItems.Add(SelectionItem); SelectableObjectName = new List<bool>(); for (int idxName = 0; idxName < this.ListNameObjectType.Count; idxName++) { ToolStripMenuItem TypeName = new ToolStripMenuItem(ListNameObjectType[idxName]); TypeName.CheckOnClick = true; TypeName.Checked = true; TypeName.Click += new System.EventHandler(this.TypeNameClicking); if (TypeName.Checked) SelectableObjectName.Add(true); else SelectableObjectName.Add(false); } } string MetaObjectName = ""; vtkPicker Picker = vtkPicker.New(); int numActors = Picker.Pick(Pos[0], Pos[1], 0, this.ren1); if (numActors == 1) { vtkActor PickedActor = Picker.GetActor(); bool selectable = false; for (int i = 0; i < ListObject.Count; i++) if (ListObject[i].GetActor() == PickedActor) { cInteractive3DObject Obj = (cInteractive3DObject)ListObject[i]; if (Obj.GetMetaObjectContainer() != null) MetaObjectName = Obj.GetMetaObjectContainer().Information.GetName() + " -> "; for (int idx = 0; idx < this.SelectableObjectName.Count; idx++) { // the selected actor has been identified, let's get its type cInteractive3DObject TmpBioObj = (cInteractive3DObject)ListObject[i]; int IdxType = -1; for (int TmpIdx = 0; TmpIdx < this.ListNameObjectType.Count; TmpIdx++) if (TmpBioObj.GetType() == this.ListNameObjectType[TmpIdx]) IdxType = TmpIdx; // Is the type selectable (i.e. checked by the user in the contextual menu ? if (this.SelectableObjectName[IdxType]) { selectable = true; break; } } } if (selectable == true) { ToolStripMenuItem TypeItem = null; ToolStripMenuItem ToolStripMenuItem_ObjectDisplay = new ToolStripMenuItem("Object display"); // ToolStripMenuItem CentroidItem = new ToolStripMenuItem("Centroid"); ToolStripMenuItem ToolStripMenuItem_MetaDescriptorDisplay = null; ToolStripMenuItem_DescriptorDisplay = new ToolStripMenuItem("Object profil"); { for (int i = 0; i < ListObject.Count; i++) if (ListObject[i].GetActor() == PickedActor) { Type T = ListObject[i].GetType(); List<double> ListDesc = null; List<string> ListProfilName = null; if (T.Name == "cBiological3DVolume") { cBiological3DVolume TmpVol = (cBiological3DVolume)ListObject[i]; ListProfilName = TmpVol.Information.GetDescriptorNames(); ListDesc = TmpVol.Information.GetInformation(); TypeItem = new ToolStripMenuItem(MetaObjectName + TmpVol.GetType()); } else if (T.Name == "cBiologicalSpot") { cBiologicalSpot TmpSpot = (cBiologicalSpot)ListObject[i]; ListProfilName = TmpSpot.Information.GetDescriptorNames(); ListDesc = TmpSpot.Information.GetInformation(); TypeItem = new ToolStripMenuItem(MetaObjectName + TmpSpot.GetType()); } else if (T.Name == "c3DWell") { c3DWell TmpWell = (c3DWell)ListObject[i]; ListProfilName = TmpWell.Information.GetDescriptorNames(); ListDesc = TmpWell.Information.GetInformation(); TypeItem = new ToolStripMenuItem(MetaObjectName + TmpWell.GetType()); Chart ThumbnailChart = TmpWell.AssociatedWell.GetChart(); if (ThumbnailChart != null) { MemoryStream ms = new MemoryStream(); TmpWell.AssociatedWell.GetChart().SaveImage(ms, ChartImageFormat.Bmp); TypeItem.Image = new Bitmap(ms); TypeItem.ImageScaling = ToolStripItemImageScaling.None; TypeItem.Size = new System.Drawing.Size(48, 48); // New3DWell.ThumbnailnewImage = new Bitmap(ms); } CurrentlySelectedWell = TmpWell.AssociatedWell; TypeItem.Click += new System.EventHandler(this.WellInfoClick); } else if (T.Name == "c3DIsoContours") { c3DIsoContours TmpContours = (c3DIsoContours)ListObject[i]; // ListProfilName = TmpWell.Information.GetDescriptorNames(); // ListDesc = TmpWell.Information.GetInformation(); TypeItem = new ToolStripMenuItem(); Chart TmpChart = new Chart(); Series SeriesPos = new Series(); //SeriesPos.ShadowOffset = 1; ChartArea CurrentChartArea = new ChartArea(); List<double> DoubleList = new List<double>(); int Idx = 0; double[] Colour =TmpContours.GetActor().GetProperty().GetColor(); foreach (cPoint3D CurrentPt in TmpContours.ListPtContour) { SeriesPos.Points.AddY(CurrentPt.Z); SeriesPos.Points[Idx].MarkerSize = 2; SeriesPos.Points[Idx].MarkerStyle = MarkerStyle.Circle; SeriesPos.Points[Idx++].Color = Color.FromArgb((int)Colour[0], (int)Colour[1], (int)Colour[2]); //DoubleList.Add(CurrentPt.Z); } //CDisplayGraph DispGraph = new CDisplayGraph(DoubleList.ToArray()); SeriesPos.ChartType = SeriesChartType.Point; TmpChart.ChartAreas.Add(CurrentChartArea); CurrentChartArea.Axes[1].LabelStyle.Enabled = false; CurrentChartArea.Axes[1].MajorGrid.Enabled = false; CurrentChartArea.Axes[0].Enabled = AxisEnabled.False; CurrentChartArea.Axes[1].Enabled = AxisEnabled.False; CurrentChartArea.Axes[0].MajorGrid.Enabled = false; TmpChart.Width = 120; TmpChart.Height = 60; TmpChart.TextAntiAliasingQuality = TextAntiAliasingQuality.High; TmpChart.Series.Add(SeriesPos); //Chart ThumbnailChart = TmpChart.NewWindow.chartForSimpleForm; // if (ThumbnailChart != null) { MemoryStream ms = new MemoryStream(); TmpChart.SaveImage(ms, ChartImageFormat.Bmp); TypeItem.Image = new Bitmap(ms); TypeItem.ImageScaling = ToolStripItemImageScaling.None; TypeItem.Size = new System.Drawing.Size(48, 48); // New3DWell.ThumbnailnewImage = new Bitmap(ms); } // CurrentlySelectedWell = TmpWell.AssociatedWell; // TypeItem.Click += new System.EventHandler(this.WellInfoClick); } if (((cInteractive3DObject)ListObject[i]).ThumbnailnewImage != null) { // TypeItem.Image = ((cBiological3DObject)ListObject[i]).ThumbnailnewImage; // TypeItem.ImageScaling = ToolStripItemImageScaling.None; // TypeItem.Size = new System.Drawing.Size(48, 48); // TypeItem.Click += new System.EventHandler(this.WellInfoClick); } if (ListProfilName != null) for (int idxName = 0; idxName < ListProfilName.Count; idxName++) { ToolStripMenuItem descName = new ToolStripMenuItem(ListProfilName[idxName] + " : " + ListDesc[idxName]); ToolStripMenuItem_DescriptorDisplay.DropDownItems.Add(descName); } else { ToolStripMenuItem descName = new ToolStripMenuItem("Null"); ToolStripMenuItem_DescriptorDisplay.DropDownItems.Add(descName); } } } ToolStripSeparator SepratorStrip = new ToolStripSeparator(); if (ToolStripMenuItem_MetaDescriptorDisplay != null) contextMenuStripActorPicker.Items.AddRange(new ToolStripItem[] { TypeItem, SepratorStrip, ToolStripMenuItem_World, ToolStripMenuItem_ObjectDisplay, ToolStripMenuItem_DescriptorDisplay, ToolStripMenuItem_MetaDescriptorDisplay }); else contextMenuStripActorPicker.Items.AddRange(new ToolStripItem[] { TypeItem, SepratorStrip, ToolStripMenuItem_World, ToolStripMenuItem_ObjectDisplay, ToolStripMenuItem_DescriptorDisplay }); } else contextMenuStripActorPicker.Items.AddRange(new ToolStripItem[] { ToolStripMenuItem_World }); } else contextMenuStripActorPicker.Items.AddRange(new ToolStripItem[] { ToolStripMenuItem_World }); int[] PosWindow = this.renWin.GetSize(); contextMenuStripActorPicker.Show(Control.MousePosition); return; }
/// <summary> /// Callback function for lineWidget2.InteractionEvt /// </summary> public static void GenerateStreamlines2(vtkObject sender, vtkObjectEventArgs e) { lineWidget2.GetPolyData(seeds2); renWin.Render(); }
/// <summary> /// The main entry method called by the CSharp driver /// </summary> /// <param name="argv"></param> public static void Main(String[] argv) { try { bool fail_on_image_diff = false; //Prefix Content is: "" int argc = 0; if (argv != null) { argc = argv.Length; } // setup some common things for testing[] vtkMath.RandomSeed(6); // create the testing class to do the work[] rtTester = new vtkTesting(); for (int i = 1; i < argc; i++) { rtTester.AddArgument(argv[i]); if (argv[i] == "--fail-on-image-diff") { fail_on_image_diff = true; } } // string auto_path = ""; // VTK_DATA_ROOT = rtTester.GetDataRoot(); // load in the script[] if (0 == argv.Length) { test = GetTestNameInteractively(); } else { test = argv[0]; } //The class that we are about to execute the test in System.Type t = System.Type.GetType(test + "Class"); if (null == t) { throw new System.ArgumentException(System.String.Format( "error: could not create a Type object for '{0}'...\n\n{1}\n{2}\n{3}\n{4}\n\n{5}\n\n", test + "Class", "Typo?", "Did you follow the C# test driver naming convention?", "Did you add the test to the CMakeLists.txt file?", "Did you reconfigure/rebuild after adding the test?", "Test 'method' name should equal 'file name without extension'... Test 'public class' name should be the same but with 'Class' appended..." )); } // set the default threshold, the Tcl script may change this[] threshold = -1; executeMethod(t, "Setthreshold", new object[] { threshold }); executeMethod(t, "SetVTK_DATA_ROOT", new object[] { VTK_DATA_ROOT }); //run the test executeMethod(t, test, new object[] { argv }); tempRenderWindowInteractor = (vtkRenderWindowInteractor)executeMethod(t, "Getiren", new object[] { }); tempRenderWindow = (vtkRenderWindow)executeMethod(t, "GetrenWin", new object[] { }); tempViewer = (vtkObject)executeMethod(t, "Getviewer", new object[] { }); tempw2i = (vtkWindowToImageFilter)executeMethod(t, "Getw2i", new object[] { }); //update the threshold from what the test made it threshold = (int)executeMethod(t, "Getthreshold", new object[] { }); if (tempRenderWindowInteractor != null) { tempRenderWindow.Render(); } // run the event loop quickly to map any tkwidget windows[] // current directory[] rtResult = 0; if (fail_on_image_diff && rtTester.IsValidImageSpecified() != 0) { // look for a renderWindow ImageWindow or ImageViewer[] // first check for some common names[] if (tempRenderWindow != null) { rtTester.SetRenderWindow(tempRenderWindow); if ((threshold) == -1) { threshold = 10; } } else { if ((threshold) == -1) { threshold = 5; } if (tempViewer != null) { if (tempViewer.IsA("vtkImageViewer") != 0) { tempRenderWindow = ((vtkImageViewer)tempViewer).GetRenderWindow(); } else if (tempViewer.IsA("vtkImageViewer2") != 0) { tempRenderWindow = ((vtkImageViewer2)tempViewer).GetRenderWindow(); } else { throw new System.Exception(""); } rtTester.SetRenderWindow(tempRenderWindow); if (tempViewer.IsA("vtkImageViewer") != 0) { ((vtkImageViewer)tempViewer).Render(); } else if (tempViewer.IsA("vtkImageViewer2") != 0) { ((vtkImageViewer2)tempViewer).Render(); } } else { tempRenderWindow = (vtkRenderWindow)executeMethod(t, "GetimgWin", new object[] { }); if (tempRenderWindow != null) { rtTester.SetRenderWindow(tempRenderWindow); tempRenderWindow.Render(); } } } if (tempRenderWindow == null) { throw new System.Exception("tempRenderWindow cannot be null for IsValidImageSpecified case..."); } rtResult = rtTester.RegressionTest(threshold); } if (rtTester.IsInteractiveModeSpecified() != 0) { if (tempRenderWindowInteractor != null) { tempRenderWindowInteractor.Start(); } } // Force other objects that may have holds on the render window // to let go: // rtTester.SetRenderWindow(null); if (null != tempw2i) { tempw2i.SetInput(null); } executeMethod(t, "deleteAllVTKObjects", new object[] { }); deleteAllVTKObjects(); // Force a garbage collection prior to exiting the test // so that any memory leaks reported are likely to be // *actual* leaks of some sort rather than false reports: // System.GC.Collect(); System.GC.WaitForPendingFinalizers(); // Fail the tests that have image diffs if fail_on_image_diff is on: // if (fail_on_image_diff && 0 == rtResult) { throw new System.Exception("error: image RegressionTest failed"); } // Test finished without throwing any exceptions... // Therefore, it passed. Exit with a zero ExitCode. // System.Environment.ExitCode = 0; } catch (System.Exception exc) { // Catch anything, spit it out to the console so it can be captured // by ctest. Exit with a non-zero ExitCode. // System.Console.Error.WriteLine("================================================================================"); System.Console.Error.WriteLine(""); System.Console.Error.WriteLine("TclToCsScript C# test driver caught System.Exception:"); System.Console.Error.WriteLine(""); System.Console.Error.WriteLine("{0}", exc.ToString()); System.Console.Error.WriteLine(""); System.Console.Error.WriteLine("================================================================================"); System.Console.Error.WriteLine(""); System.Environment.ExitCode = 2345; } }
static void myCallback(vtkObject caller, uint eventId, object clientData, IntPtr callData) { System.Diagnostics.Debug.WriteLine("Callback has been called."); if ( caller is vtkBoxWidget ) { vtkBoxWidget boxWidget = (vtkBoxWidget) caller; using (vtkTransform t = new vtkTransform()) { boxWidget.GetTransform(t); boxWidget.GetProp3D().SetUserTransform(t); } } else { System.Diagnostics.Debug.WriteLine("Caller is not a box widget."); } }
///<summary>execute command</summary> public static void Execute(vtkObject sender, vtkObjectEventArgs e) { //Global Variable Declaration Skipped rangeStart = rangeStart+0.1; rangeEnd = rangeEnd+0.1; if ((rangeEnd) > 1.0) { rangeStart = 0.0; rangeEnd = 0.2; } LUT.SetHueRange((double)rangeStart,(double)rangeEnd); LUT.Build(); }
protected void OnModifiedEvt(vtkObject sender, vtkObjectEventArgs objectEventArgs) { UpdateVtk(this, null); }
/// <summary> /// handler for left mouse button down /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void leftMouseDown(vtkObject sender, vtkObjectEventArgs e) { vtkRenderWindowInteractor interactor = this.rwc.RenderWindow.GetInteractor(); int[] x = interactor.GetEventPosition(); long p = ((vtkCellPicker)rwc.RenderWindow.GetInteractor().GetPicker()).Pick(x[0], x[1], 0, ren); if (p > 0) { long pointID = ((vtkCellPicker)rwc.RenderWindow.GetInteractor().GetPicker()).GetPointId(); if (p >= 0) { long cellID = (int)this.mapper.GetInput().GetPointData().GetArray(this.vtkData.CellIdsArrayName).GetTuple1(pointID); this.SelectedCell = cellID; } } }
///<summary>execute command</summary> public static void Execute(vtkObject sender, vtkObjectEventArgs e) { foo = renWin.GetEventPending(); if ((foo) != 0) { renWin.SetAbortRender((int)1); } }
/// <summary> /// Tell the application when the mouse is being dragged /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void iren_LeftButtonPressEvt(vtkObject sender, vtkObjectEventArgs e) { this.MouseDown1 = true; }
/// <summary> /// Callback function for boxWidget.EndInteractionEvt /// </summary> public static void SelectPolygons(vtkObject sender, vtkObjectEventArgs e) { boxWidget.GetPlanes(planes); selectActor.VisibilityOn(); }
void RenderWindow_RightButtonPressEvt(vtkObject sender, vtkObjectEventArgs e) { CompleteMenu = new ContextMenuStrip(); ToolStripMenuItem ToolStripMenuItem_World = new ToolStripMenuItem("World"); ToolStripMenuItem DisplayOptItem = new ToolStripMenuItem("Display Options"); ToolStripMenuItem ScaleItem = new ToolStripMenuItem("Scale"); DisplayOptItem.DropDownItems.Add(ScaleItem); ScaleItem.Click += new System.EventHandler(this.ScaleClicking); ToolStripMenuItem ToolStripMenuItem_ChangeBackgroundColor = new ToolStripMenuItem("Background Color"); DisplayOptItem.DropDownItems.Add(ToolStripMenuItem_ChangeBackgroundColor); ToolStripMenuItem_ChangeBackgroundColor.Click += new System.EventHandler(this.ToolStripMenuItem_ChangeBackgroundColor); ToolStripMenuItem_World.DropDownItems.Add(DisplayOptItem); ToolStripMenuItem ToolStripMenuItem_SaveToImage = new ToolStripMenuItem("Save View"); ToolStripMenuItem_World.DropDownItems.Add(ToolStripMenuItem_SaveToImage); ToolStripMenuItem_SaveToImage.Click += new System.EventHandler(this.ToolStripMenuItem_SaveToImage); ToolStripMenuItem_World.DropDownItems.Add(new ToolStripSeparator()); //ToolStripMenuItem_ActorsInfo = new ToolStripMenuItem("Objects Manager"); //ToolStripMenuItem_ActorsInfo.CheckOnClick = true; ToolStripMenuItem_World.DropDownItems.Add(ToolStripMenuItem_ActorsInfo); ToolStripMenuItem_ActorsInfo.Click += new System.EventHandler(_ToolStripMenuItem_ActorsInfo); string MetaObjectName = ""; int[] Pos = iren.GetEventPosition(); //vtkPicker Picker = vtkPicker.New(); vtkPropPicker Pick = vtkPropPicker.New(); Pick.Pick(Pos[0], Pos[1], 0, Input.AssociatedVTKRenderer); int numActors = Pick.Pick(Pos[0], Pos[1], 0, Input.AssociatedVTKRenderer); ToolStripMenuItem TypeItem = null; // ToolStripMenuItem ToolStripMenuItem_ObjectDisplay = new ToolStripMenuItem("Object Display"); ToolStripMenuItem ToolStripMenuItem_DescriptorDisplay = new ToolStripMenuItem("Object Profil"); if (numActors == 1) { vtkActor PickedActor = Pick.GetActor(); for (int i = 0; i < this.Input.ListVolume.Count; i++) { cVolumeRendering3D Obj = (cVolumeRendering3D)this.Input.ListVolume[i]; // ToolStripMenuItem ToolStripMenuItem_3DVolumeProperties = new ToolStripMenuItem("["+Obj.GetName()+"]"); foreach (var item in Obj.GetExtendedContextMenu()) { CompleteMenu.Items.Add(item); } } for (int i = 0; i < this.Input.ListObject.Count; i++) { if (this.Input.ListObject[i].GetActor() == PickedActor) { if (this.Input.ListObject[i].GetType().BaseType.BaseType == typeof(cObject3D)) { cObject3D Obj = (cObject3D)this.Input.ListObject[i]; // ToolStripMenuItem ToolStripMenuItem_3DObjectProperties = new ToolStripMenuItem("[" + Obj.GetName() + "] Properties"); //ToolStripMenuItem _3DObjectProperties_Opacity = new ToolStripMenuItem("Opacity"); //_3DObjectProperties_Opacity.Tag = Obj; //ToolStripMenuItem_3DObjectProperties.DropDownItems.Add(_3DObjectProperties_Opacity); //_3DObjectProperties_Opacity.Click += new System.EventHandler(this._3DObjectProperties_Opacity); //ToolStripMenuItem _3DObjectProperties_Color = new ToolStripMenuItem("Color"); //_3DObjectProperties_Color.Tag = Obj; //ToolStripMenuItem_3DObjectProperties.DropDownItems.Add(_3DObjectProperties_Color); //_3DObjectProperties_Color.Click += new System.EventHandler(this._3DObjectProperties_Color); //ToolStripMenuItem _3DObjectProperties_Scale = new ToolStripMenuItem("Scale"); //_3DObjectProperties_Scale.Tag = Obj; //ToolStripMenuItem_3DObjectProperties.DropDownItems.Add(_3DObjectProperties_Scale); //_3DObjectProperties_Scale.Click += new System.EventHandler(this._3DObjectProperties_Scale); //ToolStripMenuItem_3DObjectProperties.DropDownItems.Add(new ToolStripSeparator()); //ToolStripMenuItem _3DObjectProperties_Solid = new ToolStripMenuItem("Surface"); //_3DObjectProperties_Solid.Tag = Obj; //ToolStripMenuItem_3DObjectProperties.DropDownItems.Add(_3DObjectProperties_Solid); //_3DObjectProperties_Solid.Click += new System.EventHandler(this._3DObjectProperties_Solid); //ToolStripMenuItem _3DObjectProperties_WireFrame = new ToolStripMenuItem("WireFrame"); //_3DObjectProperties_WireFrame.Tag = Obj; //ToolStripMenuItem_3DObjectProperties.DropDownItems.Add(_3DObjectProperties_WireFrame); //_3DObjectProperties_WireFrame.Click += new System.EventHandler(this._3DObjectProperties_WireFrame); //ToolStripMenuItem _3DObjectProperties_Point = new ToolStripMenuItem("Point"); //_3DObjectProperties_Point.Tag = Obj; //ToolStripMenuItem_3DObjectProperties.DropDownItems.Add(_3DObjectProperties_Point); //_3DObjectProperties_Point.Click += new System.EventHandler(this._3DObjectProperties_Point); // ToolStripMenuItem_3DObjectProperties.DropDownItems.Add(new ToolStripSeparator()); foreach (var item in Obj.GetExtendedContextMenu()) { CompleteMenu.Items.Add(item); //ToolStripMenuItem_3DObjectProperties.DropDownItems.Add(item); } //ToolStripMenuItem _3DObjectProperties_AddNotation = new ToolStripMenuItem("Add Notation"); //_3DObjectProperties_AddNotation.Tag = Obj; //ToolStripMenuItem_3DObjectProperties.DropDownItems.Add(_3DObjectProperties_AddNotation); //_3DObjectProperties_AddNotation.Click += new System.EventHandler(this._3DObjectProperties_AddNotation); //ToolStripMenuItem _3DObjectProperties_INFO = new ToolStripMenuItem("Info"); //ToolStripMenuItem _3DObjectProperties_GetVerticesList = new ToolStripMenuItem("Vertices List"); //_3DObjectProperties_GetVerticesList.Tag = Obj; //_3DObjectProperties_INFO.DropDownItems.Add(_3DObjectProperties_GetVerticesList); //_3DObjectProperties_GetVerticesList.Click += new System.EventHandler(this._3DObjectProperties_GetVerticesList); //_3DObjectProperties_INFO.DropDownItems.Add(new ToolStripSeparator()); //ToolStripMenuItem _3DObjectProperties_GetInfo = new ToolStripMenuItem("Info"); //_3DObjectProperties_GetInfo.Tag = Obj; //_3DObjectProperties_INFO.DropDownItems.Add(_3DObjectProperties_GetInfo); //_3DObjectProperties_GetInfo.Click += new System.EventHandler(this._3DObjectProperties_GetInfo); //ToolStripMenuItem_3DObjectProperties.DropDownItems.Add(_3DObjectProperties_INFO); // CompleteMenu.Items.Add(ToolStripMenuItem_3DObjectProperties); } if (this.Input.ListObject[i].GetType().BaseType != typeof(cGeometric3DObject)) { cInteractive3DObject Obj = (cInteractive3DObject)this.Input.ListObject[i]; if (Obj.GetMetaObjectContainer() != null) MetaObjectName = Obj.GetMetaObjectContainer().Information.GetName() + " -> "; Type T = this.Input.ListObject[i].GetType(); List<double> ListDesc = null; List<string> ListProfilName = null; // ToolStripMenuItem ToolStripMenuItem_SelectedActor = new ToolStripMenuItem(T.ToString()+i); //CompleteMenu.Items.Add(ToolStripMenuItem_SelectedActor); //ToolStripMenuItem_ChangeBackgroundColor.Click += new System.EventHandler(this.ToolStripMenuItem_ChangeBackgroundColor); if (T.Name == "cBiological3DVolume") { cBiological3DVolume TmpVol = (cBiological3DVolume)this.Input.ListObject[i]; ListProfilName = TmpVol.Information.GetDescriptorNames(); ListDesc = TmpVol.Information.GetInformation(); TypeItem = new ToolStripMenuItem(MetaObjectName + TmpVol.GetType()); } else if (T.Name == "cBiologicalSpot") { cBiologicalSpot TmpSpot = (cBiologicalSpot)this.Input.ListObject[i]; ListProfilName = TmpSpot.Information.GetDescriptorNames(); ListDesc = TmpSpot.Information.GetInformation(); TypeItem = new ToolStripMenuItem(MetaObjectName + TmpSpot.GetType()); } if (ListProfilName != null) for (int idxName = 0; idxName < ListDesc.Count; idxName++) { ToolStripMenuItem descName = new ToolStripMenuItem(ListProfilName[idxName] + " : " + ListDesc[idxName]); ToolStripMenuItem_DescriptorDisplay.DropDownItems.Add(descName); } else { ToolStripMenuItem descName = new ToolStripMenuItem("Null"); ToolStripMenuItem_DescriptorDisplay.DropDownItems.Add(descName); } // ToolStripMenuItem_ObjectDisplay.DropDownItems.Add(TypeItem); // CompleteMenu.Items.Add(ToolStripMenuItem_ObjectDisplay); CompleteMenu.Items.Add(ToolStripMenuItem_DescriptorDisplay); } else { cGeometric3DObject Obj = (cGeometric3DObject)this.Input.ListObject[i]; if ((Obj.ParentTag != null) && (Obj.ParentTag.GetType() == typeof(cListGeometric3DObject))) { CompleteMenu.Items.Add(((cListGeometric3DObject)Obj.ParentTag).GetContextMenu(Input)); } //Obj.Tag; } if (this.Input.ListObject[i].GetType().BaseType.BaseType == typeof(cObject3D)) { cObject3D TmpObj = (cObject3D)this.Input.ListObject[i]; if (TmpObj.Tag == null) continue; if (TmpObj.Tag.GetType() == typeof(cWell)) { cWell TmpWell = (cWell)(TmpObj.Tag); foreach (var item in TmpWell.GetExtendedContextMenu()) CompleteMenu.Items.Add(item); } else if (TmpObj.Tag.GetType() == typeof(cPlate)) { cPlate TmpPlate = (cPlate)(TmpObj.Tag); CompleteMenu.Items.Add(TmpPlate.GetExtendedContextMenu()); } else if (TmpObj.Tag.GetType() == typeof(cDescriptorType)) { cDescriptorType TmpDesc = (cDescriptorType)(TmpObj.Tag); foreach (var item in TmpDesc.GetExtendedContextMenu()) CompleteMenu.Items.Add(item); } } break; } } } CompleteMenu.Items.Add(ToolStripMenuItem_World); ToolStripMenuItem ToolStripMenuItem_refresh = new ToolStripMenuItem("Refresh"); CompleteMenu.Items.Add(ToolStripMenuItem_refresh); ToolStripMenuItem_refresh.Click += new System.EventHandler(this.ToolStripMenuItem_refresh); CompleteMenu.Items.Add(ToolStripMenuItem_refresh); ToolStripMenuItem ToolStripMenuItem_CopyViewToClipBoard = new ToolStripMenuItem("Copy View To Clipboard"); ToolStripMenuItem_CopyViewToClipBoard.ShowShortcutKeys = true; ToolStripMenuItem_CopyViewToClipBoard.ShortcutKeys = Keys.Control | Keys.C; CompleteMenu.Items.Add(ToolStripMenuItem_CopyViewToClipBoard); ToolStripMenuItem_CopyViewToClipBoard.Click += new System.EventHandler(this.ToolStripMenuItem_CopyViewToClipBoard); //ToolStripMenuItem ToolStripMenuItem_DisplayElevationMap = new ToolStripMenuItem("Display Elevation Map"); //CompleteMenu.Items.Add(ToolStripMenuItem_DisplayElevationMap); //ToolStripMenuItem_DisplayElevationMap.Click += new System.EventHandler(this.DisplayElevationMap); //#region display options //ToolStripMenuItem ToolStripMenuItem_DisplayOptions = new ToolStripMenuItem("Display options"); //CompleteMenu.Items.Add(ToolStripMenuItem_DisplayOptions); //this.ToolStripMenuItem_DisplayOptionsDispValues = new ToolStripMenuItem("Display values"); //ToolStripMenuItem_DisplayOptionsDispValues.CheckOnClick = true; //ToolStripMenuItem_DisplayOptionsDispValues.Checked = this.IsDisplayValues; //ToolStripMenuItem_DisplayOptions.DropDownItems.Add(ToolStripMenuItem_DisplayOptionsDispValues); //ToolStripMenuItem_DisplayOptionsDispValues.Click += new System.EventHandler(this.ToolStripMenuItem_DisplayOptionsDisValues); //#endregion CompleteMenu.Show(Control.MousePosition); }
void RenderWindow_KeyPressEvt(vtkObject sender, vtkObjectEventArgs e) { sbyte KeyCode = this.iren.GetKeyCode(); // R : Reset view //if (KeyCode == 114) //{ // //ren1.GetActiveCamera().SetPosition(0,0,1); // ren1.SetActiveCamera(Vtk_CameraViewOrientation); // Render(); //} if (KeyCode == 114) { this.ren1.ResetCamera(); double[] fp = ren1.GetActiveCamera().GetFocalPoint(); double[] p = ren1.GetActiveCamera().GetPosition(); double dist = Math.Sqrt((p[0] - fp[0]) * (p[0] - fp[0]) + (p[1] - fp[1]) * (p[1] - fp[1]) + (p[2] - fp[2]) * (p[2] - fp[2])); ren1.GetActiveCamera().SetPosition(fp[0], fp[1], fp[2] + dist); ren1.GetActiveCamera().SetViewUp(0.0, 1.0, 0.0); this.Render(); //renWin.Render(); } // e : export file if (KeyCode == 101) { // save Histogram SaveFileDialog SaveFileDialogCurrScene = new SaveFileDialog(); SaveFileDialogCurrScene.OverwritePrompt = true; SaveFileDialogCurrScene.AutoUpgradeEnabled = true; SaveFileDialogCurrScene.Filter = "VRML files (*.vrml)|*.vrml| OBJ files (*.obj)|*.obj"; DialogResult result = SaveFileDialogCurrScene.ShowDialog(); if (result == DialogResult.OK) { string FileName = SaveFileDialogCurrScene.FileName; if (FileName.EndsWith(".vrml")) { vtkVRMLExporter Exporter = vtkVRMLExporter.New(); Exporter.SetRenderWindow(this.renWin); Exporter.SetFileName(FileName); Exporter.Write(); } else if (FileName.EndsWith(".obj")) { vtkOBJExporter obj = vtkOBJExporter.New(); obj.SetInput(this.renWin); obj.SetFilePrefix(FileName.Remove(FileName.Length - 4)); obj.Write(); } } else { return; } } int[] Pos = new int[2]; Pos = this.iren.GetLastEventPosition(); vtkPicker Picker = vtkPicker.New(); Picker.SetTolerance(1e-6); int numActors = Picker.Pick(Pos[0], Pos[1], 0, this.ren1); if (numActors != 1) return; vtkActor PickedActor = Picker.GetActor(); //Console.WriteLine(KeyCode.ToString()); if (KeyCode == 119) { PickedActor.GetProperty().SetRepresentationToWireframe(); renWin.Render(); } if (KeyCode == 115) { PickedActor.GetProperty().SetRepresentationToSurface(); renWin.Render(); } if (KeyCode == 45) { double CurrentOpacity = PickedActor.GetProperty().GetOpacity() - 0.01; if (CurrentOpacity < 0.01) CurrentOpacity = 0.01; PickedActor.GetProperty().SetOpacity(CurrentOpacity); renWin.Render(); } if (KeyCode == 43) { PickedActor.GetProperty().SetOpacity(PickedActor.GetProperty().GetOpacity() + 0.01); renWin.Render(); } // P //if ((KeyCode == 112) || (KeyCode == 110)) //{ // int classe = 1; // if (KeyCode == 110) classe = 0; // for (int i = 0; i < ListObject.Count; i++) // { // if (ListObject[i].GetActor() == PickedActor) // { // cBiological3DVolume TmpVol = (cBiological3DVolume)ListObject[i]; // if (CurrentTable == null) // { // CurrentTable = new DataTable(); // List<string> Descriptors = TmpVol.Information.GetDescriptorNames(); // for (int iDesc = 0; iDesc < Descriptors.Count; iDesc++) // CurrentTable.Columns.Add(new DataColumn(Descriptors[iDesc], typeof(double))); // CurrentTable.Columns.Add(new DataColumn("Class", typeof(double))); // if (pDataGridView == null) Console.WriteLine("c3Dworld does not contains the link to the datagridview control"); // } // List<double> Res = TmpVol.Information.GetInformation(); // List<object> objectNumbers = new List<object>(); // foreach (double number in Res) // objectNumbers.Add((object)number); // objectNumbers.Add(classe); // CurrentTable.Rows.Add(); // for (int Idx = 0; Idx <= Res.Count; Idx++) // CurrentTable.Rows[CurrentTable.Rows.Count - 1][Idx] = objectNumbers[Idx]; // // pDataGridView.DataSource = CurrentTable; // // pDataGridView.Update(); // cGeometric3DObject TmpActor; // if (KeyCode == 112) TmpActor = new cGeometric3DObject(PickedActor, Color.Red); // else TmpActor = new cGeometric3DObject(PickedActor, Color.LightGreen); // renWin.Render(); // } // } //} }
void RenderWindow_LeftButtonPressEvt(vtkObject sender, vtkObjectEventArgs e) { }
/// <summary> /// Callback function for lineWidget.InteractionEvt /// </summary> public static void GenerateStreamlines(vtkObject sender, vtkObjectEventArgs e) { lineWidget.GetPolyData(seeds); }
private void RenderWindow_KeyPressEvt(vtkObject sender, vtkObjectEventArgs e) { sbyte KeyCode = this.iren.GetKeyCode(); int AltK = this.iren.GetAltKey(); int CtrlK = this.iren.GetControlKey(); //> >> s = self.iren.GetShiftKey() //> >> kc = self.iren.GetKeyCode() //> >> ks = self.iren.GetKeySym() if (KeyCode == 103) { foreach (var item in this.Input.ListObject) { if (item.ObjectType == "Geometrical") item.vtk_Actor.GetProperty().SetOpacity(1); } } if (KeyCode == 98) { foreach (var item in this.Input.ListObject) { if (item.ObjectType == "Geometrical") item.vtk_Actor.GetProperty().SetOpacity(0); } } if (KeyCode == 104) { foreach (var item in this.Input.ListObject) { if (item.ObjectType != "Geometrical") item.vtk_Actor.GetProperty().SetOpacity(1); } } if (KeyCode == 110) { foreach (var item in this.Input.ListObject) { if (item.ObjectType != "Geometrical") item.vtk_Actor.GetProperty().SetOpacity(0); } } if (KeyCode == 106) { foreach (var item in this.Input.ListVolume) { item.vtk_volume.VisibilityOn(); } } if (KeyCode == 109) { foreach (var item in this.Input.ListVolume) { item.vtk_volume.VisibilityOff(); } } if (KeyCode == 45) { foreach (var item in this.Input.ListObject) { if (item.ObjectType == "Geometrical") continue; double CurrentOpacity = item.vtk_Actor.GetProperty().GetOpacity() - 0.01; if (CurrentOpacity < 0.01) CurrentOpacity = 0.01; item.vtk_Actor.GetProperty().SetOpacity(CurrentOpacity); } //renWin.Render(); } if (KeyCode == 43) { foreach (var item in this.Input.ListObject) { if (item.ObjectType == "Geometrical") continue; double CurrentOpacity = item.vtk_Actor.GetProperty().GetOpacity() + 0.01; if (CurrentOpacity > 1) CurrentOpacity = 1; item.vtk_Actor.GetProperty().SetOpacity(CurrentOpacity); } //renWin.Render(); } //if (KeyCode == 119) //{ // foreach (var item in this.Input.ListObject) // { // if (item.ObjectType == "Geometrical") continue; // item.vtk_Actor.GetProperty().SetRepresentationToWireframe(); // } //} //if (KeyCode == 115) //{ // foreach (var item in this.Input.ListObject) // { // if (item.ObjectType == "Geometrical") continue; // item.vtk_Actor.GetProperty().SetRepresentationToSurface(); // } //} //base.CurrentPanel.Refresh(); }
public void PlaneZMoved(vtkObject sender, vtkObjectEventArgs e) { _thirdVizualization2D.PlaneMoved(vtkImagePlaneWidget.SafeDownCast(sender)); }
static void PrintCameraPosition(vtkObject caller, uint eventId, object clientData, IntPtr callData) { System.Diagnostics.Debug.WriteLine("Callback has been called."); if ( caller is vtkRenderer ) { vtkRenderer ren = (vtkRenderer) caller; double[] position = ren.GetActiveCamera().GetPosition(); Console.WriteLine(String.Format("{0}, {1}, {2}", position[0], position[1], position[2])); } else { System.Diagnostics.Debug.WriteLine("Caller is not a renderer."); } }
/// <summary> /// Move the slice and the trackbar when the mouse is dragged on the render window /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void iren_MouseMoveEvt(vtkObject sender, vtkObjectEventArgs e) { if (this.MouseDown1 && this.ImageActor != null) { int[] lastPos = this.Interactor.GetLastEventPosition(); int[] size = this.RenderWindow.GetSize(); int[] dim = this.ImageActor.GetInput().GetDimensions(); int newSlice = (int)((double)(dim[2] - 1.0) * (double)(lastPos[1]) / (double)(size[1])); if (newSlice >= 0 && newSlice < dim[2]) { this.trackBar1.Value = newSlice; this.Clip.SetOutputWholeExtent(0, dim[0] - 1, 0, dim[1] - 1, newSlice, newSlice); this.ImageActor.SetDisplayExtent(0, dim[0] - 1, 0, dim[1] - 1, newSlice, newSlice); this.Renderer.ResetCameraClippingRange(); this.RenderWindow.Render(); } } }
/// <summary> /// Slave camera 1 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void Camera2_Modified(vtkObject sender, vtkObjectEventArgs e) { //don't execute this if any camera is being modified if (!ModifyingCamera) { ModifyingCamera = true; vtkCamera camera1; vtkCamera camera2; camera2 = renderWindowControl2.RenderWindow.GetRenderers().GetFirstRenderer().GetActiveCamera(); camera1 = renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer().GetActiveCamera(); //Set camera 1's position to camera 2's position camera1.SetPosition(camera2.GetPosition()[0], camera2.GetPosition()[1], camera2.GetPosition()[2]); camera1.SetFocalPoint(camera2.GetFocalPoint()[0], camera2.GetFocalPoint()[1], camera2.GetFocalPoint()[2]); camera1.SetRoll(camera2.GetRoll()); renderWindowControl1.RenderWindow.GetRenderers().GetFirstRenderer().ResetCameraClippingRange(); renderWindowControl1.RenderWindow.Render(); ModifyingCamera = false; } }
/// <summary> /// Tell the application when the mouse is being dragged /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void iren_LeftButtonReleaseEvt(vtkObject sender, vtkObjectEventArgs e) { this.MouseDown1 = false; }