comparison Framework/Radiography/RadiographyScene.h @ 492:64d90190a08c am-touch-events

template GetLayer
author Alain Mazy <alain@mazy.be>
date Wed, 20 Feb 2019 20:57:43 +0100
parents aede9b042cb7
children 77e0eb83ff63
comparison
equal deleted inserted replaced
488:aede9b042cb7 492:64d90190a08c
172 172
173 void RemoveLayer(size_t layerIndex); 173 void RemoveLayer(size_t layerIndex);
174 174
175 const RadiographyLayer& GetLayer(size_t layerIndex) const; 175 const RadiographyLayer& GetLayer(size_t layerIndex) const;
176 176
177 template <typename TypeLayer>
178 TypeLayer* GetLayer(size_t index = 0)
179 {
180 std::vector<size_t> layerIndexes;
181 GetLayersIndexes(layerIndexes);
182
183 size_t count = 0;
184
185 for (size_t i = 0; i < layerIndexes.size(); ++i)
186 {
187 TypeLayer* typedLayer = dynamic_cast<TypeLayer*>(layers_[layerIndexes[i]]);
188 if (typedLayer != NULL)
189 {
190 if (count == index)
191 {
192 return typedLayer;
193 }
194 count++;
195 }
196 }
197
198 return NULL;
199 }
200
177 void GetLayersIndexes(std::vector<size_t>& output) const; 201 void GetLayersIndexes(std::vector<size_t>& output) const;
178 202
179 Extent2D GetSceneExtent() const; 203 Extent2D GetSceneExtent() const;
180 204
181 void Render(Orthanc::ImageAccessor& buffer, 205 void Render(Orthanc::ImageAccessor& buffer,