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 }