}
}
+ //======================================================================
-
+ //======================================================================
+ ///Requests the reading of an image
+ void GimmickView::RequestReading(tree::Node* n,
+ int prio, int selection_index)
+ {
+ ImageEventType t(n,0,selection_index);
+ mImageEventMap[n->GetAttribute("FullFileName")] = t;
+ mReader.Request(this,n->GetAttribute("FullFileName"),prio);
+ }
//======================================================================
//======================================================================
MultiThreadImageReaderUser::EventType e,
vtkImageData* image)
{
- GimmickDebugMessage(5,
+ GimmickDebugMessage(7,
"MultiThreadImageReader event : "<<e<<std::endl);
+ if (e==ImageLoaded)
+ {
if (filename.size()==0)
{
GimmickDebugMessage(5,
mImageEventQueue.push_back(ImageEventType(image));
return;
}
- std::map<std::string,tree::Node*>::iterator i;
- i = mImageFileNameToNode.find(filename);
- if (i!=mImageFileNameToNode.end())
+ ImageEventTypeMap::iterator i;
+ i = mImageEventMap.find(filename);
+ if (i!=mImageEventMap.end())
{
GimmickDebugMessage(5,
- "Pushing image of file '"<<i->second<<"' in queue"
+ "Pushing image of file '"<<filename<<"' in queue"
<<std::endl);
- mImageEventQueue.push_back(ImageEventType(i->second,image));
+ ImageEventType e(i->second);
+ e.image = image;
+ mImageEventQueue.push_back(e);
+ mImageEventMap.erase(i);
}
+ }
+ else if (e==Error)
+ {
+ std::string mess="ERROR: MultiThreadImageReader: Cannot read image in file ";
+ mess+=filename;
+ mess+="\n";
+ GimmickMessage(1,mess);
+ }
+
+ else if (e==ImageUnloaded)
+ {
+ std::string mess="Unloaded image in file ";
+ mess+=filename;
+ mess+="\n";
+ GimmickMessage(1,mess);
+ }
}
//====================================================================