Mercurial > hg > orthanc-stone
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 } |