MT Showcase SDK
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
InputTrackerOperator.hpp
1 #pragma once
2 
3 #include <MultiWidgets/Operator.hpp>
4 
5 namespace Showcase
6 {
15  class InputTrackerOperator : public MultiWidgets::Operator
16  {
17  public:
19 
20  virtual void input(MultiWidgets::Widget & widget, MultiWidgets::GrabManager & gm,
21  const MultiWidgets::TrackedObjects & trackedObjects, float dt) override;
22  virtual void reset() override;
23 
24  private:
25  struct ObjectData
26  {
27  Nimble::Vector2f location;
28  MultiTouch::TrackedObjectType type;
29  Valuable::Node::Uuid grabberId = 0;
30  int64_t code = 0;
31  };
32 
33  void objectDown(const MultiTouch::TrackedObject & object, MultiWidgets::GrabManager & gm);
34  void objectInteraction(MultiTouch::TrackedObject::Id id, const ObjectData & data);
35  void objectUp(MultiTouch::TrackedObject::Id id, const ObjectData & data);
36  void clearObjects();
37 
38  std::map<MultiTouch::TrackedObject::Id, ObjectData> m_trackedObjects;
39  };
40 
41  typedef std::shared_ptr<InputTrackerOperator> InputTrackerOperatorPtr;
42  typedef std::weak_ptr<InputTrackerOperator> InputTrackerOperatorWeakPtr;
43 }