polyscope_core/
options.rs1use glam::Vec4;
4use serde::{Deserialize, Serialize};
5
6use crate::SsaoConfig;
7
8#[derive(Debug, Clone, Serialize, Deserialize)]
10pub struct Options {
11 pub auto_compute_scene_extents: bool,
13
14 pub invoke_user_callback_for_nested_show: bool,
16
17 pub give_focus_on_show: bool,
19
20 pub ground_plane_enabled: bool,
22
23 pub ground_plane_mode: GroundPlaneMode,
25
26 pub ground_plane_height: f32,
28
29 pub background_color: Vec4,
31
32 pub transparency_enabled: bool,
34
35 pub transparency_mode: TransparencyMode,
37
38 pub transparency_render_passes: u32,
40
41 pub ssaa_factor: u32,
43
44 pub max_fps: u32,
46
47 pub ssao: SsaoConfig,
49}
50
51impl Default for Options {
52 fn default() -> Self {
53 Self {
54 auto_compute_scene_extents: true,
55 invoke_user_callback_for_nested_show: false,
56 give_focus_on_show: true,
57 ground_plane_enabled: true,
58 ground_plane_mode: GroundPlaneMode::ShadowOnly,
59 ground_plane_height: 0.0,
60 background_color: Vec4::new(1.0, 1.0, 1.0, 1.0),
61 transparency_enabled: true,
62 transparency_mode: TransparencyMode::Simple,
63 transparency_render_passes: 8,
64 ssaa_factor: 1,
65 max_fps: 60,
66 ssao: SsaoConfig::default(),
67 }
68 }
69}
70
71#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
73pub enum GroundPlaneMode {
74 None,
76 #[default]
78 ShadowOnly,
79 Tile,
81 SolidColor,
83}
84
85#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize, Default)]
87pub enum TransparencyMode {
88 #[default]
90 Simple,
91 Pretty,
93 None,
95}