Mercurial > hg > orthanc-stone
annotate OrthancStone/Sources/Scene2D/FloatTextureSceneLayer.h @ 1553:bf02a90ca9ca
not diagnostic text
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Mon, 17 Aug 2020 13:25:54 +0200 |
parents | 82279abb92d0 |
children | 85e117739eca |
rev | line source |
---|---|
590 | 1 /** |
2 * Stone of Orthanc | |
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics | |
4 * Department, University Hospital of Liege, Belgium | |
1270
2d8ab34c8c91
upgrade to year 2020
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
773
diff
changeset
|
5 * Copyright (C) 2017-2020 Osimis S.A., Belgium |
590 | 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 #pragma once | |
23 | |
24 #include "TextureBaseSceneLayer.h" | |
25 | |
26 namespace OrthancStone | |
27 { | |
28 class FloatTextureSceneLayer : public TextureBaseSceneLayer | |
29 { | |
30 private: | |
31 ImageWindowing windowing_; | |
32 float customCenter_; | |
33 float customWidth_; | |
773
b8dfd966b5f4
FloatTextureSceneLayer::SetInverted()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
769
diff
changeset
|
34 bool inverted_; |
1163 | 35 bool applyLog_; |
1533
82279abb92d0
GrayscaleWindowingSceneTracker
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1512
diff
changeset
|
36 bool isRangeComputed_; |
82279abb92d0
GrayscaleWindowingSceneTracker
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1512
diff
changeset
|
37 float minValue_; |
82279abb92d0
GrayscaleWindowingSceneTracker
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1512
diff
changeset
|
38 float maxValue_; |
590 | 39 |
40 public: | |
769
4ba8892870a2
improved interface for lookup tables
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
631
diff
changeset
|
41 // The pixel format must be convertible to "Float32" |
590 | 42 FloatTextureSceneLayer(const Orthanc::ImageAccessor& texture); |
43 | |
44 void SetWindowing(ImageWindowing windowing); | |
45 | |
46 void SetCustomWindowing(float customCenter, | |
47 float customWidth); | |
48 | |
49 void GetWindowing(float& targetCenter, | |
50 float& targetWidth) const; | |
51 | |
52 ImageWindowing GetWindowingType() const | |
53 { | |
54 return windowing_; | |
55 } | |
56 | |
773
b8dfd966b5f4
FloatTextureSceneLayer::SetInverted()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
769
diff
changeset
|
57 // To achieve MONOCHROME1 photometric interpretation |
b8dfd966b5f4
FloatTextureSceneLayer::SetInverted()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
769
diff
changeset
|
58 void SetInverted(bool inverted); |
b8dfd966b5f4
FloatTextureSceneLayer::SetInverted()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
769
diff
changeset
|
59 |
b8dfd966b5f4
FloatTextureSceneLayer::SetInverted()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
769
diff
changeset
|
60 bool IsInverted() const |
b8dfd966b5f4
FloatTextureSceneLayer::SetInverted()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
769
diff
changeset
|
61 { |
b8dfd966b5f4
FloatTextureSceneLayer::SetInverted()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
769
diff
changeset
|
62 return inverted_; |
b8dfd966b5f4
FloatTextureSceneLayer::SetInverted()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
769
diff
changeset
|
63 } |
b8dfd966b5f4
FloatTextureSceneLayer::SetInverted()
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
769
diff
changeset
|
64 |
590 | 65 void FitRange(); |
66 | |
1163 | 67 void SetApplyLog(bool apply); |
68 | |
69 bool IsApplyLog() const | |
70 { | |
71 return applyLog_; | |
72 } | |
73 | |
1533
82279abb92d0
GrayscaleWindowingSceneTracker
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1512
diff
changeset
|
74 void GetRange(float& minValue, |
82279abb92d0
GrayscaleWindowingSceneTracker
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1512
diff
changeset
|
75 float& maxValue); |
82279abb92d0
GrayscaleWindowingSceneTracker
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1512
diff
changeset
|
76 |
590 | 77 virtual ISceneLayer* Clone() const; |
78 | |
79 virtual Type GetType() const | |
80 { | |
81 return Type_FloatTexture; | |
82 } | |
83 }; | |
84 } |