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);