Mercurial > hg > orthanc-stone
comparison Framework/Scene2DViewport/LayerHolder.cpp @ 1213:86a8266b8888 broker
moving the scene from IViewport to ViewportController
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 04 Dec 2019 17:54:10 +0100 |
parents | f3bb9a6dd949 |
children | 0ca50d275b9a |
comparison
equal
deleted
inserted
replaced
1212:ab06dfdf3b75 | 1213:86a8266b8888 |
---|---|
45 { | 45 { |
46 boost::shared_ptr<ViewportController> controller = controllerW_.lock(); | 46 boost::shared_ptr<ViewportController> controller = controllerW_.lock(); |
47 | 47 |
48 if (controller) | 48 if (controller) |
49 { | 49 { |
50 std::auto_ptr<IViewport::ILock> lock(controller->GetViewport().Lock()); | |
51 | |
52 assert(baseLayerIndex_ == -1); | 50 assert(baseLayerIndex_ == -1); |
53 | 51 |
54 baseLayerIndex_ = lock->GetScene().GetMaxDepth() + 100; | 52 baseLayerIndex_ = controller->GetScene().GetMaxDepth() + 100; |
55 | 53 |
56 for (int i = 0; i < polylineLayerCount_; ++i) | 54 for (int i = 0; i < polylineLayerCount_; ++i) |
57 { | 55 { |
58 std::auto_ptr<PolylineSceneLayer> layer(new PolylineSceneLayer()); | 56 std::auto_ptr<PolylineSceneLayer> layer(new PolylineSceneLayer()); |
59 lock->GetScene().SetLayer(baseLayerIndex_ + i, layer.release()); | 57 controller->GetScene().SetLayer(baseLayerIndex_ + i, layer.release()); |
60 } | 58 } |
61 | 59 |
62 for (int i = 0; i < textLayerCount_; ++i) | 60 for (int i = 0; i < textLayerCount_; ++i) |
63 { | 61 { |
64 std::auto_ptr<TextSceneLayer> layer(new TextSceneLayer()); | 62 std::auto_ptr<TextSceneLayer> layer(new TextSceneLayer()); |
65 lock->GetScene().SetLayer( | 63 controller->GetScene().SetLayer( |
66 baseLayerIndex_ + polylineLayerCount_ + i, | 64 baseLayerIndex_ + polylineLayerCount_ + i, |
67 layer.release()); | 65 layer.release()); |
68 } | 66 } |
69 } | 67 } |
70 } | 68 } |
90 { | 88 { |
91 boost::shared_ptr<ViewportController> controller = controllerW_.lock(); | 89 boost::shared_ptr<ViewportController> controller = controllerW_.lock(); |
92 | 90 |
93 if (controller) | 91 if (controller) |
94 { | 92 { |
95 std::auto_ptr<IViewport::ILock> lock(controller->GetViewport().Lock()); | |
96 | |
97 for (int i = 0; i < textLayerCount_ + polylineLayerCount_; ++i) | 93 for (int i = 0; i < textLayerCount_ + polylineLayerCount_; ++i) |
98 { | 94 { |
99 ORTHANC_ASSERT(lock->GetScene().HasLayer(baseLayerIndex_ + i), "No layer"); | 95 ORTHANC_ASSERT(controller->GetScene().HasLayer(baseLayerIndex_ + i), "No layer"); |
100 lock->GetScene().DeleteLayer(baseLayerIndex_ + i); | 96 controller->GetScene().DeleteLayer(baseLayerIndex_ + i); |
101 } | 97 } |
102 baseLayerIndex_ = -1; | 98 baseLayerIndex_ = -1; |
103 } | 99 } |
104 } | 100 } |
105 | 101 |
107 { | 103 { |
108 boost::shared_ptr<ViewportController> controller = controllerW_.lock(); | 104 boost::shared_ptr<ViewportController> controller = controllerW_.lock(); |
109 | 105 |
110 if (controller) | 106 if (controller) |
111 { | 107 { |
112 std::auto_ptr<IViewport::ILock> lock(controller->GetViewport().Lock()); | |
113 | |
114 using namespace Orthanc; | 108 using namespace Orthanc; |
115 ORTHANC_ASSERT(baseLayerIndex_ != -1); | 109 ORTHANC_ASSERT(baseLayerIndex_ != -1); |
116 ORTHANC_ASSERT(lock->GetScene().HasLayer(GetPolylineLayerIndex(index))); | 110 ORTHANC_ASSERT(controller->GetScene().HasLayer(GetPolylineLayerIndex(index))); |
117 ISceneLayer* layer = | 111 ISceneLayer* layer = |
118 &(lock->GetScene().GetLayer(GetPolylineLayerIndex(index))); | 112 &(controller->GetScene().GetLayer(GetPolylineLayerIndex(index))); |
119 | 113 |
120 PolylineSceneLayer* concreteLayer = | 114 PolylineSceneLayer* concreteLayer = |
121 dynamic_cast<PolylineSceneLayer*>(layer); | 115 dynamic_cast<PolylineSceneLayer*>(layer); |
122 | 116 |
123 ORTHANC_ASSERT(concreteLayer != NULL); | 117 ORTHANC_ASSERT(concreteLayer != NULL); |
133 { | 127 { |
134 boost::shared_ptr<ViewportController> controller = controllerW_.lock(); | 128 boost::shared_ptr<ViewportController> controller = controllerW_.lock(); |
135 | 129 |
136 if (controller) | 130 if (controller) |
137 { | 131 { |
138 std::auto_ptr<IViewport::ILock> lock(controller->GetViewport().Lock()); | |
139 | |
140 using namespace Orthanc; | 132 using namespace Orthanc; |
141 ORTHANC_ASSERT(baseLayerIndex_ != -1); | 133 ORTHANC_ASSERT(baseLayerIndex_ != -1); |
142 ORTHANC_ASSERT(lock->GetScene().HasLayer(GetTextLayerIndex(index))); | 134 ORTHANC_ASSERT(controller->GetScene().HasLayer(GetTextLayerIndex(index))); |
143 ISceneLayer* layer = | 135 ISceneLayer* layer = |
144 &(lock->GetScene().GetLayer(GetTextLayerIndex(index))); | 136 &(controller->GetScene().GetLayer(GetTextLayerIndex(index))); |
145 | 137 |
146 TextSceneLayer* concreteLayer = | 138 TextSceneLayer* concreteLayer = |
147 dynamic_cast<TextSceneLayer*>(layer); | 139 dynamic_cast<TextSceneLayer*>(layer); |
148 | 140 |
149 ORTHANC_ASSERT(concreteLayer != NULL); | 141 ORTHANC_ASSERT(concreteLayer != NULL); |