Example #1
0
        //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);
        }
Example #3
0
        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);
            }
        }
Example #4
0
 //Grid-To
 public static RectList GridToRects(Grid grid)
 {
     return(GridConverter.GridToRects(grid));
 }