X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvImageContour.h;h=ad1143dd963399ca01319dbc382e78da529fe1e2;hb=2dad4a649b5e61f450b47047f379fcc351b50215;hp=5b16d3541387385fa91e20eaf49716095def2bed;hpb=0b7c9b1e1215634b02cbd38d4e4ba101d6111ba8;p=clitk.git diff --git a/vv/vvImageContour.h b/vv/vvImageContour.h index 5b16d35..ad1143d 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,42 @@ class vvImageContour void hideActors(); void showActors(); void setColor(double r, double g, double b); + void setImage(vvImage::Pointer image); + void setPreserveModeEnabled(bool b); protected: vvSlicer * mSlicer; int mSlice; int mTSlice; double mValue; + 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); + void updateActor(vtkActor * actor, + vtkMarchingSquares * squares, + vtkImageClip * clipper, + int threshold, int orientation, int slice); + void createActor(int orientation, int slice); + int computeCurrentOrientation(); + }; // end class vvImageContour //------------------------------------------------------------------------------