class vvImageReader;
class vvLandmarks;
+enum WindowLevelPreset {
+ WL_AUTO,
+ WL_HOUNSFIELD,
+ WL_SOFTTISSUE,
+ WL_LUNGS,
+ WL_BONES,
+ WL_HEAD,
+ WL_BINARY,
+ WL_USER,
+ WL_VENTILATION
+};
+
//------------------------------------------------------------------------------
class vvSlicerManager : public QObject {
Q_OBJECT
void SetSliceOrientation(int slicer, int orientation);
int GetTSlice();
- void SetTSlice(int slice);
+ void SetTSlice(int slice, bool updateLinkedImages = true);
void SetNextTSlice(int originating_slicer);
void SetPreviousTSlice(int originating_slicer);
void SetTSliceInSlicer(int tslice, int slicer);
//set/get fusionSequence related data
void SetFusionSequenceFrameIndex(int sequenceFrameIndex) { mFusionSequenceFrameIndex = sequenceFrameIndex; }
void SetFusionSequenceSpatialSyncFlag(bool spatialSync) { mFusionSequenceSpatialSyncFlag = spatialSync; }
+ void SetFusionSequenceTemporalSyncFlag(bool temporalSync) { mFusionSequenceTemporalSyncFlag = temporalSync; }
void SetFusionSequenceLength(unsigned int fusionSequenceNbFrames) { mFusionSequenceNbFrames = fusionSequenceNbFrames; }
void SetFusionSequenceMainTransformMatrix(vtkSmartPointer<vtkMatrix4x4> mat) {
mFusionSequenceMainTransform = vtkSmartPointer<vtkMatrix4x4>::New();
tmpMat->DeepCopy(mat);
mFusionSequenceListInitialTransformMatrices.push_back( tmpMat );
}
+ void SetFusionSequenceIndexOfLinkedManager(int index) { mFusionSequenceIndexLinkedManager = index; }
+ void SetFusionSequenceTemporalSignal(std::vector<double> s) { mFusionSequenceTemporalSignal = s; }
+
+ void SetFusionSequenceInvolvmentCode(int code) { mFusionSequenceInvolvementCode=code; }
+ int GetFusionSequenceInvolvmentCode() { return mFusionSequenceInvolvementCode;}
+ bool IsInvolvedInFusionSequence() {return (!(mFusionSequenceInvolvementCode==-1));}
+ bool IsMainSequenceOfFusionSequence() {return (mFusionSequenceInvolvementCode==0);}
+ bool IsSecondarySequenceOfFusionSequence() {return (mFusionSequenceInvolvementCode==1);}
+ int GetFusionSequenceIndexOfLinkedManager() { return mFusionSequenceIndexLinkedManager; }
int GetFusionSequenceFrameIndex() { return mFusionSequenceFrameIndex; }
bool GetFusionSequenceSpatialSyncFlag() { return mFusionSequenceSpatialSyncFlag; }
+ bool GetFusionSequenceTemporalSyncFlag() { return mFusionSequenceTemporalSyncFlag; }
unsigned int GetFusionSequenceNbFrames() { return mFusionSequenceNbFrames; }
const vtkSmartPointer<vtkMatrix4x4>& GetFusionSequenceMainTransformMatrix() {return mFusionSequenceMainTransform;}
const std::vector< vtkSmartPointer<vtkMatrix4x4> >& GetFusionSequenceInitialTransformMatrices() {return mFusionSequenceListInitialTransformMatrices;}
const vtkSmartPointer<vtkMatrix4x4>& GetFusionSequenceInitialTransformMatrixAtFrame(unsigned i) {
return mFusionSequenceListInitialTransformMatrices[i];
}
+ const std::vector<double>& GetFusionSequenceTemporalSignal() {return mFusionSequenceTemporalSignal;}
double GetColorWindow() const;
double GetColorLevel() const;
void KeyPressedSignal(std::string KeyPressed);
void UpdateOrientation(int slicer, int orientation);
void UpdateSlice(int slicer, int slice);
- void UpdateTSlice(int slicer, int slice);
+ void UpdateTSlice(int slicer, int slice, int code);
void UpdateSliceRange(int slice, int min, int max, int tmin, int tmax);
void WindowLevelChanged();
void UpdateLinkManager(std::string, int slicer, double x, double y, double z, int temps);
double mFusionLevel;
bool mFusionShowLegend;
- //fusionSequence related data
- int mFusionSequenceFrameIndex;
- bool mFusionSequenceSpatialSyncFlag;
- unsigned int mFusionSequenceNbFrames;
+ //Fusion of sequences related data
+ int mFusionSequenceInvolvementCode; //-1: not involved, 0: main sequence(CT), 1: secondary sequence (US)
+ int mFusionSequenceIndexLinkedManager; //index of the other sequence involved in the visualization
+ int mFusionSequenceFrameIndex; //temporal index of the current image in the sequence (<->TSlice)
+ unsigned int mFusionSequenceNbFrames; //number of frames in the temporal sequence
+ bool mFusionSequenceSpatialSyncFlag, mFusionSequenceTemporalSyncFlag; //flags indicating whether the spatial/temporal synchronization are actives
vtkSmartPointer<vtkMatrix4x4> mFusionSequenceMainTransform;
std::vector< vtkSmartPointer<vtkMatrix4x4> > mFusionSequenceListInitialTransformMatrices;
+ std::vector<double> mFusionSequenceTemporalSignal;
int mPreset;
SlicingPresetType mSlicingPreset;