X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvImageContour.h;h=d7cf62cc4db8eb6578996168f16bee03502b7cc6;hb=000ac5b867a708575268c7c823db4fcbe727c2d6;hp=5b16d3541387385fa91e20eaf49716095def2bed;hpb=0b7c9b1e1215634b02cbd38d4e4ba101d6111ba8;p=clitk.git diff --git a/vv/vvImageContour.h b/vv/vvImageContour.h index 5b16d35..d7cf62c 100644 --- a/vv/vvImageContour.h +++ b/vv/vvImageContour.h @@ -17,11 +17,14 @@ ======================================================================-====*/ #ifndef VVIMAGECONTOUR_H #define VVIMAGECONTOUR_H + #include "clitkCommon.h" #include "vvSlicer.h" + class vtkImageClip; class vtkMarchingSquares; class vtkActor; +class vvImage; //------------------------------------------------------------------------------ class vvImageContour @@ -36,17 +39,44 @@ class vvImageContour void hideActors(); void showActors(); void setColor(double r, double g, double b); + void setImage(vvImage::Pointer image); + void setPreserveMemoryModeEnabled(bool b); protected: vvSlicer * mSlicer; int mSlice; int mTSlice; double mValue; + int mPreviousTSlice; + double mPreviousValue; + bool mHiddenImageIsUsed; + vvImage::Pointer mHiddenImage; + bool mDisplayModeIsPreserveMemory; + // For preserveMemory mode std::vector mClipperList; std::vector mSquaresList; std::vector mSquaresActorList; + // For fast cache mode + int mPreviousSlice; + int mPreviousOrientation; + std::vector > mListOfCachedContourActors; + + // Functions + void initializeCacheMode(); + void updateWithPreserveMemoryMode(); + void updateWithFastCacheMode(); + void createNewActor(vtkActor ** actor, + vtkMarchingSquares ** squares, + vtkImageClip ** clipper, int numImage); + void updateActor(vtkActor * actor, + vtkMarchingSquares * squares, + vtkImageClip * clipper, + double threshold, int orientation, int slice); + void createActor(int orientation, int slice); + int computeCurrentOrientation(); + }; // end class vvImageContour //------------------------------------------------------------------------------