// Render one course object to a map. internal Map RenderCourseObjToMap(CourseObj courseobj) { Map map = new Map(new GDIPlus_TextMetrics(), null); using (map.Write()) { Dictionary<object, SymDef> dict = new Dictionary<object, SymDef>(); // Create white color and white-out symdef. SymColor white = map.AddColorBottom("White", 44, 0, 0, 0, 0, false); AreaSymDef whiteArea = new AreaSymDef("White out", "890", white, null); whiteArea.ToolboxImage = MapUtil.CreateToolboxIcon(Properties.Resources.WhiteOut_OcadToolbox); map.AddSymdef(whiteArea); dict[CourseLayout.KeyWhiteOut] = whiteArea; // Create layout symdef. ImageSymDef layoutSymDef = new ImageSymDef(SymLayer.Layout); map.AddSymdef(layoutSymDef); dict[CourseLayout.KeyLayout] = layoutSymDef; SymColor symColor = null; SpecialColor specialColor = courseobj.CustomColor ?? SpecialColor.Purple; switch (specialColor.Kind) { case SpecialColor.ColorKind.Black: symColor = map.AddColor("Black", 1, 0, 0, 0, 1F, false); break; case SpecialColor.ColorKind.Purple: symColor = map.AddColor("Purple", 11, 0.045F, 0.59F, 0, 0.255F, false); break; case SpecialColor.ColorKind.Custom: CmykColor cmyk = specialColor.CustomColor; symColor = map.AddColor("Custom", 61, cmyk.Cyan, cmyk.Magenta, cmyk.Yellow, cmyk.Black, false); break; } courseobj.AddToMap(map, symColor, dict); // Make drop targets visible for debugging. foreach (SymDef symdef in map.AllSymdefs) { if (symdef.SymbolId == "781") map.SetSymdefVisible(symdef, true); } } return map; }