blob: 18262fbd4b5d78224f3f8670a53a3985bda476f2 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
use scene::{Project, Scene};
pub fn active_scene(project: &Project) -> Option<&Scene> {
project
.scenes
.iter()
.find(|scene| scene.id == project.current_scene_id)
.or_else(|| project.scenes.iter().find(|scene| scene.is_main))
.or_else(|| project.scenes.first())
}
pub fn active_scene_mut(project: &mut Project) -> Option<&mut Scene> {
let index = project
.scenes
.iter()
.position(|scene| scene.id == project.current_scene_id)
.or_else(|| project.scenes.iter().position(|scene| scene.is_main))
.or(if project.scenes.is_empty() { None } else { Some(0) })?;
project.scenes.get_mut(index)
}
|