Exemple #1
0
        public void Init()
        {
            EM = EVEData.EveManager.Instance;

            universeSysLinksCache = new List <GateHelper>();
            activeJumpSpheres     = new List <KeyValuePair <string, double> >();

            universeXMin = 0;
            universeXMax = 0;

            universeZMin = 0;
            universeZMax = 0;


            universeYMin = 0;
            universeYMax = 0;


            uiRefreshTimer          = new System.Windows.Threading.DispatcherTimer();
            uiRefreshTimer.Tick    += UiRefreshTimer_Tick;
            uiRefreshTimer.Interval = new TimeSpan(0, 0, 5);
            uiRefreshTimer.Start();

            PropertyChanged += Universe3DControl_PropertyChanged;

            DataContext = this;

            foreach (EVEData.System sys in EM.Systems)
            {
                foreach (string jumpTo in sys.Jumps)
                {
                    EVEData.System to = EM.GetEveSystem(jumpTo);

                    bool NeedsAdd = true;
                    foreach (GateHelper gh in universeSysLinksCache)
                    {
                        if (((gh.from == sys) || (gh.to == sys)) && ((gh.from == to) || (gh.to == to)))
                        {
                            NeedsAdd = false;
                            break;
                        }
                    }

                    if (NeedsAdd)
                    {
                        GateHelper g = new GateHelper();
                        g.from         = sys;
                        g.to           = to;
                        g.RegionalGate = sys.Region != to.Region;
                        universeSysLinksCache.Add(g);
                    }
                }

                if (sys.ActualX < universeXMin)
                {
                    universeXMin = sys.ActualX;
                }

                if (sys.ActualX > universeXMax)
                {
                    universeXMax = sys.ActualX;
                }

                if (sys.ActualZ < universeZMin)
                {
                    universeZMin = sys.ActualZ;
                }

                if (sys.ActualZ > universeZMax)
                {
                    universeZMax = sys.ActualZ;
                }

                if (sys.ActualY < universeYMin)
                {
                    universeYMin = sys.ActualY;
                }

                if (sys.ActualY > universeYMax)
                {
                    universeYMax = sys.ActualY;
                }
            }

            universeWidth  = universeXMax - universeXMin;
            universeDepth  = universeZMax - universeZMin;
            universeHeight = universeYMax - universeYMin;

            List <EVEData.System> globalSystemList = new List <EVEData.System>(EM.Systems);

            globalSystemList.Sort((a, b) => string.Compare(a.Name, b.Name));
            GlobalSystemDropDownAC.ItemsSource = globalSystemList;


            UniverseMain3DViewPort.EffectsManager = new DefaultEffectsManager();



            HelixToolkit.Wpf.SharpDX.PerspectiveCamera pc = new HelixToolkit.Wpf.SharpDX.PerspectiveCamera();
            pc.NearPlaneDistance = 0.1;
            pc.FarPlaneDistance  = 100000;

            pc.Position = new Point3D(4000, 4000, 10000);

            pc.UpDirection   = new Vector3D(0, 0, 1);
            pc.LookDirection = new Vector3D(-1, 0, 0);

            pc.LookAt(new Point3D(4000, 4000, 4000), 1);


            UniverseMain3DViewPort.Camera = pc;


            ReDrawMap(true);
        }
Exemple #2
0
        public void Init()
        {
            EM = EVEData.EveManager.Instance;

            universeSysLinksCache = new List <GateHelper>();


            universeXMin = 0.0;
            universeXMax = 336522971264518000.0;

            universeZMin = -484452845697854000;
            universeZMax = 472860102256057000.0;

            foreach (EVEData.System sys in EM.Systems)
            {
                foreach (string jumpTo in sys.Jumps)
                {
                    EVEData.System to = EM.GetEveSystem(jumpTo);

                    bool NeedsAdd = true;
                    foreach (GateHelper gh in universeSysLinksCache)
                    {
                        if (((gh.from == sys) || (gh.to == sys)) && ((gh.from == to) || (gh.to == to)))
                        {
                            NeedsAdd = false;
                            break;
                        }
                    }

                    if (NeedsAdd)
                    {
                        GateHelper g = new GateHelper();
                        g.from = sys;
                        g.to   = to;
                        universeSysLinksCache.Add(g);
                    }
                }

                if (sys.ActualX < universeXMin)
                {
                    universeXMin = sys.ActualX;
                }

                if (sys.ActualX > universeXMax)
                {
                    universeXMax = sys.ActualX;
                }

                if (sys.ActualZ < universeZMin)
                {
                    universeZMin = sys.ActualZ;
                }

                if (sys.ActualZ > universeZMax)
                {
                    universeZMax = sys.ActualZ;
                }
            }


            universeWidth = universeXMax - universeXMin;
            universeDepth = universeZMax - universeZMin;

            ReDrawMap(true);
        }