public OgcLinearRing(System.IO.BinaryReader reader)
        {
            this.numPoints = reader.ReadUInt32();

            this.points = new OgcPointCollection <T>((int)this.numPoints);

            int length = System.Runtime.InteropServices.Marshal.SizeOf(typeof(T));

            for (int i = 0; i < this.numPoints; i++)
            {
                this.points.Add(IRI.Msh.Common.Helpers.StreamHelper.ByteArrayToStructure <T>(
                                    reader.ReadBytes(length)));
            }
        }
        public OgcLineString(System.IO.BinaryReader reader)
        {
            this.byteOrder = reader.ReadByte();

            this.type = reader.ReadUInt32();

            if (WkbGeometryTypeFactory.WkbTypeMap[typeof(OgcLineString <T>)] != (WkbGeometryType)this.type)
            {
                throw new NotImplementedException();
            }

            this.numPoints = reader.ReadUInt32();

            this.points = new OgcPointCollection <T>((int)this.numPoints);

            int length = System.Runtime.InteropServices.Marshal.SizeOf(typeof(T));

            for (int i = 0; i < this.numPoints; i++)
            {
                this.points.Add(IRI.Msh.Common.Helpers.StreamHelper.ByteArrayToStructure <T>(
                                    reader.ReadBytes(length)));
            }
        }