接下来我的工作就是开始写视觉辅助信息类VisualInfo
俗话说的好,架构未动,需求先行
今晚先想了需求,以后再想架构
总体需求:
1. 绝大部分视觉或文字信息应该以2D屏幕坐标而不是3D世界坐标为基础绘制
2. 绝大部分视觉效果应使用淡出淡入动画
3. 要做到简洁,清晰,智能
VisualInfo应该提供以下的功能:
1. 元素高亮
当鼠标拾取或移动到某个元素上时,应该高亮该元素
悬停使用黄色,拾取使用蓝色,绿色待定
要支持多处同时高亮
2. 鼠标操作
3. 辅助信息
当折叠操作发生时
以残影的方式显示元素原来的位置(可能需要在3D中作图)
以点状线显示移动路径
显示面与面之间的夹角,该面与多个面同时存在夹角,则显示与多个面的夹角
当绘制折线时
以分数形式显示被拆分的边每部分所占的比例
能遇见到的要使用的技术:
需要将3D世界坐标中的点转化为屏幕坐标(杨旭瑜已实现)
使用ManualObject在(0,0,-1)到(1,1,-1)的坐标范围内作图,并管理ManualObject的创建和销毁
自定义材质以支持视觉效果,并管理这些材质的创建和销毁
VisualInfo应创建为单例,并成为BasicPicker的成员
需要与FrameListerer进行交互,以支持动画