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 #pragma once
8 
9 #include <map>
10 #include <memory>
11 #include <vector>
12 
13 #include "GDCore/String.h"
14 namespace gd {
15 class Object;
16 class ObjectsContainer;
17 class Behavior;
18 } // namespace gd
19 
20 namespace gd {
21 
29 class GD_CORE_API ArbitraryObjectsWorker {
30  public:
32  virtual ~ArbitraryObjectsWorker();
33 
37  void Launch(gd::ObjectsContainer& objects) { VisitObjectContainer(objects); };
38 
42  void Launch(gd::Object& object) { VisitObject(object); };
43 
44  private:
45  void VisitObjectContainer(gd::ObjectsContainer& objects);
46  void VisitObject(gd::Object& object);
47  void VisitBehavior(gd::Behavior& behavior);
48 
52  virtual void DoVisitObjectContainer(gd::ObjectsContainer& objects){};
53 
57  virtual void DoVisitObject(gd::Object& object){};
58 
62  virtual void DoVisitBehavior(gd::Behavior& behavior){};
63 };
64 
65 } // namespace gd
66 
ArbitraryObjectsWorker is an abstract class used to browse objects (and behaviors) and do some work o...
Definition: ArbitraryObjectsWorker.h:29
void Launch(gd::Object &object)
Launch the worker on the specified object.
Definition: ArbitraryObjectsWorker.h:42
void Launch(gd::ObjectsContainer &objects)
Launch the worker on the specified object container.
Definition: ArbitraryObjectsWorker.h:37
Base class used to represents a behavior that can be applied to an object. It stores the content (i....
Definition: Behavior.h:24
Represent an object of a platform.
Definition: Object.h:39
Used as a base class for classes that will own objects (see gd::Object).
Definition: ObjectsContainer.h:38
Definition: CommonTools.h:24