【问题标题】:HelixToolkit how to exclude elements from HitTestHelixToolkit 如何从 HitTest 中排除元素
【发布时间】:2016-12-22 01:09:05
【问题描述】:

我有一个带有天空盒的场景,我想将用户点击的点投影到天空盒上。

我正在使用HelixViewport3D.FindNearestPoint(Point pt) 来理解这一点,效果很好,除非在点击和天空盒之间有任何东西。在这种情况下,它会返回投影到天蟒前面物体上的点。

有没有办法标记一个元素,使其在 HitTests 中被忽略?

【问题讨论】:

    标签: c# wpf helix-3d-toolkit


    【解决方案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
            }
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-11-23
      • 1970-01-01
      • 2019-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-24
      • 2016-02-21
      相关资源
      最近更新 更多