I have several geometry meshes in my Viewport3D, these have bounds of (w:1800, h:500, d:25).
When a user clicks in the middle of the mesh, I want the Point3D of (900, 500, 25)...
How can I achieve this?
Thanks! Mark
I have several geometry meshes in my Viewport3D, these have bounds of (w:1800, h:500, d:25).
When a user clicks in the middle of the mesh, I want the Point3D of (900, 500, 25)...
How can I achieve this?
Thanks! Mark
Just use
VisualTreeHelper.HitTest
with the callback.If you have a
Viewport3D
containing the model, you can just pass in aPointHitTestParameters
containing the mouse location.If you need to operate directly on a
Visual3D
, pass in aRayHitTestParameters
computed from your camera parameters and the mouse location.In either case your callback will be called with a
RayTestHitResult
, and if you hit a mesh it will be aRayMeshGeometry3DHitTestResult
. This includes aPoint3D
property telling you the 3D point in space that was hit, and also the mesh and triangle that was hit.See 3D Hit testing for more details.