class vtkImageActor;
//------------------------------------------------------------------------------
-class vvBinaryImageOverlayActor
+class vvBinaryImageOverlayActor : public itk::LightObject
{
// Q_OBJECT
public:
- vvBinaryImageOverlayActor();
- ~vvBinaryImageOverlayActor();
+ typedef vvBinaryImageOverlayActor Self;
+ typedef itk::SmartPointer<Self> Pointer;
+ itkNewMacro(Self);
void SetSlicer(vvSlicer * slicer);
void SetColor(double r, double g, double b);
vtkImageActor * actor,
double position);
+private:
+ vvBinaryImageOverlayActor();
+ ~vvBinaryImageOverlayActor();
+
}; // end class vvBinaryImageOverlayActor
//------------------------------------------------------------------------------
std::system(("rm " + output_filename).c_str());
return;
}
- vvImageReader reader;
- reader.SetInputFilename(output_filename);
- reader.Update(VECTORFIELD);
+ vvImageReader::Pointer reader = vvImageReader::New();
+ reader->SetInputFilename(output_filename);
+ reader->Update(VECTORFIELD);
finish=clock();
DD((finish - start)/static_cast<double>(CLOCKS_PER_SEC));
- mOutput=reader.GetOutput();
+ mOutput = reader->GetOutput();
}
for (unsigned int i = 0; i < mSlicer->GetImage()->GetVTKImages().size(); i++) {
mSlicer->GetRenderer()->RemoveActor(mSquaresActorList[i]);
}
- mSquaresActorList.clear();
- mSquaresList.clear();
- mClipperList.clear();
}
//------------------------------------------------------------------------------
mSlicer = slicer;
// Create an actor for each time slice
for (unsigned int numImage = 0; numImage < mSlicer->GetImage()->GetVTKImages().size(); numImage++) {
- vtkImageClip * mClipper;// = vtkImageClip::New();
- vtkMarchingSquares * mSquares;// = vtkMarchingSquares::New();
- vtkActor * mSquaresActor;// = vtkActor::New();
- CreateNewActor(&mSquaresActor, &mSquares, &mClipper, numImage);
- mSquaresActorList.push_back(mSquaresActor);
- mSquaresList.push_back(mSquares);
- mClipperList.push_back(mClipper);
+ CreateNewActor(numImage);
}
}
//------------------------------------------------------------------------------
int orientation = ComputeCurrentOrientation();
UpdateActor(mSquaresActor, mSquares, mClipper, mValue, orientation, mSlice);
- mSquaresActorList[mTSlice]->VisibilityOn();
+ //mSquaresActorList[mTSlice]->VisibilityOn();
if (mPreviousTslice != mTSlice) {
if (mPreviousTslice != -1) mSquaresActorList[mPreviousTslice]->VisibilityOff();
if (actor != NULL) {
mListOfCachedContourActors[orientation][mSlice]->VisibilityOn();
} else {
- vtkImageClip * mClipper;
- vtkMarchingSquares * mSquares;
- vtkActor * mSquaresActor;
- CreateNewActor(&mSquaresActor, &mSquares, &mClipper, 0);
- UpdateActor(mSquaresActor, mSquares, mClipper, mValue, orientation, mSlice);
- mListOfCachedContourActors[orientation][mSlice] = mSquaresActor;
- mSquaresActor->VisibilityOn();
+ CreateNewActor(0);
+ //SR: commented out, this code is never reached anyway
+ //UpdateActor(mSquaresActor, mSquares, mClipper, mValue, orientation, mSlice);
+ //mListOfCachedContourActors[orientation][mSlice] = mSquaresActor;
+ //mSquaresActor->VisibilityOn();
}
if (mListOfCachedContourActors[mPreviousOrientation][mPreviousSlice] != NULL)
//------------------------------------------------------------------------------
-void vvImageContour::CreateNewActor(vtkActor ** actor,
- vtkMarchingSquares ** squares,
- vtkImageClip ** clipper,
- int numImage) {
- vtkSmartPointer<vtkActor> mSquaresActor = (*actor = vtkSmartPointer<vtkActor>::New());
- vtkSmartPointer<vtkImageClip> mClipper = (*clipper = vtkSmartPointer<vtkImageClip>::New());
- vtkSmartPointer<vtkMarchingSquares> mSquares = (*squares = vtkSmartPointer<vtkMarchingSquares>::New());
- vtkSmartPointer<vtkPolyDataMapper> mSquaresMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
+void vvImageContour::CreateNewActor(int numImage) {
+ vtkSmartPointer<vtkActor> squaresActor = vtkSmartPointer<vtkActor>::New();
+ vtkSmartPointer<vtkImageClip> clipper = vtkSmartPointer<vtkImageClip>::New();
+ vtkSmartPointer<vtkMarchingSquares> squares = vtkSmartPointer<vtkMarchingSquares>::New();
+ vtkSmartPointer<vtkPolyDataMapper> squaresMapper = vtkSmartPointer<vtkPolyDataMapper>::New();
if (mHiddenImageIsUsed)
- mClipper->SetInput(mHiddenImage->GetVTKImages()[0]);
+ clipper->SetInput(mHiddenImage->GetVTKImages()[0]);
else
- mClipper->SetInput(mSlicer->GetImage()->GetVTKImages()[numImage]);
- mSquares->SetInput(mClipper->GetOutput());
- mSquaresMapper->SetInput(mSquares->GetOutput());
- mSquaresMapper->ScalarVisibilityOff();
- mSquaresActor->SetMapper(mSquaresMapper);
- mSquaresActor->GetProperty()->SetColor(1.0,0,0);
- mSquaresActor->SetPickable(0);
- mSquaresActor->VisibilityOff();
- mSlicer->GetRenderer()->AddActor(mSquaresActor);
+ clipper->SetInput(mSlicer->GetImage()->GetVTKImages()[numImage]);
+ squares->SetInput(clipper->GetOutput());
+ squaresMapper->SetInput(squares->GetOutput());
+ squaresMapper->ScalarVisibilityOff();
+ squaresActor->SetMapper(squaresMapper);
+ squaresActor->GetProperty()->SetColor(1.0,0,0);
+ squaresActor->SetPickable(0);
+ squaresActor->VisibilityOff();
+ mSlicer->GetRenderer()->AddActor(squaresActor);
+
+ mSquaresActorList.push_back(squaresActor);
+ mClipperList.push_back(clipper);
+ mSquaresList.push_back(squares);
+ mSquaresMapperList.push_back(squaresMapper);
}
//------------------------------------------------------------------------------
clipper->SetOutputWholeExtent(extent2[0],extent2[1],extent2[2],
extent2[3],extent2[4],extent2[5]);
- if (mHiddenImage) delete extent2;
+ if (mHiddenImageIsUsed) delete extent2;
// Move the actor to be visible
switch (orientation) {
class vvImage;
//------------------------------------------------------------------------------
-class vvImageContour
+class vvImageContour: public itk::LightObject
{
// Q_OBJECT
- public:
- vvImageContour();
- ~vvImageContour();
+public:
+ typedef vvImageContour Self;
+ typedef itk::SmartPointer<Self> Pointer;
+ itkNewMacro(Self);
void SetSlicer(vvSlicer * slicer);
void Update(double value);
void SetImage(vvImage * image);
void SetPreserveMemoryModeEnabled(bool b);
- protected:
+protected:
vvSlicer * mSlicer;
int mSlice;
int mTSlice;
bool mDisplayModeIsPreserveMemory;
// For preserveMemory mode
+ std::vector<vtkSmartPointer<vtkActor> > mSquaresActorList;
std::vector<vtkSmartPointer<vtkImageClip> > mClipperList;
std::vector<vtkSmartPointer<vtkMarchingSquares> > mSquaresList;
- std::vector<vtkSmartPointer<vtkActor> > mSquaresActorList;
+ std::vector<vtkSmartPointer<vtkPolyDataMapper> > mSquaresMapperList;
// For fast cache mode
int mPreviousSlice;
void InitializeCacheMode();
void UpdateWithPreserveMemoryMode();
void UpdateWithFastCacheMode();
- void CreateNewActor(vtkActor ** actor,
- vtkMarchingSquares ** squares,
- vtkImageClip ** clipper,
- int numImage);
- void UpdateActor(vtkActor * actor,
- vtkMarchingSquares * squares,
- vtkImageClip * clipper,
- double threshold, int orientation, int slice);
+ void CreateNewActor(int numImage);
+ void UpdateActor(vtkActor * actor, vtkMarchingSquares * squares, vtkImageClip * clipper,
+ double threshold, int orientation, int slice);
void CreateActor(int orientation, int slice);
int ComputeCurrentOrientation();
-
+
+private:
+ vvImageContour();
+ ~vvImageContour();
}; // end class vvImageContour
//------------------------------------------------------------------------------
#include "vvImage.h"
#include "vvConstants.h"
-class vvImageReader : public QThread {
+class vvImageReader : public itk::LightObject, public QThread {
public:
- vvImageReader();
- ~vvImageReader();
+ typedef vvImageReader Self;
+ typedef itk::SmartPointer<Self> Pointer;
+ itkNewMacro(Self);
- void SetInputFilename(const std::string & filename);
- void SetInputFilenames(const std::vector<std::string> & filenames);
+ void SetInputFilename(const std::string & filename);
+ void SetInputFilenames(const std::vector<std::string> & filenames);
- vvImage::Pointer GetOutput() {
- return mImage;
- }
+ vvImage::Pointer GetOutput() {
+ return mImage;
+ }
- std::string GetLastError() {
- return mLastError;
- }
+ std::string GetLastError() {
+ return mLastError;
+ }
- void SetSlice(unsigned int i) { mSlice = i; }
+ void SetSlice(unsigned int i) { mSlice = i; }
- //====================================================================
- // Main function
- void Update();
- void Update(LoadedImageType type);
- void Update(int dim, std::string InputPixelType, LoadedImageType type);
+ //====================================================================
+ // Main function
+ void Update();
+ void Update(LoadedImageType type);
+ void Update(int dim, std::string InputPixelType, LoadedImageType type);
protected:
- void run();
- //====================================================================
- std::vector<std::string> mInputFilenames;
- ///Method used to load the image, see vvConstants.h for definition
- LoadedImageType mType;
- unsigned int mSlice;
- itk::Command::Pointer mObserver;
-
- std::string mLastError;
-
- //====================================================================
- template<unsigned int VImageDimension>
- void UpdateWithDim(std::string inputPixelType);
-
- //====================================================================
- /*template<unsigned int VImageDimension>
- void ExtractWithDim(std::string inputPixelType, int slice);*/
-
- //====================================================================
- template<class InputPixelType, unsigned int VImageDimension>
- void UpdateWithDimAndInputPixelType();
- ///Input dimension and pixel type
- int mDim;
- std::string mInputPixelType;
-
- //====================================================================
- void ReadNkiImageTransform();
- void ReadMatImageTransform();
+ void run();
+ //====================================================================
+ std::vector<std::string> mInputFilenames;
+ ///Method used to load the image, see vvConstants.h for definition
+ LoadedImageType mType;
+ unsigned int mSlice;
+ itk::Command::Pointer mObserver;
+
+ std::string mLastError;
+
+ //====================================================================
+ template<unsigned int VImageDimension>
+ void UpdateWithDim(std::string inputPixelType);
+
+ //====================================================================
+ /*template<unsigned int VImageDimension>
+ void ExtractWithDim(std::string inputPixelType, int slice);*/
+
+ //====================================================================
+ template<class InputPixelType, unsigned int VImageDimension>
+ void UpdateWithDimAndInputPixelType();
+ ///Input dimension and pixel type
+ int mDim;
+ std::string mInputPixelType;
+
+ //====================================================================
+ void ReadNkiImageTransform();
+ void ReadMatImageTransform();
private:
- vvImage::Pointer mImage;
+ vvImageReader();
+ ~vvImageReader();
+ vvImage::Pointer mImage;
}; // end class vvImageReader
#endif /* end #define CLITKvvImageReader_H */
// 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;
//------------------------------------------------------------------------------
vvROIActor::~vvROIActor()
{
- for(uint i= 0; i<mImageContour.size(); i++) delete mImageContour[i];
- for(uint i= 0; i<mOverlayActors.size(); i++) delete mOverlayActors[i];
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
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];
- }
+ mOverlayActors.clear();
+ mImageContour.clear();
Initialize(mIsVisible);
Update(); // No Render
}
mOverlayActors.clear();
for(int i=0; i<mSlicerManager->GetNumberOfSlicers(); i++) {
- mImageContour.push_back(new vvImageContour);
+ mImageContour.push_back(vvImageContour::New());
mImageContour[i]->SetSlicer(mSlicerManager->GetSlicer(i));
mImageContour[i]->SetImage(mROI->GetImage());
mContourColor[0] = mROI->GetDisplayColor()[0];
mImageContour[i]->SetSlicer(mSlicerManager->GetSlicer(i));
mImageContour[i]->HideActors();
- mOverlayActors.push_back(new vvBinaryImageOverlayActor);
+ mOverlayActors.push_back(vvBinaryImageOverlayActor::New());
// BG or FG
if (m_modeBG) {
#ifndef VVROIACTOR_H
#define VVROIACTOR_H
+#include "vvBinaryImageOverlayActor.h"
+#include "vvImageContour.h"
#include "clitkDicomRT_ROI.h"
#include <QObject>
class vvSlicerManager;
-class vvImageContour;
-class vvBinaryImageOverlayActor;
class vtkActor;
//------------------------------------------------------------------------------
protected:
clitk::DicomRT_ROI::Pointer mROI;
vvSlicerManager * mSlicerManager;
- std::vector<vvImageContour *> mImageContour;
- std::vector<vvBinaryImageOverlayActor *> mOverlayActors;
+ std::vector<vvImageContour::Pointer> mImageContour;
+ std::vector< vvBinaryImageOverlayActor::Pointer > mOverlayActors;
bool mIsVisible;
bool mIsContourVisible;
#include "vvSlicerManagerCommand.h"
#include "vvInteractorStyleNavigator.h"
#include "vvLandmarks.h"
-#include "vvImageReader.h"
-#include "vvImageReader.h"
#include "vvMesh.h"
#include "vvImageMapToWLColors.h"
#include "vvBlendImageActor.h"
if (mSlicers[i] != NULL)
mSlicers[i]->Delete();
}
- if (mReader) {
- delete mReader;
- }
- if (mVectorReader) {
- delete mVectorReader;
- }
- if (mOverlayReader) {
- delete mOverlayReader;
- }
- if (mFusionReader) {
- delete mFusionReader;
- }
if (mLandmarks)
delete mLandmarks;
}
bool vvSlicerManager::SetImage(std::string filename, LoadedImageType type, int n, unsigned int slice)
{
mType = type;
- if (mReader == NULL)
- mReader = new vvImageReader;
+ if (mReader.IsNull())
+ mReader = vvImageReader::New();
std::vector<std::string> filenames;
filenames.push_back(filename);
mReader->SetInputFilenames(filenames);
mFileName = vtksys::SystemTools::GetFilenameName(mFileName);
mFileName = fileWithoutExtension + vtksys::SystemTools::GetFilenameExtension(filenames[0]);
- if (mReader == NULL)
- mReader = new vvImageReader;
+ if (mReader.IsNull())
+ mReader = vvImageReader::New();
mReader->SetInputFilenames(filenames);
mReader->Update(type);
mLastError = " Overlay dimension cannot be greater then reference image!";
return false;
}
- if (mOverlayReader == NULL)
- mOverlayReader = new vvImageReader;
+ if (mOverlayReader.IsNull())
+ mOverlayReader = vvImageReader::New();
std::vector<std::string> filenames;
filenames.push_back(filename);
mOverlayReader->SetInputFilenames(filenames);
mLastError = " Overlay dimension cannot be greater then reference image!";
return false;
}
- if (mFusionReader == NULL)
- mFusionReader = new vvImageReader;
+ if (mFusionReader.IsNull())
+ mFusionReader = vvImageReader::New();
std::vector<std::string> filenames;
filenames.push_back(filename);
mFusionReader->SetInputFilenames(filenames);
//----------------------------------------------------------------------------
bool vvSlicerManager::SetVF(std::string filename)
{
- if (mVectorReader == NULL)
- mVectorReader = new vvImageReader;
+ if (mVectorReader.IsNull())
+ mVectorReader = vvImageReader::New();
mVectorReader->SetInputFilename(filename);
mVectorReader->Update(VECTORFIELD);
if (mVectorReader->GetLastError().size() != 0) {
//----------------------------------------------------------------------------
void vvSlicerManager::RemoveActor(const std::string& actor_type, int overlay_index)
{
- if (actor_type =="overlay") {
- delete mOverlayReader;
+ if (actor_type =="overlay")
mOverlayReader = NULL;
- }
- if (actor_type =="fusion") {
- delete mFusionReader;
+ if (actor_type =="fusion")
mFusionReader = NULL;
- }
- for (unsigned int i = 0; i < mSlicers.size(); i++) {
+ for (unsigned int i = 0; i < mSlicers.size(); i++)
mSlicers[i]->RemoveActor(actor_type,overlay_index);
- }
+
if (actor_type=="vector") {
mVF=NULL;
- if (mVectorReader) {
- delete mVectorReader;
- mVectorReader=NULL;
- }
+ mVectorReader=NULL;
}
}
//----------------------------------------------------------------------------
#include "clitkCommon.h"
#include "vvImage.h"
#include "vvMesh.h"
+#include "vvImageReader.h"
+
class vvSlicer;
class vvInteractorStyleNavigator;
class vvImageReader;
protected:
std::vector<vvSlicer*> mSlicers;
- vvImageReader* mReader;
- vvImageReader* mOverlayReader;
- vvImageReader* mFusionReader;
+ vvImageReader::Pointer mReader;
+ vvImageReader::Pointer mOverlayReader;
+ vvImageReader::Pointer mFusionReader;
+ vvImageReader::Pointer mVectorReader;
vvImage::Pointer mImage;
vvImage::Pointer mVF;
- vvImageReader* mVectorReader;
int mColorMap;
int mOverlayColor;
// VTK objects for interactive display
for(int i=0; i<mCurrentSlicerManager->GetNumberOfSlicers(); i++) {
- mImageContour.push_back(new vvImageContour);
+ mImageContour.push_back(vvImageContour::New());
mImageContour[i]->SetSlicer(mCurrentSlicerManager->GetSlicer(i));
mImageContour[i]->SetColor(1.0, 0.0, 0.0);
- mImageContourLower.push_back(new vvImageContour);
+ mImageContourLower.push_back(vvImageContour::New());
mImageContourLower[i]->SetSlicer(mCurrentSlicerManager->GetSlicer(i));
mImageContourLower[i]->SetColor(0.0, 0.0, 1.0);
}
virtual void closeEvent(QCloseEvent *event);
Ui::vvToolBinarize ui;
args_info_clitkBinarizeImage mArgsInfo;
- std::vector<vvImageContour*> mImageContour;
- std::vector<vvImageContour*> mImageContourLower;
+ std::vector<vvImageContour::Pointer> mImageContour;
+ std::vector<vvImageContour::Pointer> mImageContourLower;
bool mInteractiveDisplayIsEnabled;
}; // end class vvToolBinarize
//------------------------------------------------------------------------------
vvToolStructureSetManager::~vvToolStructureSetManager()
{
+ disconnect(mTree, SIGNAL(itemSelectionChanged()), this, SLOT(SelectedItemChangedInTree()));
m_NumberOfTool--;
-
- std::map<clitk::DicomRT_ROI::Pointer, QTreeWidgetItem *>::iterator it;
- for (it = mMapROIToTreeWidget.begin(); it!=mMapROIToTreeWidget.end(); it++)
- delete it->second;
- for(unsigned int i=0; i< mStructureSetActorsList.size(); i++)
- delete mStructureSetActorsList[i];
-
}
//------------------------------------------------------------------------------
//------------------------------------------------------------------------------
void vvToolStructureSetManager::AddRoiInTreeWidget(clitk::DicomRT_ROI * roi, QTreeWidget * ww) {
- QTreeWidgetItem * w = new QTreeWidgetItem(ww);
+ mTreeWidgetList.push_back(QSharedPointer<QTreeWidgetItem>(new QTreeWidgetItem(ww)));
+ QTreeWidgetItem * w = mTreeWidgetList.back().data();
w->setText(0, QString("%1").arg(roi->GetROINumber()));
w->setText(1, QString("%1").arg(roi->GetName().c_str()));
QBrush brush(QColor(roi->GetDisplayColor()[0]*255, roi->GetDisplayColor()[1]*255, roi->GetDisplayColor()[2]*255));
int vvToolStructureSetManager::AddStructureSet(clitk::DicomRT_StructureSet * mStructureSet) {
// Create actor for this SS
- vvStructureSetActor * mStructureSetActor = new vvStructureSetActor;
+ QSharedPointer<vvStructureSetActor> mStructureSetActor(new vvStructureSetActor);
mStructureSetActor->SetStructureSet(mStructureSet);
mStructureSetActor->SetSlicerManager(mCurrentSlicerManager);
index = mCurrentStructureSetIndex;
}
mCurrentStructureSet = mStructureSetsList[index];
- mCurrentStructureSetActor = mStructureSetActorsList[index];
+ mCurrentStructureSetActor = mStructureSetActorsList[index].data();
mCurrentStructureSetIndex = index;
// Open images
QString Extensions = "Images files ( *.mhd *.hdr *.his)";
for(int i=0; i<filename.size(); i++) {
// Open Image
QApplication::setOverrideCursor(QCursor(Qt::WaitCursor));
- vvImageReader mReader;
+ vvImageReader::Pointer reader = vvImageReader::New();
std::vector<std::string> filenames;
filenames.push_back(filename[i].toStdString());
- mReader.SetInputFilenames(filenames);
- mReader.Update(IMAGE);
+ reader->SetInputFilenames(filenames);
+ reader->Update(IMAGE);
QApplication::restoreOverrideCursor();
- if (mReader.GetLastError().size() != 0) {
+ if (reader->GetLastError().size() != 0) {
std::cerr << "Error while reading " << filename[i].toStdString() << std::endl;
QString error = "Cannot open file \n";
- error += mReader.GetLastError().c_str();
+ error += reader->GetLastError().c_str();
QMessageBox::information(this,tr("Reading problem"),error);
return;
}
- vvImage::Pointer binaryImage = mReader.GetOutput();
+ vvImage::Pointer binaryImage = reader->GetOutput();
AddImage(binaryImage, filename[i].toStdString(), mBackgroundValueSpinBox->value());
mOpenedBinaryImage.push_back(binaryImage);
}
index = mCurrentStructureSetIndex;
}
mCurrentStructureSet = mStructureSetsList[index];
- mCurrentStructureSetActor = mStructureSetActorsList[index];
+ mCurrentStructureSetActor = mStructureSetActorsList[index].data();
mCurrentStructureSetIndex = index;
// Check Dimension
//------------------------------------------------------------------------------
void vvToolStructureSetManager::ReloadCurrentROI() {
// Reload image
- vvImageReader mReader;
- mReader.SetInputFilename(mCurrentROI->GetFilename());
- mReader.Update(IMAGE);
- if (mReader.GetLastError() != "") {
- QMessageBox::information(mMainWindowBase, tr("Sorry, error. Could not reload"), mReader.GetLastError().c_str());
+ vvImageReader::Pointer reader = vvImageReader::New();
+ reader->SetInputFilename(mCurrentROI->GetFilename());
+ reader->Update(IMAGE);
+ if (reader->GetLastError() != "") {
+ QMessageBox::information(mMainWindowBase, tr("Sorry, error. Could not reload"), reader->GetLastError().c_str());
return;
}
mCurrentROI->GetImage()->GetFirstVTKImageData()->ReleaseData();
- mCurrentROI->SetImage(mReader.GetOutput());
+ mCurrentROI->SetImage(reader->GetOutput());
// Update visu"
mCurrentROIActor->UpdateImage();
bool mIsAllVisibleEnabled;
int mNumberOfVisibleROI;
int mNumberOfVisibleContourROI;
- std::vector<clitk::DicomRT_StructureSet::Pointer > mStructureSetsList;
- std::vector<vvStructureSetActor *> mStructureSetActorsList;
- std::map<int, QTreeWidgetItem *> mMapStructureSetIndexToTreeWidget;
+ std::vector<clitk::DicomRT_StructureSet::Pointer > mStructureSetsList;
+ std::vector< QSharedPointer<vvStructureSetActor> > mStructureSetActorsList;
+ std::vector< QSharedPointer<QTreeWidgetItem> > mTreeWidgetList;
std::map<clitk::DicomRT_ROI::Pointer, QTreeWidgetItem *> mMapROIToTreeWidget;
std::map<QTreeWidgetItem *, clitk::DicomRT_ROI::Pointer> mMapTreeWidgetToROI;
std::vector<int> mLoadedROIIndex;