#define GIMMICK_4D_IMAGE_SELECTION 4
#define NATIVE 0
-#define _2D 2
-#define _3D 3
-
+#define _2D 2
+#define _3D 3
namespace creaImageIO
{
/// Finalize
virtual void Finalize();
- //Returns the maximal priority
- int GetMaximalPriority(){return mReader.GetMaximalPriority();}
+ ///Returns the maximal priority
+ int GetMaximalPriority(){return mReader.GetMaximalPriority();}
+
+ ///Adds the selected Images to the given vector
+ virtual void GetSelectedImagesInVector(std::vector<vtkImageData*>& s, int dim)
+ { GimmickError("INTERNAL ERROR : GetSelectedImagesInVector not implemented"); }
///Adds the selected Images to the given vector and validates to see if they comply with the given parameter (4D)
virtual void GetSelectedImages(std::vector<vtkImageData*>& s, int dim)
virtual void SaveAs(const std::vector<std::string>& filenames)
{ GimmickError("INTERNAL ERROR : SaveAs not implemented"); }
-
/// No selected image
bool NoValidateSelected();
+
///Validates the dimension compliance of the images with the maximum and minimum given, and between their sizes
bool ValidateSelected (tree::Node* sel, int min_dim, int max_dim);
-
+
///Reads the vector of images, builds it in the dimension required and returns them in the supplied vector.
void ReadImagesNotThreaded(std::vector<vtkImageData*>& s,std::vector<std::string> files, int dim);
- ///Requests the reading of an image with priority and index in the
+
+ ///Reads the vector of images, builds it in the dimension required and returns them in the supplied vector.
+ void ReadImagesNotThreadedInVector(std::vector<vtkImageData*>& s,std::vector<std::string> files, int dim);
+
+///Requests the reading of an image with priority and index in the
/// current selection (-1 if not in selection)
//void RequestReading(tree::Node* n, int prio, int selection_index , ImagePointerHolder *p);
void RequestReading(tree::Node* n, int prio, int selection_index , boost::shared_ptr<ImagePointerHolder> p);
-
-
+
///Obtains the message of the state
std::string GetMessage(){return mMess;}
- ///Obtains the message of the state
+
+ ///Obtains the message of the state
void SetMessage(std::string mess){mMess=mess;}
+
///Resets the data of the extent and begins a new selection
void ResetExtent();
/// Updates the TreeView of given name from level l to bottom
/// (calls the virtual method TreeView::UpdateLevel(l))
virtual void UpdateTreeViewLevel(const std::string&, int l);
+
// Multi-thread image reader callback
void OnMultiThreadImageReaderEvent(const std::string& filename,
MultiThreadImageReaderUser::EventType t,
vtkImageData* GetDefaultImage() { return mReader.GetImage(""); }
-
//=============================================
typedef boost::signal<void (bool)> ValidationSignalType;
typedef ValidationSignalType::slot_function_type ValidationCallbackType;
void ConnectValidationObserver(ValidationCallbackType callback);
//==================================================================
-
-
void modifyValidationSignal(bool ivalid);
private:
-
+
/// Controller which manages the interaction with the model
- boost::shared_ptr< Gimmick> mGimmick;
+ boost::shared_ptr< Gimmick> mGimmick;
+
/// The views
TreeViewMapType mTreeViewMap;
+
/// The message that results from the validation
std::string mMess;
/// Multi-thread image reader
MultiThreadImageReader mReader;
+
/// Internal type of image reading event
/// If the image pointer is non null then the image is available (loaded)
/// else it has been unloaded
ImageEventType( tree::Node* no = 0,
int sel_index = -1)
// ImagePointerHolder* ph= 0)
-: node(no), index(sel_index){}//, pointerHolder(ph){}
+ : node(no), index(sel_index){}//, pointerHolder(ph){}
ImageEventType(vtkImageData* im )
: image(im) {}
tree::Node* node;
/// Map of images' names to ImageEventType
/// Used to associated a filename to a the data of a request
ImageEventTypeMap mImageEventMap;
+
// queue of image event
typedef std::deque<ImageEventType> ImageEventQueueType;
+
//ImageEventQueueType mImageEventQueue;
///The current image extent
boost::shared_ptr<ImageExtent> mImageExtent;
+
///The validation signal
ValidationSignalType mValidationSignal;
+
///Boolean that determines if the selection is valid
bool valid;
+
///Boolean that determines if the reader has been started
bool mReaderStarted;
-
+
};
// EO class GimmickView
//=====================================================================
-
-
} // EO namespace creaImageIO
// EOF