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;