2016-11-07 2 views
0

私はスカイボックス付きのシーンを持っており、ユーザーがSkyboxに投影したポイントを取得したいと思います。HelixToolkit HitTestから要素を除外する方法

私はHelixViewport3D.FindNearestPoint(Point pt)を使用していますが、クリックとスカイボックスの間に何かがある場合を除き、非常にうまく動作します。この状況では、スカイボックの前のオブジェクトに投影された点を返します。

HitTestsで無視されるように要素をフラグする方法はありますか?

答えて

1

任意のVisual3DまたはGeometry3Dのポイントをキャッチする Visual3Dオブジェクトに名前を付けます。

ModelVisual3D modelVisual3D = new ModelVisual3D(); 
modelVisual3D.SetName("ModelName"); 

あなたのHelixViewPort3DでFindHitsメソッドを使用することができます

Point3D point3D; 
var hitList = yourHelixViewPort.ViewPort.FindHits(Point point); 
foreach (var hit in hitList) 
{ 
    if (hit.Visual != null) 
    { 
     if (hit.Visual.GetName() == "ModelName") 
     { 
      point3D = hit.Position; 
      // You can use also hit.Mesh 
      // also hit.Model 
      // also hit.Visual 
      // also hit.Normal 
     } 
    } 
} 
関連する問題