0

我已经开始使用 openinventor。我在查看器中有一个 socube。我想检查一下 socube 是否在镜头前。因此,当我将立方体移动到远离相机视图的某个地方时,值应该是错误的。

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

4

1 回答 1

0

我确认 Open Inventor 不提供实现此查询的方法。但是,可以使用您可以查询的信息编写一个。

如果您可以接受一个大致正确的答案,那么您的目标就是回答这个问题:几何的边界框是否与视锥相交?使用SoGetBoundingBoxAction获取bounding box,然后从当前相机获取当前view volume参数,如viewer->getCamera()->getViewVolume()。

于 2018-02-17T00:31:14.553 回答