Mercurial > hg > orthanc-stone
comparison Samples/Sdl/Loader.cpp @ 768:55411e7da2f7
LookupTableTextureSceneLayer
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Thu, 23 May 2019 20:04:33 +0200 |
parents | dce5b067d040 |
children | 4ba8892870a2 |
comparison
equal
deleted
inserted
replaced
767:dce5b067d040 | 768:55411e7da2f7 |
---|---|
31 #include "../../Framework/Loaders/BasicFetchingItemsSorter.h" | 31 #include "../../Framework/Loaders/BasicFetchingItemsSorter.h" |
32 #include "../../Framework/Loaders/BasicFetchingStrategy.h" | 32 #include "../../Framework/Loaders/BasicFetchingStrategy.h" |
33 #include "../../Framework/Scene2D/CairoCompositor.h" | 33 #include "../../Framework/Scene2D/CairoCompositor.h" |
34 #include "../../Framework/Scene2D/Scene2D.h" | 34 #include "../../Framework/Scene2D/Scene2D.h" |
35 #include "../../Framework/Scene2D/PolylineSceneLayer.h" | 35 #include "../../Framework/Scene2D/PolylineSceneLayer.h" |
36 #include "../../Framework/Scene2D/LookupTableTextureSceneLayer.h" | |
36 #include "../../Framework/StoneInitialization.h" | 37 #include "../../Framework/StoneInitialization.h" |
37 #include "../../Framework/Toolbox/GeometryToolbox.h" | 38 #include "../../Framework/Toolbox/GeometryToolbox.h" |
38 #include "../../Framework/Toolbox/SlicesSorter.h" | 39 #include "../../Framework/Toolbox/SlicesSorter.h" |
39 #include "../../Framework/Volumes/ImageBuffer3D.h" | 40 #include "../../Framework/Volumes/ImageBuffer3D.h" |
40 #include "../../Framework/Volumes/VolumeImageGeometry.h" | 41 #include "../../Framework/Volumes/VolumeImageGeometry.h" |
48 #include <Core/OrthancException.h> | 49 #include <Core/OrthancException.h> |
49 #include <Core/SystemToolbox.h> | 50 #include <Core/SystemToolbox.h> |
50 #include <Core/Toolbox.h> | 51 #include <Core/Toolbox.h> |
51 | 52 |
52 | 53 |
54 #include <EmbeddedResources.h> | |
55 | |
56 | |
53 namespace OrthancStone | 57 namespace OrthancStone |
54 { | 58 { |
55 class IVolumeSlicer : public boost::noncopyable | 59 class IVolumeSlicer : public boost::noncopyable |
56 { | 60 { |
57 public: | 61 public: |
172 std::auto_ptr<TextureBaseSceneLayer> texture; | 176 std::auto_ptr<TextureBaseSceneLayer> texture; |
173 | 177 |
174 { | 178 { |
175 const DicomInstanceParameters& parameters = GetDicomParameters(projection_, sliceIndex_); | 179 const DicomInstanceParameters& parameters = GetDicomParameters(projection_, sliceIndex_); |
176 ImageBuffer3D::SliceReader reader(image_, projection_, sliceIndex_); | 180 ImageBuffer3D::SliceReader reader(image_, projection_, sliceIndex_); |
177 texture.reset(parameters.CreateTexture(reader.GetAccessor())); | 181 |
182 static unsigned int i = 1; | |
183 | |
184 if (i % 2) | |
185 { | |
186 texture.reset(parameters.CreateTexture(reader.GetAccessor())); | |
187 } | |
188 else | |
189 { | |
190 std::string lut; | |
191 Orthanc::EmbeddedResources::GetFileResource(lut, Orthanc::EmbeddedResources::COLORMAP_HOT); | |
192 | |
193 std::auto_ptr<LookupTableTextureSceneLayer> tmp(parameters.CreateLookupTableTexture(reader.GetAccessor())); | |
194 tmp->FitRange(); | |
195 tmp->SetLookupTableRgb(lut, 1); | |
196 texture.reset(tmp.release()); | |
197 } | |
198 | |
199 i++; | |
178 } | 200 } |
179 | 201 |
180 const CoordinateSystem3D& system = geometry_.GetProjectionGeometry(projection_); | 202 const CoordinateSystem3D& system = geometry_.GetProjectionGeometry(projection_); |
181 | 203 |
182 double x0, y0, x1, y1; | 204 double x0, y0, x1, y1; |