forked from scilus/fibernavigator
-
Notifications
You must be signed in to change notification settings - Fork 2
/
FibersGroup.h
134 lines (108 loc) · 3.93 KB
/
FibersGroup.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#ifndef FIBERSGROUP_H_
#define FIBERSGROUP_H_
#include "DatasetInfo.h"
#include "Fibers.h"
#include <wx/wxprec.h>
#ifndef WX_PRECOMP
#include <wx/wx.h>
#endif
#include <string>
#include <vector>
/**
* This class represents a group container for sets of fibers.
* It is useful to load several sets of fibers and can be used to
* apply a characteristic to all set of fibers that are in the group.
*/
class FibersGroup : public DatasetInfo
{
public:
FibersGroup();
virtual ~FibersGroup();
bool isOneBtnToggled()
{
return m_isIntensityToggled && m_isOpacityToggled && m_isMinMaxLengthToggled
&& m_isSubsamplingToggled && m_isColorModeToggled;
}
void save( wxString filename, int format );
bool save( wxXmlNode *pNode, const wxString &rootPath ) const;
void saveDMRI( wxString filename );
void updateGroupFilters();
void resetFibersColor();
void invertFibers();
void useFakeTubes();
void useTransparency();
void resetAllValues();
void fibersLocalColoring();
void fibersNormalColoring();
void generateGlobalFiberVolume(std::vector<Anatomy*> vAnatomies);
void OnToggleVisibleBtn();
void OnToggleIntensityBtn();
void OnToggleOpacityBtn();
void OnToggleMinMaxLengthBtn();
void OnToggleSubsamplingBtn();
void OnToggleCrossingFibersBtn();
void OnToggleColorModeBtn();
void OnToggleLocalColoring();
void OnToggleNormalColoring();
void OnApplyDifferentColors();
void OnClickGenerateFiberVolumeBtn();
void OnClickApplyBtn();
void OnClickCancelBtn();
// Empty derived methods
bool load( wxString filename ) { return false; };
void draw() {};
void smooth() {};
void flipAxis( AxisType i_axe) {};
void drawVectors() {};
void generateTexture() {};
void generateGeometry() {};
void initializeBuffer() {};
GLuint getGLuint( ) { return 0; };
virtual void createPropertiesSizer( PropertiesWindow *pParent );
virtual void updatePropertiesSizer();
private:
FibersGroup(const FibersGroup &);
FibersGroup &operator=(const FibersGroup &);
private:
// Variables
bool m_isIntensityToggled;
bool m_isOpacityToggled;
bool m_isMinMaxLengthToggled;
bool m_isSubsamplingToggled;
bool m_isColorModeToggled;
bool m_isCrossingFibersToggled;
bool m_isNormalColoringStateChanged;
bool m_isLocalColoringStateChanged;
std::string intToString( const int number );
// GUI members
wxButton *m_pBtnIntensity;
wxButton *m_pBtnOpacity;
wxButton *m_pBtnMinMaxLength;
wxButton *m_pBtnSubsampling;
wxButton *m_pBtnColorMode;
wxToggleButton *m_pToggleLocalColoring;
wxToggleButton *m_pToggleNormalColoring;
wxButton *m_pApplyDifferentColors;
wxToggleButton *m_pToggleInterFibers;
wxButton *m_pBtnMergeVisibleFibers;
wxButton *m_pApplyBtn;
wxButton *m_pCancelBtn;
wxButton *m_pBtnGeneratesDensityVolume;
wxSlider *m_pSliderFibersFilterMin;
wxSlider *m_pSliderFibersFilterMax;
wxSlider *m_pSliderFibersSampling;
wxSlider *m_pSliderInterFibersThickness;
wxRadioButton *m_pRadNormalColoring;
wxRadioButton *m_pRadDistanceAnchoring;
wxRadioButton *m_pRadMinDistanceAnchoring;
wxRadioButton *m_pRadCurvature;
wxRadioButton *m_pRadTorsion;
wxRadioButton *m_pRadConstantColor;
wxStaticText *m_pLblMinLength;
wxStaticText *m_pLblMaxLength;
wxStaticText *m_pLblSubsampling;
wxStaticText *m_pColorModeText;
wxStaticText *m_pLblColoring;
wxStaticText *m_pLblThickness;
};
#endif /* FIBERSGROUP_H_ */