Geometry 是图形语法数据处理和映射的体现点。
主要的逻辑:
- 初始化(init、update)
- 根据视觉通道字段,创建或者更新 attribute 实例
- 处理数据
- 根据分组字段分组(color size shape 中的分类字段)
- 调整 scale
- stack 的 scale 处理
- 渲染(render)
- 生成关键点(通过 { x y y0 size } 产生 points 数据)
- 数据映射
- 使用 attribute 映射视觉通道
- 通过 coordinate 将 position.xy 映射成成画布坐标
- 绘制 element:新增、更新、删除
- 组织生成 shapeInfo
- element.draw()
主要的关联类(用 uml 比较好)。
- element
- shape
改进点
- 🤔 GUI:Geometry 直接继承自 G.DisplayObject @逍为(hustcc)
待定,这么做了之后,整个 geometry 和 component 就是同构的,geometry 只不过是一个大型的 GUI 组件,这样:
- 会减少不少的特殊布局逻辑
- shape 的创建、更新、销毁走和 G.component 一样的逻辑