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); }
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"); }
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); }
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"); }
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"); }
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)); }
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"); }
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); }