doxygen: prevent GPL license block from being parsed as doxygen comment.
[blender.git] / source / gameengine / Ketsji / KX_SCA_AddObjectActuator.h
1 // $Id$
2 //
3 // ***** BEGIN GPL LICENSE BLOCK *****
4 //
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software Foundation,
17 // Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18 //
19 // The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
20 // All rights reserved.
21 //
22 // The Original Code is: all of this file.
23 //
24 // Contributor(s): none yet.
25 //
26 // ***** END GPL LICENSE BLOCK *****
27
28 /** \file KX_SCA_AddObjectActuator.h
29  *  \ingroup ketsji
30  *  \attention Previously existed as: \source\gameengine\GameLogic\SCA_AddObjectActuator.h
31  * Please look here for revision history.
32  */
33
34 #ifndef __KX_SCA_AddObjectActuator
35 #define __KX_SCA_AddObjectActuator
36
37 /* Actuator tree */
38 #include "SCA_IActuator.h"
39 #include "SCA_LogicManager.h"
40
41 #include "MT_Vector3.h"
42
43
44
45 class SCA_IScene;
46
47 class KX_SCA_AddObjectActuator : public SCA_IActuator
48 {
49         Py_Header;
50
51         /// Time field: lifetime of the new object
52         int     m_timeProp;
53
54         /// Original object reference (object to replicate)     
55         SCA_IObject*    m_OriginalObject;
56
57         /// Object will be added to the following scene
58         SCA_IScene*     m_scene;
59
60         /// Linear velocity upon creation of the object. 
61         float  m_linear_velocity[3];
62         /// Apply the velocity locally 
63         bool m_localLinvFlag;
64         
65         /// Angular velocity upon creation of the object. 
66         float  m_angular_velocity[3];
67         /// Apply the velocity locally 
68         bool m_localAngvFlag; 
69         
70         
71         
72         
73         SCA_IObject*    m_lastCreatedObject;
74         
75 public:
76
77         /** 
78          * This class also has the default constructors
79          * available. Use with care!
80          */
81
82         KX_SCA_AddObjectActuator(
83                 SCA_IObject *gameobj,
84                 SCA_IObject *original,
85                 int time,
86                 SCA_IScene* scene,
87                 const float *linvel,
88                 bool linv_local,
89                 const float *angvel,
90                 bool angv_local
91         );
92
93         ~KX_SCA_AddObjectActuator(void);
94
95                 CValue* 
96         GetReplica(
97         ) ;
98
99         virtual void 
100         ProcessReplica();
101
102         virtual void Replace_IScene(SCA_IScene *val)
103         {
104                 m_scene= val;
105         };
106
107         virtual bool 
108         UnlinkObject(SCA_IObject* clientobj);
109
110         virtual void 
111         Relink(GEN_Map<GEN_HashedPtr, void*> *obj_map);
112
113         virtual bool 
114         Update();
115
116                 SCA_IObject*    
117         GetLastCreatedObject(
118         ) const ;
119
120         void    InstantAddObject();
121
122 #ifdef WITH_PYTHON
123
124         KX_PYMETHOD_DOC_NOARGS(KX_SCA_AddObjectActuator,InstantAddObject);
125
126         static PyObject* pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
127         static int pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
128         static PyObject* pyattr_get_objectLastCreated(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
129         
130 #endif // WITH_PYTHON
131
132 }; /* end of class KX_SCA_AddObjectActuator : public KX_EditObjectActuator */
133
134 #endif
135