Example #1
0
        internal List <LoadPosition> GetLoadPositions(SearchZone zone)
        {
            List <LoadPosition> loadPositions = new List <LoadPosition>();

            int dirIdxFrom = Math.Min(Math.Max((int)Math.Floor((zone.DEFrom + 90) * 10), 0), 1799);
            int dirIdxTo   = Math.Max(Math.Min((int)Math.Ceiling((zone.DETo + 90) * 10) - 1, 1799), 0);

            int raIdxFrom = Math.Max((int)Math.Floor((zone.RAFrom * 5)), 0);
            int rsIdxTo   = Math.Min((int)Math.Ceiling((zone.RATo * 5)) + 1, 1800);

            for (int i = dirIdxFrom; i <= dirIdxTo; i++)
            {
                NOMADZoneIndex zoneIdx = GetZoneIndex(i);

                uint idxFrom = zoneIdx.RAIndex[raIdxFrom];
                uint idxTo   = zoneIdx.RAIndex[rsIdxTo];

                if (idxTo > idxFrom)
                {
                    loadPositions.Add(new LoadPosition(i, idxFrom, idxTo, m_NOMADFirstStarNoPerBin[i]));
                }
                else if (idxTo < idxFrom)
                {
#if ASTROMETRY_DEBUG
                    Trace.Assert(false);
#endif
                }
            }

            return(loadPositions);
        }
Example #2
0
        internal NOMADZoneIndex GetZoneIndex(int zone)
        {
            NOMADZoneIndex index;

            if (!m_LoadedZoneIndexes.TryGetValue(zone, out index))
            {
                index = new NOMADZoneIndex(m_CatalogLocation, zone);
                index.RAIndex[1800] = m_NOMADFirstStarNoPerBin[zone + 1] - m_NOMADFirstStarNoPerBin[zone];
                m_LoadedZoneIndexes.Add(zone, index);
            }

            return(index);
        }
Example #3
0
        internal NOMADZoneIndex GetZoneIndex(int zone)
        {
            NOMADZoneIndex index;
            if (!m_LoadedZoneIndexes.TryGetValue(zone, out index))
            {
                index = new NOMADZoneIndex(m_CatalogLocation, zone);
                index.RAIndex[1800] = m_NOMADFirstStarNoPerBin[zone + 1] - m_NOMADFirstStarNoPerBin[zone];
                m_LoadedZoneIndexes.Add(zone, index);
            }

            return index;
        }