comparison Applications/Samples/SingleFrameApplication.h @ 66:298f375dcb68 wasm

LayerWidget
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 17 May 2017 22:03:09 +0200
parents d20e25cfcf3a
children 30c768873d47
comparison
equal deleted inserted replaced
65:885932a893de 66:298f375dcb68
21 21
22 #pragma once 22 #pragma once
23 23
24 #include "SampleApplicationBase.h" 24 #include "SampleApplicationBase.h"
25 25
26 #include "../../Framework/Layers/SingleFrameRendererFactory.h" 26 #define OLD 0
27 #include "../../Framework/Widgets/LayeredSceneWidget.h" 27
28 #if OLD == 1
29 # include "../../Framework/Layers/SingleFrameRendererFactory.h"
30 # include "../../Framework/Widgets/LayeredSceneWidget.h"
31 #else
32 # include "../../Framework/Layers/OrthancFrameLayerSource.h"
33 # include "../../Framework/Widgets/LayerWidget.h"
34 #endif
35
28 #include "../../Resources/Orthanc/Core/Logging.h" 36 #include "../../Resources/Orthanc/Core/Logging.h"
29 37
30 namespace OrthancStone 38 namespace OrthancStone
31 { 39 {
32 namespace Samples 40 namespace Samples
33 { 41 {
34 class SingleFrameApplication : public SampleApplicationBase 42 class SingleFrameApplication :
43 public SampleApplicationBase,
44 public IVolumeSlicesObserver
35 { 45 {
46 private:
47 LayerWidget* widget_;
48
36 public: 49 public:
50 SingleFrameApplication() : widget_(NULL)
51 {
52 }
53
54 virtual void NotifySlicesAvailable(const ParallelSlices& slices)
55 {
56 printf("ICI\n");
57 if (widget_ != NULL &&
58 slices.GetSliceCount() > 0)
59 {
60 printf("GO\n");
61 widget_->SetSlice(slices.GetSlice(0), 1.0 /* TODO */);
62 }
63 }
64
37 virtual void DeclareCommandLineOptions(boost::program_options::options_description& options) 65 virtual void DeclareCommandLineOptions(boost::program_options::options_description& options)
38 { 66 {
39 boost::program_options::options_description generic("Sample options"); 67 boost::program_options::options_description generic("Sample options");
40 generic.add_options() 68 generic.add_options()
41 ("instance", boost::program_options::value<std::string>(), 69 ("instance", boost::program_options::value<std::string>(),
62 } 90 }
63 91
64 std::string instance = parameters["instance"].as<std::string>(); 92 std::string instance = parameters["instance"].as<std::string>();
65 int frame = parameters["frame"].as<unsigned int>(); 93 int frame = parameters["frame"].as<unsigned int>();
66 94
95 #if OLD == 1
67 std::auto_ptr<SingleFrameRendererFactory> renderer; 96 std::auto_ptr<SingleFrameRendererFactory> renderer;
68 renderer.reset 97 renderer.reset
69 (new SingleFrameRendererFactory(context.GetWebService().GetConnection(), instance, frame)); 98 (new SingleFrameRendererFactory(context.GetWebService().GetConnection(), instance, frame));
70 99
71 std::auto_ptr<LayeredSceneWidget> widget(new LayeredSceneWidget); 100 std::auto_ptr<LayeredSceneWidget> widget(new LayeredSceneWidget);
78 s.interpolation_ = ImageInterpolation_Linear; 107 s.interpolation_ = ImageInterpolation_Linear;
79 widget->SetLayerStyle(0, s); 108 widget->SetLayerStyle(0, s);
80 } 109 }
81 110
82 context.SetCentralWidget(widget.release()); 111 context.SetCentralWidget(widget.release());
112
113 #else
114 std::auto_ptr<LayerWidget> widget(new LayerWidget);
115
116 #if 0
117 std::auto_ptr<OrthancFrameLayerSource> layer
118 (new OrthancFrameLayerSource(context.GetWebService(), instance, frame));
119 layer->SetObserver(*this);
120 widget->AddLayer(layer.release());
121
122 if (parameters["smooth"].as<bool>())
123 {
124 RenderStyle s;
125 s.interpolation_ = ImageInterpolation_Linear;
126 widget->SetLayerStyle(0, s);
127 }
128 #else
129 // 0178023P**
130 std::auto_ptr<OrthancFrameLayerSource> layer;
131 layer.reset(new OrthancFrameLayerSource(context.GetWebService(), "c804a1a2-142545c9-33b32fe2-3df4cec0-a2bea6d6", 0));
132 //layer.reset(new OrthancFrameLayerSource(context.GetWebService(), "4bd4304f-47478948-71b24af2-51f4f1bc-275b6c1b", 0)); // BAD SLICE
133 layer->SetObserver(*this);
134 widget->AddLayer(layer.release());
135
136 widget->AddLayer(new OrthancFrameLayerSource(context.GetWebService(), "a1c4dc6b-255d27f0-88069875-8daed730-2f5ee5c6", 0));
137
138 RenderStyle s;
139 //s.drawGrid_ = true;
140 s.alpha_ = 1;
141 widget->SetLayerStyle(0, s);
142 s.alpha_ = 0.5;
143 s.applyLut_ = true;
144 s.lut_ = Orthanc::EmbeddedResources::COLORMAP_JET;
145 widget->SetLayerStyle(1, s);
146 #endif
147
148 widget_ = widget.get();
149 context.SetCentralWidget(widget.release());
150 #endif
83 } 151 }
84 }; 152 };
85 } 153 }
86 } 154 }