switch (mShapeFileType) { case NULL_SHAPE: mGeometryType = 0; break; case POINT: case POINT_Z: case POINT_M: mGeometryType = Argument.GEOMETRY_POINT; break; case POLYLINE: case POLYLINE_Z: case POLYLINE_M: mGeometryType = Argument.GEOMETRY_LINESTRING; break; case POLYGON: case POLYGON_Z: case POLYGON_M: case MULTIPATCH: mGeometryType = Argument.GEOMETRY_POLYGON; break; case MULTIPOINT: case MULTIPOINT_Z: case MULTIPOINT_M: mGeometryType = Argument.GEOMETRY_MULTIPOINT; break; }
	private void readShapeHeader() throws IOException, MapyrusException	{		int magic;		double xMin, yMin, xMax, yMax, zMin, zMax, mMin, mMax;		magic = mShapeStream.readInt();		if (magic != MAGIC_NUMBER)		{			throw new MapyrusException(mFilename + ": " +				MapyrusMessages.get(MapyrusMessages.NOT_SHAPE_FILE));		}		mShapeStream.readInt();		mShapeStream.readInt();		mShapeStream.readInt();		mShapeStream.readInt();		mShapeStream.readInt();		mShapeFileLength = mShapeStream.readInt() * 2 - 100;		int version = readLittleEndianInt(mShapeStream);		mShapeFileType = readLittleEndianInt(mShapeStream);		xMin = readLittleEndianDouble(mShapeStream);		yMin = readLittleEndianDouble(mShapeStream);		xMax = readLittleEndianDouble(mShapeStream);		yMax = readLittleEndianDouble(mShapeStream);		zMin = readLittleEndianDouble(mShapeStream);		zMax = readLittleEndianDouble(mShapeStream);		mMin = readLittleEndianDouble(mShapeStream);		mMax = readLittleEndianDouble(mShapeStream);		mExtents = new Rectangle2D.Double(xMin, yMin, xMax - xMin, yMax - yMin);	}