Example #1
0
        private void SetAverageCoordinates(Centroid centroid)
        {
            var samplePoints = SamplePoints.Where(point => point.NearsetPointId == centroid.Id).ToArray();

            if (samplePoints.Length != 0)
            {
                List <double> averages = new List <double>();

                for (var i = 0; i < samplePoints.First().Coordinates.Count; i++)
                {
                    averages.Add(0.0);
                }

                foreach (var samplePoint in samplePoints)
                {
                    for (var i = 0; i < averages.Count; i++)
                    {
                        averages[i] += samplePoint.Coordinates[i];
                    }
                }

                for (var i = 0; i < averages.Count; i++)
                {
                    averages[i] /= samplePoints.Length;
                }

                MaxCentroidShift = Euclides.CalculateDistance(new SamplePoint(averages),
                                                              centroid);

                centroid.Coordinates = averages;
            }
        }
Example #2
0
 /// <summary>
 /// Ctor
 /// </summary>
 public GDIColorProvider()
 {
     _colorHelper = new ColorHelper();
     _samplePointService = new SamplePointService();
     _colorMapper = new ColorMapper();
     SamplePoints = _samplePointService.GetSamplePoints(.30f);
 }
Example #3
0
        private void _cmbobox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (_cmbobox.SelectedItem == null)
            {
                return;
            }
            decimal output = Convert.ToDecimal(SamplePoints.GetPoint(_cmbobox.SelectedItem.ToString()).Value);

            OutputPorts[0].Data = output;
        }
Example #4
0
        //private readonly Dictionary<string, decimal> _pointList = new Dictionary<string, decimal>()
        //{
        //    {"Point1", Convert.ToDecimal(0.0 ) },
        //    {"Point2", Convert.ToDecimal(0.1 ) },
        //    {"Point3", Convert.ToDecimal(0.2 ) },
        //    {"Point4", Convert.ToDecimal(0.3 ) },
        //    {"Point5", Convert.ToDecimal(0.4 ) },

        //};
        public GetFloatPoint(Core.VplControl hostCanvas) : base(hostCanvas)
        {
            AddOutputPortToNode("Float Point Value", typeof(float));
            _cmbobox = new ComboBox()
            {
                Width       = 150,
                ItemsSource = SamplePoints.GetPoints().Select(x => x.Name).ToList(),
            };
            _cmbobox.SelectionChanged += _cmbobox_SelectionChanged;
            AddControlToNode(_cmbobox);
        }
        /// <summary>
        /// extract the Fields from the solution, Resample them equally spaced and ready to use in an fft
        /// </summary>
        private void Resample(int iterIndex, double[] currentSol, MultigridOperator Mgop, string component)
        {
            if (Mgop.GridData.SpatialDimension == 2 && Mgop.LevelIndex == 0)
            {
                MultidimensionalArray SamplePoints;

                GridData GD = (GridData)Mgop.Mapping.AggGrid.AncestorGrid;

                BoundingBox BB = GD.GlobalBoundingBox;

                double xDist       = BB.Max[0] - BB.Min[0];
                double yDist       = BB.Max[1] - BB.Min[1];
                double aspectRatio = xDist / yDist;

                MGViz     viz    = new MGViz(Mgop);
                DGField[] Fields = viz.ProlongateToDg(currentSol, "Error");

                for (int p = 0; p < Fields.Length; p++)
                {
                    var field = Fields[p];

                    int    DOF = field.DOFLocal;
                    double N   = Math.Sqrt(DOF);
                    int    Nx  = (int)Math.Round(Math.Sqrt(aspectRatio) * N);
                    int    Ny  = (int)Math.Round(1 / Math.Sqrt(aspectRatio) * N);

                    SamplePoints = MultidimensionalArray.Create(Ny, Nx);

                    for (int i = 0; i < Nx; i++)
                    {
                        MultidimensionalArray points = MultidimensionalArray.Create(Ny, 2);

                        for (int k = 0; k < Ny; k++)
                        {
                            points[k, 0] = BB.Min[0] + (i + 1) * xDist / (Nx + 1);
                            points[k, 1] = BB.Min[1] + (k + 1) * yDist / (Ny + 1);
                        }

                        List <DGField> fields = new List <DGField>();
                        fields.Add(field);

                        FieldEvaluation FE = new FieldEvaluation(GD);

                        MultidimensionalArray Result = MultidimensionalArray.Create(Ny, 1);

                        FE.Evaluate(1.0, fields, points, 1.0, Result);

                        SamplePoints.ExtractSubArrayShallow(-1, i).Acc(1.0, Result.ExtractSubArrayShallow(-1, 0));
                    }

                    SamplePoints.SaveToTextFile("ResampleFFT_lvl" + Mgop.LevelIndex + "_" + iterIndex + "_" + component + "_" + field.Identification + ".txt");
                }
            }
        }
        public SamplePoints GetSamplePoints(float screenPercentage)
        {
            var samplePoints = new SamplePoints();

            // Get the box sizing
            samplePoints.CenterBox = GetCenterBox(screenPercentage);

            // Get the sample points
            samplePoints.Points = GenerateSamplePoints(samplePoints.CenterBox);

            return samplePoints;
        }
Example #7
0
        public SetFloatPoint(Core.VplControl hostCanvas) : base(hostCanvas)
        {
            AddInputPortToNode("Object", typeof(object));
            _cmbobox = new ComboBox()
            {
                Width       = 150,
                ItemsSource = SamplePoints.GetPoints().Select(x => x.Name).ToList(),
            };

            var textBlock = new TextBox()
            {
                TextWrapping = TextWrapping.Wrap,
                FontSize     = 14,
                Padding      = new Thickness(5),
            };

            AddControlToNode(_cmbobox);
            AddControlToNode(textBlock);
            _cmbobox.SelectionChanged += _cmbobox_SelectionChanged;
        }
        /// <summary>
        /// Ctor
        /// </summary>
        public DirectxColorProvider()
        {
            _colorHelper = new ColorHelper();
            _samplePointService = new SamplePointService();
            _colorMapper = new ColorMapper();

            PresentParameters present_params = new PresentParameters();
            if (d == null)
            {
                d = new Device(new Direct3D(), 0, DeviceType.Hardware, IntPtr.Zero, CreateFlags.SoftwareVertexProcessing, present_params);
            }
            if (_samplePoints == null)
            {
                _samplePoints = _samplePointService.GetSamplePoints(.1f);
            }

            if(_graphics == null)
            {
                _graphics = this.CreateGraphics();
            }
        }
Example #9
0
        public override void Calculate()
        {
            var textbox = (TextBox)ControlElements[1];

            SamplePoints.WriteAdvisory(textbox.Text);
        }
Example #10
0
 /// <summary>
 /// Finds the sound control point that is active at <paramref name="time"/>.
 /// </summary>
 /// <param name="time">The time to find the sound control point at.</param>
 /// <returns>The sound control point.</returns>
 public SampleControlPoint SamplePointAt(double time) => binarySearch(SamplePoints, time, SamplePoints.FirstOrDefault());