private void ViewModelRequestAttachToSceneHandler(Model3D model3D) { if (!model3D.IsAttached && View != null && View.RenderHost != null) { model3D.Attach(View.RenderHost); } }
protected void OnRequestAttachToScene(Model3D model3D) { if (RequestAttachToScene != null) { RequestAttachToScene(model3D); } }
public void OnModelHovered(HelixToolkit.Wpf.SharpDX.Model3D model) { if (this.HoverIfcItem != null) { HoverIfcItem.Mesh3d.Material = PhongMaterials.Silver; HoverIfcItem = null; } if (model != null) { var mesh = (model as MeshGeometryModel3D); if (mesh != null && this.IfcObject.MeshToIfcItems.ContainsKey(mesh)) { mesh.Material = hoverMaterial; HoverIfcItem = this.IfcObject.MeshToIfcItems[mesh]; } } }
private void ViewModelRequestAttachToSceneHandler(Model3D model3D) { if (model3D is GeometryModel3D) { if (View != null && View.RenderHost != null && !model3D.IsAttached) { model3D.Attach(View.RenderHost); } } else { //This is for Directional Light. When a watch is attached, //Directional light has to be attached one more time. if (!model3D.IsAttached && View != null && View.RenderHost != null) { model3D.Attach(View.RenderHost); } } }
private void OnModelHovered(Model3D model) { if (_hoverIfcItem != null) { FillMeshByIfcColor(_hoverIfcItem); _hoverIfcItem = null; } if (model != null) { var mesh = (model as MeshGeometryModel3D); if (mesh != null && _meshToIfcItems.ContainsKey(mesh)) { mesh.Material = _hoverMaterial; _hoverIfcItem = _meshToIfcItems[mesh]; } } Redraw(); }
public void OnModelSelected(HelixToolkit.Wpf.SharpDX.Model3D model) { if (SelectedIfcItem != null) { SelectedIfcItem.ifcTreeItem.treeNode.IsSelected = false; SelectedIfcItem.Mesh3d.Material = PhongMaterials.Bronze; SelectedIfcItem = null; } if (model != null) { var mesh = (model as MeshGeometryModel3D); if (mesh != null && this.IfcObject.MeshToIfcItems.ContainsKey(mesh)) { mesh.Material = selectMaterial; SelectedIfcItem = this.IfcObject.MeshToIfcItems[mesh]; SelectedIfcItem.ifcTreeItem.treeNode.IsSelected = true; SelectedIfcItem.ifcTreeItem.treeNode.Focus(); } } }
private void OnModelSelected(Model3D model) { if (_selectedIfcItem != null) { _selectedIfcItem.ifcTreeItem.treeNode.IsSelected = false; FillMeshByIfcColor(_selectedIfcItem); _selectedIfcItem = null; } if (model != null) { var mesh = (model as MeshGeometryModel3D); if (mesh != null && _meshToIfcItems.ContainsKey(mesh)) { mesh.Material = _selectMaterial; _selectedIfcItem = _meshToIfcItems[mesh]; _selectedIfcItem.ifcTreeItem.treeNode.IsSelected = true; _selectedIfcItem.ifcTreeItem.treeNode.Focus(); // _selectedIfcItem.ifcTreeItem.treeNode.ExpandSubtree(); } } Redraw(); }
/// <summary> /// Traverses the Visual3D/Model3D tree and invokes the specified action on each Model3D of the specified type. /// </summary> /// <typeparam name="T"> /// The type filter. /// </typeparam> /// <param name="element"> /// The element. /// </param> /// <param name="action"> /// The action. /// </param> public static void Traverse <T>(this Model3D element, Action <T, Transform3D> action) where T : Model3D { Traverse(element, action); }
/// <summary> /// Exports the specified model. /// </summary> /// <param name="model"> /// The model. /// </param> public void Export(Model3D model) { this.ExportHeader(); model.Traverse <GeometryModel3D>(this.ExportModel); }