1 /*=========================================================================
2 Program: vv http://www.creatis.insa-lyon.fr/rio/vv
5 - University of LYON http://www.universite-lyon.fr/
6 - Léon Bérard cancer center http://www.centreleonberard.fr
7 - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr
9 This software is distributed WITHOUT ANY WARRANTY; without even
10 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11 PURPOSE. See the copyright notices for more information.
13 It is distributed under dual licence
15 - BSD See included LICENSE.txt file
16 - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html
17 ===========================================================================**/
19 #include "vvStructureSetActor.h"
20 #include "vvROIActor.h"
22 //------------------------------------------------------------------------------
23 vvStructureSetActor::vvStructureSetActor()
27 //------------------------------------------------------------------------------
30 //------------------------------------------------------------------------------
31 vvStructureSetActor::~vvStructureSetActor()
35 //------------------------------------------------------------------------------
38 //------------------------------------------------------------------------------
39 int vvStructureSetActor::GetNumberOfROIs()
41 return mROIActors.size();
43 //------------------------------------------------------------------------------
46 //------------------------------------------------------------------------------
47 std::vector< QSharedPointer<vvROIActor> > & vvStructureSetActor::GetROIList()
51 //------------------------------------------------------------------------------
54 //------------------------------------------------------------------------------
55 void vvStructureSetActor::SetStructureSet(clitk::DicomRT_StructureSet * s)
59 //------------------------------------------------------------------------------
62 //------------------------------------------------------------------------------
63 void vvStructureSetActor::SetSlicerManager(vvSlicerManager * s)
67 //------------------------------------------------------------------------------
70 //------------------------------------------------------------------------------
71 vvROIActor * vvStructureSetActor::GetROIActor(int n)
73 if (mMapROIIndex.find(n) == mMapROIIndex.end()) {
74 std::cerr << "No ROI number " << n << std::endl;
77 return mROIActors[mMapROIIndex[n]].data();
79 //------------------------------------------------------------------------------
82 //------------------------------------------------------------------------------
83 void vvStructureSetActor::CreateNewROIActor(int n, bool modeBG)
86 clitk::DicomRT_ROI * roi = mStructureSet->GetROIFromROINumber(n);
88 std::cerr << "Error. No ROI number " << n << std::endl;
92 // If already exist : delete it
94 if (mMapROIIndex.find(n) != mMapROIIndex.end())
95 old = mMapROIIndex[n];
98 QSharedPointer<vvROIActor> actor = QSharedPointer<vvROIActor>(new vvROIActor);
100 mROIActors.push_back(actor);
102 mROIActors[old] = actor;
103 actor->SetBGMode(modeBG);
105 actor->SetSlicerManager(mSlicerManager);
106 actor->Initialize(n+1); // depth is n+1 to start at 1
107 mMapROIIndex[n] = mROIActors.size()-1;
109 //------------------------------------------------------------------------------