svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r22205:22290
[blender.git] / source / gameengine / Ketsji / KX_SCA_AddObjectActuator.h
index 60adcb27b129ddc3237567103bd646bbdf128814..3151e7a89cafd28db593ffadc3cc7ac260089f64 100644 (file)
@@ -5,15 +5,12 @@
 //
 // $Id$
 //
-// ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
+// ***** BEGIN GPL LICENSE BLOCK *****
 //
 // This program is free software; you can redistribute it and/or
 // modify it under the terms of the GNU General Public License
 // as published by the Free Software Foundation; either version 2
-// of the License, or (at your option) any later version. The Blender
-// Foundation also sells licenses for use in proprietary software under
-// the Blender License.  See http://www.blender.org/BL/ for information
-// about this.
+// of the License, or (at your option) any later version.
 //
 // This program is distributed in the hope that it will be useful,
 // but WITHOUT ANY WARRANTY; without even the implied warranty of
@@ -31,7 +28,7 @@
 //
 // Contributor(s): none yet.
 //
-// ***** END GPL/BL DUAL LICENSE BLOCK *****
+// ***** END GPL LICENSE BLOCK *****
 //
 // Previously existed as:
 // \source\gameengine\GameLogic\SCA_AddObjectActuator.h
@@ -56,16 +53,23 @@ class KX_SCA_AddObjectActuator : public SCA_IActuator
        int     m_timeProp;
 
        /// Original object reference (object to replicate)     
-       CValue* m_OriginalObject;
+       SCA_IObject*    m_OriginalObject;
 
        /// Object will be added to the following scene
        SCA_IScene*     m_scene;
 
        /// Linear velocity upon creation of the object. 
-       MT_Vector3  m_linear_velocity;
-
+       float  m_linear_velocity[3];
+       /// Apply the velocity locally 
+       bool m_localLinvFlag;
+       
+       /// Angular velocity upon creation of the object. 
+       float  m_angular_velocity[3];
        /// Apply the velocity locally 
-       bool m_localFlag;
+       bool m_localAngvFlag; 
+       
+       
+       
        
        SCA_IObject*    m_lastCreatedObject;
        
@@ -78,12 +82,13 @@ public:
 
        KX_SCA_AddObjectActuator(
                SCA_IObject *gameobj,
-               CValue* original,
+               SCA_IObject *original,
                int time,
                SCA_IScene* scene,
-               const MT_Vector3& linvel,
-               bool local,
-               PyTypeObject* T=&Type
+               const float *linvel,
+               bool linv_local,
+               const float *angvel,
+               bool angv_local
        );
 
        ~KX_SCA_AddObjectActuator(void);
@@ -92,13 +97,17 @@ public:
        GetReplica(
        ) ;
 
+       virtual void 
+       ProcessReplica();
+
        virtual bool 
-       Update();
+       UnlinkObject(SCA_IObject* clientobj);
 
-       virtual PyObject*  
-       _getattr(
-               const STR_String& attr
-       );
+       virtual void 
+       Relink(GEN_Map<GEN_HashedPtr, void*> *obj_map);
+
+       virtual bool 
+       Update();
 
                SCA_IObject*    
        GetLastCreatedObject(
@@ -107,22 +116,29 @@ public:
        void    InstantAddObject();
 
        /* 1. setObject */
-       KX_PYMETHOD_DOC(KX_SCA_AddObjectActuator,SetObject);
+       KX_PYMETHOD_DOC_O(KX_SCA_AddObjectActuator,SetObject);
        /* 2. setTime */
-       KX_PYMETHOD_DOC(KX_SCA_AddObjectActuator,SetTime);
+       KX_PYMETHOD_DOC_O(KX_SCA_AddObjectActuator,SetTime);
        /* 3. getTime */
-       KX_PYMETHOD_DOC(KX_SCA_AddObjectActuator,GetTime);
+       KX_PYMETHOD_DOC_NOARGS(KX_SCA_AddObjectActuator,GetTime);
        /* 4. getObject */
-       KX_PYMETHOD_DOC(KX_SCA_AddObjectActuator,GetObject);
+       KX_PYMETHOD_DOC_VARARGS(KX_SCA_AddObjectActuator,GetObject);
        /* 5. getLinearVelocity */
-       KX_PYMETHOD_DOC(KX_SCA_AddObjectActuator,GetLinearVelocity);
+       KX_PYMETHOD_DOC_NOARGS(KX_SCA_AddObjectActuator,GetLinearVelocity);
        /* 6. setLinearVelocity */
-       KX_PYMETHOD_DOC(KX_SCA_AddObjectActuator,SetLinearVelocity);
-       /* 7. getLastCreatedObject */
-       KX_PYMETHOD_DOC(KX_SCA_AddObjectActuator,GetLastCreatedObject);
-       /* 8. instantAddObject*/
-       KX_PYMETHOD_DOC(KX_SCA_AddObjectActuator,InstantAddObject);
-
+       KX_PYMETHOD_DOC_VARARGS(KX_SCA_AddObjectActuator,SetLinearVelocity);
+       /* 7. getAngularVelocity */
+       KX_PYMETHOD_DOC_NOARGS(KX_SCA_AddObjectActuator,GetAngularVelocity);
+       /* 8. setAngularVelocity */
+       KX_PYMETHOD_DOC_VARARGS(KX_SCA_AddObjectActuator,SetAngularVelocity);
+       /* 9. getLastCreatedObject */
+       KX_PYMETHOD_DOC_NOARGS(KX_SCA_AddObjectActuator,GetLastCreatedObject);
+       /* 10. instantAddObject*/
+       KX_PYMETHOD_DOC_NOARGS(KX_SCA_AddObjectActuator,InstantAddObject);
+
+       static PyObject* pyattr_get_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
+       static int pyattr_set_object(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
+       static PyObject* pyattr_get_objectLastCreated(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef);
        
 }; /* end of class KX_SCA_AddObjectActuator : public KX_EditObjectActuator */