Rumba C++ SDK
ToolPlugin.h
Go to the documentation of this file.
1 /*
2 
3  *
4  ***
5  *****
6  ********************* Mercenaries Engineering SARL
7  ***************** Copyright (C) 2018
8  *************
9  ********* http://www.mercenaries-engineering.com
10  ***********
11  **** ****
12  ** **
13 
14 */
15 #pragma once
16 
17 #include "Export.h"
18 #include "Array.h"
19 #include "NodePlugin.h"
20 
21  namespace maquina
22  {
23  class Node;
24  class Plug;
25  class Value;
26  class CameraContext;
27  class InteractionContext;
28 
30 
33  {
34  public:
35  ToolPlugin (Node *node);
36 
37  virtual void activate();
38  virtual void deactivate();
39  virtual void on_mouse_press( const CameraContext& camera, const InteractionContext& interaction );
40  virtual void on_mouse_move( const CameraContext& camera, const InteractionContext& interaction );
41  virtual void on_mouse_release( const CameraContext& camera, const InteractionContext& interaction );
42 
44 
46  virtual bool on_key_press(int32_t key, int32_t modifiers);
47 
49 
51  virtual bool on_key_release(int32_t key, int32_t modifiers);
52 
53  virtual bool override_selection();
54  virtual bool track_mouse();
55  virtual bool manipulates();
56  virtual Array get_help(const char *tool);
57  virtual Array get_status(const char *tool);
58  };
59  }
A Tool node plug-in.
Definition: ToolPlugin.h:32
Derive this class to create your own Node type.
Definition: NodePlugin.h:28
This class provides viewport space conversion services.
Definition: CameraContext.h:23
This version of the SDK is unstable, i-e, it may change with no warning.
Definition: AddCurveAction.h:20
An array of values.
Definition: Array.h:26
#define MAQUINA_EXPORT
Definition: Export.h:31
This interface is passed to the events and is implemented by the application. */. ...
Definition: InteractionContext.h:22
Base class of all Rumba nodes.
Definition: Node.h:37