-
Notifications
You must be signed in to change notification settings - Fork 0
Tut3 Example1 2
Sung-June, Lim edited this page Oct 14, 2016
·
4 revisions
_tutorials
_tutorial3
example1_2
apps
VolumeViewer.py
blocks
Reader.py
Volume_0_1.py
Volume_app_0_1.py
HistogramControl.py
OpacityMapControl.py
ColorMapControl.py
cyapp.py
cyapp_cfg.py
cymgr.py
cymgr_cfg.py
cycoord.py
cycoord_cfg.py
이번 예제에서는 Tut3 Example1-1에 Customized Widget을 활용하여 Transfer Function 기능을 추가하는 과정을 학습하고자 합니다.
우선, 이전 예제와 어떻게 작용하는지 Pipeline 구성을 통하여 살펴 보겠습니다.
다음으로, 본 예제에서 제공되는 Histogram, OpacityMap, ColorMap과 같은 Customized Widget Block 활용법에 대해 살펴 보겟습니다.

- Customized Widget Block(Histogram, OpacityMap, ColorMap) 클래스의 구성
- Customized Widget과 signal/slot 연결을 통한 Transfer Function 조작
아래와 같이 app_spec 파일의 각 항목들을 지정하여 다양한 Block 활용이 가능한 App을 구성 할 수 있습니다.
- B(Block) : 'HistogramControl'의 별칭을 'histogram'으로, 'OpacityMapControl'의 별칭을 'opacity'으로, 'ColorMapControl'의 별칭을 'colormap'으로 사용
- C(Connectivity) : main와 colormap은 같은 process에서 존재해야 함
- colormap widget의 경우 별도의 색상 선택 window가 나타나기 때문에 main에 존재 해야 함(추후 수정 필요)
- R(Reference) :
- 'main' Block에서 'histogram' Block을 'histogram' 라는 별칭으로 사용
- 'main' Block에서 'opacity' Block을 'opacity' 라는 별칭으로 사용
- 'main' Block에서 'colormap' Block을 'colormap' 라는 별칭으로 사용
- S(Slot) :
- 'opacity', 'colormap'의 mouse_press, mouse_move, mouse_dbl_click Signal을 각각 'volume'의 on_changed_opacity와 on_changed_colormap Slot에 연결
def app_spec(dcm):
t = 'Volume Viewer'
B = [
('reader', 'Reader_0_1', [], {}),
('volume', 'Volume_0_1', [], {}),
('histogram', 'HistogramControl', [], {}),
('opacity', 'OpacityMapControl', [], {}),
('colormap', 'ColorMapControl', [], {}),
('main', 'Volume_app_0_1', [], {}),
]
C = [('reader', 'volume'), ('main', 'colormap')]
D = dict(
reader=dict(dcm=dcm)
)
R = [
('main', 'reader', 'reader'),
('main', 'volume', 'volume'),
('main', 'histogram', 'histogram'),
('main', 'opacity', 'opacity'),
('main', 'colormap', 'colormap'),
('volume', 'reader', 'reader'),
]
S = [
('opacity', 'mouse_press', 'volume', 'on_changed_opacity'),
('opacity', 'mouse_move', 'volume', 'on_changed_opacity'),
('opacity', 'mouse_dbl_click', 'volume', 'on_changed_opacity'),
('colormap', 'mouse_press', 'volume', 'on_changed_colormap'),
('colormap', 'mouse_move', 'volume', 'on_changed_colormap'),
('colormap', 'mouse_dbl_click', 'volume', 'on_changed_colormap'),
]
return t, B, C, D, R, S