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