Mercurial > hg > orthanc-stone
comparison Framework/Radiography/RadiographyLayerResizeTracker.cpp @ 430:b85f635f1eb5 am-vsol-upgrade
added serialization for RadiographyScene
author | am@osimis.io |
---|---|
date | Thu, 29 Nov 2018 15:11:19 +0100 |
parents | c0589c3173fd |
children | a750f11892ec |
comparison
equal
deleted
inserted
replaced
429:c7fb700a7d12 | 430:b85f635f1eb5 |
---|---|
71 RadiographySceneCommand(tracker.accessor_), | 71 RadiographySceneCommand(tracker.accessor_), |
72 sourceSpacingX_(tracker.originalSpacingX_), | 72 sourceSpacingX_(tracker.originalSpacingX_), |
73 sourceSpacingY_(tracker.originalSpacingY_), | 73 sourceSpacingY_(tracker.originalSpacingY_), |
74 sourcePanX_(tracker.originalPanX_), | 74 sourcePanX_(tracker.originalPanX_), |
75 sourcePanY_(tracker.originalPanY_), | 75 sourcePanY_(tracker.originalPanY_), |
76 targetSpacingX_(tracker.accessor_.GetLayer().GetPixelSpacingX()), | 76 targetSpacingX_(tracker.accessor_.GetLayer().GetGeometry().GetPixelSpacingX()), |
77 targetSpacingY_(tracker.accessor_.GetLayer().GetPixelSpacingY()), | 77 targetSpacingY_(tracker.accessor_.GetLayer().GetGeometry().GetPixelSpacingY()), |
78 targetPanX_(tracker.accessor_.GetLayer().GetPanX()), | 78 targetPanX_(tracker.accessor_.GetLayer().GetGeometry().GetPanX()), |
79 targetPanY_(tracker.accessor_.GetLayer().GetPanY()) | 79 targetPanY_(tracker.accessor_.GetLayer().GetGeometry().GetPanY()) |
80 { | 80 { |
81 } | 81 } |
82 }; | 82 }; |
83 | 83 |
84 | 84 |
92 undoRedoStack_(undoRedoStack), | 92 undoRedoStack_(undoRedoStack), |
93 accessor_(scene, layer), | 93 accessor_(scene, layer), |
94 roundScaling_(roundScaling) | 94 roundScaling_(roundScaling) |
95 { | 95 { |
96 if (accessor_.IsValid() && | 96 if (accessor_.IsValid() && |
97 accessor_.GetLayer().IsResizeable()) | 97 accessor_.GetLayer().GetGeometry().IsResizeable()) |
98 { | 98 { |
99 originalSpacingX_ = accessor_.GetLayer().GetPixelSpacingX(); | 99 originalSpacingX_ = accessor_.GetLayer().GetGeometry().GetPixelSpacingX(); |
100 originalSpacingY_ = accessor_.GetLayer().GetPixelSpacingY(); | 100 originalSpacingY_ = accessor_.GetLayer().GetGeometry().GetPixelSpacingY(); |
101 originalPanX_ = accessor_.GetLayer().GetPanX(); | 101 originalPanX_ = accessor_.GetLayer().GetGeometry().GetPanX(); |
102 originalPanY_ = accessor_.GetLayer().GetPanY(); | 102 originalPanY_ = accessor_.GetLayer().GetGeometry().GetPanY(); |
103 | 103 |
104 switch (corner) | 104 switch (corner) |
105 { | 105 { |
106 case Corner_TopLeft: | 106 case Corner_TopLeft: |
107 oppositeCorner_ = Corner_BottomRight; | 107 oppositeCorner_ = Corner_BottomRight; |
147 | 147 |
148 | 148 |
149 void RadiographyLayerResizeTracker::MouseUp() | 149 void RadiographyLayerResizeTracker::MouseUp() |
150 { | 150 { |
151 if (accessor_.IsValid() && | 151 if (accessor_.IsValid() && |
152 accessor_.GetLayer().IsResizeable()) | 152 accessor_.GetLayer().GetGeometry().IsResizeable()) |
153 { | 153 { |
154 undoRedoStack_.Add(new UndoRedoCommand(*this)); | 154 undoRedoStack_.Add(new UndoRedoCommand(*this)); |
155 } | 155 } |
156 } | 156 } |
157 | 157 |
162 double sceneY) | 162 double sceneY) |
163 { | 163 { |
164 static const double ROUND_SCALING = 0.1; | 164 static const double ROUND_SCALING = 0.1; |
165 | 165 |
166 if (accessor_.IsValid() && | 166 if (accessor_.IsValid() && |
167 accessor_.GetLayer().IsResizeable()) | 167 accessor_.GetLayer().GetGeometry().IsResizeable()) |
168 { | 168 { |
169 double scaling = ComputeDistance(oppositeX_, oppositeY_, sceneX, sceneY) * baseScaling_; | 169 double scaling = ComputeDistance(oppositeX_, oppositeY_, sceneX, sceneY) * baseScaling_; |
170 | 170 |
171 if (roundScaling_) | 171 if (roundScaling_) |
172 { | 172 { |
178 scaling * originalSpacingY_); | 178 scaling * originalSpacingY_); |
179 | 179 |
180 // Keep the opposite corner at a fixed location | 180 // Keep the opposite corner at a fixed location |
181 double ox, oy; | 181 double ox, oy; |
182 layer.GetCorner(ox, oy, oppositeCorner_); | 182 layer.GetCorner(ox, oy, oppositeCorner_); |
183 layer.SetPan(layer.GetPanX() + oppositeX_ - ox, | 183 layer.SetPan(layer.GetGeometry().GetPanX() + oppositeX_ - ox, |
184 layer.GetPanY() + oppositeY_ - oy); | 184 layer.GetGeometry().GetPanY() + oppositeY_ - oy); |
185 } | 185 } |
186 } | 186 } |
187 } | 187 } |