Mercurial > MadButterfly
view orgfiles/auto_update.muse @ 1265:ca301f6abef7
Support undo for insert key frame/rm keyframe. We will refresh all layers and scenes since it is not feasible to collect these changes and update the layers and scenes. We may scan two level only in the future to improve the performance.
author | wycc |
---|---|
date | Wed, 12 Jan 2011 15:01:14 +0800 |
parents | 79e9edf4c00a |
children |
line wrap: on
line source
When an object change it's size, position, or components inside it, other objects overlaid with the object in old or new positions should be re-drawed. The place that the object is resident in old or new position should be cleared before re-drawing. We need a system to determine and track effected by the change of an object. The graphics are grouped into groups in tree-hierachy. One group can be part of another group. When a group's transformation matrix is chagned, all child groups should be affected. All it's members should also be re-drawed. All members of a group been changed are linked into update list in their order. The one more close to tree root is more earier in the list. Transformations can only apply to groups. A tree of coord_t is maintained to model relationships of groups. Coord_t is coordination, a transfromation from user space to upper level's space or devcie space. coord_t must know graphics in respective group. Once transformation matrix of a coord_t object changed, it can ask members to re-drawed them-self. Changes of the transformation of a coord_t should be propagated to child coord_t objects/groups.