コード例 #1
0
ファイル: PdfCourseTests.cs プロジェクト: osorensen/PurplePen
        public void PdfCreation4()
        {
            CoursePdfSettings settings = new CoursePdfSettings();

            settings.mapDirectory    = settings.fileDirectory = false;
            settings.outputDirectory = TestUtil.GetTestFile("controller\\pdf_create4");
            settings.CourseIds       = new Id <Course>[1] {
                CourseId(2)
            };
            settings.ColorModel         = ColorModel.RGB;
            settings.CropLargePrintArea = true;
            settings.FileCreation       = CoursePdfSettings.PdfFileCreation.FilePerCourse;

            CourseAppearance appearance = new CourseAppearance();

            appearance.purpleColorBlend = true;

            Directory.CreateDirectory(settings.outputDirectory);

            CreatePdfFiles(TestUtil.GetTestFile("controller\\marymoor4.ppen"), settings, appearance,
                           new string[1] {
                TestUtil.GetTestFile("controller\\pdf_create4\\Course 2.pdf")
            },
                           new string[1] {
                TestUtil.GetTestFile("controller\\pdf_create4\\Course 2_expected.png")
            });
        }
コード例 #2
0
ファイル: PdfCourseTests.cs プロジェクト: osorensen/PurplePen
        public void PdfCreation2()
        {
            CoursePdfSettings settings = new CoursePdfSettings();

            settings.mapDirectory              = settings.fileDirectory = false;
            settings.outputDirectory           = TestUtil.GetTestFile("controller\\pdf_create2");
            settings.CourseIds                 = new Id <Course>[] { CourseId(1), CourseId(2), CourseId(0) };
            settings.ColorModel                = ColorModel.RGB;
            settings.CropLargePrintArea        = false;
            settings.FileCreation              = CoursePdfSettings.PdfFileCreation.FilePerCourse;
            settings.PrintMapExchangesOnOneMap = false;

            CourseAppearance appearance = new CourseAppearance();

            appearance.controlCircleSize  = 0.75F; //smaller circles
            appearance.lineWidth          = 3F;    // thin lines
            appearance.numberHeight       = 0.5F;  // small numbers.
            appearance.numberBold         = true;  // bold numbers.
            appearance.numberOutlineWidth = 0.13F;
            appearance.useDefaultPurple   = false;
            appearance.purpleColorBlend   = true;
            appearance.autoLegGapSize     = 0.0F;
            appearance.purpleC            = 0.32F;
            appearance.purpleY            = 1.00F;
            appearance.purpleM            = 0;
            appearance.purpleK            = 0.30F;

            settings.CourseIds = new Id <Course>[] { CourseId(1), CourseId(2), CourseId(0) };

            CreatePdfFiles(TestUtil.GetTestFile("courseprinting\\marymoor.ppen"), settings, appearance,
                           new string[] { TestUtil.GetTestFile("controller\\pdf_create2\\Course 1.pdf"), TestUtil.GetTestFile("controller\\pdf_create2\\Course 2.pdf"), TestUtil.GetTestFile("controller\\pdf_create2\\All controls.pdf") },
                           new string[] { TestUtil.GetTestFile("controller\\pdf_create2\\test2_course1_page%d_baseline.png"), TestUtil.GetTestFile("controller\\pdf_create2\\test2_course2_page%d_baseline.png"), TestUtil.GetTestFile("controller\\pdf_create2\\test2_allcontrols_page%d_baseline.png") });
        }
コード例 #3
0
ファイル: PdfCourseTests.cs プロジェクト: osorensen/PurplePen
        public void PdfCreationPdfBaseMap2()
        {
            CoursePdfSettings settings = new CoursePdfSettings();

            settings.mapDirectory       = settings.fileDirectory = false;
            settings.outputDirectory    = TestUtil.GetTestFile("pdfcourse\\pdf_create9");
            settings.CourseIds          = new Id <Course>[] { CourseId(0), CourseId(1), CourseId(2), CourseId(3) };
            settings.ColorModel         = ColorModel.CMYK;
            settings.CropLargePrintArea = true;
            settings.FileCreation       = CoursePdfSettings.PdfFileCreation.FilePerCourse;

            CourseAppearance appearance = new CourseAppearance();

            appearance.purpleColorBlend = true;

            CreatePdfFiles(TestUtil.GetTestFile("pdfcourse\\St Pauls Week 4.ppen"), settings, appearance,
                           new string[] { TestUtil.GetTestFile("pdfcourse\\pdf_create9\\All Controls.pdf"),
                                          TestUtil.GetTestFile("pdfcourse\\pdf_create9\\Short.pdf"),
                                          TestUtil.GetTestFile("pdfcourse\\pdf_create9\\Medium.pdf"),
                                          TestUtil.GetTestFile("pdfcourse\\pdf_create9\\Long.pdf") },
                           new string[] { TestUtil.GetTestFile("pdfcourse\\pdf_create9\\All Controls_expected.png"),
                                          TestUtil.GetTestFile("pdfcourse\\pdf_create9\\Short_expected.png"),
                                          TestUtil.GetTestFile("pdfcourse\\pdf_create9\\Medium_expected.png"),
                                          TestUtil.GetTestFile("pdfcourse\\pdf_create9\\Long_expected.png") });
        }
コード例 #4
0
ファイル: PdfCourseTests.cs プロジェクト: osorensen/PurplePen
        public void PdfCreationBitmapBaseMapRGB()
        {
            CoursePdfSettings settings = new CoursePdfSettings();

            settings.mapDirectory    = settings.fileDirectory = false;
            settings.outputDirectory = TestUtil.GetTestFile("controller\\pdf_create8");
            settings.CourseIds       = new Id <Course>[1] {
                CourseId(1)
            };
            settings.ColorModel         = ColorModel.RGB;
            settings.CropLargePrintArea = true;
            settings.FileCreation       = CoursePdfSettings.PdfFileCreation.FilePerCourse;

            CourseAppearance appearance = new CourseAppearance();

            appearance.purpleColorBlend = true;

            CreatePdfFiles(TestUtil.GetTestFile("courseprinting\\Lincoln Park.ppen"), settings, appearance,
                           new string[1] {
                TestUtil.GetTestFile("controller\\pdf_create8\\Short.pdf")
            },
                           new string[1] {
                TestUtil.GetTestFile("controller\\pdf_create8\\Short_expected.png")
            });
        }
コード例 #5
0
        // Format the given CourseView into a bunch of course objects, and add it to the given course Layout
        public RectangleF FormatCourseToLayout(SymbolDB symbolDB, CourseView courseViewAllVariations, CourseView specificVariation, CourseLayout courseLayout,
                                               Id <CourseControl> ccSelection1, Id <CourseControl> ccSelection2, CourseLayer layerAllVariations, CourseLayer layerSpecificVariation)
        {
            this.eventDB      = courseViewAllVariations.EventDB;
            this.symbolDB     = symbolDB;
            this.courseLayout = courseLayout;
            this.courseLayerAllVariationsAndParts  = layerAllVariations;
            this.courseLayerSpecificVariation      = layerSpecificVariation;
            this.controlViewsAllVariationsAndParts = courseViewAllVariations.ControlViews;
            this.controlViewsSpecificVariation     = specificVariation.ControlViews;
            this.controlPositions = new ControlPosition[controlViewsAllVariationsAndParts.Count];
            this.courseControlIdsSpecificVariation = QueryEvent.EnumCourseControlIds(eventDB, specificVariation.CourseDesignator).ToArray();
            this.courseControlIdSelection1         = ccSelection1;
            this.courseControlIdSelection2         = ccSelection2;
            this.variationMap = QueryEvent.GetVariantCodeMapping(eventDB, courseViewAllVariations.CourseDesignator);

            SizeF totalAbstractSize = AssignControlPositions(0, controlViewsAllVariationsAndParts.Count, 0, 0);

            // Now create objects now that the positions have been created.
            courseObjRatio = 1.0F;
            appearance     = new CourseAppearance();

            for (int index = 0; index < controlViewsAllVariationsAndParts.Count; ++index)
            {
                CreateObjectsForControlView(controlViewsAllVariationsAndParts[index], controlPositions[index]);
            }

            PointF     bottomCenter = LocationFromAbstractPosition(0, 0);
            SizeF      size         = SizeFromAbstractSize(totalAbstractSize);
            RectangleF rect         = new RectangleF(bottomCenter.X - size.Width / 2, bottomCenter.Y - size.Height, size.Width, size.Height);

            rect.Inflate(widthUnit, heightUnit);
            return(rect);
        }
コード例 #6
0
ファイル: PdfCourseTests.cs プロジェクト: osorensen/PurplePen
        public void PdfPrintAreasAndPageSizes()
        {
            CoursePdfSettings settings = new CoursePdfSettings();

            settings.mapDirectory              = settings.fileDirectory = false;
            settings.outputDirectory           = TestUtil.GetTestFile("controller\\pdf_area");
            settings.CourseIds                 = new Id <Course>[] { CourseId(0), CourseId(1), CourseId(2), CourseId(3), CourseId(4) };
            settings.ColorModel                = ColorModel.CMYK;
            settings.CropLargePrintArea        = false;
            settings.FileCreation              = CoursePdfSettings.PdfFileCreation.FilePerCourse;
            settings.PrintMapExchangesOnOneMap = false;

            CourseAppearance appearance = new CourseAppearance();

            appearance.purpleColorBlend = true;

            CreatePdfFiles(TestUtil.GetTestFile("courseprinting\\Lincoln Park PrintAreas 2.ppen"), settings, appearance,
                           new string[] { TestUtil.GetTestFile("controller\\pdf_area\\All controls.pdf"),
                                          TestUtil.GetTestFile("controller\\pdf_area\\Short.pdf"),
                                          TestUtil.GetTestFile("controller\\pdf_area\\Long.pdf"),
                                          TestUtil.GetTestFile("controller\\pdf_area\\Landscape.pdf"),
                                          TestUtil.GetTestFile("controller\\pdf_area\\LandscapeLetter.pdf") },
                           new string[] { TestUtil.GetTestFile("controller\\pdf_area\\All controls_expected.png"),
                                          TestUtil.GetTestFile("controller\\pdf_area\\Short_expected.png"),
                                          TestUtil.GetTestFile("controller\\pdf_area\\Long_expected.png"),
                                          TestUtil.GetTestFile("controller\\pdf_area\\Landscape_expected.png"),
                                          TestUtil.GetTestFile("controller\\pdf_area\\LandscapeLetter_expected.png") });
        }
コード例 #7
0
ファイル: MapUtil.cs プロジェクト: osorensen/PurplePen
        // Get the purple color to use for display, taking into account the user preferences in courseAppearance, the map loaded into the mapDisplay, 
        // and the default purple if none of those provide a color. MapDisplay and courseAppearance can be null, in which case they won't be used.
        public static void GetPurpleColor(MapDisplay mapDisplay, CourseAppearance courseAppearance, out short ocadId, out float cyan, out float magenta, out float yellow, out float black, out bool overprint)
        {
            overprint = (courseAppearance == null) ? true : courseAppearance.purpleColorBlend;

            if (courseAppearance != null && !courseAppearance.useDefaultPurple) {
                // Use the purple from the course display.
                cyan = courseAppearance.purpleC;
                magenta = courseAppearance.purpleM;
                yellow = courseAppearance.purpleY;
                black = courseAppearance.purpleK;
                ocadId = NormalCourseAppearance.courseOcadId;
                return;
            }
            else if (mapDisplay != null && FindPurpleColor(mapDisplay.GetMapColors(), out ocadId, out cyan, out magenta, out yellow, out black)) {
                // FindPurpleColor found a purple to use.
                return;
            }
            else {
                // Use the program default.
                ocadId = NormalCourseAppearance.courseOcadId;
                cyan = NormalCourseAppearance.courseColorC;
                magenta = NormalCourseAppearance.courseColorM;
                yellow = NormalCourseAppearance.courseColorY;
                black = NormalCourseAppearance.courseColorK;
                return;
            }
        }
コード例 #8
0
ファイル: PdfCourseTests.cs プロジェクト: osorensen/PurplePen
        public void PdfCreationPdfBaseMapRGB()
        {
            CoursePdfSettings settings = new CoursePdfSettings();

            settings.mapDirectory       = settings.fileDirectory = false;
            settings.outputDirectory    = TestUtil.GetTestFile("pdfcourse\\pdf_create7");
            settings.CourseIds          = new Id <Course>[] { CourseId(1), CourseId(2), CourseId(3), CourseId(4) };
            settings.ColorModel         = ColorModel.CMYK;
            settings.CropLargePrintArea = true;
            settings.FileCreation       = CoursePdfSettings.PdfFileCreation.FilePerCourse;

            CourseAppearance appearance = new CourseAppearance();

            appearance.purpleColorBlend = true;

            CreatePdfFiles(TestUtil.GetTestFile("pdfcourse\\Lincoln Park PDF RGB.ppen"), settings, appearance,
                           new string[] { TestUtil.GetTestFile("pdfcourse\\pdf_create7\\Short.pdf"),
                                          TestUtil.GetTestFile("pdfcourse\\pdf_create7\\SmallScale.pdf"),
                                          TestUtil.GetTestFile("pdfcourse\\pdf_create7\\LargeScale.pdf"),
                                          TestUtil.GetTestFile("pdfcourse\\pdf_create7\\MediumScale.pdf") },
                           new string[] { TestUtil.GetTestFile("pdfcourse\\pdf_create7\\Short_expected.png"),
                                          TestUtil.GetTestFile("pdfcourse\\pdf_create7\\SmallScale_expected.png"),
                                          TestUtil.GetTestFile("pdfcourse\\pdf_create7\\LargeScale_expected.png"),
                                          TestUtil.GetTestFile("pdfcourse\\pdf_create7\\MediumScale_expected.png") });
        }
コード例 #9
0
 public OcadCreation(SymbolDB symbolDB, EventDB eventDB, Controller controller, CourseAppearance courseAppearance, OcadCreationSettings creationSettings)
 {
     this.symbolDB         = symbolDB;
     this.eventDB          = eventDB;
     this.controller       = controller;
     this.courseAppearance = courseAppearance;
     this.creationSettings = creationSettings;
 }
コード例 #10
0
 // mapDisplay is a MapDisplay that contains the correct map. All other features of the map display need to be customized.
 public CoursePageLayout(EventDB eventDB, SymbolDB symbolDB, Controller controller,
                         CourseAppearance appearance, bool cropLargePrintArea)
 {
     this.eventDB            = eventDB;
     this.symbolDB           = symbolDB;
     this.controller         = controller;
     this.appearance         = appearance;
     this.cropLargePrintArea = cropLargePrintArea;
 }
コード例 #11
0
        PointCourseObj highlight;    // the highlight we are creating.

        public AddPointSpecialMode(Controller controller, SelectionMgr selectionMgr, UndoMgr undoMgr, EventDB eventDB, SpecialKind specialKind)
        {
            this.controller     = controller;
            this.selectionMgr   = selectionMgr;
            this.undoMgr        = undoMgr;
            this.eventDB        = eventDB;
            this.specialKind    = specialKind;
            this.appearance     = controller.GetCourseAppearance();
            this.courseObjRatio = selectionMgr.ActiveCourseView.CourseObjRatio(appearance);
        }
コード例 #12
0
        BoundaryCourseObj highlight;                 // the highlight of the path we are creating.

        public AddLineAreaSpecialMode(Controller controller, SelectionMgr selectionMgr, UndoMgr undoMgr, EventDB eventDB, Func <PointF[], Id <Special> > createObject, bool isArea)
        {
            this.controller     = controller;
            this.selectionMgr   = selectionMgr;
            this.undoMgr        = undoMgr;
            this.eventDB        = eventDB;
            this.createObject   = createObject;
            this.isArea         = isArea;
            this.appearance     = controller.GetCourseAppearance();
            this.courseObjRatio = selectionMgr.ActiveCourseView.CourseObjRatio(appearance);
        }
コード例 #13
0
        public void ScalingMethods()
        {
            CourseAppearance appearance = (CourseAppearance)defaultCourseAppearance.Clone();

            CourseDesignator courseDesignator = new CourseDesignator(CourseId(4));

            appearance.itemScaling = ItemScaling.None;
            CheckCourse("courserenderer\\scaling.ppen", courseDesignator, false, "scaling_noscale", new RectangleF(-22, -33, 160, 160), appearance);
            appearance.itemScaling = ItemScaling.RelativeToMap;
            CheckCourse("courserenderer\\scaling.ppen", courseDesignator, false, "scaling_maprelative", new RectangleF(-22, -33, 160, 160), appearance);
            appearance.itemScaling = ItemScaling.RelativeTo15000;
            CheckCourse("courserenderer\\scaling.ppen", courseDesignator, false, "scaling_15krelative", new RectangleF(-22, -33, 160, 160), appearance);
        }
コード例 #14
0
 public CourseObjTests()
 {
     // Special appearance to test the usage of CourseAppearance.
     specialAppearance = new CourseAppearance();
     specialAppearance.controlCircleSize = 0.666667F;  // 4mm control circle
     specialAppearance.centerDotDiameter = 0.75F; // 0.75 mm center dot
     specialAppearance.lineWidth = 2.85714F; // 1mm lines
     specialAppearance.numberHeight = 1.75F; // 7mm numbers.
     specialAppearance.numberBold = true;
     specialAppearance.numberOutlineWidth = 0.13F;
     specialAppearance.autoLegGapSize = 0.0F;
     specialAppearance.descriptionsPurple = true;
 }
コード例 #15
0
        CourseObj[] additionalHighlights; // additional highlights to show also.

        public AddControlMode(Controller controller, SelectionMgr selectionMgr, UndoMgr undoMgr, EventDB eventDB, SymbolDB symbolDB, bool allControls, ControlPointKind controlKind, bool exchangeAtControl, MapIssueKind mapIssueKind)
        {
            this.controller        = controller;
            this.selectionMgr      = selectionMgr;
            this.undoMgr           = undoMgr;
            this.eventDB           = eventDB;
            this.symbolDB          = symbolDB;
            this.allControls       = allControls;
            this.controlKind       = controlKind;
            this.exchangeAtControl = exchangeAtControl;
            this.mapIssueKind      = mapIssueKind;
            this.appearance        = controller.GetCourseAppearance();
            this.courseObjRatio    = selectionMgr.ActiveCourseView.CourseObjRatio(appearance);
        }
コード例 #16
0
        public void PrintCoursesNoBlend()
        {
            controller.LoadInitialFile(TestUtil.GetTestFile("courseprinting\\marymoor.ppen"), true);
            CoursePrintSettings coursePrintSettings = new CoursePrintSettings();

            coursePrintSettings.CropLargePrintArea = false;
            coursePrintSettings.PrintingColorModel = ColorModel.CMYK;

            CourseAppearance appearance = new CourseAppearance();

            appearance.purpleColorBlend = false;

            coursePrintSettings.CourseIds = new Id <Course>[] { CourseId(1), CourseId(2), CourseId(0) };
            CoursePrintingTest("courseprinting\\noblend", coursePrintSettings, appearance);
        }
コード例 #17
0
ファイル: BitmapCreation.cs プロジェクト: osorensen/PurplePen
        // mapDisplay is a MapDisplay that contains the correct map. All other features of the map display need to be customized.
        public BitmapCreation(EventDB eventDB, SymbolDB symbolDB, Controller controller, MapDisplay mapDisplay,
                              BitmapCreationSettings bitmapCreationSettings, CourseAppearance appearance)
        {
            this.eventDB                = eventDB;
            this.symbolDB               = symbolDB;
            this.controller             = controller;
            this.mapDisplay             = mapDisplay.CloneToFullIntensity();
            this.bitmapCreationSettings = bitmapCreationSettings;
            this.appearance             = appearance;

            // Set default features for creating bitmaps.
            this.mapDisplay.MapIntensity = 1.0F;
            this.mapDisplay.AntiAlias    = true;
            this.mapDisplay.ColorModel   = bitmapCreationSettings.ColorModel;
        }
コード例 #18
0
ファイル: CoursePrinting.cs プロジェクト: osorensen/PurplePen
        // mapDisplay is a MapDisplay that contains the correct map. All other features of the map display need to be customized.
        public CoursePrinting(EventDB eventDB, SymbolDB symbolDB, Controller controller, MapDisplay mapDisplay, CoursePrintSettings coursePrintSettings, CourseAppearance appearance)
            : base(QueryEvent.GetEventTitle(eventDB, " "), controller, coursePrintSettings.PageSettings, coursePrintSettings.PrintingColorModel)
        {
            this.eventDB             = eventDB;
            this.symbolDB            = symbolDB;
            this.controller          = controller;
            this.mapDisplay          = mapDisplay;
            this.coursePrintSettings = coursePrintSettings;
            this.appearance          = appearance;

            // Set default features for printing.
            mapDisplay.MapIntensity = 1.0F;
            mapDisplay.AntiAlias    = false;
            mapDisplay.Printing     = true;
            mapDisplay.ColorModel   = base.colorModel;
        }
コード例 #19
0
        public void PrintOverprint()
        {
            controller.LoadInitialFile(TestUtil.GetTestFile("courseprinting\\Overprint test.ppen"), true);
            CoursePrintSettings coursePrintSettings = new CoursePrintSettings();

            coursePrintSettings.CropLargePrintArea = true;
            coursePrintSettings.PrintingColorModel = ColorModel.CMYK;

            coursePrintSettings.CourseIds = new Id <Course>[] { CourseId(1) };

            CourseAppearance appearance = new CourseAppearance();

            appearance.purpleColorBlend = true;
            appearance.useOcadOverprint = true;

            CoursePrintingTest("courseprinting\\overprint", coursePrintSettings, appearance, 200);
        }
コード例 #20
0
        public LinePropertiesDialog(string dialogTitle, string usageText, string helpTopic, CmykColor purpleColor, CourseAppearance appearance)
        {
            InitializeComponent();
            this.appearance = appearance;

            if (!appearance.useDefaultPurple)
            {
                purpleColor = CmykColor.FromCmyk(appearance.purpleC, appearance.purpleM, appearance.purpleY, appearance.purpleK);
            }

            this.purpleColor           = SwopColorConverter.CmykToRgbColor(purpleColor);
            colorChooser               = new SpecialColorChooser(comboBoxColor, buttonChangeColor, purpleColor);
            colorChooser.ColorChanged += colorChooser_ColorChanged;
            LineKind        = PurplePen.LineKind.Single;
            this.Text       = dialogTitle;
            this.HelpTopic  = helpTopic;
            usageLabel.Text = usageText;
        }
コード例 #21
0
ファイル: PdfCourseTests.cs プロジェクト: osorensen/PurplePen
        public void PdfBadIStreamFallback()
        {
            CoursePdfSettings settings = new CoursePdfSettings();

            settings.mapDirectory              = settings.fileDirectory = false;
            settings.outputDirectory           = TestUtil.GetTestFile("controller\\pdf_badistream");
            settings.CourseIds                 = new Id <Course>[] { CourseId(1) };
            settings.ColorModel                = ColorModel.CMYK;
            settings.CropLargePrintArea        = false;
            settings.FileCreation              = CoursePdfSettings.PdfFileCreation.FilePerCourse;
            settings.PrintMapExchangesOnOneMap = false;

            CourseAppearance appearance = new CourseAppearance();

            appearance.purpleColorBlend = true;

            CreatePdfFiles(TestUtil.GetTestFile("courseprinting\\Bad PDF Test.ppen"), settings, appearance,
                           new string[] { TestUtil.GetTestFile("controller\\pdf_badistream\\Long.pdf") },
                           new string[] { TestUtil.GetTestFile("controller\\pdf_badistream\\Long_expected.png") });
        }
コード例 #22
0
        // Do CheckCourse for normal and special appearances.
        void CheckCourseBothAppearances(string filename, CourseDesignator courseDesignator, bool addAllControls, string testName, RectangleF rect)
        {
            CourseAppearance specialAppearance;

            // Special appearance to test the usage of CourseAppearance.
            specialAppearance = new CourseAppearance();
            specialAppearance.controlCircleSize  = 1.6F; //big control circle
            specialAppearance.lineWidth          = 0.2F; // thin lines
            specialAppearance.numberHeight       = 2F;   // really big numbers.
            specialAppearance.numberBold         = true; // bold numbers
            specialAppearance.numberOutlineWidth = 0.13F;
            specialAppearance.autoLegGapSize     = 0.0F;
            specialAppearance.useDefaultPurple   = false;
            specialAppearance.purpleC            = 0.32F;
            specialAppearance.purpleY            = 1.00F;
            specialAppearance.purpleM            = 0;
            specialAppearance.purpleK            = 0.30F;

            CheckCourse(filename, courseDesignator, addAllControls, testName, rect, defaultCourseAppearance);
            CheckCourse(filename, courseDesignator, addAllControls, testName + "_special", rect, specialAppearance);
        }
コード例 #23
0
ファイル: PdfCourseTests.cs プロジェクト: osorensen/PurplePen
        public void ScalingTest()
        {
            CoursePdfSettings settings = new CoursePdfSettings();

            settings.mapDirectory              = settings.fileDirectory = false;
            settings.outputDirectory           = TestUtil.GetTestFile("pdfcourse");
            settings.CourseIds                 = new Id <Course>[] { CourseId(1), CourseId(2) };
            settings.ColorModel                = ColorModel.CMYK;
            settings.CropLargePrintArea        = true;
            settings.FileCreation              = CoursePdfSettings.PdfFileCreation.FilePerCourse;
            settings.PrintMapExchangesOnOneMap = false;

            CourseAppearance appearance = new CourseAppearance();

            appearance.purpleColorBlend = true;

            CreatePdfFiles(TestUtil.GetTestFile("pdfcourse\\PDF rescale test.ppen"), settings, appearance,
                           new string[] { TestUtil.GetTestFile("pdfcourse\\Scaled.pdf"),
                                          TestUtil.GetTestFile("pdfcourse\\Unscaled.pdf") },
                           new string[] { TestUtil.GetTestFile("pdfcourse\\Scaled.png"),
                                          TestUtil.GetTestFile("pdfcourse\\Unscaled.png") });
        }
コード例 #24
0
        public void ScalingCircleGaps()
        {
            CourseAppearance appearance = (CourseAppearance)defaultCourseAppearance.Clone();

            CourseDesignator courseDesignator10K = new CourseDesignator(CourseId(1));
            CourseDesignator courseDesignator5K  = new CourseDesignator(CourseId(2));
            CourseDesignator courseDesignator15K = new CourseDesignator(CourseId(3));

            appearance.itemScaling = ItemScaling.None;
            CheckCourse("courserenderer\\CircleGapScaling.ppen", courseDesignator5K, false, "scaling_5k_noscale", new RectangleF(69, -80, 70, 70), appearance);
            CheckCourse("courserenderer\\CircleGapScaling.ppen", courseDesignator10K, false, "scaling_10k_noscale", new RectangleF(69, -80, 70, 70), appearance);
            CheckCourse("courserenderer\\CircleGapScaling.ppen", courseDesignator15K, false, "scaling_15k_noscale", new RectangleF(69, -80, 70, 70), appearance);

            appearance.itemScaling = ItemScaling.RelativeToMap;
            CheckCourse("courserenderer\\CircleGapScaling.ppen", courseDesignator5K, false, "scaling_5k_maprelative", new RectangleF(69, -80, 70, 70), appearance);
            CheckCourse("courserenderer\\CircleGapScaling.ppen", courseDesignator10K, false, "scaling_10k_maprelative", new RectangleF(69, -80, 70, 70), appearance);
            CheckCourse("courserenderer\\CircleGapScaling.ppen", courseDesignator15K, false, "scaling_15k_maprelative", new RectangleF(69, -80, 70, 70), appearance);

            appearance.itemScaling = ItemScaling.RelativeTo15000;
            CheckCourse("courserenderer\\CircleGapScaling.ppen", courseDesignator5K, false, "scaling_5k_15krelative", new RectangleF(69, -80, 70, 70), appearance);
            CheckCourse("courserenderer\\CircleGapScaling.ppen", courseDesignator10K, false, "scaling_10k_15krelative", new RectangleF(69, -80, 70, 70), appearance);
            CheckCourse("courserenderer\\CircleGapScaling.ppen", courseDesignator15K, false, "scaling_15k_15krelative", new RectangleF(69, -80, 70, 70), appearance);
        }
コード例 #25
0
ファイル: SelectionMgr.cs プロジェクト: osorensen/PurplePen
        // Update the course
        void UpdateCourse()
        {
            CourseAppearance appearance = controller.GetCourseAppearance();

            // Get purple color.
            short purpleOcadId;
            float purpleC, purpleM, purpleY, purpleK;
            bool purpleOverprint;
            controller.GetPurpleColor(out purpleOcadId, out purpleC, out purpleM, out purpleY, out purpleK, out purpleOverprint);

            // Place the active course in the layout.
            activeCourse = new CourseLayout();
            activeCourse.SetLayerColor(CourseLayer.Descriptions, NormalCourseAppearance.blackColorOcadId, NormalCourseAppearance.blackColorName, NormalCourseAppearance.blackColorC, NormalCourseAppearance.blackColorM, NormalCourseAppearance.blackColorY, NormalCourseAppearance.blackColorK, false);
            activeCourse.SetLayerColor(CourseLayer.MainCourse, NormalCourseAppearance.courseOcadId, NormalCourseAppearance.courseColorName, purpleC, purpleM, purpleY, purpleK, 
                                       (purpleOverprint && (extraCourses == null || extraCourses.Count == 0))); 
            CourseFormatter.FormatCourseToLayout(symbolDB, activeCourseView, appearance, activeCourse, CourseLayer.MainCourse);

            if (showAllControls && !activeCourseDesignator.IsAllControls) {
                // Create the all controls view.
                CourseView allControlsView = CourseView.CreateFilteredAllControlsView(eventDB, new CourseDesignator[] { activeCourseDesignator }, allControlsFilter, 
                    new CourseViewOptions() { showNonDescriptionSpecials = false, showDescriptionSpecials = false });

                // Add it to the CourseLayout.
                activeCourse.SetLayerColor(CourseLayer.AllControls, NormalCourseAppearance.allControlsOcadId, NormalCourseAppearance.allControlsColorName,
                    NormalCourseAppearance.allControlsColorC, NormalCourseAppearance.allControlsColorM, NormalCourseAppearance.allControlsColorY, NormalCourseAppearance.allControlsColorK, purpleOverprint);
                CourseFormatter.FormatCourseToLayout(symbolDB, allControlsView, appearance, activeCourse, CourseLayer.AllControls);
            }

            if (extraCourses != null && extraCourses.Count > 0) {
                for (int i = 0; i < extraCourses.Count; ++i) {
                    Id<Course> courseId = extraCourses[i];
                    if (eventDB.IsCoursePresent(courseId)) {
                        AddExtraCourseToLayout(activeCourse, courseId, i % CourseLayout.EXTRACOURSECOUNT);
                    }
                }
            }
        }
コード例 #26
0
ファイル: PdfCourseTests.cs プロジェクト: osorensen/PurplePen
        public void PdfCreationOverprint()
        {
            CoursePdfSettings settings = new CoursePdfSettings();

            settings.mapDirectory              = settings.fileDirectory = false;
            settings.outputDirectory           = TestUtil.GetTestFile("controller\\pdf_create_overprint");
            settings.CourseIds                 = new Id <Course>[] { CourseId(1) };
            settings.ColorModel                = ColorModel.CMYK;
            settings.CropLargePrintArea        = false;
            settings.FileCreation              = CoursePdfSettings.PdfFileCreation.SingleFile;
            settings.PrintMapExchangesOnOneMap = false;

            CourseAppearance appearance = new CourseAppearance();

            appearance.purpleColorBlend = true;

            CreatePdfFiles(TestUtil.GetTestFile("courseprinting\\Overprint test.ppen"), settings, appearance,
                           new string[1] {
                TestUtil.GetTestFile("controller\\pdf_create_overprint\\Overprint test.pdf")
            },
                           new string[1] {
                TestUtil.GetTestFile("controller\\pdf_create_overprint\\Overprint test_expected.png")
            });
        }
コード例 #27
0
ファイル: PdfCourseTests.cs プロジェクト: osorensen/PurplePen
        public void PdfCreation1()
        {
            CoursePdfSettings settings = new CoursePdfSettings();

            settings.mapDirectory              = settings.fileDirectory = false;
            settings.outputDirectory           = TestUtil.GetTestFile("controller\\pdf_create1");
            settings.CourseIds                 = new Id <Course>[] { CourseId(1), CourseId(2), CourseId(0) };
            settings.ColorModel                = ColorModel.CMYK;
            settings.CropLargePrintArea        = false;
            settings.FileCreation              = CoursePdfSettings.PdfFileCreation.SingleFile;
            settings.PrintMapExchangesOnOneMap = false;

            CourseAppearance appearance = new CourseAppearance();

            appearance.purpleColorBlend = false;

            CreatePdfFiles(TestUtil.GetTestFile("courseprinting\\marymoor.ppen"), settings, appearance,
                           new string[1] {
                TestUtil.GetTestFile("controller\\pdf_create1\\Marymoor WIOL 2.pdf")
            },
                           new string[1] {
                TestUtil.GetTestFile("controller\\pdf_create1\\test1_page%d_baseline.png")
            });
        }
コード例 #28
0
ファイル: PdfCourseTests.cs プロジェクト: osorensen/PurplePen
        // Create some courses, write them as PDF, and check against a PNG snapshot of that PDF.
        void CreatePdfFiles(string file, CoursePdfSettings settings, CourseAppearance appearance, string[] expectedFiles, string[] expectedDumps)
        {
            EventDB eventDB = controller.GetEventDB();

            bool success = controller.LoadInitialFile(file, true);

            Assert.IsTrue(success);

            controller.SetCourseAppearance(appearance);

            for (int i = 0; i < expectedFiles.Length; ++i)
            {
                File.Delete(expectedFiles[i]);
            }

            success = controller.CreateCoursePdfs(settings);
            Assert.IsTrue(success);

            for (int i = 0; i < expectedFiles.Length; ++i)
            {
                CheckPdfDump(expectedFiles[i], expectedDumps[i]);
                File.Delete(expectedFiles[i]);
            }
        }
コード例 #29
0
        public void PrintCourses2()
        {
            CourseAppearance appearance = new CourseAppearance();

            appearance.controlCircleSize = 0.75F; //smaller circles
            appearance.lineWidth         = 3F;    // thin lines
            appearance.numberHeight      = 0.5F;  // small numbers.
            appearance.numberBold        = true;  // bold numbers.
            appearance.useDefaultPurple  = false;
            appearance.autoLegGapSize    = 0.0F;
            appearance.purpleC           = 0.32F;
            appearance.purpleY           = 1.00F;
            appearance.purpleM           = 0;
            appearance.purpleK           = 0.30F;

            controller.LoadInitialFile(TestUtil.GetTestFile("courseprinting\\marymoor.ppen"), true);
            CoursePrintSettings coursePrintSettings = new CoursePrintSettings();

            coursePrintSettings.CropLargePrintArea = false;
            coursePrintSettings.PrintingColorModel = ColorModel.RGB;

            coursePrintSettings.CourseIds = new Id <Course>[] { CourseId(1), CourseId(2), CourseId(0) };
            CoursePrintingTest("courseprinting\\test2", coursePrintSettings, appearance);
        }
コード例 #30
0
ファイル: CoursePdf.cs プロジェクト: osorensen/PurplePen
        // mapDisplay is a MapDisplay that contains the correct map. All other features of the map display need to be customized.
        public CoursePdf(EventDB eventDB, SymbolDB symbolDB, Controller controller, MapDisplay mapDisplay,
                         CoursePdfSettings coursePdfSettings, CourseAppearance appearance)
        {
            this.eventDB           = eventDB;
            this.symbolDB          = symbolDB;
            this.controller        = controller;
            this.mapDisplay        = mapDisplay;
            this.coursePdfSettings = coursePdfSettings;
            this.appearance        = appearance;

            // Set default features for printing.
            mapDisplay.MapIntensity = 1.0F;
            mapDisplay.AntiAlias    = false;
            mapDisplay.Printing     = true;
            mapDisplay.ColorModel   = coursePdfSettings.ColorModel;

            mapBounds = mapDisplay.MapBounds;

            if (mapDisplay.MapType == MapType.PDF)
            {
                // For PDF maps, we remove the PDF map from the MapDisplay and add it in separately.
                sourcePdfMapFileName = mapDisplay.FileName;
            }
        }
コード例 #31
0
ファイル: SelectionMgr.cs プロジェクト: osorensen/PurplePen
        // extraCourseIndex indicates the color/layer.
        private void AddExtraCourseToLayout(CourseLayout courseLayout, Id<Course> courseId, int extraCourseIndex)
        {
            if (extraCourseIndex >= CourseLayout.EXTRACOURSECOUNT)
                return;

            CourseAppearance appearance = controller.GetCourseAppearance();
            CourseLayer layer = CourseLayer.OtherCourse1 + extraCourseIndex;

            // Create the course view.
            CourseView courseView = CourseView.CreateCourseView(eventDB, new CourseDesignator(courseId),
                new CourseViewOptions() { showNonDescriptionSpecials = false, showDescriptionSpecials = false, showControlNumbers = false });

            // Add it to the CourseLayout.
            courseLayout.SetLayerColor(layer, (short) (NormalCourseAppearance.extraCourseOcadId + extraCourseIndex), 
                                              string.Format(NormalCourseAppearance.allControlsColorName, extraCourseIndex + 1),
                                              NormalCourseAppearance.extraCourseC[extraCourseIndex],
                                              NormalCourseAppearance.extraCourseM[extraCourseIndex],
                                              NormalCourseAppearance.extraCourseY[extraCourseIndex],
                                              NormalCourseAppearance.extraCourseK[extraCourseIndex],
                                              false);

            CourseFormatter.FormatCourseToLayout(symbolDB, courseView, appearance, courseLayout, layer,
                new CourseFormatterOptions() { showControlNumbers = false });
        }
コード例 #32
0
        // Do CheckCourse for normal and special appearances.
        void CheckCourseBothAppearances(string filename, CourseDesignator courseDesignator, bool addAllControls, string testName, RectangleF rect)
        {
            CourseAppearance specialAppearance;

            // Special appearance to test the usage of CourseAppearance.
            specialAppearance = new CourseAppearance();
            specialAppearance.controlCircleSize = 1.6F;  //big control circle
            specialAppearance.lineWidth = 0.2F; // thin lines
            specialAppearance.numberHeight = 2F; // really big numbers.
            specialAppearance.numberBold = true; // bold numbers
            specialAppearance.numberOutlineWidth = 0.13F;
            specialAppearance.autoLegGapSize = 0.0F;
            specialAppearance.useDefaultPurple = false;
            specialAppearance.purpleC = 0.32F;
            specialAppearance.purpleY = 1.00F;
            specialAppearance.purpleM = 0;
            specialAppearance.purpleK = 0.30F;

            CheckCourse(filename, courseDesignator, addAllControls, testName, rect, defaultCourseAppearance);
            CheckCourse(filename, courseDesignator, addAllControls, testName + "_special", rect, specialAppearance);
        }
コード例 #33
0
        public void PdfCreationPdfBaseMapRGB()
        {
            CoursePdfSettings settings = new CoursePdfSettings();
            settings.mapDirectory = settings.fileDirectory = false;
            settings.outputDirectory = TestUtil.GetTestFile("pdfcourse\\pdf_create7");
            settings.CourseIds = new Id<Course>[] { CourseId(1), CourseId(2), CourseId(3), CourseId(4) };
            settings.ColorModel = ColorModel.CMYK;
            settings.CropLargePrintArea = true;
            settings.FileCreation = CoursePdfSettings.PdfFileCreation.FilePerCourse;

            CourseAppearance appearance = new CourseAppearance();
            appearance.purpleColorBlend = true;

            CreatePdfFiles(TestUtil.GetTestFile("pdfcourse\\Lincoln Park PDF RGB.ppen"), settings, appearance,
                new string[] { TestUtil.GetTestFile("pdfcourse\\pdf_create7\\Short.pdf"),
                               TestUtil.GetTestFile("pdfcourse\\pdf_create7\\SmallScale.pdf"),
                               TestUtil.GetTestFile("pdfcourse\\pdf_create7\\LargeScale.pdf"),
                               TestUtil.GetTestFile("pdfcourse\\pdf_create7\\MediumScale.pdf")},
                new string[] { TestUtil.GetTestFile("pdfcourse\\pdf_create7\\Short_expected.png"),
                               TestUtil.GetTestFile("pdfcourse\\pdf_create7\\SmallScale_expected.png"),
                               TestUtil.GetTestFile("pdfcourse\\pdf_create7\\LargeScale_expected.png"),
                               TestUtil.GetTestFile("pdfcourse\\pdf_create7\\MediumScale_expected.png")});
        }
コード例 #34
0
        public void PdfPrintAreasAndPageSizes()
        {
            CoursePdfSettings settings = new CoursePdfSettings();
            settings.mapDirectory = settings.fileDirectory = false;
            settings.outputDirectory = TestUtil.GetTestFile("controller\\pdf_area");
            settings.CourseIds = new Id<Course>[] { CourseId(0), CourseId(1), CourseId(2), CourseId(3), CourseId(4) };
            settings.ColorModel = ColorModel.CMYK;
            settings.CropLargePrintArea = false;
            settings.FileCreation = CoursePdfSettings.PdfFileCreation.FilePerCourse;
            settings.PrintMapExchangesOnOneMap = false;

            CourseAppearance appearance = new CourseAppearance();
            appearance.purpleColorBlend = true;

            CreatePdfFiles(TestUtil.GetTestFile("courseprinting\\Lincoln Park PrintAreas 2.ppen"), settings, appearance,
                new string[] { TestUtil.GetTestFile("controller\\pdf_area\\All controls.pdf"),
                               TestUtil.GetTestFile("controller\\pdf_area\\Short.pdf"),
                               TestUtil.GetTestFile("controller\\pdf_area\\Long.pdf"),
                               TestUtil.GetTestFile("controller\\pdf_area\\Landscape.pdf"),
                               TestUtil.GetTestFile("controller\\pdf_area\\LandscapeLetter.pdf")},
                new string[] { TestUtil.GetTestFile("controller\\pdf_area\\All controls_expected.png"),
                               TestUtil.GetTestFile("controller\\pdf_area\\Short_expected.png"),
                               TestUtil.GetTestFile("controller\\pdf_area\\Long_expected.png"),
                               TestUtil.GetTestFile("controller\\pdf_area\\Landscape_expected.png"),
                               TestUtil.GetTestFile("controller\\pdf_area\\LandscapeLetter_expected.png")});
        }
コード例 #35
0
        public void PdfBadIStreamFallback()
        {
            CoursePdfSettings settings = new CoursePdfSettings();
            settings.mapDirectory = settings.fileDirectory = false;
            settings.outputDirectory = TestUtil.GetTestFile("controller\\pdf_badistream");
            settings.CourseIds = new Id<Course>[] { CourseId(1) };
            settings.ColorModel = ColorModel.CMYK;
            settings.CropLargePrintArea = false;
            settings.FileCreation = CoursePdfSettings.PdfFileCreation.FilePerCourse;
            settings.PrintMapExchangesOnOneMap = false;

            CourseAppearance appearance = new CourseAppearance();
            appearance.purpleColorBlend = true;

            CreatePdfFiles(TestUtil.GetTestFile("courseprinting\\Bad PDF Test.ppen"), settings, appearance,
                new string[] { TestUtil.GetTestFile("controller\\pdf_badistream\\Long.pdf") },
                new string[] { TestUtil.GetTestFile("controller\\pdf_badistream\\Long_expected.png") });
        }
コード例 #36
0
        private void CoursePrintingTest(string basename, CoursePrintSettings coursePrintSettings, CourseAppearance appearance, float dpi = 200)
        {
            GC.Collect();

            // Get the map display
            MapDisplay mapDisplay = new MapDisplay();
            mapDisplay.MapIntensity = 0.6F;
            mapDisplay.AntiAlias = true;
            mapDisplay.SetMapFile(controller.MapType, controller.MapFileName);
            if (controller.MapType == MapType.Bitmap)
                mapDisplay.Dpi = controller.MapDpi;
            mapDisplay.OcadOverprintEffect = appearance.useOcadOverprint;

            // Get the pages of the printing.
            CoursePrinting coursePrinter = new CoursePrinting(controller.GetEventDB(), ui.symbolDB, controller, mapDisplay.CloneToFullIntensity(), coursePrintSettings, appearance);
            Bitmap[] bitmaps = coursePrinter.PrintBitmaps();

            // Check all the pages against the baseline.
            for (int page = 0; page < bitmaps.Length; ++page) {
                Bitmap bm = bitmaps[page];
                string baseFileName = basename + "_page" + (page + 1).ToString();
                TestUtil.CheckBitmapsBase(bm, baseFileName);
                bm.Dispose();
            }

            // Only OCAD maps can be printed in XPS mode.
            if (controller.MapType == MapType.OCAD) {
                // Get the pages of the printing in XPS/WPF mode
                System.Windows.Media.Imaging.BitmapSource[] xpsBitmaps = coursePrinter.PrintXpsBitmaps(dpi);

                // Check all the pages against the baseline.
                for (int page = 0; page < xpsBitmaps.Length; ++page) {
                    var bm = xpsBitmaps[page];
                    string baseFileName = basename + "_xps_page" + (page + 1).ToString();
                    string newFileName = TestUtil.GetTestFile(basename + "_xps_page" + (page + 1).ToString() + "_new");
                    WritePng(bm, newFileName);
                    Bitmap newBitmap = (Bitmap)Image.FromFile(newFileName);

                    // For some reason, the XPS anti-aliasing varies slightly. Allow pixel difference to account.
                    TestUtil.CheckBitmapsBase(newBitmap, baseFileName, 19);
                }
            }
        }
コード例 #37
0
        public void PrintCoursesNoBlend()
        {
            controller.LoadInitialFile(TestUtil.GetTestFile("courseprinting\\marymoor.ppen"), true);
            CoursePrintSettings coursePrintSettings = new CoursePrintSettings();
            coursePrintSettings.CropLargePrintArea = false;
            coursePrintSettings.PrintingColorModel = ColorModel.CMYK;

            CourseAppearance appearance = new CourseAppearance();
            appearance.purpleColorBlend = false;

            coursePrintSettings.CourseIds = new Id<Course>[] { CourseId(1), CourseId(2), CourseId(0) };
            CoursePrintingTest("courseprinting\\noblend", coursePrintSettings, appearance);
        }
コード例 #38
0
        // Create some courses, write them, and check against a dump.
        void CreateOcadFiles(string file, OcadCreationSettings settings, CourseAppearance appearance, string[] expectedFiles, string[] expectedDumps, string[] bitmapFileNames = null, string[] bitmapFileBaselines = null)
        {
            EventDB eventDB = controller.GetEventDB();

            bool success = controller.LoadInitialFile(file, true);
            Assert.IsTrue(success);

            controller.SetCourseAppearance(appearance);

            for (int i = 0; i < expectedFiles.Length; ++i) {
                File.Delete(expectedFiles[i]);
            }

            success = controller.CreateOcadFiles(settings);
            Assert.IsTrue(success);

            for (int i = 0; i < expectedFiles.Length; ++i) {
                CheckDump(expectedFiles[i], expectedDumps[i]);
            }

            if (bitmapFileNames != null) {
                for (int i = 0; i < bitmapFileNames.Length; ++i) {
                    TestUtil.CompareBitmapBaseline(bitmapFileNames[i], bitmapFileBaselines[i]);
                }
            }
        }
コード例 #39
0
        public void PrintCourses2()
        {
            CourseAppearance appearance = new CourseAppearance();
            appearance.controlCircleSize = 0.75F;  //smaller circles
            appearance.lineWidth = 3F; // thin lines
            appearance.numberHeight = 0.5F; // small numbers.
            appearance.numberBold = true; // bold numbers.
            appearance.useDefaultPurple = false;
            appearance.autoLegGapSize = 0.0F;
            appearance.purpleC = 0.32F;
            appearance.purpleY = 1.00F;
            appearance.purpleM = 0;
            appearance.purpleK = 0.30F;

            controller.LoadInitialFile(TestUtil.GetTestFile("courseprinting\\marymoor.ppen"), true);
            CoursePrintSettings coursePrintSettings = new CoursePrintSettings();
            coursePrintSettings.CropLargePrintArea = false;
            coursePrintSettings.PrintingColorModel = ColorModel.RGB;

            coursePrintSettings.CourseIds = new Id<Course>[] { CourseId(1), CourseId(2), CourseId(0) };
            CoursePrintingTest("courseprinting\\test2", coursePrintSettings, appearance);
        }
コード例 #40
0
        public void PdfCreationBitmapBaseMapRGB()
        {
            CoursePdfSettings settings = new CoursePdfSettings();
            settings.mapDirectory = settings.fileDirectory = false;
            settings.outputDirectory = TestUtil.GetTestFile("controller\\pdf_create8");
            settings.CourseIds = new Id<Course>[1] { CourseId(1) };
            settings.ColorModel = ColorModel.RGB;
            settings.CropLargePrintArea = true;
            settings.FileCreation = CoursePdfSettings.PdfFileCreation.FilePerCourse;

            CourseAppearance appearance = new CourseAppearance();
            appearance.purpleColorBlend = true;

            CreatePdfFiles(TestUtil.GetTestFile("courseprinting\\Lincoln Park.ppen"), settings, appearance,
                new string[1] { TestUtil.GetTestFile("controller\\pdf_create8\\Short.pdf") },
                new string[1] { TestUtil.GetTestFile("controller\\pdf_create8\\Short_expected.png") });
        }
コード例 #41
0
        public void PrintOverprint()
        {
            controller.LoadInitialFile(TestUtil.GetTestFile("courseprinting\\Overprint test.ppen"), true);
            CoursePrintSettings coursePrintSettings = new CoursePrintSettings();
            coursePrintSettings.CropLargePrintArea = true;
            coursePrintSettings.PrintingColorModel = ColorModel.CMYK;

            coursePrintSettings.CourseIds = new Id<Course>[] { CourseId(1) };

            CourseAppearance appearance = new CourseAppearance();
            appearance.purpleColorBlend = true;
            appearance.useOcadOverprint = true;

            CoursePrintingTest("courseprinting\\overprint", coursePrintSettings, appearance, 200);
        }
コード例 #42
0
        public void PdfCreation2()
        {
            CoursePdfSettings settings = new CoursePdfSettings();
            settings.mapDirectory = settings.fileDirectory = false;
            settings.outputDirectory = TestUtil.GetTestFile("controller\\pdf_create2");
            settings.CourseIds = new Id<Course>[] { CourseId(1), CourseId(2), CourseId(0) };
            settings.ColorModel = ColorModel.RGB;
            settings.CropLargePrintArea = false;
            settings.FileCreation = CoursePdfSettings.PdfFileCreation.FilePerCourse;
            settings.PrintMapExchangesOnOneMap = false;

            CourseAppearance appearance = new CourseAppearance();
            appearance.controlCircleSize = 0.75F;  //smaller circles
            appearance.lineWidth = 3F; // thin lines
            appearance.numberHeight = 0.5F; // small numbers.
            appearance.numberBold = true; // bold numbers.
            appearance.numberOutlineWidth = 0.13F;
            appearance.useDefaultPurple = false;
            appearance.purpleColorBlend = true;
            appearance.autoLegGapSize = 0.0F;
            appearance.purpleC = 0.32F;
            appearance.purpleY = 1.00F;
            appearance.purpleM = 0;
            appearance.purpleK = 0.30F;

            settings.CourseIds = new Id<Course>[] { CourseId(1), CourseId(2), CourseId(0) };

            CreatePdfFiles(TestUtil.GetTestFile("courseprinting\\marymoor.ppen"), settings, appearance,
                new string[] { TestUtil.GetTestFile("controller\\pdf_create2\\Course 1.pdf"), TestUtil.GetTestFile("controller\\pdf_create2\\Course 2.pdf"), TestUtil.GetTestFile("controller\\pdf_create2\\All controls.pdf") },
                new string[] { TestUtil.GetTestFile("controller\\pdf_create2\\test2_course1_page%d_baseline.png"), TestUtil.GetTestFile("controller\\pdf_create2\\test2_course2_page%d_baseline.png"), TestUtil.GetTestFile("controller\\pdf_create2\\test2_allcontrols_page%d_baseline.png") });
        }
コード例 #43
0
        public void PdfCreationOverprint()
        {
            CoursePdfSettings settings = new CoursePdfSettings();
            settings.mapDirectory = settings.fileDirectory = false;
            settings.outputDirectory = TestUtil.GetTestFile("controller\\pdf_create_overprint");
            settings.CourseIds = new Id<Course>[] { CourseId(1) };
            settings.ColorModel = ColorModel.CMYK;
            settings.CropLargePrintArea = false;
            settings.FileCreation = CoursePdfSettings.PdfFileCreation.SingleFile;
            settings.PrintMapExchangesOnOneMap = false;

            CourseAppearance appearance = new CourseAppearance();
            appearance.purpleColorBlend = true;

            CreatePdfFiles(TestUtil.GetTestFile("courseprinting\\Overprint test.ppen"), settings, appearance,
                new string[1] { TestUtil.GetTestFile("controller\\pdf_create_overprint\\Overprint test.pdf") },
                new string[1] { TestUtil.GetTestFile("controller\\pdf_create_overprint\\Overprint test_expected.png") });
        }
コード例 #44
0
        // Create some courses, write them as PDF, and check against a PNG snapshot of that PDF.
        void CreatePdfFiles(string file, CoursePdfSettings settings, CourseAppearance appearance, string[] expectedFiles, string[] expectedDumps)
        {
            EventDB eventDB = controller.GetEventDB();

            bool success = controller.LoadInitialFile(file, true);
            Assert.IsTrue(success);

            controller.SetCourseAppearance(appearance);

            for (int i = 0; i < expectedFiles.Length; ++i) {
                File.Delete(expectedFiles[i]);
            }

            success = controller.CreateCoursePdfs(settings);
            Assert.IsTrue(success);

            for (int i = 0; i < expectedFiles.Length; ++i) {
                CheckPdfDump(expectedFiles[i], expectedDumps[i]);
                File.Delete(expectedFiles[i]);
            }
        }
コード例 #45
0
        void CheckCourse(string filename, CourseDesignator courseDesignator, bool addAllControls, string testName, RectangleF rect, CourseAppearance appearance)
        {
            SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml"));
            UndoMgr undomgr = new UndoMgr(5);
            EventDB eventDB = new EventDB(undomgr);
            CourseView courseView;
            CourseLayout course;

            eventDB.Load(TestUtil.GetTestFile(filename));
            eventDB.Validate();

            // Create the course
            courseView = CourseView.CreateViewingCourseView(eventDB, courseDesignator);
            course = new CourseLayout();
            course.SetLayerColor(CourseLayer.Descriptions, 0, "Black", 0, 0, 0, 1F, false);
            course.SetLayerColor(CourseLayer.MainCourse, 11, "Purple", 0.2F, 1.0F, 0.0F, 0.07F, false);
            CourseFormatter.FormatCourseToLayout(symbolDB, courseView, appearance, course, CourseLayer.MainCourse);

            // Add all controls if requested.
            if (addAllControls && courseDesignator.IsNotAllControls) {
                courseView = CourseView.CreateFilteredAllControlsView(eventDB, new CourseDesignator[] { courseDesignator }, ControlPointKind.None, false, true);
                course.SetLayerColor(CourseLayer.AllControls, 12, "LightPurple", 0.1F, 0.5F, 0.0F, 0.0F, false);
                CourseFormatter.FormatCourseToLayout(symbolDB, courseView, appearance, course, CourseLayer.AllControls);
            }

            // Render to a map
            Map map = course.RenderToMap();

            // Render map to the graphics.
            Bitmap bm = new Bitmap(1000,1000);
            using (Graphics g = Graphics.FromImage(bm)) {
                RenderOptions options = new RenderOptions();

                options.usePatternBitmaps = true;
                options.minResolution = (float) (rect.Width / bm.Width);
                options.renderTemplates = RenderTemplateOption.MapAndTemplates;

                g.ScaleTransform((float) (bm.Width / rect.Width), - (float) (bm.Height / rect.Height));
                g.TranslateTransform(-rect.Left, -rect.Top-rect.Height);

                g.Clear(Color.White);
                using (map.Read())
                    map.Draw(new GDIPlus_GraphicsTarget(g), rect, options, null);
            }

            TestUtil.CheckBitmapsBase(bm, "courserenderer\\" + testName);
        }
コード例 #46
0
        public void PdfCreation1()
        {
            CoursePdfSettings settings = new CoursePdfSettings();
            settings.mapDirectory = settings.fileDirectory = false;
            settings.outputDirectory = TestUtil.GetTestFile("controller\\pdf_create1");
            settings.CourseIds = new Id<Course>[] { CourseId(1), CourseId(2), CourseId(0) };
            settings.ColorModel = ColorModel.CMYK;
            settings.CropLargePrintArea = false;
            settings.FileCreation = CoursePdfSettings.PdfFileCreation.SingleFile;
            settings.PrintMapExchangesOnOneMap = false;

            CourseAppearance appearance = new CourseAppearance();
            appearance.purpleColorBlend = false;

            CreatePdfFiles(TestUtil.GetTestFile("courseprinting\\marymoor.ppen"), settings, appearance,
                new string[1] { TestUtil.GetTestFile("controller\\pdf_create1\\Marymoor WIOL 2.pdf") },
                new string[1] { TestUtil.GetTestFile("controller\\pdf_create1\\test1_page%d_baseline.png") });
        }
コード例 #47
0
        // Create a description course object to use in testing.
        DescriptionCourseObj CreateDescriptionCourseObj(CourseAppearance appearance, int numColumns = 1)
        {
            SymbolDB symbolDB = new SymbolDB(Util.GetFileInAppDirectory("symbols.xml"));
            UndoMgr undomgr = new UndoMgr(5);
            EventDB eventDB = new EventDB(undomgr);
            eventDB.Load(TestUtil.GetTestFile("coursesymbols\\sampleevent1.coursescribe"));
            eventDB.Validate();
            CourseView courseView = CourseView.CreateViewingCourseView(eventDB, new CourseDesignator(CourseId(3)));
            DescriptionFormatter descFormatter = new DescriptionFormatter(courseView, symbolDB);
            DescriptionLine[] description = descFormatter.CreateDescription(false);

            return new DescriptionCourseObj(Id<Special>.None, new PointF(-4, 4), 0.9F / numColumns, symbolDB, description, DescriptionKind.Symbols, numColumns);
        }
コード例 #48
0
        public void ChangeCourseAppearance()
        {
            Setup("changeevent\\sampleevent3.ppen");

            CourseAppearance courseAppearance = new CourseAppearance();
            courseAppearance.lineWidth = 1.3F;
            courseAppearance.controlCircleSize = 0.9F;
            courseAppearance.numberHeight = 1.1F;
            courseAppearance.numberBold = true;
            courseAppearance.numberOutlineWidth = 0.33F;
            courseAppearance.useDefaultPurple = false;
            courseAppearance.purpleC = 0.4F;
            courseAppearance.purpleM = 0.5F;
            courseAppearance.purpleY = 0.6F;
            courseAppearance.purpleK = 0.74F;

            undomgr.BeginCommand(7712, "Change course appearance");
            ChangeEvent.ChangeCourseAppearance(eventDB, courseAppearance);
            undomgr.EndCommand(7712);

            eventDB.Validate();

            CourseAppearance n = eventDB.GetEvent().courseAppearance;
            Assert.AreEqual(1.3F, n.lineWidth);
            Assert.AreEqual(0.9F, n.controlCircleSize);
            Assert.AreEqual(1.1F, n.numberHeight);
            Assert.AreEqual(true, n.numberBold);
            Assert.AreEqual(0.33F, n.numberOutlineWidth);
            Assert.AreEqual(false, n.useDefaultPurple);
            Assert.AreEqual(0.4F, n.purpleC);
            Assert.AreEqual(0.5F, n.purpleM);
            Assert.AreEqual(0.6F, n.purpleY);
            Assert.AreEqual(0.74F, n.purpleK);

            undomgr.Undo();
            eventDB.Validate();

            n = eventDB.GetEvent().courseAppearance;
            Assert.AreEqual(1.0F, n.lineWidth);
            Assert.AreEqual(1.0F, n.controlCircleSize);
            Assert.AreEqual(1.0F, n.numberHeight);
            Assert.AreEqual(false, n.numberBold);
            Assert.AreEqual(0, n.numberOutlineWidth);
            Assert.AreEqual(true, n.useDefaultPurple);
        }
コード例 #49
0
        public void OcadCreation7()
        {
            OcadCreationSettings settings = new OcadCreationSettings();
            settings.mapDirectory = settings.fileDirectory = false;
            settings.outputDirectory = TestUtil.GetTestFile("controller\\ocad_create7");
            settings.CourseIds = new Id<Course>[1] { CourseId(2) };
            settings.fileFormat = new MapFileFormat(MapFileFormatKind.OCAD, 8);

            CourseAppearance appearance = new CourseAppearance();
            appearance.controlCircleSize = 1.1F;  //smaller circles
            appearance.lineWidth = 1.1F;
            appearance.numberHeight = 1.2F; // slightly big numbers.
            appearance.numberBold = true;
            appearance.useDefaultPurple = false;

            settings.cyan = appearance.purpleC = 0.00F;
            settings.yellow = appearance.purpleY = 1.00F;
            settings.magenta = appearance.purpleM = 1.00F;
            settings.black = appearance.purpleK = 0.30F;

            Directory.CreateDirectory(settings.outputDirectory);

            CreateOcadFiles(TestUtil.GetTestFile("controller\\marymoor4.ppen"), settings, appearance,
                new string[1] { TestUtil.GetTestFile("controller\\ocad_create7\\Course 2.ocd") },
                new string[1] { TestUtil.GetTestFile("controller\\ocad_create7\\Course 2_expected.txt") });
        }
コード例 #50
0
        public void PdfCreation4()
        {
            CoursePdfSettings settings = new CoursePdfSettings();
            settings.mapDirectory = settings.fileDirectory = false;
            settings.outputDirectory = TestUtil.GetTestFile("controller\\pdf_create4");
            settings.CourseIds = new Id<Course>[1] { CourseId(2) };
            settings.ColorModel = ColorModel.RGB;
            settings.CropLargePrintArea = true;
            settings.FileCreation = CoursePdfSettings.PdfFileCreation.FilePerCourse;

            CourseAppearance appearance = new CourseAppearance();
            appearance.purpleColorBlend = true;

            Directory.CreateDirectory(settings.outputDirectory);

            CreatePdfFiles(TestUtil.GetTestFile("controller\\marymoor4.ppen"), settings, appearance,
                new string[1] { TestUtil.GetTestFile("controller\\pdf_create4\\Course 2.pdf") },
                new string[1] { TestUtil.GetTestFile("controller\\pdf_create4\\Course 2_expected.png") });
        }