Exemplo n.º 1
0
 /// <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();
     }
 }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 3
0
        /// <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();
            }
        }