Ejemplo n.º 1
0
        /// <summary>
        /// Adds a new data series to the chart, the new series is a LineSeries added to
        /// NRSeriesCollection with Title given by nparticles and coeff_stick params.
        /// </summary>
        /// <param name="nparticles">Number of particles in current aggregate generation.</param>
        /// <param name="coeff_stick">Coefficient of stickiness of aggregate structure.</param>
        public void AddDataSeries(uint nparticles, double coeff_stick, ManagedLatticeType lattice_type, bool isContinuous)
        {
            string title = (isContinuous ? "inf" : nparticles + "") + "/" + coeff_stick + "/";

            // set appropriate title based on aggregate lattice type
            switch (lattice_type)
            {
            case ManagedLatticeType.Square:
                title += "S";
                break;

            case ManagedLatticeType.Triangle:
                title += "T";
                break;
            }
            // reduce opacity of each previously plotted series
            foreach (LineSeries s in SeriesCollection)
            {
                s.Stroke.Opacity = 0.25;
            }
            // add new series to collection, with opacity at default 1.0 for focus
            SeriesCollection.Add(new LineSeries {
                Title             = title,
                Values            = new ChartValues <NumberRadiusMeasureModel>(),
                PointGeometrySize = 5,
                Fill = Brushes.Transparent,
            });
            ++series_counter;
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Sets up all the properties of the aggregate necessary for generation, including
        /// lattice type, attractor type and the dimensions of the aggregate.
        /// </summary>
        private void SetUpAggregateProperties()
        {
            // get the selected dimension type
            ComboBoxItem selected_dimension = (ComboBoxItem)(dimension_ComboBox.SelectedValue);
            string       dimension_str      = (string)(selected_dimension.Content);

            // set corresponding lattice_dimension constant
            switch (dimension_str)
            {
            case "2D":
                lattice_dimension = LatticeDimension._2D;
                break;

            case "3D":
                lattice_dimension = LatticeDimension._3D;
                break;
            }
            // reset simulation view
            ResetViewButtonHandler(null, null);
            // switch on current lattice dimension constant
            switch (lattice_dimension)
            {
            case LatticeDimension._2D:
                dla_2d.SetCoeffStick(stickiness_slider.Value);
                // set the lattice type to current selected item
                // of latticeType_ComboBox ui element
                ComboBoxItem       selected_2DlatticeType = (ComboBoxItem)(latticeType_ComboBox.SelectedValue);
                string             lattice_type2D_str     = (string)(selected_2DlatticeType.Content);
                ManagedLatticeType lattice_type2D         = (ManagedLatticeType)Enum.Parse(typeof(ManagedLatticeType), lattice_type2D_str);
                dla_2d.SetLatticeType(lattice_type2D);
                // set the attractor type to current selected item
                // of attractorType_ComboBox ui element
                ComboBoxItem         selected_2DAttractorType = (ComboBoxItem)(attractorType_ComboBox.SelectedValue);
                string               attractor_type2D_str     = (string)(selected_2DAttractorType.Content);
                ManagedAttractorType attractor_type2D         = (ManagedAttractorType)Enum.Parse(typeof(ManagedAttractorType), attractor_type2D_str);
                dla_2d.SetAttractorType(attractor_type2D);
                break;

            case LatticeDimension._3D:
                dla_3d.SetCoeffStick(stickiness_slider.Value);
                // set the lattice type to current selected item
                // of latticeType_ComboBox ui element
                ComboBoxItem       selected_3DlatticeType = (ComboBoxItem)(latticeType_ComboBox.SelectedValue);
                string             lattice_type3D_str     = (string)(selected_3DlatticeType.Content);
                ManagedLatticeType lattice_type3D         = (ManagedLatticeType)Enum.Parse(typeof(ManagedLatticeType), lattice_type3D_str);
                dla_3d.SetLatticeType(lattice_type3D);
                // set the attractor type to current selected item
                // of attractorType_ComboBox ui element
                ComboBoxItem         selected_3DAttractorType = (ComboBoxItem)(attractorType_ComboBox.SelectedValue);
                string               attractor_type3D_str     = (string)(selected_3DAttractorType.Content);
                ManagedAttractorType attractor_type3D         = (ManagedAttractorType)Enum.Parse(typeof(ManagedAttractorType), attractor_type3D_str);
                dla_3d.SetAttractorType(attractor_type3D);
                break;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Sets the value of the lattice_type field corresponding to
        /// selected item in latticeType_ComboBox.
        /// </summary>
        private void HandleLatticeTypeComboBox()
        {
            // get selected lattice type
            ComboBoxItem selected_lattice_type = (ComboBoxItem)(latticeType_ComboBox.SelectedValue);
            string       lattice_type_str      = (string)(selected_lattice_type.Content);

            // set corresponding lattice_type
            if (lattice_type_str == null)
            {
                lattice_type = ManagedLatticeType.Square;
            }
            else
            {
                lattice_type = (ManagedLatticeType)Enum.Parse(typeof(ManagedLatticeType), lattice_type_str);
            }
        }
Ejemplo n.º 4
0
        //private readonly AggregateComponentManager comp_manager;
        #endregion

        public MainWindow()
        {
            InitializeComponent();
            // initalise aggregate containers and related properties
            dla_2d                      = new ManagedDLA2DContainer();
            dla_3d                      = new ManagedDLA3DContainer();
            current_particles           = 0;
            lattice_dimension           = LatticeDimension._2D;
            current_executing_dimension = lattice_dimension;
            lattice_type                = ManagedLatticeType.Square;
            attractor_type              = ManagedAttractorType.Point;
            // initialise simulation view properties/handles
            aggregate_manager = new AggregateSystemManager();
            WorldModels.Children.Add(aggregate_manager.AggregateSystemModel()); // add model to view
            colour_list = new List <Color>();
            RenderAttractorGeometry();
            // initialise chart related properties/handles
            nrchart           = new NumberRadiusChart();
            ratechart         = new GenerationRateChart();
            chart_type        = ChartType.NUMBERRADIUS;
            Chart.DataContext = nrchart; // default chart data context to Number-Radius chart
            //comp_manager = new AggregateComponentManager();
        }