Mercurial > hg > orthanc-stone
diff 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 |
line wrap: on
line diff
--- a/Samples/Sdl/Loader.cpp Thu May 23 16:57:33 2019 +0200 +++ b/Samples/Sdl/Loader.cpp Thu May 23 20:04:33 2019 +0200 @@ -33,6 +33,7 @@ #include "../../Framework/Scene2D/CairoCompositor.h" #include "../../Framework/Scene2D/Scene2D.h" #include "../../Framework/Scene2D/PolylineSceneLayer.h" +#include "../../Framework/Scene2D/LookupTableTextureSceneLayer.h" #include "../../Framework/StoneInitialization.h" #include "../../Framework/Toolbox/GeometryToolbox.h" #include "../../Framework/Toolbox/SlicesSorter.h" @@ -50,6 +51,9 @@ #include <Core/Toolbox.h> +#include <EmbeddedResources.h> + + namespace OrthancStone { class IVolumeSlicer : public boost::noncopyable @@ -174,7 +178,25 @@ { const DicomInstanceParameters& parameters = GetDicomParameters(projection_, sliceIndex_); ImageBuffer3D::SliceReader reader(image_, projection_, sliceIndex_); - texture.reset(parameters.CreateTexture(reader.GetAccessor())); + + static unsigned int i = 1; + + if (i % 2) + { + texture.reset(parameters.CreateTexture(reader.GetAccessor())); + } + else + { + std::string lut; + Orthanc::EmbeddedResources::GetFileResource(lut, Orthanc::EmbeddedResources::COLORMAP_HOT); + + std::auto_ptr<LookupTableTextureSceneLayer> tmp(parameters.CreateLookupTableTexture(reader.GetAccessor())); + tmp->FitRange(); + tmp->SetLookupTableRgb(lut, 1); + texture.reset(tmp.release()); + } + + i++; } const CoordinateSystem3D& system = geometry_.GetProjectionGeometry(projection_);