[MSCE U15 C++]用代码创建剪切立方体后的一些疑问

老师们好。

测试用代码创建的剪切立方体似乎没起作用,还需要手工在剪切立方体的右键菜单中点下应用才行。

手工应用剪切立方体能用代码实现不?另外 IViewClipObjectPtr的SetPreserveUp(bool flag)这个函数是什么意思?

谢谢老师。

Parents
  • 管工:您好!

    手工应用剪切立方体能用代码实现不?

    请增加Step 5试一下:

    	//Step 5: Apply section clip to view
    	ViewInfoP pViewInfo = pViewport->GetViewInfoP();
    	DynamicViewSettingsR dvSetting = pViewInfo->GetDynamicViewSettingsR();
    	dvSetting.SetClipBoundElementId(clipElement.GetElementId());
    	pViewInfo->SetDynamicViewSettings(dvSetting);
    	pViewInfo->GetGeomInfoR().m_viewFlags.noClipVolume = false;
    	pViewInfo->GetGeomInfoR().m_viewFlags.constructs = true;
    	pViewport->SynchWithViewInfo(true, false);

    IViewClipObjectPtr的SetPreserveUp(bool flag)这个函数是什么意思?

    这个Preserve Up我推测应该是Preserve World Up(保持世界坐标系冲上)的缩写。当我们用高级的三维鼠标时,该项才会起作用。它能让我们在用三维鼠标旋转模型时整个模型的Z坐标始终冲上,而不至于把视图方向转得乱七八糟的。

    比较高级的三维鼠标品牌有3Dconnexion SpaceMouse。京东上有两款,分别报价2080和3680元,都快顶上一台低阶电脑了Cold sweat。多年前Jerry Flyn来中国讲授Rendering and Animation时见他用过。



    Answer Verified By: 管华明 

  • 加上符老师给的这段代码,剪切立方体起作用了,非常感谢!

Reply Children
No Data