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 "NodePlugin.h"
19 
20  namespace maquina
21  {
22  class Node;
23  class Plug;
24  class Value;
25  class CameraContext;
26  class InteractionContext;
27 
29 
32  {
33  public:
34  ToolPlugin (Node *node);
35 
36  virtual void activate();
37  virtual void deactivate();
38  virtual void on_mouse_press( const CameraContext& camera, const InteractionContext& interaction );
39  virtual void on_mouse_move( const CameraContext& camera, const InteractionContext& interaction );
40  virtual void on_mouse_release( const CameraContext& camera, const InteractionContext& interaction );
41 
43 
45  virtual bool on_key_press(int32_t key, int32_t modifiers);
46 
48 
50  virtual bool on_key_release(int32_t key, int32_t modifiers);
51 
52  virtual bool override_selection();
53  virtual bool track_mouse();
54  virtual bool manipulates();
55  virtual Array get_help(const char *tool);
56  virtual Array get_status(const char *tool);
57  };
58  }
A Tool node plug-in.
Definition: ToolPlugin.h:31
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:36