Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
QmitkSegmentationOrganNamesHandling.cpp
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #include <QStringList>
15 #include <vtkSmartPointer.h>
16 
17 namespace mitk
18 {
19  struct OrganNamesHandling
20  {
21  static QStringList GetDefaultOrganColorString()
22  {
23  QStringList organColors;
24 
25  auto presets = vtkSmartPointer<AnatomicalStructureColorPresets>::New();
26  presets->LoadPreset();
27 
28  for (const auto& preset : presets->GetColorPresets())
29  {
30  auto organName = preset.first.c_str();
31  auto color = QColor(preset.second.GetRed(), preset.second.GetGreen(), preset.second.GetBlue());
32 
33  AppendToOrganList(organColors, organName, color);
34  }
35  return organColors;
36  }
37 
38  static void UpdateOrganList(QStringList& organColors, const QString& organname, mitk::Color color)
39  {
40  QString listElement(organname + QColor(color.GetRed() * 255, color.GetGreen() * 255, color.GetBlue() * 255).name());
41 
42  // remove previous definition if necessary
43  int oldIndex = organColors.indexOf(QRegExp(QRegExp::escape(organname) + "#......", Qt::CaseInsensitive));
44  if (oldIndex < 0 || organColors.at(oldIndex) != listElement)
45  {
46  if (oldIndex >= 0)
47  {
48  organColors.removeAt(oldIndex);
49  }
50 
51  // add colored organ name AND sort list
52  organColors.append(listElement);
53  organColors.sort();
54  }
55  }
56 
57  static void AppendToOrganList(QStringList& organColors, const QString& organname, const QColor& color)
58  {
59  organColors.append(organname + color.name());
60  }
61  };
62 }
DataCollection - Class to facilitate loading/accessing structured data.
itk::RGBPixel< float > Color
Color Standard RGB color typedef (float)