public static void Main(string[] args) { var p = new Planet(5); p.Simulate(5000); var projector = new EquirectangularProjector(); var renderer = new MantleHeatRenderer(); var options = new CellRenderOptions { ShowCellOutline = false, ShowConvectionDirection = true }; var projection = projector.ProjectCells(renderer.RenderCells(p.Cells, options)); Console.WriteLine("{0} out of {1} displayed", projection.Cells.Count, p.Cells.Count); var s = SVGGenerator.GetSVG(projection); File.WriteAllText("testdatafromequirect.svg", s); }
private void WriteSVG(Stream stream) { string intro = "<?xml version=\u00221.0\u0022 standalone=\u0022no\u0022?>\n<!DOCTYPE svg PUBLIC \u0022-//W3C//DTD SVG 1.1//EN\u0022" + "\n \u0022http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" + "\u0022>\n<svg xmlns=\u0022http://www.w3.org/2000/svg" + "\u0022 version=\u00221.1\u0022>"; using (StreamWriter writer = new StreamWriter(stream)) { writer.WriteLine(intro); SVGGenerator svgGenerator = new SVGGenerator(); foreach (Shape shape in shapes) { shape.SetBridge(svgGenerator); shape.Create(); } foreach (string output in svgGenerator.svgOutput) { writer.WriteLine(output); } writer.WriteLine("</svg>"); } }
private void WriteComplicatedWiresManual(string path, ManualFileName file, ref List <ReplaceText> replacements, bool outputFile = true) { var lineTypes = new List <string> { "15,40,4,10", string.Empty, "3", "8" }; var labels = new List <string> { "Wire has red\ncoloring", "Wire has blue\ncoloring", "Has ★ symbol", "LED is on" }; var ruleset = _ruleManager.VennWireRuleSet; var cutInstructionList = new List <CutInstruction> { ruleset.RuleDict[new VennWireState(true, false, false, false)], ruleset.RuleDict[new VennWireState(false, true, false, false)], ruleset.RuleDict[new VennWireState(false, false, true, false)], ruleset.RuleDict[new VennWireState(false, false, false, true)], ruleset.RuleDict[new VennWireState(true, false, true, false)], ruleset.RuleDict[new VennWireState(true, true, false, false)], ruleset.RuleDict[new VennWireState(false, true, false, true)], ruleset.RuleDict[new VennWireState(false, false, true, true)], ruleset.RuleDict[new VennWireState(false, true, true, false)], ruleset.RuleDict[new VennWireState(true, false, false, true)], ruleset.RuleDict[new VennWireState(true, true, true, false)], ruleset.RuleDict[new VennWireState(true, true, false, true)], ruleset.RuleDict[new VennWireState(false, true, true, true)], ruleset.RuleDict[new VennWireState(true, false, true, true)], ruleset.RuleDict[new VennWireState(true, true, true, true)], ruleset.RuleDict[new VennWireState(false, false, false, false)] }; var vennList = new List <string>(); using (var enumerator = cutInstructionList.GetEnumerator()) { while (enumerator.MoveNext()) { // ReSharper disable once SwitchStatementMissingSomeCases switch (enumerator.Current) { case CutInstruction.Cut: vennList.Add("C"); break; case CutInstruction.DoNotCut: vennList.Add("D"); break; case CutInstruction.CutIfSerialEven: vennList.Add("S"); break; case CutInstruction.CutIfParallelPortPresent: vennList.Add("P"); break; case CutInstruction.CutIfTwoOrMoreBatteriesPresent: vennList.Add("B"); break; } } } var vennSVG = new SVGGenerator(800, 650); var legendSVG = new SVGGenerator(275, 200); vennSVG.Draw4SetVennDiagram(vennList, lineTypes); legendSVG.DrawVennDiagramLegend(labels, lineTypes); replacements.Add(new ReplaceText { Original = "VENNDIAGRAMSVGDATA", Replacement = vennSVG.ToString() }); replacements.Add(new ReplaceText { Original = "VENNLEGENDSVGDATA", Replacement = legendSVG.ToString() }); file.WriteFile(path, replacements, outputFile); }