コード例 #1
0
        public void TestSerializedRectsToRects()
        {
            SerializedRects serializedRects = RasterLib.RasterApi.CreateSerializedRects(SerializedFinalCubeCode);
            RectList        rects           = RasterLib.RasterApi.SerializedRectsToRects(serializedRects);

            Assert.IsTrue(rects.Count == 1);
        }
コード例 #2
0
        public void TestRectsToSerialized()
        {
            Code            code            = RasterLib.RasterApi.CreateCode(FinalCubeCode);
            Grid            grid            = RasterLib.RasterApi.CodeToGrid(code);
            RectList        rects           = RasterLib.RasterApi.GridToRects(grid);
            SerializedRects serializedRects = RasterLib.RasterApi.RectsToSerializedRects(rects);

            Assert.IsTrue((String.CompareOrdinal(serializedRects.SerializedData, SerializedFinalCubeCode) == 0));
        }
コード例 #3
0
        public string GetResponse(string query)
        {
            string worldPart = query.Split('=')[1];

            worldPart = WebUtility.UrlDecode(worldPart);
            Code            code     = RasterLib.RasterApi.CreateCode(worldPart);
            Grid            grid     = RasterLib.RasterApi.CodeToGrid(code);
            SerializedRects srects   = RasterLib.RasterApi.RectsToSerializedRects(RasterLib.RasterApi.GridToRects(grid));
            string          response = srects.SerializedData;

            //string response = "<A href=\"deserializer.html?serialized=" + srects.SerializedData + "\">Viewer</a>";
            return(response);
        }
コード例 #4
0
        public string GetResponse(string query)
        {
            string          serializedRectsString = query.Substring(1, query.Length - 1);
            SerializedRects srects = RasterLib.RasterApi.CreateSerializedRects(serializedRectsString);
            RectList        rects  = RasterLib.RasterApi.SerializedRectsToRects(srects);

            string response = "<title>SerializedRects-to-HTML</title><body>";

            foreach (Rect rect in rects)
            {
                response += rect + "<br>";
            }
            response += "</body>";
            return(response);
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: katascope/Glyphics2
        static void Main(string[] args)
        {
            Console.WriteLine("Test worlds");
            Directory.SetCurrentDirectory("\\GitHub\\Glyphics2\\Crawler\\");

            string glycFilename = "c:\\github\\glyphics2\\Crawler\\Home.glyc";
            string codeString   = RasterLib.RasterApi.ReadGlyc(glycFilename).Replace(';', '\n');

            RectList rects = Pivot.ToRects(codeString);

            RasterLib.RasterApi.BuildCircuit(rects, true);
            SerializedRects rects255 = Pivot.ToSerialized255(rects);

            rects = Pivot.ToRects(rects255);
            RasterLib.RasterApi.BuildCircuit(rects, true);

//            Clipboard.SetText(rects255.SerializedData);
            Console.WriteLine("\nSerialized rects\n{0}", rects255.SerializedData);
        }
コード例 #6
0
ファイル: MegaGridClient.cs プロジェクト: katascope/Glyphics2
        public Dictionary <string, RectList> Names2Rects(Dictionary <string, string> gsa2names)
        {
            Dictionary <string, RectList> names2rects = new Dictionary <string, RectList>();

            foreach (KeyValuePair <string, string> kvp in gsa2names)
            {
                if (!names2rects.ContainsKey(kvp.Value))
                {
                    Console.WriteLine("Searching : " + kvp.Value);

                    string          srectData = RequestRects(kvp.Value);
                    SerializedRects srects    = new SerializedRects(srectData);
                    RectList        rects     = RasterLib.RasterApi.SerializedRectsToRects(srects);
                    Console.WriteLine(rects);

                    names2rects.Add(kvp.Value, rects);
                }
            }
            return(names2rects);
        }
コード例 #7
0
        static void Main(string[] args)
        {
            string folder   = "\\GitHub\\Glyphics2\\crawler\\";
            string filename = "Girl.glyc";

            Console.WriteLine("Serialized 255");
            Directory.SetCurrentDirectory(folder);

            string glycFilename = folder + filename;
            string codeString   = RasterLib.RasterApi.ReadGlyc(glycFilename).Replace(';', '\n');

            RectList rects = Pivot.ToRects(codeString);

            RasterLib.RasterApi.BuildCircuit(rects, true);
            SerializedRects rects255 = Pivot.ToSerialized255(rects);

            rects = Pivot.ToRects(rects255);
            RasterLib.RasterApi.BuildCircuit(rects, true);

            Clipboard.SetText(rects255.SerializedData);
            Console.WriteLine("\nSerialized rects\n{0}", rects255.SerializedData);

            //CircuitModel model = new CircuitModel(rects);
        }
コード例 #8
0
        public string GetResponse(string query)
        {
            string          serializedRectsString = query.Substring(1, query.Length - 1);
            SerializedRects srects = RasterLib.RasterApi.CreateSerializedRects(serializedRectsString);
            RectList        rects  = RasterLib.RasterApi.SerializedRectsToRects(srects);

            string response = "<title>SerializedRects-to-JSON</title>";

            response += "{\"rects\":[<br>\n";

            StringBuilder sb = new StringBuilder();

            foreach (Rect rect in rects)
            {
                string str = "{\"Pt1\":\"" + rect.Pt1 + "\"," +
                             "\"Pt2\":\"" + rect.Pt2 + "\"," +
                             "\"RGBA\":\"" + rect.Properties.Rgba + "\"}<br>\n";

                sb.Append(str);
            }
            response += sb.ToString();
            response += "]}";
            return(response);
        }
コード例 #9
0
ファイル: Program.cs プロジェクト: katascope/Glyphics2
        static void Main(string[] args)
        {
            //const string URL = "http://localhost:3838/api/simulation?GateTimer";
            //Connect to simulation server and display grid

            bool done     = false;
            int  x        = 0;
            int  y        = 0;
            int  z        = 0;
            char _lastKey = ' ';

            ServerLib.MegaGridClient client = new MegaGridClient("http://localhost:3838");
            while (!done)
            {
                if (Console.KeyAvailable)
                {
                    ConsoleKeyInfo key = Console.ReadKey();
                    _lastKey = key.KeyChar;

                    if (_lastKey == 27)
                    {
                        done = true;
                    }

                    switch (_lastKey)
                    {
                    case 'a': x--; break;

                    case 'd': x++; break;

                    case 'w': z++; break;

                    case 's': z--; break;

                    case 'e': y++; break;

                    case 'q': y--; break;
                    }
                }

                GridSpaceAddress gsa      = new GridSpaceAddress(x, y, z);
                string           name     = client.RequestNameAtGSA(gsa);
                string           rectsStr = client.RequestRects(name);
                SerializedRects  srects   = new SerializedRects(rectsStr);
                Console.WriteLine(srects.SerializedData);
                //RectList rects = Pivot.ToRects(srects);
                //Console.WriteLine(rects);
                try
                {
                    string response = RequestData("http://localhost:3838/api/simulation?" + name);
                    Console.Out.WriteLine(response);
                }
                catch (Exception e)
                {
                    Console.Out.WriteLine("-----------------");
                    Console.Out.WriteLine(e.Message);
                }

                Thread.Sleep(1000);
                Console.WriteLine("GSA: " + gsa.ToString() + " = '" + name + "'");
            }
        }
コード例 #10
0
        public static void SuperDebug(ScratchControl ctl)
        {
            Grid grid = null;

            if (ctl.FileNameInCode == null && ctl.FileNameInImage == null && ctl.FileNameInStl == null && ctl.FileNameInSvg == null)
            {
                Console.WriteLine("Must have FileNameIn type.");
                return;
            }

            if (ctl.FileNameInSvg != null)
            {
                Console.WriteLine("SVG Input filename: {0}", ctl.FileNameInSvg);
                string codeString = Svg2Gly.ConvertSvg2Gly(ctl.FileNameInSvg);
                Console.WriteLine("SVG:\n" + codeString);

                Code code = RasterLib.RasterApi.CreateCode(codeString);
                if (ctl.Resize != null)
                {
                    code = RasterLib.RasterApi.CodeToRescaledCode(code, ctl.Resize[0], ctl.Resize[1], ctl.Resize[2]);
                }

                Console.WriteLine("Code: {0}\n", codeString);
                grid = RasterLib.RasterApi.CodeToGrid(code);
            }
            else if (ctl.FileNameInStl != null)
            {
                grid = RasterLib.RasterApi.CreateGrid(64, 64, 64, 4);

                Console.WriteLine("STL Input filename: {0}", ctl.FileNameInStl);

                //Load the triangles from the STL file and reduce to a unit 1x1x1 size
                Triangles triangles = RasterLib.RasterApi.StlToTriangles(ctl.FileNameInStl);
                triangles.ReduceToUnit();
                Console.WriteLine("Triangle count: {0}", triangles.Count);

                //Render the triangles to the grid, will autosize to grid size
                RasterLib.RasterApi.Renderer.RenderTrianglesToGrid(triangles, grid);
            }
            else if (ctl.FileNameInImage != null)
            {
                Grid        gridImg = GraphicsApi.FileToGrid(ctl.FileNameInImage);
                GridContext gc      = new GridContext(gridImg);
                RasterLib.RasterApi.Painter.FlipY(gc);
                int div = 63;// 31;// 15;
                grid = RasterLib.RasterApi.CreateGrid(gridImg.SizeX, 255 / div + 1, gridImg.SizeY, 4);

                Console.WriteLine("Extruding");
                Extrusion(grid, gridImg, div);
                Console.WriteLine("Rendering");
                Grid gridIsometricScaledQuick = RasterLib.RasterApi.Renderer.RenderIsometricCellsScaled(grid, 0, 0, 0, 0, 4, 4);
                Console.WriteLine("Saving");
                GraphicsApi.SaveFlatPng(ctl.FileNameOutIsometric, gridIsometricScaledQuick);
                Console.WriteLine("Saved");
            }
            else if (ctl.FileNameInCode != null)
            {
                string codeString = RasterLib.RasterApi.ReadGlyc(ctl.FileNameInCode).Replace(';', '\n');

                Code code = RasterLib.RasterApi.CreateCode(codeString);
                Console.WriteLine("Code: {0}\n", codeString);

                Codename codename = RasterLib.RasterApi.CodeToCodename(code);
                Console.WriteLine("Codename: {0}\n", codename);

                if (ctl.OutputTokens)
                {
                    TokenList glyphTokens = RasterLib.RasterApi.CodeToTokens(code);
                    string    tokenDesc   = "Tokens:\n" + glyphTokens + "\n";
                    Console.WriteLine(tokenDesc);
                }

                if (ctl.Resize != null)
                {
                    code = RasterLib.RasterApi.CodeToRescaledCode(code, ctl.Resize[0], ctl.Resize[1], ctl.Resize[2]);
                }

                grid = RasterLib.RasterApi.CodeToGrid(code);
                Console.WriteLine("Grid: {0}\n", grid);

                if (ctl.FileNameOutOrthogonalAnimated || ctl.FileNameOutIsometricAnimated)
                {
                    ControlAnimator.DoAnimation(ctl, code.codeString, codename.ToString());
                }
            }

            //DownSolver ds = new GeneralLibrary.DownSolver(codeString);

            if (ctl.OutputBytes && grid != null)
            {
                string bytesDesc = RasterLib.RasterApi.BytesToString(grid.CloneData());
                Console.WriteLine("GridBytes:\n{0}\n", bytesDesc);
            }

            RectList rects = RasterLib.RasterApi.GridToRects(grid);

            if (ctl.OutputRectangles)//rects
            {
                Console.WriteLine("Rects: {0}\n{1}", rects.Count, rects);
                RasterLib.RasterApi.BuildCircuit(rects, true);

                string serialized = RasterLib.RasterApi.RectsToSerializedRectsLimit255(rects).SerializedData;
                Console.WriteLine("Serialized Rects: (len={0})\n{1}\n", serialized.Length, serialized);

                RasterLib.RasterApi.SaveFlatText("..\\..\\foo.txt", serialized);
                //Clipboard.SetText(serialized);
                SerializedRects serializedRects = new SerializedRects(serialized);
                RectList        rectsDecoded    = RectConverter.SerializedRectsToRects(serializedRects);

                int count = 0;
                Console.WriteLine("# of Decoded Rects = {0}", rectsDecoded.Count);
                foreach (Rect rect in rectsDecoded)
                {
                    Console.WriteLine(count + " : " + rect);
                    count++;
                }
            }

            if (ctl.OutputRenderedAscii)
            {
                Console.WriteLine("2d view:\n{0}", RasterLib.RasterApi.Renderer.GridToHexDescription(grid));
                Console.WriteLine("3d view:\n{0}", RasterLib.RasterApi.Renderer.GridTo3DDescription(grid, 0, 0, 0));
            }

            if (ctl.OutputSceneGraph)
            {
                Scene     scene     = RasterLib.RasterApi.RectsToScene(rects); Console.WriteLine("Scene: {0}", scene);
                QuadList  quads     = RasterLib.RasterApi.RectsToQuads(rects); Console.WriteLine("Quads: {0}", quads);
                Triangles triangles = RasterLib.RasterApi.QuadsToTriangles(quads); Console.WriteLine("Triangles: {0}", triangles);
            }

            if (ctl.FileNameOutStl != null)
            {
                ControlStl.Control(ctl, rects);
            }

            if (ctl.FileNameOutOrthogonal != null)
            {
                Console.WriteLine("Orthogonal Rendering..");
                Grid gridOrthogonal = RasterLib.RasterApi.Renderer.RenderObliqueCells(grid);
                GraphicsApi.SaveFlatPng(ctl.FileNameOutOrthogonal, gridOrthogonal);
            }

            if (ctl.FileNameOutIsometric != null)
            {
                Console.WriteLine("Isometric Rendering..");
                if (ctl.IsometricCellWidth < 1)
                {
                    ctl.IsometricCellWidth = 1;
                }
                if (ctl.IsometricCellHeight < 1)
                {
                    ctl.IsometricCellHeight = 1;
                }
                Grid gridIsometricScaled = RasterLib.RasterApi.Renderer.RenderIsometricCellsScaled(grid,
                                                                                                   ctl.IsometricBgRgba[0],
                                                                                                   ctl.IsometricBgRgba[1],
                                                                                                   ctl.IsometricBgRgba[2],
                                                                                                   ctl.IsometricBgRgba[3],
                                                                                                   ctl.IsometricCellWidth, ctl.IsometricCellHeight);
                GraphicsApi.SaveFlatPng(ctl.FileNameOutIsometric, gridIsometricScaled);
            }

            Console.WriteLine();
        }
コード例 #11
0
        //"../../../../Glyph Cores/Nexus.glyc" -sr
        static void Main(string[] args)
        {
            if (args.Length == 0)
            {
                Console.WriteLine("Usage : GlyView <filename> ");
                Console.WriteLine(" Output types:");
                Console.WriteLine("   -c : display code ");
                Console.WriteLine("   -r : display rects ");
                Console.WriteLine("  -sr : display serialized rects ");
                Console.WriteLine("   -q : display quads ");
                Console.WriteLine("   -t : display triangles ");
                Console.WriteLine("  -sg : display scenegraph");
                Console.WriteLine("  -ci : display circuit");
                return;
            }

            string  filename = args[0];
            Options options  = new Options();

            for (int i = 0; i < args.Length; i++)
            {
                if (args[i] == "-c")
                {
                    options.displayCode = true;
                }
                if (args[i] == "-r")
                {
                    options.displayRects = true;
                }
                if (args[i] == "-sr")
                {
                    options.displaySerializedRects = true;
                }
                if (args[i] == "-q")
                {
                    options.displayQuads = true;
                }
                if (args[i] == "-t")
                {
                    options.displayTriangles = true;
                }
                if (args[i] == "-sg")
                {
                    options.displaySceneGraph = true;
                }
                if (args[i] == "-ci")
                {
                    options.displayCircuit = true;
                }
            }
            string codeString = RasterLib.RasterApi.ReadGlyc(filename);
            Code   code       = new Code(codeString);

            if (options.displayCode)
            {
                Console.WriteLine("Code: " + codeString);
            }

            Grid grid = RasterLib.RasterApi.CodeToGrid(code);

            if (grid != null)
            {
                //string bytesDesc = RasterLib.RasterApi.BytesToString(grid.CloneData());
                //Console.WriteLine("GridBytes:\n{0}\n", bytesDesc);
            }

            RectList rects = RasterLib.RasterApi.GridToRects(grid);
            //rects
            {
                if (options.displayRects)
                {
                    Console.WriteLine("Rects: {0}\n{1}", rects.Count, rects);
                }

                RasterLib.RasterApi.BuildCircuit(rects, options.displayCircuit);

                string serialized = RasterLib.RasterApi.RectsToSerializedRectsLimit255(rects).SerializedData;
                if (options.displaySerializedRects)
                {
                    Console.WriteLine("{0}\n", serialized);
                }
                //Console.WriteLine("Serialized Rects: (len={0})\n{1}\n", serialized.Length, serialized);

                SerializedRects serializedRects = new SerializedRects(serialized);
                RectList        rectsDecoded    = RectConverter.SerializedRectsToRects(serializedRects);
            }

            //if (ctl.OutputRenderedAscii)
            {
                //Console.WriteLine("2d view:\n{0}", RasterLib.RasterApi.Renderer.GridToHexDescription(grid));
                //Console.WriteLine("3d view:\n{0}", RasterLib.RasterApi.Renderer.GridTo3DDescription(grid, 0, 0, 0));
            }

            //if (ctl.OutputSceneGraph)
            {
                Scene scene = RasterLib.RasterApi.RectsToScene(rects);
                if (options.displaySceneGraph)
                {
                    Console.WriteLine("Scene: {0}", scene);
                }

                QuadList quads = RasterLib.RasterApi.RectsToQuads(rects);
                if (options.displayQuads)
                {
                    Console.WriteLine("Quads: {0}", quads);
                }

                Triangles triangles = RasterLib.RasterApi.QuadsToTriangles(quads);
                if (options.displayTriangles)
                {
                    Console.WriteLine("Triangles: {0}", triangles);
                }
            }
        }