svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r22205:22290
[blender.git] / source / gameengine / Ketsji / KX_SCA_AddObjectActuator.h
index 2126a64630313cec6739d13fe078bf64b456169e..3151e7a89cafd28db593ffadc3cc7ac260089f64 100644 (file)
@@ -53,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;
        
@@ -75,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);
@@ -89,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(
@@ -104,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 */