假设我绘制曲面并在运行时使用鼠标旋转曲面。一旦实现了表面的正确旋转,我将如何获得其状态?
答案 0 :(得分:1)
每个驱动程序都会创建一个全局场景的克隆,该克隆会不断进行同步,并根据源的更改进行更新。旋转在克隆上完成。我没有测试它,但我认为,您可以通过
查询克隆中的对象(例如绘图立方体)panel.GetCurrentScene().First<ILPlotCube>(/*your filter if needed*/)
此实例将反映用户所做的所有更改。
答案 1 :(得分:0)
user492238s中指出的方法答案确实有效。但是,GetCurrentScene()将新场景组合为全局和本地(到当前驱动程序)场景的组合。如果频繁调用,这可能会变得昂贵。如果只需要单个对象/属性,则可以使用panel.SceneSyncRoot。
此外,plotcube.Rotation属性公开了绘图立方体的旋转。因此,为了获得绘图立方体的当前旋转(包括由于用户输入而引起的旋转):
panel.SceneSyncRoot.First<ILPlotCube>().Rotation