Skip to main content

fret_core/scene/
replay.rs

1use super::*;
2
3impl SceneRecording {
4    pub fn replay_ops(&mut self, ops: &[SceneOp]) {
5        self.ops.reserve(ops.len());
6        for &op in ops {
7            self.fingerprint = mix_scene_op(self.fingerprint, op);
8            self.ops.push(op);
9        }
10    }
11
12    pub fn replay_ops_translated(&mut self, ops: &[SceneOp], delta: Point) {
13        if delta.x.0 == 0.0 && delta.y.0 == 0.0 {
14            self.replay_ops(ops);
15            return;
16        }
17
18        self.replay_ops_transformed(ops, Transform2D::translation(delta));
19    }
20
21    pub fn replay_ops_transformed(&mut self, ops: &[SceneOp], transform: Transform2D) {
22        self.with_transform(transform, |scene| scene.replay_ops(ops));
23    }
24}