LoveBrains  1.0.0
i_plugin.h
1 /*
2 ** i_plugin.h for LoveBrains in /home/robin_f/Programming/Git/CPP/LoveBrains
3 **
4 ** Made by Guillaume ROBIN
5 ** Login <robin_f@epitech.eu>
6 **
7 ** Started on Thu Jul 30 11:04:27 2015 Guillaume ROBIN
8 ** Last update Fri Aug 21 13:38:00 2015 Guillaume ROBIN
9 */
10 
11 #ifndef I_PLUGIN_H_
12 # define I_PLUGIN_H_
13 
14 # include <vector>
15 # include "Graphics/i_object.h"
16 # include "Graphics/i_collider.h"
17 # include "Graphics/i_sensor.h"
18 
23 namespace Plugin
24 {
30  class IPlugin
31  {
32  public:
33  /*
34  ** Typedef.
35  */
36  /*
37  ** Madatory name for the PluginCreator function : "CreatePlugin"
38  ** Example: IPlugin *CreatePlugin(void);
39  */
40 
44  typedef IPlugin *(*PluginCreator)(void);
45 
49  virtual ~IPlugin(void) { }
50 
51  /*
52  ** Methods.
53  */
54 
59  virtual std::vector<Graphics::IObject *>& getObjects(void) = 0;
64  virtual std::vector<Graphics::ICollider *>& getColliders(void) = 0;
69  virtual std::vector<Graphics::ISensor *>& getSensors(void) = 0;
70  };
71 }
72 
73 #endif /* !I_PLUGIN_H_ */
virtual ~IPlugin(void)
Virtual destructor.
Definition: i_plugin.h:49
Define the plugin interface in order to add some stuff to LoveBrains. Mandatory name for the PluginCr...
Definition: i_plugin.h:30
virtual std::vector< Graphics::IObject * > & getObjects(void)=0
Get all the objects contained by the plugin.
virtual std::vector< Graphics::ICollider * > & getColliders(void)=0
Get all the colliders contained by the plugin.
virtual std::vector< Graphics::ISensor * > & getSensors(void)=0
Get all the sensors contained by the plugin.
Contains all the objects and the interfaces of the plugin management.