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