コード例 #1
0
        public VoronoiGraph GetVoronoiGraph(BeanAlimentationVoronoi p_beanAlimentationVoronoi)
        {
            VoronoiGraph v_voronoiGraph = new VoronoiGraph();

            try
            {
                if (p_beanAlimentationVoronoi.p22_contientObjetsInvalidesVf)
                {
                    switch (p_beanAlimentationVoronoi.p12_parametrage.gestionObjetsInvalides)
                    {
                    case enumVoronoiStrategieObjetsInvalides.arretTraitement:
                        throw new Exception("GetVoronoiGraph en erreur: des objets ne sont pas des points", new Exception());

                    case enumVoronoiStrategieObjetsInvalides.ignorerCesObjets:
                        break;
                    }
                }
                if (p_beanAlimentationVoronoi.p23_contientObjetsSuperposesVf)
                {
                    switch (p_beanAlimentationVoronoi.p12_parametrage.gestionPointsDupliques)
                    {
                    case enumVoronoiStrategiePointsDupliques.arretTraitement:
                        throw new Exception("GetVoronoiGraph en erreur: des points sont superposés.", new Exception());

                    case enumVoronoiStrategiePointsDupliques.deduplicationAleatoire:
                        break;
                    }
                }


                if (p_beanAlimentationVoronoi.p21_territoireSuperieurA200kmVf)
                {
                    switch (p_beanAlimentationVoronoi.p12_parametrage.gestionDepassementTerritoire)
                    {
                    case enumVoronoiStrategieDistanceTropGrande.arretTraitement:
                        throw new Exception("GetVoronoiGraph en erreur: le territoire total de traitement ne peut pas dépasser 200 000 x 200 000 unités de longueur ");

                    case enumVoronoiStrategieDistanceTropGrande.reductionPrecision:
                        throw new Exception("GetVoronoiGraph en erreur: le territoire total de traitement ne peut pas dépasser 200x200 unités de longueur (reduction précision non implementée)");
                    }
                }

                v_voronoiGraph = Fortune.ComputeVoronoiGraph(p_beanAlimentationVoronoi.p50_pointsFormatesPourInsertion);
            }
            catch (Exception v_ex)
            {
                throw v_ex;
            }
            return(v_voronoiGraph);
        }