private static GridData ParseBin(BinaryReader br, GridData grid) { // Read header ParseBinHeader(br, grid); grid.minValue = br.ReadSingle(); grid.maxValue = br.ReadSingle(); grid.countX = br.ReadInt32(); grid.countY = br.ReadInt32(); grid.units = br.ReadString(); grid.coloring = (GridData.Coloring)br.ReadByte(); // Read Metadata (if available) grid.metadata = PatchDataIO.ReadBinMetadata(br); // Read Categories (if available) if (grid.categories != null) { ReadBinCategories(br, grid); if (grid.categories[0].name.EqualsIgnoreCase("None")) { grid.categoryMask &= ~1u; } } // Allocate grid memory grid.InitGridValues(); byte[] bytes = null; // Read values bytes = ReadArray(br, bytes, grid.values, 4); // Read value masks bytes = ReadArray(br, bytes, grid.valuesMask); // Read distribution values var count = br.ReadByte(); int[] distributionValues = new int[count]; bytes = ReadArray(br, bytes, distributionValues, 4); // Read max distribution value int maxDistributionValue = br.ReadInt32(); grid.SetDistribution(distributionValues, maxDistributionValue); return(grid); }
public static void ParseBinProperties(BinaryReader br, MultiGridData multigrid) { // Read Metadata (if available) multigrid.metadata = PatchDataIO.ReadBinMetadata(br); // Read coloring multigrid.coloring = (GridData.Coloring)br.ReadByte(); // Read categories (without values) int gridCount = br.ReadInt32(); if (gridCount > 0) { multigrid.categories = new GridCategory[gridCount]; for (int i = 0; i < gridCount; i++) { multigrid.categories[i] = new GridCategory(br.ReadString(), null, Color.white); } } }
public static void ParseBinProperties(BinaryReader br, string filename, PointData pointData) { pointData.minValue = br.ReadSingle(); pointData.maxValue = br.ReadSingle(); pointData.count = br.ReadInt32(); pointData.units = br.ReadString(); pointData.coloring = (PointData.Coloring)br.ReadByte(); // Read Metadata (if available) pointData.metadata = PatchDataIO.ReadBinMetadata(br); // Read Categories (if available) if (pointData.categories != null) { ReadBinCategories(br, pointData, pointData.coloring == PointData.Coloring.Custom); int categoriesCount = pointData.categories.Length; if (categoriesCount > CategoryFilter.MaxCategories) { Debug.LogWarning(filename + " has more than " + CategoryFilter.MaxCategories + " categories."); } } }