Developer documentation
Version 3.0.3-105-gd3941f44
selection.h
Go to the documentation of this file.
1/* Copyright (c) 2008-2022 the MRtrix3 contributors.
2 *
3 * This Source Code Form is subject to the terms of the Mozilla Public
4 * License, v. 2.0. If a copy of the MPL was not distributed with this
5 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 *
7 * Covered Software is provided under this License on an "as is"
8 * basis, without warranty of any kind, either expressed, implied, or
9 * statutory, including, without limitation, warranties that the
10 * Covered Software is free of defects, merchantable, fit for a
11 * particular purpose or non-infringing.
12 * See the Mozilla Public License v. 2.0 for more details.
13 *
14 * For more details, see http://www.mrtrix.org/.
15 */
16
17#ifndef __gui_mrview_tool_connectome_selection_h__
18#define __gui_mrview_tool_connectome_selection_h__
19
20#include "mrtrix.h"
21
22#include "gui/color_button.h"
24
25namespace MR
26{
27 namespace GUI
28 {
29 namespace MRView
30 {
31 namespace Tool
32 {
33
34
35
36 class NodeSelectionSettings : public QObject
38
39 Q_OBJECT
40
41 public:
43
44 bool get_node_selected_visibility_override() const { return node_selected_visibility_override; }
45 float get_node_selected_colour_fade() const { return node_selected_colour_fade; }
46 const Eigen::Array3f& get_node_selected_colour() const { return node_selected_colour; }
47 float get_node_selected_size_multiplier() const { return node_selected_size_multiplier; }
48 float get_node_selected_alpha_multiplier() const { return node_selected_alpha_multiplier; }
49
50 bool get_edge_selected_visibility_override() const { return edge_selected_visibility_override; }
51 float get_edge_selected_colour_fade() const { return edge_selected_colour_fade; }
52 const Eigen::Array3f& get_edge_selected_colour() const { return edge_selected_colour; }
53 float get_edge_selected_size_multiplier() const { return edge_selected_size_multiplier; }
54 float get_edge_selected_alpha_multiplier() const { return edge_selected_alpha_multiplier; }
55
56 float get_node_associated_colour_fade() const { return node_associated_colour_fade; }
57 const Eigen::Array3f& get_node_associated_colour() const { return node_associated_colour; }
58 float get_node_associated_size_multiplier() const { return node_associated_size_multiplier; }
59 float get_node_associated_alpha_multiplier() const { return node_associated_alpha_multiplier; }
60
61 float get_edge_associated_colour_fade() const { return edge_associated_colour_fade; }
62 const Eigen::Array3f& get_edge_associated_colour() const { return edge_associated_colour; }
63 float get_edge_associated_size_multiplier() const { return edge_associated_size_multiplier; }
64 float get_edge_associated_alpha_multiplier() const { return edge_associated_alpha_multiplier; }
65
66 bool get_node_other_visibility_override() const { return node_other_visibility_override; }
67 float get_node_other_colour_fade() const { return node_other_colour_fade; }
68 const Eigen::Array3f& get_node_other_colour() const { return node_other_colour; }
69 float get_node_other_size_multiplier() const { return node_other_size_multiplier; }
70 float get_node_other_alpha_multiplier() const { return node_other_alpha_multiplier; }
71
72 bool get_edge_other_visibility_override() const { return edge_other_visibility_override; }
73 float get_edge_other_colour_fade() const { return edge_other_colour_fade; }
74 const Eigen::Array3f& get_edge_other_colour() const { return edge_other_colour; }
75 float get_edge_other_size_multiplier() const { return edge_other_size_multiplier; }
76 float get_edge_other_alpha_multiplier() const { return edge_other_alpha_multiplier; }
77
78
79 signals:
81
82
83 private:
84 bool node_selected_visibility_override;
85 float node_selected_colour_fade;
86 Eigen::Array3f node_selected_colour;
87 float node_selected_size_multiplier;
88 float node_selected_alpha_multiplier;
89
90 bool edge_selected_visibility_override;
91 float edge_selected_colour_fade;
92 Eigen::Array3f edge_selected_colour;
93 float edge_selected_size_multiplier;
94 float edge_selected_alpha_multiplier;
95
96 float node_associated_colour_fade;
97 Eigen::Array3f node_associated_colour;
98 float node_associated_size_multiplier;
99 float node_associated_alpha_multiplier;
100
101 float edge_associated_colour_fade;
102 Eigen::Array3f edge_associated_colour;
103 float edge_associated_size_multiplier;
104 float edge_associated_alpha_multiplier;
105
106 bool node_other_visibility_override;
107 float node_other_colour_fade;
108 Eigen::Array3f node_other_colour;
109 float node_other_size_multiplier;
110 float node_other_alpha_multiplier;
111
112 bool edge_other_visibility_override;
113 float edge_other_colour_fade;
114 Eigen::Array3f edge_other_colour;
115 float edge_other_size_multiplier;
116 float edge_other_alpha_multiplier;
117
119
120 };
121
122
123
124 class NodeSelectionSettingsFrame : public QFrame
125 { NOMEMALIGN
126 Q_OBJECT
127
128 public:
129
132
133 protected:
135
136 protected slots:
142
148
153
158
164
170
171 private:
172 QCheckBox *node_selected_visibility_checkbox;
173 QSlider *node_selected_colour_slider;
174 QColorButton *node_selected_colour_button;
175 AdjustButton *node_selected_size_button;
176 AdjustButton *node_selected_alpha_button;
177
178 QCheckBox *edge_selected_visibility_checkbox;
179 QSlider *edge_selected_colour_slider;
180 QColorButton *edge_selected_colour_button;
181 AdjustButton *edge_selected_size_button;
182 AdjustButton *edge_selected_alpha_button;
183
184 QSlider *node_associated_colour_slider;
185 QColorButton *node_associated_colour_button;
186 AdjustButton *node_associated_size_button;
187 AdjustButton *node_associated_alpha_button;
188
189 QSlider *edge_associated_colour_slider;
190 QColorButton *edge_associated_colour_button;
191 AdjustButton *edge_associated_size_button;
192 AdjustButton *edge_associated_alpha_button;
193
194 QCheckBox *node_other_visibility_checkbox;
195 QSlider *node_other_colour_slider;
196 QColorButton *node_other_colour_button;
197 AdjustButton *node_other_size_button;
198 AdjustButton *node_other_alpha_button;
199
200 QCheckBox *edge_other_visibility_checkbox;
201 QSlider *edge_other_colour_slider;
202 QColorButton *edge_other_colour_button;
203 AdjustButton *edge_other_size_button;
204 AdjustButton *edge_other_alpha_button;
205
206 };
207
208
209
210
211
212
213 class NodeSelectionSettingsDialog : public QDialog
214 { NOMEMALIGN
215 public:
216 NodeSelectionSettingsDialog (QWidget* parent, const std::string& message, NodeSelectionSettings& settings);
217
219 };
220
221
222
223
224 }
225 }
226 }
227}
228
229#endif
230
NodeSelectionSettingsDialog(QWidget *parent, const std::string &message, NodeSelectionSettings &settings)
NodeSelectionSettingsFrame(QWidget *, NodeSelectionSettings &)
#define NOMEMALIGN
Definition: memory.h:22
Definition: base.h:24
#define MEMALIGN(...)
Definition: types.h:185