Mercurial > hg > orthanc-stone
comparison Framework/Viewport/ViewportBase.cpp @ 1203:f3bb9a6dd949 broker
locking abstraction in IViewport
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 29 Nov 2019 21:22:21 +0100 |
parents | 6dd90b8d1589 |
children | 6009c59d8676 |
comparison
equal
deleted
inserted
replaced
1200:54cbffabdc45 | 1203:f3bb9a6dd949 |
---|---|
24 | 24 |
25 #include <boost/make_shared.hpp> | 25 #include <boost/make_shared.hpp> |
26 | 26 |
27 namespace OrthancStone | 27 namespace OrthancStone |
28 { | 28 { |
29 ViewportBase::ViewportBase() : | 29 ScenePoint2D ViewportBase::LockBase::GetPixelCenterCoordinates(int x, int y) |
30 scene_(boost::make_shared<Scene2D>()) | |
31 { | |
32 } | |
33 | |
34 | |
35 ViewportBase::ViewportBase(boost::shared_ptr<Scene2D>& scene) : | |
36 scene_(scene) | |
37 { | |
38 if (scene.get() == NULL) | |
39 { | |
40 throw Orthanc::OrthancException(Orthanc::ErrorCode_NullPointer); | |
41 } | |
42 } | |
43 | |
44 | |
45 ScenePoint2D ViewportBase::GetPixelCenterCoordinates(int x, int y) const | |
46 { | 30 { |
47 if (HasCompositor()) | 31 if (HasCompositor()) |
48 { | 32 { |
49 const ICompositor& compositor = GetCompositor(); | 33 ICompositor& compositor = GetCompositor(); |
50 return ScenePoint2D( | 34 return ScenePoint2D( |
51 static_cast<double>(x) + 0.5 - static_cast<double>(compositor.GetCanvasWidth()) / 2.0, | 35 static_cast<double>(x) + 0.5 - static_cast<double>(compositor.GetCanvasWidth()) / 2.0, |
52 static_cast<double>(y) + 0.5 - static_cast<double>(compositor.GetCanvasHeight()) / 2.0); | 36 static_cast<double>(y) + 0.5 - static_cast<double>(compositor.GetCanvasHeight()) / 2.0); |
53 } | 37 } |
54 else | 38 else |