17#ifndef __gui_mrview_tool_connectome_connectome_h__
18#define __gui_mrview_tool_connectome_connectome_h__
73 enum class node_visibility_matrix_operator_t { ANY,
ALL };
74 enum class node_property_matrix_operator_t { MIN, MEAN, SUM, MAX };
94 void image_open_slot();
97 void matrix_open_slot();
98 void matrix_close_slot();
99 void connectome_selection_changed_slot (
const QItemSelection&,
const QItemSelection&);
101 void node_visibility_selection_slot (
int);
102 void node_geometry_selection_slot (
int);
103 void node_colour_selection_slot (
int);
104 void node_size_selection_slot (
int);
105 void node_alpha_selection_slot (
int);
107 void node_visibility_matrix_operator_slot (
int);
108 void node_visibility_parameter_slot();
109 void sphere_lod_slot (
int);
110 void overlay_interp_slot (
int);
111 void node_colour_matrix_operator_slot (
int);
112 void node_fixed_colour_change_slot();
113 void node_colour_parameter_slot();
114 void node_size_matrix_operator_slot (
int);
115 void node_size_value_slot();
116 void node_size_parameter_slot();
117 void node_alpha_matrix_operator_slot (
int);
118 void node_alpha_value_slot (
int);
119 void node_alpha_parameter_slot();
121 void edge_visibility_selection_slot (
int);
122 void edge_geometry_selection_slot (
int);
123 void edge_colour_selection_slot (
int);
124 void edge_size_selection_slot (
int);
125 void edge_alpha_selection_slot (
int);
127 void edge_visibility_parameter_slot();
128 void cylinder_lod_slot (
int);
129 void edge_colour_change_slot();
130 void edge_colour_parameter_slot();
131 void edge_size_value_slot();
132 void edge_size_parameter_slot();
133 void edge_alpha_value_slot (
int);
134 void edge_alpha_parameter_slot();
136 void lut_open_slot ();
137 void lighting_change_slot (
int);
138 void lighting_settings_slot();
139 void lighting_parameter_slot();
140 void crop_to_slab_toggle_slot (
int);
141 void crop_to_slab_parameter_slot();
142 void show_node_list_slot();
143 void node_selection_settings_changed_slot();
241 std::unique_ptr< MR::Image<node_t> > buffer;
249 std::unique_ptr<MR::Connectome::Mat2Vec> mat2vec;
259 std::unique_ptr<LightingDock> lighting_dock;
279 std::unique_ptr<NodeOverlay> node_overlay;
287 bool is_3D, crop_to_slab;
288 float slab_thickness;
292 bool show_node_colour_bar, show_edge_colour_bar;
304 node_t selected_node_count;
308 node_visibility_matrix_operator_t node_visibility_matrix_operator;
309 node_property_matrix_operator_t node_colour_matrix_operator, node_size_matrix_operator, node_alpha_matrix_operator;
310 Eigen::Array3f node_fixed_colour;
311 size_t node_colourmap_index;
312 bool node_colourmap_invert;
313 float node_fixed_alpha;
314 float node_size_scale_factor;
330 bool have_exemplars, have_streamtubes;
331 Eigen::Array3f edge_fixed_colour;
332 size_t edge_colourmap_index;
333 bool edge_colourmap_invert;
334 float edge_fixed_alpha;
335 float edge_size_scale_factor;
342 GLint line_thickness_range_aliased[2];
343 GLint line_thickness_range_smooth[2];
353 void enable_all (
const bool);
354 void initialise (
const std::string&);
363 void load_properties();
365 void calculate_node_visibility();
366 void calculate_node_colours();
367 void calculate_node_sizes();
368 void calculate_node_alphas();
370 void update_node_overlay();
372 void calculate_edge_visibility();
373 void calculate_edge_colours();
374 void calculate_edge_sizes();
375 void calculate_edge_alphas();
380 bool node_visibility_given_selection (
const node_t);
381 Eigen::Array3f node_colour_given_selection (
const node_t);
382 float node_size_given_selection (
const node_t);
383 float node_alpha_given_selection (
const node_t);
384 bool edge_visibility_given_selection (
const Edge&);
385 Eigen::Array3f edge_colour_given_selection (
const Edge&);
386 float edge_size_given_selection (
const Edge&);
387 float edge_alpha_given_selection (
const Edge&);
390 void update_controls_node_visibility (
const float,
const float,
const float);
391 void update_controls_node_colour (
const float,
const float,
const float);
392 void update_controls_node_size (
const float,
const float,
const float);
393 void update_controls_node_alpha (
const float,
const float,
const float);
394 void update_controls_edge_visibility (
const float,
const float,
const float);
395 void update_controls_edge_colour (
const float,
const float,
const float);
396 void update_controls_edge_size (
const float,
const float,
const float);
397 void update_controls_edge_alpha (
const float,
const float,
const float);
403 void update_control (
AdjustButton*
const,
const float,
const float,
const float);
407 void get_exemplars();
408 void get_streamtubes();
410 bool use_lighting()
const;
411 bool use_alpha_nodes()
const;
412 bool use_alpha_edges()
const;
414 float calc_line_width (
const float,
const bool)
const;
a class to hold the list of option groups
object storing information about option parsed from command-line
a class for storing bitwise information
MR::Connectome::node_t node_t