private void ActiveToolComboBox_SelectedIndexChanged(object sender, EventArgs e) { nChartControl1.Controller.Selection.SelectedObjects.Clear(); nChartControl1.Controller.Tools.Clear(); switch (ActiveToolComboBox.SelectedIndex) { case 0: nChartControl1.Controller.Selection.SelectedObjects.Add(nChartControl1.Charts[0]); nChartControl1.Controller.Tools.Add(new NTrackballTool()); break; case 1: NVolumeSelectorTool volumeSelectionTool = new NVolumeSelectorTool(); volumeSelectionTool.EndDrag += VolumeSelectionTool_EndDrag; nChartControl1.Controller.Tools.Add(volumeSelectionTool); break; } }
private void VolumeSelectionTool_EndDrag(object sender, EventArgs e) { NPointSeries point = (NPointSeries)nChartControl1.Charts[0].Series[0]; NVolumeSelectorTool volumeTool = (NVolumeSelectorTool)sender; for (int i = 0; i < point.Values.Count; i++) { NVector3DD vec = new NVector3DD((float)(double)point.XValues[i], (float)(double)point.Values[i], (float)(double)point.ZValues[i]); if (volumeTool.TopPlane.Distance(ref vec) < 0 && volumeTool.RightPlane.Distance(ref vec) < 0 && volumeTool.BottomPlane.Distance(ref vec) < 0 && volumeTool.LeftPlane.Distance(ref vec) < 0) { // point is contained in the set point.FillStyles[i] = new NColorFillStyle(Color.Red); } } nChartControl1.Refresh(); }