在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中没有这样的问题的。
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中没有这样的问题的。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货