//Load a glyphics file, precompute rectangles and append them to codeString as speedy cache public static void PreSerializeGlyphicsFile(string filename) { CodeList codes = GlyToCodes(filename); foreach (Code t in codes) { string code = t.codeString; if (code.Contains("*")) { code = code.Split('*')[0]; } Grid grid = CodeConverter.TokensToGrid(CodeConverter.CodeToTokens(new Code(code))); if (grid != null) { RectList rectSet = GridConverter.GridToRects(grid); string serializedRects = RectConverter.RectsToSerializedRects(rectSet).SerializedData; code = code + serializedRects; t.codeString = code; } } CodesToGly(filename, codes); }
//Input: Glyphics code //Output: Rectangles //Side-Effects: May use deserialized cache at end of codeString instead public static RectList CodeToRects(Code rasterCode) { string code = rasterCode.codeString; if (code.Contains("" + CharRgba)) { string start = code.Substring(code.IndexOf('*')); return(SerializedRectsToRects(new SerializedRects(start))); } RectList rectSet = GridConverter.GridToRects(RasterApi.TokensToGrid(RasterApi.CodeToTokens(rasterCode))); return(rectSet); }
public void FromGrid(Grid inGrid) { Grid = inGrid; int scale; if (Grid.SizeX > 128) { scale = 1; } else { //scale = (int)((256) / (float)(Grid.SizeX) * 1.3) & 254; scale = (int)((256) / (float)(Grid.SizeX) * 1.8) & 254; } //scale = 12; if ((enableFlags & enables.RenderIsometricThumb) == enables.RenderIsometricThumb) { GridIsometricThumb = RasterLib.RasterApi.Renderer.RenderIsometricCellsScaled(Grid, 0, 0, 0, 0, 1, 1, "Render Isometric (Thumbnail) "); } if ((enableFlags & enables.RenderIsometricRegular) == enables.RenderIsometricRegular) { GridIsometric = RasterLib.RasterApi.Renderer.RenderIsometricCellsScaled(Grid, 31, 31, 31, 0, scale, scale, "Render Isometric (Regular) "); } if ((enableFlags & enables.RenderIsometricLarge) == enables.RenderIsometricLarge) { GridIsometricLarge = RasterLib.RasterApi.Renderer.RenderIsometricCellsScaled(Grid, 0, 0, 0, 0, 8, 8, "Render Isometric (Large) "); } if ((enableFlags & enables.RenderOrthogonal) == enables.RenderOrthogonal) { GridOrthogonal = RasterLib.RasterApi.Renderer.RenderObliqueCells(Grid); } if ((enableFlags & enables.DoRects) == enables.DoRects) { Rects = GridConverter.GridToRects(Grid); FromRects(Rects); } }
//Grid-To public static RectList GridToRects(Grid grid) { return(GridConverter.GridToRects(grid)); }