Skip to content

物体控制器

选中物体之后,基本的操作就是对物体进行操作,包括移动,旋转,缩放。选中物体的控制器请参考这里,本节主要介绍物体的操作控制器。

RoyFrame内置了一个ObjCtrlMgr,他的主要行为如下:

  • 接受一个RoySceneNode操作列表,作为控制对象
  • workMode属性,用于标注操作是发生在本地坐标空间还是世界坐标空间
  • 接受操作方式的列表,操作方式是继承自ObjCtrlBase的,业务侧可以自主扩展。
  • 鼠标响应事件的通知接口。
  • 主要行为就是形成变换矩阵,并应用于操作列表中的每一个RoySceneNode
  • 处理了重做撤销。

值得注意的点:

  • 鼠标响应可以直接响应App中覆写AppClient的鼠标方法,但更加推荐的是使用鼠标事件响应策略MESObjectCtrl,这部分已经在鼠标事件响应中有详细的描述。ObjCtrlMgr接受到事件之后,会传递给注册的各种操控器来实现具体的操控逻辑
  • 操控器都是继承自ObjCtrlBase的,在plugin_objectctrl中已经实现了基本的操控器,包括
    • ObjCtrlTranslate:物体的平移
    • ObjCtrlScale:物体缩放
    • ObjCtrlRotate:物体旋转
    • ObjCtrlModelShow:用于单品展示的特化控制器
    • ObjCtrlIntegrated:移动平台适用的平移旋转缩放三合一操控器

每一种操控器都有自己的显示方式,事件响应方式,在项目中可以根据实际需要进行选择或自定义实现。对于某一个系列的产品尽量使用相同的操控方式。