Mercurial > hg > orthanc-stone
comparison Samples/Sdl/TrackerSampleApp.cpp @ 880:9953f16c304d am-dev
Merge
author | Alain Mazy <alain@mazy.be> |
---|---|
date | Fri, 05 Jul 2019 15:33:02 +0200 |
parents | 4bc8d9609447 |
children | 31319fe867b9 77c96ba899f9 |
comparison
equal
deleted
inserted
replaced
879:12b591d5d63c | 880:9953f16c304d |
---|---|
245 e.AddPosition(compositor_->GetPixelCenterCoordinates( | 245 e.AddPosition(compositor_->GetPixelCenterCoordinates( |
246 event.button.x, event.button.y)); | 246 event.button.x, event.button.y)); |
247 | 247 |
248 DisplayFloatingCtrlInfoText(e); | 248 DisplayFloatingCtrlInfoText(e); |
249 } | 249 } |
250 else | 250 else if (activeTracker_.get() != NULL) |
251 { | 251 { |
252 HideInfoText(); | 252 HideInfoText(); |
253 //LOG(TRACE) << "(event.type == SDL_MOUSEMOTION)"; | 253 //LOG(TRACE) << "(event.type == SDL_MOUSEMOTION)"; |
254 if (activeTracker_.get() != NULL) | 254 if (activeTracker_.get() != NULL) |
255 { | 255 { |
264 e.GetMainPosition().GetX() << " " << e.GetMainPosition().GetY(); | 264 e.GetMainPosition().GetX() << " " << e.GetMainPosition().GetY(); |
265 | 265 |
266 activeTracker_->PointerMove(e); | 266 activeTracker_->PointerMove(e); |
267 if (!activeTracker_->IsAlive()) | 267 if (!activeTracker_->IsAlive()) |
268 activeTracker_.reset(); | 268 activeTracker_.reset(); |
269 } | |
270 } | |
271 else | |
272 { | |
273 HideInfoText(); | |
274 | |
275 PointerEvent e; | |
276 e.AddPosition(compositor_->GetPixelCenterCoordinates(event.button.x, event.button.y)); | |
277 | |
278 ScenePoint2D scenePos = e.GetMainPosition().Apply( | |
279 controller_->GetScene()->GetCanvasToSceneTransform()); | |
280 //auto measureTools = GetController()->HitTestMeasureTools(scenePos); | |
281 //LOG(TRACE) << "# of hit tests: " << measureTools.size(); | |
282 | |
283 // this returns the collection of measuring tools where hit test is true | |
284 std::vector<boost::shared_ptr<MeasureTool> > measureTools = controller_->HitTestMeasureTools(scenePos); | |
285 | |
286 // let's refresh the measuring tools highlighted state | |
287 // first let's tag them as "unhighlighted" | |
288 controller_->ResetMeasuringToolsHighlight(); | |
289 | |
290 // then immediately take the first one and ask it to highlight the | |
291 // measuring tool UI part that is hot | |
292 if (measureTools.size() > 0) | |
293 { | |
294 measureTools[0]->Highlight(scenePos); | |
269 } | 295 } |
270 } | 296 } |
271 } | 297 } |
272 else if (event.type == SDL_MOUSEBUTTONUP) | 298 else if (event.type == SDL_MOUSEBUTTONUP) |
273 { | 299 { |
594 | 620 |
595 | 621 |
596 boost::shared_ptr<IFlexiblePointerTracker> TrackerSampleApp::TrackerHitTest(const PointerEvent & e) | 622 boost::shared_ptr<IFlexiblePointerTracker> TrackerSampleApp::TrackerHitTest(const PointerEvent & e) |
597 { | 623 { |
598 // std::vector<boost::shared_ptr<MeasureTool>> measureTools_; | 624 // std::vector<boost::shared_ptr<MeasureTool>> measureTools_; |
625 ScenePoint2D scenePos = e.GetMainPosition().Apply( | |
626 controller_->GetScene()->GetCanvasToSceneTransform()); | |
627 | |
628 std::vector<boost::shared_ptr<MeasureTool> > measureTools = controller_->HitTestMeasureTools(scenePos); | |
629 | |
630 if (measureTools.size() > 0) | |
631 { | |
632 return measureTools[0]->CreateEditionTracker(e); | |
633 } | |
599 return boost::shared_ptr<IFlexiblePointerTracker>(); | 634 return boost::shared_ptr<IFlexiblePointerTracker>(); |
600 } | 635 } |
601 | 636 |
602 static void GLAPIENTRY | 637 static void GLAPIENTRY |
603 OpenGLMessageCallback(GLenum source, | 638 OpenGLMessageCallback(GLenum source, |