comparison Samples/Sdl/TrackerSampleApp.cpp @ 651:62f6ff016085

Iteration in angle measuring tool. Text label is not ok and handles and arcs (and maybe angle sides) should not scale with zoom.
author Benjamin Golinvaux <bgo@osimis.io>
date Tue, 14 May 2019 09:48:14 +0200
parents f939f449482c
children 462a5074f914
comparison
equal deleted inserted replaced
650:200f7e1d57d1 651:62f6ff016085
19 **/ 19 **/
20 20
21 #include "TrackerSampleApp.h" 21 #include "TrackerSampleApp.h"
22 22
23 #include "../Common/CreateLineMeasureTracker.h" 23 #include "../Common/CreateLineMeasureTracker.h"
24 #include "../Common/CreateAngleMeasureTracker.h"
24 25
25 #include "../../Applications/Sdl/SdlOpenGLWindow.h" 26 #include "../../Applications/Sdl/SdlOpenGLWindow.h"
26 27
27 #include "../../Framework/Scene2D/PanSceneTracker.h" 28 #include "../../Framework/Scene2D/PanSceneTracker.h"
28 #include "../../Framework/Scene2D/RotateSceneTracker.h" 29 #include "../../Framework/Scene2D/RotateSceneTracker.h"
160 } 161 }
161 } 162 }
162 else if (event.type == SDL_MOUSEBUTTONDOWN) 163 else if (event.type == SDL_MOUSEBUTTONDOWN)
163 { 164 {
164 PointerEvent e; 165 PointerEvent e;
165 e.AddPosition(compositor.GetPixelCenterCoordinates(event.button.x, event.button.y)); 166 e.AddPosition(compositor.GetPixelCenterCoordinates(
167 event.button.x, event.button.y));
166 if (activeTracker_) 168 if (activeTracker_)
167 { 169 {
168 activeTracker_->PointerDown(e); 170 activeTracker_->PointerDown(e);
169 if (!activeTracker_->IsActive()) 171 if (!activeTracker_->IsActive())
170 activeTracker_ = NULL; 172 activeTracker_ = NULL;
255 { 257 {
256 case GuiTool_Rotate: 258 case GuiTool_Rotate:
257 //LOG(TRACE) << "Creating RotateSceneTracker"; 259 //LOG(TRACE) << "Creating RotateSceneTracker";
258 return CreateSimpleTrackerAdapter(PointerTrackerPtr( 260 return CreateSimpleTrackerAdapter(PointerTrackerPtr(
259 new RotateSceneTracker(scene_, e))); 261 new RotateSceneTracker(scene_, e)));
260 case GuiTool_LineMeasure:
261 return FlexiblePointerTrackerPtr(new CreateLineMeasureTracker(
262 scene_, undoStack_, measureTools_, e));
263 case GuiTool_Pan: 262 case GuiTool_Pan:
264 return CreateSimpleTrackerAdapter(PointerTrackerPtr( 263 return CreateSimpleTrackerAdapter(PointerTrackerPtr(
265 new PanSceneTracker(scene_, e))); 264 new PanSceneTracker(scene_, e)));
266 case GuiTool_Zoom: 265 case GuiTool_Zoom:
267 return CreateSimpleTrackerAdapter(PointerTrackerPtr( 266 return CreateSimpleTrackerAdapter(PointerTrackerPtr(
270 // return new AngleMeasureTracker(scene_, measureTools_, undoStack_, e); 269 // return new AngleMeasureTracker(scene_, measureTools_, undoStack_, e);
271 //case GuiTool_CircleMeasure: 270 //case GuiTool_CircleMeasure:
272 // return new CircleMeasureTracker(scene_, measureTools_, undoStack_, e); 271 // return new CircleMeasureTracker(scene_, measureTools_, undoStack_, e);
273 //case GuiTool_EllipseMeasure: 272 //case GuiTool_EllipseMeasure:
274 // return new EllipseMeasureTracker(scene_, measureTools_, undoStack_, e); 273 // return new EllipseMeasureTracker(scene_, measureTools_, undoStack_, e);
274 case GuiTool_LineMeasure:
275 return FlexiblePointerTrackerPtr(new CreateLineMeasureTracker(
276 scene_, undoStack_, measureTools_, e));
275 case GuiTool_AngleMeasure: 277 case GuiTool_AngleMeasure:
276 LOG(ERROR) << "Not implemented yet!"; 278 return FlexiblePointerTrackerPtr(new CreateAngleMeasureTracker(
279 scene_, undoStack_, measureTools_, e));
277 return NULL; 280 return NULL;
278 case GuiTool_CircleMeasure: 281 case GuiTool_CircleMeasure:
279 LOG(ERROR) << "Not implemented yet!"; 282 LOG(ERROR) << "Not implemented yet!";
280 return NULL; 283 return NULL;
281 case GuiTool_EllipseMeasure: 284 case GuiTool_EllipseMeasure: