GDevelop Core
Core library for developing platforms and tools compatible with GDevelop.
ArbitraryObjectsWorker.h
1 /*
2  * GDevelop Core
3  * Copyright 2008-2016 Florian Rival ([email protected]). All rights
4  * reserved. This project is released under the MIT License.
5  */
6 
7 #ifndef ARBITRARYOBJECTSWORKER_H
8 #define ARBITRARYOBJECTSWORKER_H
9 
10 #include <map>
11 #include <memory>
12 #include <vector>
13 
14 #include "GDCore/String.h"
15 namespace gd {
16 class Object;
17 class ObjectsContainer;
18 class Behavior;
19 } // namespace gd
20 
21 namespace gd {
22 
30 class GD_CORE_API ArbitraryObjectsWorker {
31  public:
33  virtual ~ArbitraryObjectsWorker();
34 
38  void Launch(gd::ObjectsContainer& objects) { VisitObjectContainer(objects); };
39 
40  private:
41  void VisitObjectContainer(gd::ObjectsContainer& objects);
42  void VisitObject(gd::Object& object);
43  void VisitBehavior(gd::Behavior& behavior);
44 
48  virtual void DoVisitObjectContainer(gd::ObjectsContainer& objects){};
49 
53  virtual void DoVisitObject(gd::Object& object){};
54 
58  virtual void DoVisitBehavior(gd::Behavior& behavior){};
59 };
60 
61 } // namespace gd
62 
63 #endif // ARBITRARYOBJECTSWORKER_H
ArbitraryObjectsWorker is an abstract class used to browse objects (and behaviors) and do some work o...
Definition: ArbitraryObjectsWorker.h:30
void Launch(gd::ObjectsContainer &objects)
Launch the worker on the specified object container.
Definition: ArbitraryObjectsWorker.h:38
Base class used to represents a behavior that can be applied to an object. It stores the content (i....
Definition: Behavior.h:23
Represent an object of a platform.
Definition: Object.h:37
Used as a base class for classes that will own objects (see gd::Object).
Definition: ObjectsContainer.h:36
Definition: CommonTools.h:24