Skip to main content

ak_vis/viewer/session/
command.rs

1use ak_core::Structure;
2
3use crate::ScalarColorMap;
4
5use super::{AppearanceChannel, BondList, FaceList, RenderStyle, SelectedImageAtom};
6
7pub enum ViewerCommand {
8    LoadTrajectory {
9        frames: Vec<Structure>,
10        initial_frame: usize,
11    },
12    AppendFrame {
13        frame: Structure,
14    },
15    SetCurrentFrame {
16        index: usize,
17    },
18    SetFollowTail {
19        enabled: bool,
20    },
21    SetAtomScalars {
22        name: String,
23        values: Vec<f32>,
24        frame_index: Option<usize>,
25    },
26    MapAppearanceByScalar {
27        name: String,
28        channel: AppearanceChannel,
29        palette: Option<ScalarColorMap>,
30        min: Option<f32>,
31        max: Option<f32>,
32        append: bool,
33    },
34    ResetAtomAppearance {
35        channel: Option<AppearanceChannel>,
36    },
37    SetBonds {
38        bonds: BondList,
39        frame_index: Option<usize>,
40    },
41    AddBonds {
42        bonds: BondList,
43        frame_index: Option<usize>,
44    },
45    RemoveBonds {
46        bonds: BondList,
47        frame_index: Option<usize>,
48    },
49    ClearBonds {
50        frame_index: Option<usize>,
51    },
52    SetFaces {
53        faces: FaceList,
54        frame_index: Option<usize>,
55    },
56    AddFaces {
57        faces: FaceList,
58        frame_index: Option<usize>,
59    },
60    RemoveFaces {
61        faces: FaceList,
62        frame_index: Option<usize>,
63    },
64    ClearFaces {
65        frame_index: Option<usize>,
66    },
67    SetRenderStyle {
68        style: RenderStyle,
69        selection: Vec<bool>,
70        frame_index: Option<usize>,
71        append: bool,
72    },
73    ResetRenderStyle,
74    ReplaceSelection {
75        selection: Vec<bool>,
76        frame_index: Option<usize>,
77    },
78    AddSelection {
79        selection: Vec<bool>,
80        frame_index: Option<usize>,
81    },
82    RemoveSelection {
83        selection: Vec<bool>,
84        frame_index: Option<usize>,
85    },
86    ClearSelection {
87        frame_index: Option<usize>,
88    },
89    ReplaceImageSelection {
90        selection: Vec<SelectedImageAtom>,
91        frame_index: Option<usize>,
92    },
93    AddImageSelection {
94        selection: Vec<SelectedImageAtom>,
95        frame_index: Option<usize>,
96    },
97    RemoveImageSelection {
98        selection: Vec<SelectedImageAtom>,
99        frame_index: Option<usize>,
100    },
101    ClearImageSelection {
102        frame_index: Option<usize>,
103    },
104    SetSupercell {
105        repeats: [u32; 3],
106    },
107    IncrementSupercellAxis {
108        axis: usize,
109    },
110    DecrementSupercellAxis {
111        axis: usize,
112    },
113    ResetSupercell,
114    SetGhostRepeatedImages {
115        enabled: bool,
116    },
117    ToggleGhostRepeatedImages,
118    SetCameraView {
119        focus: Option<[f32; 3]>,
120        radius: Option<f32>,
121        yaw: Option<f32>,
122        pitch: Option<f32>,
123    },
124    PanCamera {
125        delta: [f32; 3],
126    },
127    ZoomCamera {
128        factor: Option<f32>,
129        delta: Option<f32>,
130    },
131    OrbitCamera {
132        yaw_delta: f32,
133        pitch_delta: f32,
134    },
135    FrameAll,
136    StartOrbit {
137        yaw_rate: f32,
138        pitch_rate: f32,
139    },
140    StopCameraMotion,
141    Close,
142}