|
File Details
THIS IS NOT THE ENTIRE SOURCE, ONLY KEY SNIPPETS.
<Window MouseRightButtonDown="OnMouseRightButtonDown" …>
public void OnMouseRightButtonDown(object sender, System.Windows.Input.MouseButtonEventArgs args) { Point mouseposition = args.GetPosition(vp); PointHitTestParameters pointparams = new PointHitTestParameters(mouseposition);
//test for a result in the Viewport3D VisualTreeHelper.HitTest(vp, null, HTResult, pointparams); }
public HitTestResultBehavior HTResult(System.Windows.Media.HitTestResult rawresult) { RayHitTestResult rayResult = rawresult as RayHitTestResult; if (rayResult != null) { RayMeshGeometry3DHitTestResult rayMeshResult = rayResult as RayMeshGeometry3DHitTestResult; if (rayMeshResult != null) { GeometryModel3D hitgeo = rayMeshResult.ModelHit as GeometryModel3D; UpdateMaterial(hitgeo); } } return HitTestResultBehavior.Continue; }
public void UpdateMaterial(GeometryModel3D gm3d) { VisualBrush VB = new VisualBrush(); if (material1) { material1 = false; VB.Visual = UI2Contents; } else { material1 = true; VB.Visual = UI1Contents; } DiffuseMaterial myDiffuseMaterial = new DiffuseMaterial(VB); MaterialGroup mg = new MaterialGroup(); mg.Children.Add(myDiffuseMaterial); gm3d.Material = mg; }
|