我已经开始使用openinventor了。我在查看器里有一个socube。我想检查一下socube是不是在照相机前面。因此,当我将立方体移动到远离相机视图的地方时,该值应为false。
SoSeparator root = new SoSeparator();
SoMaterial Material = new SoMaterial();
Material.diffuseColor.SetValue(1.0f, 0.0f, 0.0f); // Red
root.AddChild(Material);
root.AddChild(new SoCone());
viewer = new SoWinExaminerViewer(this);
viewer.SetTitle("Example 1.1 .NET");
viewer.SetSceneGraph(root);
viewer.ViewAll(); 现在我想添加一个类似这样的行为:如果我将圆锥体从摄像头移开,它将返回false
发布于 2018-02-17 08:31:15
我确认Open Inventor不提供实现此查询的方法。但是,可以使用您可以查询的信息编写一个。
如果你能接受一个近似正确的答案,那么你的目标就是回答这个问题:几何图形的边界框是否与视图平截体相交?使用SoGetBoundingBoxAction获取边界框,然后从当前摄像头获取当前视图体积参数,例如viewer->getCamera()->getViewVolume()。
https://stackoverflow.com/questions/48807322
复制相似问题