使用openinventor,实时修改SoCamera::position属性后,不能及时显示的问题
在winApi中不存在这样的问题,
Widget myWindow = SoXt::init(argv[0]);
if (myWindow == NULL) exit(1);
SoSeparator *root = new SoSeparator;
SoPerspectiveCamera *perspViewAll = new SoPerspectiveCamera;
root->addChild(perspViewAll);
……
root->addChild(fileContents);
SoXtRenderArea *myRenderArea = new SoXtRenderArea(myWindow);
……
SbViewportRegion myRegion(myRenderArea->getSize());
perspViewAll->viewAll(root, myRegion);
myRenderArea->setSceneGraph(root);
myRenderArea->setTitle("Cameras");
myRenderArea->show();
……
SoXt::show(myWindow);
SoXt::mainLoop();
然后在定时器中改变它的位置属性,camera的变化在显示窗口中就体现出来了。
而在MFC中:
节点的添加类似API,不同的是直接使用 IvfSetSceneGraph( root );
来实现窗口显示功能。(我怀疑问题也许就在这边)
调试发现,camera的位置属性也随着时间在变化,可是就是没有体现在窗口中。
请教这是为什么呢?有什么办法解决吗?
另外:
我在编程时还发现如下问题:
我将以上Camera换作一个SoSwitch节点,其下再添加两个Camera(默认设置),程序中对其进行切换操作,结果发现只有index=0的camera,窗口中看到了物体,而在API中没有这样的问题的。
问题点数:0、回复次数:1Top
1 楼shaolunyuan(袁绍伦)回复于 2003-09-21 23:56:09 得分 0
帮 up 了!Top




