// Define the model.
        private void DefineModel(Model3DGroup group)
        {
            //// Verify the icosahedron calculations.
            //MeshExtensions.VerifyIcosahedron();

            // Show the axes.
            MeshExtensions.AddAxes(group);

            const double scale = 0.8;

            // Make a solid dodecahedron.
            MeshGeometry3D mesh1 = new MeshGeometry3D();

            mesh1.AddDodecahedron();
            mesh1.ApplyTransformation(new ScaleTransform3D(scale, scale, scale));
            group.Children.Add(mesh1.MakeModel(Brushes.Red));

            // Make a translucent icosahedron.
            MeshGeometry3D mesh2 = new MeshGeometry3D();

            mesh2.AddIcosahedron();
            double icoScale = scale * G3.DodecahedronCircumradius() / G3.IcosahedronInradius();

            mesh2.ApplyTransformation(new ScaleTransform3D(icoScale, icoScale, icoScale));
            mesh2.ApplyTransformation(D3.Rotate(D3.YVector(), D3.Origin, 180));
            Brush         brush  = new SolidColorBrush(Color.FromArgb(128, 128, 255, 128));
            MaterialGroup group2 = D3.MakeMaterialGroup(
                new DiffuseMaterial(brush),
                new SpecularMaterial(Brushes.White, 100));

            group.Children.Add(mesh2.MakeModel(group2));

            // Make a translucent dodecahedron.
            MeshGeometry3D mesh3 = new MeshGeometry3D();

            mesh3.AddDodecahedron();
            double dodScale = icoScale * G3.IcosahedronCircumradius() / G3.DodecahedronInradius();

            mesh3.ApplyTransformation(new ScaleTransform3D(dodScale, dodScale, dodScale));
            MaterialGroup group3 = D3.MakeMaterialGroup(
                new DiffuseMaterial(brush),
                new SpecularMaterial(Brushes.White, 100));

            group.Children.Add(mesh3.MakeModel(group3));
        }