private void canvasP_MouseUp(object sender, MouseButtonEventArgs e)
        {
            Point p = Mouse.GetPosition(canvasP);

            WaveEvent.EventType t =
                (WaveEvent.EventType)comboBoxSourceType.SelectedIndex;

            float freq;

            if (!float.TryParse(textBoxFreq.Text, out freq))
            {
                MessageBox.Show("Parse error : Frequency");
                return;
            }

            float magnitude;

            if (!float.TryParse(textBoxMagnitude.Text, out magnitude))
            {
                MessageBox.Show("Parse error : Stimulus magnitude");
                return;
            }

            mSim.AddStimulus(t, (int)(p.X), freq, magnitude);
        }
        private void comboBoxSourceType_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (!mInitialized)
            {
                return;
            }

            WaveEvent.EventType t =
                (WaveEvent.EventType)comboBoxSourceType.SelectedIndex;

            switch (t)
            {
            case WaveEvent.EventType.Gaussian:
            case WaveEvent.EventType.Pulse:
                labelFreq.IsEnabled   = false;
                textBoxFreq.IsEnabled = false;
                break;

            case WaveEvent.EventType.Sine:
                labelFreq.IsEnabled   = true;
                textBoxFreq.IsEnabled = true;
                break;

            default:
                System.Diagnostics.Debug.Assert(false);
                break;
            }
        }
Example #3
0
        public void AddStimulus(WaveEvent.EventType t, int x, int y, float freq, float magnitude)
        {
            int pos = x + y * mGridW;

            var ev = new WaveEvent(t, mSc, pos, freq, magnitude, mΔt);

            mWaveEventList.Add(ev);
        }
        private void canvasP_MouseUp(object sender, MouseButtonEventArgs e)
        {
            Point p = Mouse.GetPosition(canvasP);

            {
                var l1 = new Line();
                l1.X1              = p.X - 3;
                l1.Y1              = p.Y - 3;
                l1.X2              = p.X + 3;
                l1.Y2              = p.Y + 3;
                l1.Stroke          = Brushes.Yellow;
                l1.StrokeThickness = 1;
                canvasP.Children.Add(l1);

                var l2 = new Line();
                l2.X1              = p.X - 3;
                l2.Y1              = p.Y + 3;
                l2.X2              = p.X + 3;
                l2.Y2              = p.Y - 3;
                l2.Stroke          = Brushes.Yellow;
                l2.StrokeThickness = 1;
                canvasP.Children.Add(l2);
            }

            int canvasW = (int)canvasP.ActualWidth;
            int canvasH = (int)canvasP.ActualHeight;

            float canvasToSimX = (float)mW / canvasW;
            float canvasToSimY = (float)mH / canvasH;

            WaveEvent.EventType t =
                (WaveEvent.EventType)comboBoxSourceType.SelectedIndex;

            float freq;

            if (!float.TryParse(textBoxFreq.Text, out freq))
            {
                MessageBox.Show("Parse error : Frequency");
                return;
            }

            float magnitude = 0;

            if (!float.TryParse(textBoxStimulationMagnitude.Text, out magnitude))
            {
                MessageBox.Show("Error: Stimulation magnitude parse error");
                return;
            }

            mSim.AddStimulus(t, (int)(p.X * canvasToSimX), (int)(p.Y * canvasToSimY), freq, magnitude);
        }
        public void AddStimulus(WaveEvent.EventType t, int x, float freq, float magnitude)
        {
            var ev = new WaveEvent(t, mSc, x, freq, magnitude, mΔt);

            mWaveEventList.Add(ev);
        }