april  1.0.0
...
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
actorfactory.h
Go to the documentation of this file.
1 /* ========================================================================= */
2 /* ------------------------------------------------------------------------- *//*
12 
13 
14  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15  Please read COPYING and README files in root folder
16  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17 */
18 /* ------------------------------------------------------------------------- */
19 /* ========================================================================= */
20 #ifndef __ACTORFACTORY_INC__
21 #define __ACTORFACTORY_INC__
22 //
23 //
24 //
25 //
26 /* INCLUDES ------------------------------------------------------------ */
27 
28 #include <april/april.h>
29 #include <april/logic/factory.h>
30 #include <april/logic/dna.h>
31 
32 /* INCLUDES ============================================================ */
33 //
34 //
35 //
36 //
37 /* DEFINITIONS --------------------------------------------------------- */
38 
39 namespace april {
40 
41 class DNA;
42 class Actor;
43 
44 /* DEFINITIONS ========================================================= */
45 //
46 //
47 //
48 //
49 /* CLASS --------------------------------------------------------------- */
50 
54 class
56  ActorFactory : public Factory {
57  BBM_TRACK( ActorFactory );
58 
59  //
60  //
61  //
62  //
63  /* DEFINITIONS ----------------------------------------------------- */
64 
65  /* DEFINITIONS ===================================================== */
66  //
67  //
68  //
69  //
70  /* DATA ------------------------------------------------------------ */
71 
72 private:
73 
75 
79  DNA default_dna_;
80 
81  /* DATA ============================================================ */
82  //
83  //
84  //
85  //
86  /* FUNCTIONS ------------------------------------------------------- */
87 
88 public:
89 
90 
94  ActorFactory ( World * w );
95 
96 protected:
97 
101  virtual ~ActorFactory ( void );
102 
103 public:
104 
106  virtual FactoryType factoryType ( void )
107  { return FTyActor; }
108 
110  virtual QString factoryName ( void )
111  { return "Actor.Factory.Default"; }
112 
114  virtual void copyDefaultDNA ( DNA & destination )
115  { destination = default_dna_; }
116 
118 
128  virtual Actor * create ( ID id );
129 
131  virtual bool save ( QSettings & s ) const;
132 
134  virtual bool load ( QSettings & s );
135 
136 protected:
137 
139  DNA & defaultDNA ( void )
140  { return default_dna_; }
141 
143  bool addMyself ( ID id );
144 
146  void setDNA ( Actor * a, const DNA & dna );
147 
149  void setDNA ( Actor * a )
150  { setDNA( a, default_dna_ ); }
151 
153 
157  void initDNA (
158  DNA & dna,
159  const DNA::InitData & init
160  );
161 
163  void initDNA ( const DNA::InitData & init )
164  { initDNA( default_dna_, init ); }
165 
166  /* FUNCTIONS ======================================================= */
167  //
168  //
169  //
170  //
171 
172 }; /* class ActorFactory */
173 
174 /* CLASS =============================================================== */
175 //
176 //
177 //
178 //
179 
180 } // namespace april
181 
182 #endif // __ACTORFACTORY_INC__
183 /* ------------------------------------------------------------------------- */
184 /* ========================================================================= */