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
- ======================================================================-====*/
+ ===========================================================================**/
// vv
#include "vvROIActor.h"
-#include "vvImageContour.h"
#include "vvSlicerManager.h"
-#include "vvBinaryImageOverlayActor.h"
// vtk
#include <vtkImageActor.h>
//------------------------------------------------------------------------------
vvROIActor::vvROIActor()
{
- mImageContour.clear();
- mOverlayActors.clear();
mIsVisible = true;
mIsContourVisible = false;
mOpacity = 0.7;
mIsSelected = false;
mContourWidth = 1;
mContourColor.resize(3);
+ m_modeBG = true;
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void vvROIActor::UpdateImage()
{
- for(unsigned int i= 0; i<mOverlayActors.size(); i++) {
- mOverlayActors[i]->HideActors();
- delete mOverlayActors[i];
- }
- for(unsigned int i= 0; i<mImageContour.size(); i++) {
- mImageContour[i]->HideActors();
- delete mImageContour[i];
- }
- Initialize();
+ mOverlayActors.clear();
+ mImageContour.clear();
+ Initialize(mIsVisible);
Update(); // No Render
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
-void vvROIActor::Initialize() {
+void vvROIActor::Initialize(bool IsVisible) {
if (mROI->GetImage()) {
mImageContour.clear();
mOverlayActors.clear();
- for(int i=0; i<mSlicerManager->NumberOfSlicers(); i++) {
- mImageContour.push_back(new vvImageContour);
+ for(int i=0; i<mSlicerManager->GetNumberOfSlicers(); i++) {
+
+ mImageContour.push_back(vvImageContour::New());
mImageContour[i]->SetSlicer(mSlicerManager->GetSlicer(i));
mImageContour[i]->SetImage(mROI->GetImage());
mContourColor[0] = mROI->GetDisplayColor()[0];
mImageContour[i]->SetColor(mContourColor[0], mContourColor[1], mContourColor[2]);
mImageContour[i]->SetLineWidth(mContourWidth);
mImageContour[i]->SetPreserveMemoryModeEnabled(true);
+ //mImageContour[i]->SetPreserveMemoryModeEnabled(false); // SEG FAULT !!!
mImageContour[i]->SetSlicer(mSlicerManager->GetSlicer(i));
mImageContour[i]->HideActors();
- mOverlayActors.push_back(new vvBinaryImageOverlayActor);
- mOverlayActors[i]->SetImage(mROI->GetImage(), mROI->GetBackgroundValueLabelImage());
+ mOverlayActors.push_back(vvBinaryImageOverlayActor::New());
+
+ // BG or FG
+ if (m_modeBG) {
+ mOverlayActors[i]->SetImage(mROI->GetImage(), mROI->GetBackgroundValueLabelImage());
+ }
+ else {
+ mOverlayActors[i]->SetImage(mROI->GetImage(), mROI->GetForegroundValueLabelImage(), false);
+ }
+
+
mOverlayActors[i]->SetColor(mROI->GetDisplayColor()[0],
mROI->GetDisplayColor()[1],
mROI->GetDisplayColor()[2]);
mOverlayActors[i]->SetOpacity(mOpacity);
mOverlayActors[i]->SetSlicer(mSlicerManager->GetSlicer(i));
- mOverlayActors[i]->Initialize();
+ mOverlayActors[i]->Initialize(IsVisible);
}
connect(mSlicerManager,SIGNAL(UpdateSlice(int,int)),this,SLOT(UpdateSlice(int, int)));
//------------------------------------------------------------------------------
void vvROIActor::Update()
{
- for(int i=0; i<mSlicerManager->NumberOfSlicers(); i++) {
+ for(int i=0; i<mSlicerManager->GetNumberOfSlicers(); i++) {
UpdateSlice(i, mSlicerManager->GetSlicer(i)->GetSlice());
}
}
//------------------------------------------------------------------------------
void vvROIActor::SetSelected(bool b)
{
- DD(" Not used yet");
mIsSelected = b;
if (b) {
- for(int i=0; i<mSlicerManager->NumberOfSlicers(); i++) {
+ for(int i=0; i<mSlicerManager->GetNumberOfSlicers(); i++) {
mImageContour[i]->SetLineWidth(3.0);
mImageContour[i]->ShowActors();
}
} else {
- for(int i=0; i<mSlicerManager->NumberOfSlicers(); i++) {
+ for(int i=0; i<mSlicerManager->GetNumberOfSlicers(); i++) {
mImageContour[i]->HideActors();
}
}