0
我有一個帶有天空盒的場景,我想獲得用戶點擊投影到天空盒上的點。HelixToolkit如何從HitTest中排除元素
我使用HelixViewport3D.FindNearestPoint(Point pt)
來得到這個點,除非在點擊和天空盒之間有任何東西,否則它工作得很好。在這種情況下,它將返回投射到天空前面物體上的點。
有沒有什麼辦法來標記一個元素,所以它會在HitTests中被忽略?
我有一個帶有天空盒的場景,我想獲得用戶點擊投影到天空盒上的點。HelixToolkit如何從HitTest中排除元素
我使用HelixViewport3D.FindNearestPoint(Point pt)
來得到這個點,除非在點擊和天空盒之間有任何東西,否則它工作得很好。在這種情況下,它將返回投射到天空前面物體上的點。
有沒有什麼辦法來標記一個元素,所以它會在HitTests中被忽略?
您可以在任何Visual3D或Geometry3D上捕獲點爲您的Visual3D對象命名。
ModelVisual3D modelVisual3D = new ModelVisual3D();
modelVisual3D.SetName("ModelName");
您可以使用FindHits方法與HelixViewPort3D
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
}
}
}