Mercurial > hg > orthanc-stone
comparison Framework/Radiography/RadiographyWidget.h @ 1199:922d2e61aa5d
RadiograpyScene: can now remove any layer + new key wrappers for Delete/Backspace
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Thu, 28 Nov 2019 18:28:15 +0100 |
parents | 4663f158c748 |
children | 54cbffabdc45 9ee6b28f53e8 |
comparison
equal
deleted
inserted
replaced
1197:a34ba19d2060 | 1199:922d2e61aa5d |
---|---|
69 return *scene_; | 69 return *scene_; |
70 } | 70 } |
71 | 71 |
72 void SetScene(boost::shared_ptr<RadiographyScene> scene); | 72 void SetScene(boost::shared_ptr<RadiographyScene> scene); |
73 | 73 |
74 void Select(size_t layer); | |
75 | |
74 void Unselect() | 76 void Unselect() |
75 { | 77 { |
76 hasSelection_ = false; | 78 hasSelection_ = false; |
77 } | 79 } |
78 | 80 |
79 void Select(size_t layer); | 81 template<typename LayerType> bool SelectLayerByType(size_t index = 0); |
80 | |
81 void ClearSelectedLayer(); | |
82 | |
83 bool SelectMaskLayer(size_t index = 0); | |
84 | 82 |
85 bool LookupSelectedLayer(size_t& layer); | 83 bool LookupSelectedLayer(size_t& layer); |
86 | 84 |
87 void OnGeometryChanged(const RadiographyScene::GeometryChangedMessage& message); | 85 void OnGeometryChanged(const RadiographyScene::GeometryChangedMessage& message); |
88 | 86 |
104 ImageInterpolation GetInterpolation() const | 102 ImageInterpolation GetInterpolation() const |
105 { | 103 { |
106 return interpolation_; | 104 return interpolation_; |
107 } | 105 } |
108 }; | 106 }; |
107 | |
108 template<typename LayerType> bool RadiographyWidget::SelectLayerByType(size_t index) | |
109 { | |
110 std::vector<size_t> layerIndexes; | |
111 size_t count = 0; | |
112 scene_->GetLayersIndexes(layerIndexes); | |
113 | |
114 for (size_t i = 0; i < layerIndexes.size(); ++i) | |
115 { | |
116 const LayerType* typedLayer = dynamic_cast<const LayerType*>(&(scene_->GetLayer(layerIndexes[i]))); | |
117 if (typedLayer != NULL) | |
118 { | |
119 if (count == index) | |
120 { | |
121 Select(layerIndexes[i]); | |
122 return true; | |
123 } | |
124 count++; | |
125 } | |
126 } | |
127 | |
128 return false; | |
129 } | |
109 } | 130 } |