Authors belong to:
- University of LYON http://www.universite-lyon.fr/
- - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr
+ - Léon Bérard cancer center http://www.centreleonberard.fr
- CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
This software is distributed WITHOUT ANY WARRANTY; without even
- BSD See included LICENSE.txt file
- CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
- ======================================================================-====*/
+ ===========================================================================**/
#include "vvBinaryImageOverlayActor.h"
#include "vvImage.h"
mAlpha = 0.6;
mImage = 0;
mSlicer = 0;
- mColorLUT = vtkLookupTable::New();
+ mColorLUT = vtkSmartPointer<vtkLookupTable>::New();
mForegroundValue = 1;
mBackgroundValue = 0;
m_modeBG = true;
//------------------------------------------------------------------------------
vvBinaryImageOverlayActor::~vvBinaryImageOverlayActor()
{
- for (unsigned int i = 0; i < mSlicer->GetImage()->GetVTKImages().size(); i++) {
+ for (unsigned int i = 0; i < mImageActorList.size(); i++) {
mSlicer->GetRenderer()->RemoveActor(mImageActorList[i]);
}
- mImageActorList.clear();
- mMapperList.clear();
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
-void vvBinaryImageOverlayActor::Initialize()
+void vvBinaryImageOverlayActor::Initialize(bool IsVisible)
{
if (!mSlicer) {
std::cerr << "ERROR. Please use setSlicer before setSlicer in vvBinaryImageOverlayActor." << std::endl;
// Create an actor for each time slice
for (unsigned int numImage = 0; numImage < mSlicer->GetImage()->GetVTKImages().size(); numImage++) {
// how many intensity ?
- vtkImageMapToRGBA * mOverlayMapper = vtkImageMapToRGBA::New();
+ vtkSmartPointer<vtkImageMapToRGBA> mOverlayMapper = vtkSmartPointer<vtkImageMapToRGBA>::New();
mOverlayMapper->SetInput(mImage->GetVTKImages()[0]); // DS TODO : to change if it is 4D !!!
- // DD("change to nb of intensity");
double range[2];
mImage->GetVTKImages()[0]->GetScalarRange(range);
- // DD(range[0]);
-// DD(range[1]);
int n = range[1]-range[0]+1;
mColorLUT->SetRange(range[0],range[1]);
mColorLUT->SetNumberOfTableValues(n);
mOverlayMapper->SetLookupTable(mColorLUT);
- vtkImageActor * mOverlayActor = vtkImageActor::New();
+ vtkSmartPointer<vtkImageActor> mOverlayActor = vtkSmartPointer<vtkImageActor>::New();
mOverlayActor->SetInput(mOverlayMapper->GetOutput());
mOverlayActor->SetPickable(0);
- mOverlayActor->SetVisibility(true);
+ mOverlayActor->SetVisibility(IsVisible);
//mOverlayActor->SetOpacity(1.0);
mMapperList.push_back(mOverlayMapper);
//------------------------------------------------------------------------------
-void vvBinaryImageOverlayActor::SetImage(vvImage::Pointer image, double bg, bool modeBG)
+void vvBinaryImageOverlayActor::SetImage(vvImage * image, double bg, bool modeBG)
{
- // DD("vvBinaryImageOverlayActor::SetImage");
- //DD(modeBG);
mImage = image;
if (modeBG) {
mBackgroundValue = bg;
int * inExtent,
int * outExtent)
{
- // std::cout << "InExtent = " << inExtent[0] << " " << inExtent[1] << " " << inExtent[2] << " "
- // << inExtent[3] << " " << inExtent[4] << " " << inExtent[5] << std::endl;
- // DD(orientation);
switch (orientation) {
case vtkImageViewer2::SLICE_ORIENTATION_XY:
for(int i=0; i<4; i++) outExtent[i] = inExtent[i];
outExtent[0] = outExtent[1] = slice;
break;
}
- // std::cout << "OutExtent = " << outExtent[0] << " " << outExtent[1] << " " << outExtent[2] << " "
- // << outExtent[3] << " " << outExtent[4] << " " << outExtent[5] << std::endl;
}
//------------------------------------------------------------------------------