Esempio n. 1
0
 private static GeometryModel3D CreateVoxelModel3D(RoomVoxel v)
 {
     double size = 0.98*v.Scale;
     var m = new GeometryModel3D();
     var mb = new MeshBuilder();
     mb.AddBox(new Point3D(0, 0, 0), size, size, size);
     m.Geometry = mb.ToMesh();
     m.Material = MaterialHelper.CreateMaterial(v.Colour, v.Scale*.7);
     m.Transform = new TranslateTransform3D(v.Position.X, v.Position.Y, v.Position.Z);
     return m;
 }
Esempio n. 2
0
 /// <summary>
 ///     Shows a preview voxel adjacent to the specified model (source).
 ///     If source is null, hide the preview.
 /// </summary>
 /// <param name="source">The source.</param>
 /// <param name="normal">The normal.</param>
 public void PreviewVoxel(Model3D source, Vector3D normal = default(Vector3D))
 {
     if (PreviewModel != null) {
         Model.Children.Remove(PreviewModel);
     }
     PreviewModel = null;
     if (source == null) {
         return;
     }
     if (!ModelToVoxel.ContainsKey(source)) {
         return;
     }
     RoomVoxel v = ModelToVoxel[source];
     Color previewColor = Color.FromArgb(0x80, CurrentColor.R, CurrentColor.G, CurrentColor.B);
     var pv = new RoomVoxel(v.Position + normal, previewColor);
     PreviewModel = CreateVoxelModel3D(pv);
     Model.Children.Add(PreviewModel);
 }