/// <summary>
        /// Reads Point shapefile
        /// </summary>
        /// <param name="stream"></param>
        protected IList ReadPointData(Stream stream)
        {
            IList list = new ArrayList();

            // Jump to first header
            stream.Seek(100, SeekOrigin.Begin);

            // Read big endian informations
            using (BigEndianBinaryReader beReader = new BigEndianBinaryReader(stream))
            {
                // Read little endian informations
                using (BinaryReader leReader = new BinaryReader(stream))
                {
                    // For each header
                    while (stream.Position < stream.Length)
                    {
                        ReadFeatureHeader(beReader);

                        ICoordinate coordinate = shapeReader.ReadCoordinate(leReader);
                        IGeometry   point      = shapeReader.CreatePoint(coordinate);
                        list.Add(point);
                    }
                }
            }
            return(list);
        }