- if (event->text() == "l") {
- Labelize();
- }
- if (event->text() == "r") { // "Remove" one label
- if (mCurrentMode == Mode_CCL) RemoveLabel();
- }
- if (event->text() == "s") {
- vvImageWriter::Pointer writer = vvImageWriter::New();
- writer->SetOutputFileName("a.mha");
- writer->SetInput(mCurrentMaskImage);
- writer->Update();
- }
- //mMainWindow->keyPressEvent(event);
- vvToolWidgetBase::keyPressEvent(event);
- }
- return QObject::eventFilter(object, e);
+ }
+ mCurrentCCLActors.clear();
+
+ // Compute new mask
+ vtkImageData * ccl = mCurrentCCLImage->GetFirstVTKImageData();
+ vtkImageData * mask = mCurrentMaskImage->GetFirstVTKImageData();
+ int * pCCL = (int*)ccl->GetScalarPointer();
+ char * pPix = (char*)mask->GetScalarPointer();
+ for(uint i=0; i<ccl->GetNumberOfPoints(); i++) {
+ if (pCCL[i] == 0) pPix[i] = 0; // copy BG
+ }
+
+ // Display new mask and remove ccl
+ mCurrentCCLImage->Reset();
+ mCurrentMaskActor->RemoveActors(); // kill it
+ mCurrentMaskActor = CreateMaskActor(mCurrentMaskImage, 1, 0, false); // renew
+ mCurrentMaskActor->Update();
+ mCurrentMaskActor->SetVisible(true);
+ mCurrentSlicerManager->Render();
+ mCurrentState = State_Default;