Welcome to Windows Presentation Foundation (WPF)
Top Tasks :

3D Hittesting/Trackball

File Details
Downloads: 879 File Size: 47.4kB
Posted By: karstenj Views: 3161
Date Added: 8 Nov 2006
Photobucket - Video and Image Hosting

 

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;

}

 

Comments
No comments exist for this file.

Add Comment

Name (required)
Web Site (optional)
Comment (required)
Add

Copyright © 2006 Microsoft Corporation. All Rights Reserved. | Terms of Use | Privacy Statement | Contact Us