comparison Applications/Resources/Graveyard/ReferenceLineFactory.h @ 1586:b5417e377636

reorganization
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 22 Oct 2020 16:17:10 +0200
parents OrthancStone/Resources/Graveyard/ReferenceLineFactory.h@244ad1e4e76a
children 4fb8fdf03314
comparison
equal deleted inserted replaced
1585:94edbfa64c97 1586:b5417e377636
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-2020 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 "../Widgets/SliceViewerWidget.h"
25
26 namespace OrthancStone
27 {
28 class ReferenceLineFactory :
29 public ILayerRendererFactory,
30 public SliceViewerWidget::ISliceObserver
31 {
32 private:
33 SliceViewerWidget& owner_;
34 SliceViewerWidget& sibling_;
35 SliceGeometry slice_;
36 RenderStyle style_;
37 bool hasLayerIndex_;
38 size_t layerIndex_;
39
40
41 public:
42 ReferenceLineFactory(SliceViewerWidget& owner,
43 SliceViewerWidget& sibling);
44
45 virtual void NotifySliceContentChange(const SliceViewerWidget& source,
46 const SliceGeometry& slice);
47
48 void SetLayerIndex(size_t layerIndex);
49
50 void SetStyle(const RenderStyle& style);
51
52 RenderStyle GetRenderStyle();
53
54 void SetSlice(const SliceGeometry& slice);
55
56 virtual bool GetExtent(double& x1,
57 double& y1,
58 double& x2,
59 double& y2,
60 const SliceGeometry& viewportSlice)
61 {
62 return false;
63 }
64
65 virtual ILayerRenderer* CreateLayerRenderer(const SliceGeometry& viewportSlice);
66
67 virtual bool HasSourceVolume() const
68 {
69 return false;
70 }
71
72 virtual ISliceableVolume& GetSourceVolume() const;
73
74 static void Configure(SliceViewerWidget& a,
75 SliceViewerWidget& b);
76 };
77 }