comparison Framework/Layers/ReferenceLineFactory.h @ 390:0cb925325470

renamed SiblingSliceLocation as ReferenceLine
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 09 Nov 2018 17:37:34 +0100
parents Framework/Layers/SiblingSliceLocationFactory.h@fccffbf99ba1
children 021480604c92
comparison
equal deleted inserted replaced
389:3e6e10a5a6c8 390:0cb925325470
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-2018 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/LayeredSceneWidget.h"
25
26 namespace OrthancStone
27 {
28 class ReferenceLineFactory :
29 public ILayerRendererFactory,
30 public LayeredSceneWidget::ISliceObserver
31 {
32 private:
33 LayeredSceneWidget& owner_;
34 LayeredSceneWidget& sibling_;
35 SliceGeometry slice_;
36 RenderStyle style_;
37 bool hasLayerIndex_;
38 size_t layerIndex_;
39
40
41 public:
42 ReferenceLineFactory(LayeredSceneWidget& owner,
43 LayeredSceneWidget& sibling);
44
45 virtual void NotifySliceChange(const LayeredSceneWidget& 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(LayeredSceneWidget& a,
75 LayeredSceneWidget& b);
76 };
77 }