Mercurial > hg > orthanc-stone
comparison Samples/Common/MeasureTrackers.cpp @ 644:f939f449482c
Ongoing tracker work.
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Fri, 10 May 2019 16:15:55 +0200 |
parents | 500c3f70b6c2 |
children | 1e9ed656318e |
comparison
equal
deleted
inserted
replaced
634:6a144a45b2d8 | 644:f939f449482c |
---|---|
29 CreateMeasureTracker::CreateMeasureTracker( | 29 CreateMeasureTracker::CreateMeasureTracker( |
30 Scene2D& scene, | 30 Scene2D& scene, |
31 std::vector<TrackerCommandPtr>& undoStack, | 31 std::vector<TrackerCommandPtr>& undoStack, |
32 std::vector<MeasureToolPtr>& measureTools) | 32 std::vector<MeasureToolPtr>& measureTools) |
33 : scene_(scene) | 33 : scene_(scene) |
34 , active_(true) | |
34 , undoStack_(undoStack) | 35 , undoStack_(undoStack) |
35 , measureTools_(measureTools) | 36 , measureTools_(measureTools) |
36 , commitResult_(true) | 37 , commitResult_(true) |
37 { | 38 { |
39 } | |
40 | |
41 void CreateMeasureTracker::Cancel() | |
42 { | |
43 commitResult_ = false; | |
44 active_ = false; | |
45 } | |
46 | |
47 bool CreateMeasureTracker::IsActive() const | |
48 { | |
49 return active_; | |
38 } | 50 } |
39 | 51 |
40 CreateMeasureTracker::~CreateMeasureTracker() | 52 CreateMeasureTracker::~CreateMeasureTracker() |
41 { | 53 { |
42 // if the tracker completes successfully, we add the command | 54 // if the tracker completes successfully, we add the command |
47 undoStack_.push_back(command_); | 59 undoStack_.push_back(command_); |
48 else | 60 else |
49 command_->Undo(); | 61 command_->Undo(); |
50 } | 62 } |
51 | 63 |
52 CreateLineMeasureTracker::CreateLineMeasureTracker( | |
53 Scene2D& scene, | |
54 std::vector<TrackerCommandPtr>& undoStack, | |
55 std::vector<MeasureToolPtr>& measureTools, | |
56 const PointerEvent& e) | |
57 : CreateMeasureTracker(scene, undoStack, measureTools) | |
58 { | |
59 command_.reset( | |
60 new CreateLineMeasureCommand( | |
61 scene, | |
62 measureTools, | |
63 e.GetMainPosition().Apply(scene.GetCanvasToSceneTransform()))); | |
64 } | |
65 | |
66 CreateLineMeasureTracker::~CreateLineMeasureTracker() | |
67 { | |
68 | |
69 } | |
70 | |
71 void CreateMeasureTracker::Update(const PointerEvent& event) | |
72 { | |
73 ScenePoint2D scenePos = event.GetMainPosition().Apply( | |
74 scene_.GetCanvasToSceneTransform()); | |
75 | |
76 LOG(TRACE) << "scenePos.GetX() = " << scenePos.GetX() << " " << | |
77 "scenePos.GetY() = " << scenePos.GetY(); | |
78 | |
79 CreateLineMeasureTracker* concreteThis = | |
80 dynamic_cast<CreateLineMeasureTracker*>(this); | |
81 assert(concreteThis != NULL); | |
82 command_->Update(scenePos); | |
83 } | |
84 | |
85 void CreateMeasureTracker::Release() | |
86 { | |
87 commitResult_ = false; | |
88 } | |
89 | 64 |
90 } | 65 } |
91 | 66 |
92 | 67 |