NLA SoC: Merge from 2.5
[blender.git] / source / gameengine / Ketsji / KX_ParentActuator.h
index 1bceacc90780bd546f2a088aece5193921b229fb..aeb39eabf89da6220ba2f172f06055fce46c126e 100644 (file)
@@ -2,9 +2,9 @@
  * Set or remove an objects parent
  *
  *
- * $Id: KX_ParentActuator.h 3271 2004-10-16 11:41:50Z kester $
+ * $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
@@ -30,7 +30,7 @@
  *
  * Contributor(s): none yet.
  *
- * ***** END GPL/BL DUAL LICENSE BLOCK *****
+ * ***** END GPL LICENSE BLOCK *****
  */
 
 #ifndef __KX_PARENTACTUATOR
@@ -46,8 +46,11 @@ class KX_ParentActuator : public SCA_IActuator
        /** Mode */
        int m_mode;
        
+       /** option */
+       bool    m_addToCompound;
+       bool    m_ghost;
        /** Object to set as parent */
-       CValue *m_ob;
+       SCA_IObject *m_ob;
        
        
 
@@ -57,28 +60,35 @@ class KX_ParentActuator : public SCA_IActuator
                KX_PARENT_NODEF = 0,
                KX_PARENT_SET,
                KX_PARENT_REMOVE,
+               KX_PARENT_MAX
 
        };
  
        KX_ParentActuator(class SCA_IObject* gameobj,
                                                int mode,
-                                               CValue *ob,
-                                               PyTypeObject* T=&Type);
+                                               bool addToCompound,
+                                               bool ghost,
+                                               SCA_IObject *ob);
        virtual ~KX_ParentActuator();
        virtual bool Update();
        
        virtual CValue* GetReplica();
+       virtual void ProcessReplica();
+       virtual void Relink(GEN_Map<GEN_HashedPtr, void*> *obj_map);
+       virtual bool UnlinkObject(SCA_IObject* clientobj);
        
        /* --------------------------------------------------------------------- */
        /* Python interface ---------------------------------------------------- */
        /* --------------------------------------------------------------------- */
 
-       virtual PyObject* _getattr(const STR_String& attr);
+       /* These are used to get and set m_ob */
+       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);
 
-       /* 1. setObject                                                            */
-       KX_PYMETHOD_DOC(KX_ParentActuator,SetObject);
-       /* 2. getObject                                                            */
-       KX_PYMETHOD_DOC(KX_ParentActuator,GetObject);
+       // Deprecated ----->
+       KX_PYMETHOD_DOC_O(KX_ParentActuator,SetObject);
+       KX_PYMETHOD_DOC_VARARGS(KX_ParentActuator,GetObject);
+       // <-----
        
 }; /* end of class KX_ParentActuator : public SCA_PropertyActuator */