comparison Framework/Scene2D/LookupTableStyleConfigurator.cpp @ 814:aead999345e0

reorganization
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 28 May 2019 21:16:39 +0200
parents
children 287ec78f63b4
comparison
equal deleted inserted replaced
813:bc7ee59420a1 814:aead999345e0
1 /**
2 * Stone of Orthanc
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
4 * Department, University Hospital of Liege, Belgium
5 * Copyright (C) 2017-2019 Osimis S.A., Belgium
6 *
7 * This program is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU Affero General Public License
9 * as published by the Free Software Foundation, either version 3 of
10 * the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Affero General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 **/
20
21
22 #include "LookupTableStyleConfigurator.h"
23
24 #include <Core/OrthancException.h>
25
26 namespace OrthancStone
27 {
28 LookupTableStyleConfigurator::LookupTableStyleConfigurator() :
29 revision_(0),
30 hasLut_(false),
31 hasRange_(false)
32 {
33 }
34
35
36 void LookupTableStyleConfigurator::SetLookupTable(Orthanc::EmbeddedResources::FileResourceId resource)
37 {
38 hasLut_ = true;
39 Orthanc::EmbeddedResources::GetFileResource(lut_, resource);
40 }
41
42
43 void LookupTableStyleConfigurator::SetLookupTable(const std::string& lut)
44 {
45 hasLut_ = true;
46 lut_ = lut;
47 }
48
49
50 void LookupTableStyleConfigurator::SetRange(float minValue,
51 float maxValue)
52 {
53 if (minValue > maxValue)
54 {
55 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
56 }
57 else
58 {
59 hasRange_ = true;
60 minValue_ = minValue;
61 maxValue_ = maxValue;
62 }
63 }
64
65
66 TextureBaseSceneLayer* LookupTableStyleConfigurator::CreateTextureFromImage(const Orthanc::ImageAccessor& image) const
67 {
68 throw Orthanc::OrthancException(Orthanc::ErrorCode_NotImplemented);
69 }
70
71
72 void LookupTableStyleConfigurator::ApplyStyle(ISceneLayer& layer) const
73 {
74 LookupTableTextureSceneLayer& l = dynamic_cast<LookupTableTextureSceneLayer&>(layer);
75
76 if (hasLut_)
77 {
78 l.SetLookupTable(lut_);
79 }
80
81 if (hasRange_)
82 {
83 l.SetRange(minValue_, maxValue_);
84 }
85 else
86 {
87 l.FitRange();
88 }
89 }
90 }