1use crate::NegMode;
8use crate::colormap::Colormap;
9use crate::healpix::HealpixMeta;
10use crate::rotation::CoordSystem;
11use crate::scale::Scale;
12use image::Rgba;
13
14pub struct PlotData {
16 pub map: Vec<f64>,
17 pub width: u32,
18 pub filename: String,
19 pub pdf_backend: String,
20}
21
22pub struct ScaleParams {
24 pub minv: Option<f64>,
25 pub maxv: Option<f64>,
26 pub gamma: f64,
27 pub scale: Scale,
28 pub neg_mode: NegMode,
29}
30
31pub struct ColorParams<'a> {
33 pub cmap: &'a Colormap,
34 pub bad_color: Rgba<u8>,
35 pub bg_color: Rgba<u8>,
36}
37
38pub struct DisplayParams {
40 pub show_colorbar: bool,
41 pub transparent: bool,
42 pub draw_border: bool,
43 pub latex_rendering: bool,
44 pub units: Option<String>,
45 pub extend: crate::cli::Extend,
46 pub tick_direction: crate::cli::TickDirection,
47 pub tick_font_size: Option<f32>,
48 pub units_font_size: Option<f32>,
49 pub rlabel: Option<String>,
50 pub llabel: Option<String>,
51 pub label_font_size: Option<f32>,
52 pub mask: Option<crate::mask::PixelMask>,
53 pub title: Option<String>,
54 pub show_title: bool,
55 pub scale_text: bool,
56}
57
58pub struct GraticuleParams {
60 pub show_graticule: bool,
61 pub grat_coord: Option<CoordSystem>,
62 pub grat_overlay: Option<CoordSystem>,
63 pub overlay_color: Rgba<u8>,
64 pub show_labels: bool,
65 pub dpar_deg: f64,
66 pub dmer_deg: f64,
67}
68
69pub struct MollweideParams<'a> {
71 pub plot: PlotData,
72 pub scale: ScaleParams,
73 pub color: ColorParams<'a>,
74 pub display: DisplayParams,
75 pub graticule: GraticuleParams,
76 pub meta: HealpixMeta,
77 pub view: &'a crate::rotation::ViewTransform,
78}
79
80pub struct HammerParams<'a> {
82 pub plot: PlotData,
83 pub scale: ScaleParams,
84 pub color: ColorParams<'a>,
85 pub display: DisplayParams,
86 pub graticule: GraticuleParams,
87 pub meta: HealpixMeta,
88 pub view: &'a crate::rotation::ViewTransform,
89}
90
91pub struct GnomonicParams<'a> {
93 pub plot: PlotData,
94 pub scale: ScaleParams,
95 pub color: ColorParams<'a>,
96 pub display: DisplayParams,
97 pub graticule: GraticuleParams,
98 pub meta: HealpixMeta,
99 pub view: &'a crate::rotation::ViewTransform,
100 pub lon_deg: f64,
101 pub lat_deg: f64,
102 pub fov_arcmin: f64,
103 pub resolution_arcmin: f64,
104 pub roll_deg: f64,
105 pub grat_line_width: u32,
106 pub show_gnomonic_text: bool,
107}
108
109pub struct RenderMollweideParams<'a> {
111 pub map: &'a [f64],
112 pub scale: &'a crate::plot::MollweideScale,
113 pub cmap: &'a Colormap,
114 pub gamma: f64,
115 pub scale_type: Scale,
116 pub neg_mode: NegMode,
117 pub bad_color: Rgba<u8>,
118 pub meta: HealpixMeta,
119 pub hist_scale: Option<&'a crate::scale::HistogramScale>,
120 pub view: &'a crate::rotation::ViewTransform,
121 pub mask: Option<&'a crate::mask::PixelMask>,
122 pub scale_cache: Option<&'a crate::scale::ScaleCache>,
123}
124
125pub struct RenderGridParams<'a, P: crate::projection::Projection> {
128 pub map: &'a [f64],
129 pub proj: &'a P,
130 pub scale: &'a crate::plot::MollweideScale,
131 pub cmap: &'a Colormap,
132 pub scale_type: Scale,
133 pub neg_mode: NegMode,
134 pub gamma: f64,
135 pub bad_color: Rgba<u8>,
136 pub meta: HealpixMeta,
137 pub hist_scale: Option<&'a crate::scale::HistogramScale>,
138 pub view: &'a crate::rotation::ViewTransform,
139 pub mask: Option<&'a crate::mask::PixelMask>,
140 pub scale_cache: Option<&'a crate::scale::ScaleCache>,
141 pub underflow: (u8, u8, u8),
142 pub overflow: (u8, u8, u8),
143}
144
145pub struct ColorbarParams<'a> {
147 pub cmap: &'a Colormap,
148 pub minv: f64,
149 pub maxv: f64,
150 pub scale_type: Scale,
151 pub gamma: f64,
152 pub hist_scale: Option<&'a crate::scale::HistogramScale>,
153 pub latex_rendering: bool,
154 pub units: Option<&'a str>,
155 pub extend: &'a crate::cli::Extend,
156 pub units_font_size: Option<f32>,
157 pub map_width: Option<f64>, }
159
160pub struct GraticuleRenderParams {
162 pub color_r: f64,
163 pub color_g: f64,
164 pub color_b: f64,
165 pub line_width: f64,
166}
167
168pub struct GeometryRect {
170 pub x: f64,
171 pub y: f64,
172 pub w: f64,
173 pub h: f64,
174}
175
176pub struct GraticuleCoordinates {
178 pub grat_coord: CoordSystem,
179 pub input_coord: CoordSystem,
180}
181
182pub struct GraticuleSpacing {
184 pub dlon_deg: f64,
185 pub dlat_deg: f64,
186}
187
188pub struct ColorbarGeometry {
190 pub rect: GeometryRect,
191 pub label_pad: f64,
192}
193
194pub struct ColorbarPdfLabelConfig {
196 pub scale: Scale,
197 pub latex_rendering: bool,
198 pub units: Option<String>,
199 pub units_font_size: Option<f32>,
200 pub map_width: Option<f64>,
201}
202
203pub struct ColorbarLayoutConfig {
205 pub label_pad: f64,
206 pub image_width: f64,
207 pub tick_direction: crate::cli::TickDirection,
208 pub custom_tick_font_size: Option<f32>,
209 pub width_scale: f64,
210}