public void LoadClassifierFactories(List <INestingClassifierFactory> factories)
        {
            lstClassifiers.Items.Clear();

            foreach (INestingClassifierFactory factory in factories)
            {
                ClassifierInformation information = factory.ClassifierInformation;

                ListViewItem item = new ListViewItem(information.Name);
                item.ToolTipText = information.Description;
                item.Tag         = factory;

                lstClassifiers.Items.Add(item);
            }
        }
Exemple #2
0
        public List <ClassificationResult> ClassifyAll()
        {
            ClassifierInformation information = classifier.GetClassifierInformation();

            try
            {
                startTime = DateTime.UtcNow;

                List <ClassificationResult> temp = classifier.ClassifyAll();

                List <ClassificationResult> result = new List <ClassificationResult>();


                endTime = DateTime.UtcNow;


                foreach (ClassificationResult res in temp)
                {
                    res.TimeTaken = endTime - startTime;

                    float partsArea = res.Parts.Select(x => x.GetTotalArea()).Sum();

                    res.RemainingArea = res.WorkingArea.GetTotalArea() - partsArea;

                    result.Add(res);
                }

                return(result.OrderBy(x => x.RemainingArea).ToList());
            }
            catch (Exception ex)
            {
                ClassificationResult result = new ClassificationResult(information);
                result.Error     = ex;
                result.HasError  = true;
                endTime          = DateTime.UtcNow;
                result.TimeTaken = endTime - startTime;
                return(new List <ClassificationResult>()
                {
                    result
                });
            }
        }