Mercurial > hg > orthanc-stone
comparison Framework/Scene2DViewport/LayerHolder.cpp @ 891:0aff28f15ea2
new abstraction: IViewport
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Wed, 10 Jul 2019 18:18:42 +0200 |
parents | e42b491f1fb2 |
children | 52b1c6ff10c5 |
comparison
equal
deleted
inserted
replaced
890:77c96ba899f9 | 891:0aff28f15ea2 |
---|---|
41 | 41 |
42 void LayerHolder::CreateLayers() | 42 void LayerHolder::CreateLayers() |
43 { | 43 { |
44 assert(baseLayerIndex_ == -1); | 44 assert(baseLayerIndex_ == -1); |
45 | 45 |
46 baseLayerIndex_ = GetScene()->GetMaxDepth() + 100; | 46 baseLayerIndex_ = GetScene().GetMaxDepth() + 100; |
47 | 47 |
48 for (int i = 0; i < polylineLayerCount_; ++i) | 48 for (int i = 0; i < polylineLayerCount_; ++i) |
49 { | 49 { |
50 std::auto_ptr<PolylineSceneLayer> layer(new PolylineSceneLayer()); | 50 std::auto_ptr<PolylineSceneLayer> layer(new PolylineSceneLayer()); |
51 GetScene()->SetLayer(baseLayerIndex_ + i, layer.release()); | 51 GetScene().SetLayer(baseLayerIndex_ + i, layer.release()); |
52 } | 52 } |
53 | 53 |
54 for (int i = 0; i < textLayerCount_; ++i) | 54 for (int i = 0; i < textLayerCount_; ++i) |
55 { | 55 { |
56 std::auto_ptr<TextSceneLayer> layer(new TextSceneLayer()); | 56 std::auto_ptr<TextSceneLayer> layer(new TextSceneLayer()); |
57 GetScene()->SetLayer( | 57 GetScene().SetLayer( |
58 baseLayerIndex_ + polylineLayerCount_ + i, | 58 baseLayerIndex_ + polylineLayerCount_ + i, |
59 layer.release()); | 59 layer.release()); |
60 } | 60 } |
61 | 61 |
62 } | 62 } |
70 bool LayerHolder::AreLayersCreated() const | 70 bool LayerHolder::AreLayersCreated() const |
71 { | 71 { |
72 return (baseLayerIndex_ != -1); | 72 return (baseLayerIndex_ != -1); |
73 } | 73 } |
74 | 74 |
75 boost::shared_ptr<Scene2D> LayerHolder::GetScene() | 75 Scene2D& LayerHolder::GetScene() |
76 { | 76 { |
77 boost::shared_ptr<ViewportController> controller = controllerW_.lock(); | 77 boost::shared_ptr<ViewportController> controller = controllerW_.lock(); |
78 ORTHANC_ASSERT(controller.get() != 0, "Zombie attack!"); | 78 ORTHANC_ASSERT(controller.get() != 0, "Zombie attack!"); |
79 return controller->GetScene(); | 79 return controller->GetScene(); |
80 } | 80 } |
81 | 81 |
82 void LayerHolder::DeleteLayers() | 82 void LayerHolder::DeleteLayers() |
83 { | 83 { |
84 for (int i = 0; i < textLayerCount_ + polylineLayerCount_; ++i) | 84 for (int i = 0; i < textLayerCount_ + polylineLayerCount_; ++i) |
85 { | 85 { |
86 ORTHANC_ASSERT(GetScene()->HasLayer(baseLayerIndex_ + i), "No layer"); | 86 ORTHANC_ASSERT(GetScene().HasLayer(baseLayerIndex_ + i), "No layer"); |
87 GetScene()->DeleteLayer(baseLayerIndex_ + i); | 87 GetScene().DeleteLayer(baseLayerIndex_ + i); |
88 } | 88 } |
89 baseLayerIndex_ = -1; | 89 baseLayerIndex_ = -1; |
90 } | 90 } |
91 | 91 |
92 PolylineSceneLayer* LayerHolder::GetPolylineLayer(int index /*= 0*/) | 92 PolylineSceneLayer* LayerHolder::GetPolylineLayer(int index /*= 0*/) |
93 { | 93 { |
94 using namespace Orthanc; | 94 using namespace Orthanc; |
95 ORTHANC_ASSERT(baseLayerIndex_ != -1); | 95 ORTHANC_ASSERT(baseLayerIndex_ != -1); |
96 ORTHANC_ASSERT(GetScene()->HasLayer(GetPolylineLayerIndex(index))); | 96 ORTHANC_ASSERT(GetScene().HasLayer(GetPolylineLayerIndex(index))); |
97 ISceneLayer* layer = | 97 ISceneLayer* layer = |
98 &(GetScene()->GetLayer(GetPolylineLayerIndex(index))); | 98 &(GetScene().GetLayer(GetPolylineLayerIndex(index))); |
99 | 99 |
100 PolylineSceneLayer* concreteLayer = | 100 PolylineSceneLayer* concreteLayer = |
101 dynamic_cast<PolylineSceneLayer*>(layer); | 101 dynamic_cast<PolylineSceneLayer*>(layer); |
102 | 102 |
103 ORTHANC_ASSERT(concreteLayer != NULL); | 103 ORTHANC_ASSERT(concreteLayer != NULL); |
106 | 106 |
107 TextSceneLayer* LayerHolder::GetTextLayer(int index /*= 0*/) | 107 TextSceneLayer* LayerHolder::GetTextLayer(int index /*= 0*/) |
108 { | 108 { |
109 using namespace Orthanc; | 109 using namespace Orthanc; |
110 ORTHANC_ASSERT(baseLayerIndex_ != -1); | 110 ORTHANC_ASSERT(baseLayerIndex_ != -1); |
111 ORTHANC_ASSERT(GetScene()->HasLayer(GetTextLayerIndex(index))); | 111 ORTHANC_ASSERT(GetScene().HasLayer(GetTextLayerIndex(index))); |
112 ISceneLayer* layer = | 112 ISceneLayer* layer = |
113 &(GetScene()->GetLayer(GetTextLayerIndex(index))); | 113 &(GetScene().GetLayer(GetTextLayerIndex(index))); |
114 | 114 |
115 TextSceneLayer* concreteLayer = | 115 TextSceneLayer* concreteLayer = |
116 dynamic_cast<TextSceneLayer*>(layer); | 116 dynamic_cast<TextSceneLayer*>(layer); |
117 | 117 |
118 ORTHANC_ASSERT(concreteLayer != NULL); | 118 ORTHANC_ASSERT(concreteLayer != NULL); |