mIsSelected = false;
mContourWidth = 1;
mContourColor.resize(3);
+ m_modeBG = true;
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
vvROIActor::~vvROIActor()
{
+ for(uint i= 0; i<mImageContour.size(); i++) delete mImageContour[i];
+ for(uint i= 0; i<mOverlayActors.size(); i++) delete mOverlayActors[i];
}
//------------------------------------------------------------------------------
mImageContour[i]->HideActors();
delete mImageContour[i];
}
- Initialize();
+ 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++) {
+ for(int i=0; i<mSlicerManager->GetNumberOfSlicers(); i++) {
+
mImageContour.push_back(new vvImageContour);
mImageContour[i]->SetSlicer(mSlicerManager->GetSlicer(i));
mImageContour[i]->SetImage(mROI->GetImage());
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());
+
+ // 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();
}
}