Mercurial > hg > orthanc-stone
comparison Framework/dev.h @ 378:814fa32e2fcc
refactoring
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 06 Nov 2018 14:21:02 +0100 |
parents | 7a364e44fbb4 |
children | ba5ad93f935a |
comparison
equal
deleted
inserted
replaced
377:8eb4fe74000f | 378:814fa32e2fcc |
---|---|
174 } | 174 } |
175 | 175 |
176 virtual void OnSliceImageReady(const OrthancSlicesLoader& loader, | 176 virtual void OnSliceImageReady(const OrthancSlicesLoader& loader, |
177 unsigned int sliceIndex, | 177 unsigned int sliceIndex, |
178 const Slice& slice, | 178 const Slice& slice, |
179 const boost::shared_ptr<Orthanc::ImageAccessor>& image, | 179 const Orthanc::ImageAccessor& image, |
180 SliceImageQuality quality) | 180 SliceImageQuality quality) |
181 { | 181 { |
182 { | 182 { |
183 ImageBuffer3D::SliceWriter writer(*image_, VolumeProjection_Axial, sliceIndex); | 183 ImageBuffer3D::SliceWriter writer(*image_, VolumeProjection_Axial, sliceIndex); |
184 Orthanc::ImageProcessing::Copy(writer.GetAccessor(), *image); | 184 Orthanc::ImageProcessing::Copy(writer.GetAccessor(), image); |
185 } | 185 } |
186 | 186 |
187 SlicedVolumeBase::NotifySliceChange(sliceIndex, slice); | 187 SlicedVolumeBase::NotifySliceChange(sliceIndex, slice); |
188 | 188 |
189 if (pendingSlices_ == 1) | 189 if (pendingSlices_ == 1) |
201 | 201 |
202 virtual void HandleMessage(const IObservable& from, const IMessage& message) | 202 virtual void HandleMessage(const IObservable& from, const IMessage& message) |
203 { | 203 { |
204 switch (message.GetType()) | 204 switch (message.GetType()) |
205 { | 205 { |
206 case MessageType_SliceLoader_GeometryReady: | 206 case MessageType_SliceLoader_GeometryReady: |
207 OnSliceGeometryReady(dynamic_cast<const OrthancSlicesLoader&>(from)); | 207 OnSliceGeometryReady(dynamic_cast<const OrthancSlicesLoader&>(from)); |
208 case MessageType_SliceLoader_GeometryError: | 208 break; |
209 { | 209 |
210 LOG(ERROR) << "Unable to download a volume image"; | 210 case MessageType_SliceLoader_GeometryError: |
211 SlicedVolumeBase::NotifyGeometryError(); | 211 LOG(ERROR) << "Unable to download a volume image"; |
212 }; break; | 212 SlicedVolumeBase::NotifyGeometryError(); |
213 case MessageType_SliceLoader_ImageReady: | 213 break; |
214 { | 214 |
215 const OrthancSlicesLoader::SliceImageReadyMessage& msg = dynamic_cast<const OrthancSlicesLoader::SliceImageReadyMessage&>(message); | 215 case MessageType_SliceLoader_ImageReady: |
216 OnSliceImageReady(dynamic_cast<const OrthancSlicesLoader&>(from), | 216 { |
217 msg.sliceIndex_, | 217 const OrthancSlicesLoader::SliceImageReadyMessage& msg = |
218 msg.slice_, | 218 dynamic_cast<const OrthancSlicesLoader::SliceImageReadyMessage&>(message); |
219 msg.image_, | 219 OnSliceImageReady(dynamic_cast<const OrthancSlicesLoader&>(from), |
220 msg.effectiveQuality_); | 220 msg.GetSliceIndex(), |
221 }; break; | 221 msg.GetSlice(), |
222 case MessageType_SliceLoader_ImageError: | 222 msg.GetImage(), |
223 { | 223 msg.GetEffectiveQuality()); |
224 const OrthancSlicesLoader::SliceImageErrorMessage& msg = dynamic_cast<const OrthancSlicesLoader::SliceImageErrorMessage&>(message); | 224 break; |
225 LOG(ERROR) << "Cannot download slice " << msg.sliceIndex_ << " in a volume image"; | 225 } |
226 ScheduleSliceDownload(); | 226 |
227 }; break; | 227 case MessageType_SliceLoader_ImageError: |
228 default: | 228 { |
229 VLOG("unhandled message type" << message.GetType()); | 229 const OrthancSlicesLoader::SliceImageErrorMessage& msg = |
230 dynamic_cast<const OrthancSlicesLoader::SliceImageErrorMessage&>(message); | |
231 LOG(ERROR) << "Cannot download slice " << msg.GetSliceIndex() << " in a volume image"; | |
232 ScheduleSliceDownload(); | |
233 break; | |
234 } | |
235 | |
236 default: | |
237 VLOG("unhandled message type" << message.GetType()); | |
230 } | 238 } |
231 } | 239 } |
232 | 240 |
233 public: | 241 public: |
234 OrthancVolumeImage(MessageBroker& broker, | 242 OrthancVolumeImage(MessageBroker& broker, |
648 frame.reset(Orthanc::Image::Clone(reader.GetAccessor())); | 656 frame.reset(Orthanc::Image::Clone(reader.GetAccessor())); |
649 } | 657 } |
650 | 658 |
651 std::auto_ptr<Slice> slice(geometry.GetSlice(closest)); | 659 std::auto_ptr<Slice> slice(geometry.GetSlice(closest)); |
652 LayerSourceBase::NotifyLayerReady( | 660 LayerSourceBase::NotifyLayerReady( |
653 FrameRenderer::CreateRenderer(frame.release(), *slice, isFullQuality), | 661 FrameRenderer::CreateRenderer(*frame, *slice, isFullQuality), |
654 //new SliceOutlineRenderer(slice), | 662 //new SliceOutlineRenderer(slice), |
655 slice->GetGeometry(), false); | 663 slice->GetGeometry(), false); |
656 return; | 664 return; |
657 } | 665 } |
658 } | 666 } |
659 | 667 |
660 // Error | 668 // Error |