Mercurial > hg > orthanc-stone
comparison OrthancStone/Sources/Scene2D/AnnotationsSceneLayer.cpp @ 1972:9c0adcc8feec
refactoring to simplify OneGesturePointerTracker
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 28 Oct 2022 16:21:28 +0200 |
parents | 7053b8a0aaec |
children | 5a434f5889f8 |
comparison
equal
deleted
inserted
replaced
1971:e5b31d55206d | 1972:9c0adcc8feec |
---|---|
734 canvasToScene_(canvasToScene), | 734 canvasToScene_(canvasToScene), |
735 alive_(true) | 735 alive_(true) |
736 { | 736 { |
737 } | 737 } |
738 | 738 |
739 virtual void PointerMove(const PointerEvent& event) ORTHANC_OVERRIDE | 739 virtual void PointerMove(const PointerEvent& event, |
740 const Scene2D& scene) ORTHANC_OVERRIDE | |
740 { | 741 { |
741 primitive_.MovePreview(event.GetMainPosition().Apply(canvasToScene_) - sceneClick_); | 742 primitive_.MovePreview(event.GetMainPosition().Apply(canvasToScene_) - sceneClick_); |
742 that_.BroadcastMessage(AnnotationChangedMessage(that_)); | 743 that_.BroadcastMessage(AnnotationChangedMessage(that_)); |
743 } | 744 } |
744 | 745 |
745 virtual void PointerUp(const PointerEvent& event) ORTHANC_OVERRIDE | 746 virtual void PointerUp(const PointerEvent& event, |
747 const Scene2D& scene) ORTHANC_OVERRIDE | |
746 { | 748 { |
747 primitive_.MoveDone(event.GetMainPosition().Apply(canvasToScene_) - sceneClick_); | 749 primitive_.MoveDone(event.GetMainPosition().Apply(canvasToScene_) - sceneClick_); |
748 alive_ = false; | 750 alive_ = false; |
749 that_.BroadcastMessage(AnnotationChangedMessage(that_)); | 751 that_.BroadcastMessage(AnnotationChangedMessage(that_)); |
750 } | 752 } |
751 | 753 |
752 virtual void PointerDown(const PointerEvent& event) ORTHANC_OVERRIDE | 754 virtual void PointerDown(const PointerEvent& event, |
755 const Scene2D& scene) ORTHANC_OVERRIDE | |
753 { | 756 { |
754 } | 757 } |
755 | 758 |
756 virtual bool IsAlive() const ORTHANC_OVERRIDE | 759 virtual bool IsAlive() const ORTHANC_OVERRIDE |
757 { | 760 { |
1219 | 1222 |
1220 assert(annotation_ != NULL && | 1223 assert(annotation_ != NULL && |
1221 handle2_ != NULL); | 1224 handle2_ != NULL); |
1222 } | 1225 } |
1223 | 1226 |
1224 virtual void PointerMove(const PointerEvent& event) ORTHANC_OVERRIDE | 1227 virtual void PointerMove(const PointerEvent& event, |
1228 const Scene2D& scene) ORTHANC_OVERRIDE | |
1225 { | 1229 { |
1226 if (annotation_ != NULL) | 1230 if (annotation_ != NULL) |
1227 { | 1231 { |
1228 assert(handle2_ != NULL); | 1232 assert(handle2_ != NULL); |
1229 handle2_->SetCenter(event.GetMainPosition().Apply(canvasToScene_)); | 1233 handle2_->SetCenter(event.GetMainPosition().Apply(canvasToScene_)); |
1231 | 1235 |
1232 that_.BroadcastMessage(AnnotationChangedMessage(that_)); | 1236 that_.BroadcastMessage(AnnotationChangedMessage(that_)); |
1233 } | 1237 } |
1234 } | 1238 } |
1235 | 1239 |
1236 virtual void PointerUp(const PointerEvent& event) ORTHANC_OVERRIDE | 1240 virtual void PointerUp(const PointerEvent& event, |
1241 const Scene2D& scene) ORTHANC_OVERRIDE | |
1237 { | 1242 { |
1238 annotation_ = NULL; // IsAlive() becomes false | 1243 annotation_ = NULL; // IsAlive() becomes false |
1239 | 1244 |
1240 that_.BroadcastMessage(AnnotationAddedMessage(that_)); | 1245 that_.BroadcastMessage(AnnotationAddedMessage(that_)); |
1241 } | 1246 } |
1242 | 1247 |
1243 virtual void PointerDown(const PointerEvent& event) ORTHANC_OVERRIDE | 1248 virtual void PointerDown(const PointerEvent& event, |
1249 const Scene2D& scene) ORTHANC_OVERRIDE | |
1244 { | 1250 { |
1245 } | 1251 } |
1246 | 1252 |
1247 virtual bool IsAlive() const ORTHANC_OVERRIDE | 1253 virtual bool IsAlive() const ORTHANC_OVERRIDE |
1248 { | 1254 { |
1279 canvasToScene_(canvasToScene) | 1285 canvasToScene_(canvasToScene) |
1280 { | 1286 { |
1281 segment_ = new SegmentAnnotation(that, units, false /* no length label */, sceneClick, sceneClick); | 1287 segment_ = new SegmentAnnotation(that, units, false /* no length label */, sceneClick, sceneClick); |
1282 } | 1288 } |
1283 | 1289 |
1284 virtual void PointerMove(const PointerEvent& event) ORTHANC_OVERRIDE | 1290 virtual void PointerMove(const PointerEvent& event, |
1291 const Scene2D& scene) ORTHANC_OVERRIDE | |
1285 { | 1292 { |
1286 if (segment_ != NULL) | 1293 if (segment_ != NULL) |
1287 { | 1294 { |
1288 segment_->GetHandle2().SetCenter(event.GetMainPosition().Apply(canvasToScene_)); | 1295 segment_->GetHandle2().SetCenter(event.GetMainPosition().Apply(canvasToScene_)); |
1289 segment_->SignalMove(segment_->GetHandle2()); | 1296 segment_->SignalMove(segment_->GetHandle2()); |
1296 angle_->SignalMove(angle_->GetEndHandle()); | 1303 angle_->SignalMove(angle_->GetEndHandle()); |
1297 that_.BroadcastMessage(AnnotationChangedMessage(that_)); | 1304 that_.BroadcastMessage(AnnotationChangedMessage(that_)); |
1298 } | 1305 } |
1299 } | 1306 } |
1300 | 1307 |
1301 virtual void PointerUp(const PointerEvent& event) ORTHANC_OVERRIDE | 1308 virtual void PointerUp(const PointerEvent& event, |
1309 const Scene2D& scene) ORTHANC_OVERRIDE | |
1302 { | 1310 { |
1303 if (segment_ != NULL) | 1311 if (segment_ != NULL) |
1304 { | 1312 { |
1305 // End of first step: The first segment is available, now create the angle | 1313 // End of first step: The first segment is available, now create the angle |
1306 | 1314 |
1319 | 1327 |
1320 that_.BroadcastMessage(AnnotationAddedMessage(that_)); | 1328 that_.BroadcastMessage(AnnotationAddedMessage(that_)); |
1321 } | 1329 } |
1322 } | 1330 } |
1323 | 1331 |
1324 virtual void PointerDown(const PointerEvent& event) ORTHANC_OVERRIDE | 1332 virtual void PointerDown(const PointerEvent& event, |
1333 const Scene2D& scene) ORTHANC_OVERRIDE | |
1325 { | 1334 { |
1326 } | 1335 } |
1327 | 1336 |
1328 virtual bool IsAlive() const ORTHANC_OVERRIDE | 1337 virtual bool IsAlive() const ORTHANC_OVERRIDE |
1329 { | 1338 { |
1355 public: | 1364 public: |
1356 RemoveTracker() | 1365 RemoveTracker() |
1357 { | 1366 { |
1358 } | 1367 } |
1359 | 1368 |
1360 virtual void PointerMove(const PointerEvent& event) ORTHANC_OVERRIDE | 1369 virtual void PointerMove(const PointerEvent& event, |
1361 { | 1370 const Scene2D& scene) ORTHANC_OVERRIDE |
1362 } | 1371 { |
1363 | 1372 } |
1364 virtual void PointerUp(const PointerEvent& event) ORTHANC_OVERRIDE | 1373 |
1365 { | 1374 virtual void PointerUp(const PointerEvent& event, |
1366 } | 1375 const Scene2D& scene) ORTHANC_OVERRIDE |
1367 | 1376 { |
1368 virtual void PointerDown(const PointerEvent& event) ORTHANC_OVERRIDE | 1377 } |
1378 | |
1379 virtual void PointerDown(const PointerEvent& event, | |
1380 const Scene2D& scene) ORTHANC_OVERRIDE | |
1369 { | 1381 { |
1370 } | 1382 } |
1371 | 1383 |
1372 virtual bool IsAlive() const ORTHANC_OVERRIDE | 1384 virtual bool IsAlive() const ORTHANC_OVERRIDE |
1373 { | 1385 { |
1564 | 1576 |
1565 | 1577 |
1566 IFlexiblePointerTracker* AnnotationsSceneLayer::CreateTracker(const ScenePoint2D& p, | 1578 IFlexiblePointerTracker* AnnotationsSceneLayer::CreateTracker(const ScenePoint2D& p, |
1567 const Scene2D& scene) | 1579 const Scene2D& scene) |
1568 { | 1580 { |
1581 /** | |
1582 * WARNING: The created trackers must NOT keep a reference to "scene"! | |
1583 **/ | |
1584 | |
1569 if (activeTool_ == Tool_None) | 1585 if (activeTool_ == Tool_None) |
1570 { | 1586 { |
1571 return NULL; | 1587 return NULL; |
1572 } | 1588 } |
1573 else | 1589 else |