Ejemplo n.º 1
0
        //-----------------------------------------------------------------------------

        /// <summary>
        /// Calculates the size of the canvas and determine the number of required tiles.
        /// It then creates polygons (rectangle) for each area considering the given offset.
        /// </summary>
        /// <param name="prmFiles">List of LAS files to be processed</param>
        private void UpdateCommonHeader(IEnumerable <String> prmFiles)
        {
            m_AreaHeader = GetDefaultLasHeader();

            foreach (String lasFile in prmFiles)
            {
                using (TcLasReader lasReader = new TcLasReader(lasFile))
                {
                    m_AreaHeader.MinX = Math.Min(m_AreaHeader.MinX, lasReader.Header.MinX);
                    m_AreaHeader.MinY = Math.Min(m_AreaHeader.MinY, lasReader.Header.MinY);
                    m_AreaHeader.MinZ = Math.Min(m_AreaHeader.MinZ, lasReader.Header.MinZ);
                    m_AreaHeader.MaxX = Math.Max(m_AreaHeader.MaxX, lasReader.Header.MaxX);
                    m_AreaHeader.MaxY = Math.Max(m_AreaHeader.MaxY, lasReader.Header.MaxY);
                    m_AreaHeader.MaxZ = Math.Max(m_AreaHeader.MaxZ, lasReader.Header.MaxZ);

                    m_AreaHeader.XOffset = Math.Min(m_AreaHeader.XOffset, lasReader.Header.XOffset);
                    m_AreaHeader.YOffset = Math.Min(m_AreaHeader.YOffset, lasReader.Header.YOffset);
                    m_AreaHeader.ZOffset = Math.Min(m_AreaHeader.ZOffset, lasReader.Header.ZOffset);

                    m_AreaHeader.XScaleFactor = Math.Min(m_AreaHeader.XScaleFactor, lasReader.Header.XScaleFactor);
                    m_AreaHeader.YScaleFactor = Math.Min(m_AreaHeader.YScaleFactor, lasReader.Header.YScaleFactor);
                    m_AreaHeader.ZScaleFactor = Math.Min(m_AreaHeader.ZScaleFactor, lasReader.Header.ZScaleFactor);

                    m_TileInfos[lasFile] = new TcIndexedLasInfo(lasFile)
                    {
                        Header = lasReader.Header
                    };
                }
            }
        }
Ejemplo n.º 2
0
        //-----------------------------------------------------------------------------

        public TcTileLasReader(TcIndexedLasInfo prmInfo)
            : this(prmInfo.LasFile, prmInfo.TileInfoCollection)
        {
        }