Example #1
0
        private void CreateControlNumber(CourseView.ControlView controlView, ControlPosition controlPosition)
        {
            Id <ControlPoint>  controlId       = controlView.controlId;
            Id <CourseControl> courseControlId = controlView.courseControlIds[0];
            ControlPoint       control         = eventDB.GetControl(controlId);
            PointF             location        = LocationFromAbstractPosition(controlPosition.x, controlPosition.y);

            CourseLayer layer;

            if (ControlViewInSpecificVariation(controlView))
            {
                layer = courseLayerSpecificVariation;
            }
            else
            {
                layer = courseLayerAllVariationsAndParts;
            }

            CourseObj courseObj;

            switch (control.kind)
            {
            case ControlPointKind.Start:
            case ControlPointKind.MapExchange:
                // Triangle looks best if we displace it down a bit (0.8 looks right).
                courseObj = new StartCourseObj(controlId, courseControlId, courseObjRatio * 0.75F, appearance, 0, new PointF(location.X, location.Y - 0.8F), CrossHairOptions.NoCrossHair);
                break;

            case ControlPointKind.Finish:
                courseObj = new FinishCourseObj(controlId, courseControlId, courseObjRatio * 0.75F, appearance, null, location, CrossHairOptions.NoCrossHair);
                break;

            case ControlPointKind.Normal:
                courseObj = new ControlNumberCourseObj(controlId, courseControlId, courseObjRatio, appearance, control.code, location);
                break;

            case ControlPointKind.CrossingPoint:
                courseObj = new CrossingCourseObj(controlId, courseControlId, Id <Special> .None, courseObjRatio * 1.5F, appearance, 0, location);
                break;

            case ControlPointKind.MapIssue:
                courseObj = new MapIssueCourseObj(controlId, courseControlId, courseObjRatio * 1.5F, appearance, -90, new PointF(location.X - 0.8F, location.Y), MapIssueCourseObj.RenderStyle.WithTail);
                break;

            default:
                Debug.Fail("bad control kind");
                return;
            }

            courseObj.layer = layer;
            courseLayout.AddCourseObject(courseObj);
        }
Example #2
0
 public void ControlNumberOffset()
 {
     CourseObj courseobj = new ControlNumberCourseObj(ControlId(0), CourseControlId(0), 1.0F, defaultCourseAppearance, "37", new PointF(0, 0));
     CheckOffsetBitmap(courseobj, "control_number_offset");
     courseobj = new ControlNumberCourseObj(ControlId(0), CourseControlId(0), 0.5F, defaultCourseAppearance, "37", new PointF(0.1F, 0.4F));
     CheckOffsetBitmapSmall(courseobj, "control_number_offset");
 }
Example #3
0
 public void ControlNumberSpecial()
 {
     CourseObj courseobj = new ControlNumberCourseObj(ControlId(0), CourseControlId(0), 1.0F, specialAppearance, "37", new PointF(0, 0));
     CheckRenderBitmap(courseobj, "control_number_special", Color.Aquamarine);
     courseobj = new ControlNumberCourseObj(ControlId(0), CourseControlId(0), 0.5F, specialAppearance, "37", new PointF(0, 0));
     CheckRenderBitmapSmall(courseobj, "control_number_special", Color.Aquamarine);
 }
Example #4
0
 public void ControlNumberHighlightSpecial()
 {
     CourseObj courseobj = new ControlNumberCourseObj(ControlId(0), CourseControlId(0), 1.0F, specialAppearance, "37", new PointF(0, 0));
     CheckHighlightBitmap(courseobj, "control_number_highlight_special");
     courseobj = new ControlNumberCourseObj(ControlId(0), CourseControlId(0), 0.5F, specialAppearance, "37", new PointF(0.1F, 0.4F));
     CheckHighlightBitmapSmall(courseobj, "control_number_highlight_special");
 }
Example #5
0
 public void ControlNumberDump()
 {
     CourseObj courseobj = new ControlNumberCourseObj(ControlId(23), CourseControlId(78), 1.0F, defaultCourseAppearance, "37", new PointF(1, 1));
     AssertDump(courseobj, "ControlNumber:  control:23  course-control:78  scale:1  text:37  top-left:(-2.1,4.11)\r\n                font-name:Arial  font-style:Regular  font-height:5.57");
 }
Example #6
0
        public void ControlNumberDistance()
        {
            CourseObj courseobj = new ControlNumberCourseObj(ControlId(0), CourseControlId(0), 1.0F, defaultCourseAppearance, "37", new PointF(0, 0));
            Assert.AreEqual(0.0, courseobj.DistanceFromPoint(new PointF(2, 1)));
            Assert.AreEqual(0.89, Math.Round(courseobj.DistanceFromPoint(new PointF(1, 4)), 2));
            Assert.AreEqual(0.9, Math.Round(courseobj.DistanceFromPoint(new PointF(4, 1)), 2));
            Assert.AreEqual(1.27, Math.Round(courseobj.DistanceFromPoint(new PointF(4, 4)), 2));

            courseobj = new ControlNumberCourseObj(ControlId(0), CourseControlId(0), 0.5F, defaultCourseAppearance, "37", new PointF(0, 0));
            Assert.AreEqual(0.0, courseobj.DistanceFromPoint(new PointF(1, -0.5F)));
            Assert.AreEqual(2.44, Math.Round(courseobj.DistanceFromPoint(new PointF(1, 4)), 2));
            Assert.AreEqual(2.45, Math.Round(courseobj.DistanceFromPoint(new PointF(4, 1)), 2));
            Assert.AreEqual(3.46, Math.Round(courseobj.DistanceFromPoint(new PointF(4, 4)), 2));
        }
Example #7
0
 public void ControlNumber()
 {
     CourseObj courseobj = new ControlNumberCourseObj(ControlId(0), CourseControlId(0), 1.0F, defaultCourseAppearance, "37", new PointF(0, 0));
     CheckRenderBitmap(courseobj, "control_number");
     courseobj = new ControlNumberCourseObj(ControlId(0), CourseControlId(0), 0.5F, defaultCourseAppearance, "37", new PointF(0, 0));
     CheckRenderBitmapSmall(courseobj, "control_number");
 }
Example #8
0
        public void TextObjectEquals()
        {
            CourseObj courseobj = new ControlNumberCourseObj(ControlId(0), CourseControlId(0), 1.0F, defaultCourseAppearance, "37", new PointF(0, 0));
            CourseObj courseobj2 = new ControlNumberCourseObj(ControlId(0), CourseControlId(0), 1.0F, defaultCourseAppearance, "37", new PointF(0, 0));
            CourseObj courseobj3 = new ControlNumberCourseObj(ControlId(1), CourseControlId(0), 1.0F, defaultCourseAppearance, "37", new PointF(0, 0));
            CourseObj courseobj4 = new ControlNumberCourseObj(ControlId(0), CourseControlId(1), 1.0F, defaultCourseAppearance, "37", new PointF(0, 0));
            CourseObj courseobj5 = new ControlNumberCourseObj(ControlId(0), CourseControlId(0), 2.0F, defaultCourseAppearance, "37", new PointF(0, 0));
            CourseObj courseobj6 = new ControlNumberCourseObj(ControlId(0), CourseControlId(0), 1.0F, defaultCourseAppearance, "47", new PointF(0, 0));
            CourseObj courseobj7 = new ControlNumberCourseObj(ControlId(0), CourseControlId(0), 1.0F, defaultCourseAppearance, "37", new PointF(0, -1));
            CourseObj courseobj8 = new CodeCourseObj(ControlId(0), CourseControlId(0), 1.0F, defaultCourseAppearance, "37", new PointF(0, 0));

            Assert.AreEqual(courseobj, courseobj);
            Assert.AreEqual(courseobj, courseobj2);
            Assert.AreNotEqual(courseobj, courseobj3);
            Assert.AreNotEqual(courseobj, courseobj4);
            Assert.AreNotEqual(courseobj, courseobj5);
            Assert.AreNotEqual(courseobj, courseobj6);
            Assert.AreNotEqual(courseobj, courseobj7);
            Assert.AreNotEqual(courseobj, courseobj8);
        }