comparison Framework/Radiography/RadiographyWidget.h @ 1200:54cbffabdc45 broker

integration mainline->broker
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 29 Nov 2019 11:03:41 +0100
parents 1a73f852810a 922d2e61aa5d
children 37bc7f115f81
comparison
equal deleted inserted replaced
1198:4cc997207d8a 1200:54cbffabdc45
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 }