comparison Framework/Deprecated/Layers/FrameRenderer.h @ 732:c35e98d22764

move Deprecated classes to a separate folder
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 21 May 2019 14:27:35 +0200
parents Framework/Layers/FrameRenderer.h@4f2416d519b4
children 2d8ab34c8c91
comparison
equal deleted inserted replaced
729:529189f399ec 732:c35e98d22764
1 /**
2 * Stone of Orthanc
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
4 * Department, University Hospital of Liege, Belgium
5 * Copyright (C) 2017-2019 Osimis S.A., Belgium
6 *
7 * This program is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU Affero General Public License
9 * as published by the Free Software Foundation, either version 3 of
10 * the License, or (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Affero General Public License for more details.
16 *
17 * You should have received a copy of the GNU Affero General Public License
18 * along with this program. If not, see <http://www.gnu.org/licenses/>.
19 **/
20
21
22 #pragma once
23
24 #include "ILayerRenderer.h"
25
26 #include "../Toolbox/Slice.h"
27
28 namespace Deprecated
29 {
30 class FrameRenderer : public ILayerRenderer
31 {
32 private:
33 OrthancStone::CoordinateSystem3D framePlane_;
34 double pixelSpacingX_;
35 double pixelSpacingY_;
36 RenderStyle style_;
37 bool isFullQuality_;
38 std::auto_ptr<OrthancStone::CairoSurface> display_;
39
40 protected:
41 virtual OrthancStone::CairoSurface* GenerateDisplay(const RenderStyle& style) = 0;
42
43 public:
44 FrameRenderer(const OrthancStone::CoordinateSystem3D& framePlane,
45 double pixelSpacingX,
46 double pixelSpacingY,
47 bool isFullQuality);
48
49 virtual bool RenderLayer(OrthancStone::CairoContext& context,
50 const ViewportGeometry& view);
51
52 virtual const OrthancStone::CoordinateSystem3D& GetLayerPlane()
53 {
54 return framePlane_;
55 }
56
57 virtual void SetLayerStyle(const RenderStyle& style);
58
59 virtual bool IsFullQuality()
60 {
61 return isFullQuality_;
62 }
63
64 // TODO: Avoid cloning the "frame"
65 static ILayerRenderer* CreateRenderer(const Orthanc::ImageAccessor& frame,
66 const Deprecated::Slice& framePlane,
67 bool isFullQuality);
68 };
69 }