/// <summary> /// Create a die with the number of specified sides. . /// </summary> /// <param name="generator">Random number generator.</param> /// <param name="sides">Number of sides. Unspecified default value is D6.</param> public Die(IRandomGenerator generator, DieShape shape = DieShape.D6) { if (System.Enum.IsDefined(typeof(DieShape), shape)) { _generator = generator; Shape = shape; } else { throw new ArgumentException(); } }
/// <summary> /// Change the selected shape for a die. /// </summary> /// <param name="display"></param> /// <param name="shape"></param> /// <param name="color"></param> private void ChangeDie(ModelVisual3D display, DieShape shape, Color color) { var objs = display.Children.ToList(); foreach (var obj in objs) { display.Children.Remove(obj); } var die = CreateDie(shape, color); display.Children.Add(die); }
/// <summary> /// Create a 3D Die /// </summary> /// <param name="shape">DieShape</param> /// <param name="color">Color</param> /// <returns>WPF 3D Object</returns> private Visual3D CreateDie(DieShape shape, Color color) { DiffuseMaterial material = new DiffuseMaterial(new SolidColorBrush(color)); if (shape == DieShape.D4) { return new Tetrahedron() { Material = material } } ; else if (shape == DieShape.D6) { return new Box(1, 1, 1) { Material = material } } ; else if (shape == DieShape.D8) { return new Octahedron() { Material = material } } ; else if (shape == DieShape.D12) { return new Dodecahedron() { Material = material } } ; else if (shape == DieShape.D20) { return new Icosahedron() { Material = material } } ; else { throw new ArgumentException(); } }