svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r20937:21899
authorCampbell Barton <ideasman42@gmail.com>
Sat, 25 Jul 2009 20:59:09 +0000 (20:59 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Sat, 25 Jul 2009 20:59:09 +0000 (20:59 +0000)
missing commits from peter 20942, 21165, 21170, 21174, 21597
these files still need manual merging

source/blender/makesdna/DNA_sequence_types.h
source/blender/src/sequence.c
source/blender/src/seqeffects.c
source/blender/src/editseq.c
source/blender/include/BSE_sequence.h

14 files changed:
1  2 
blenderplayer/CMakeLists.txt
config/win32-mingw-config.py
source/blender/blenkernel/BKE_softbody.h
source/blender/blenkernel/intern/mesh.c
source/blender/blenkernel/intern/softbody.c
source/blender/blenloader/intern/readfile.c
source/blender/makesdna/DNA_object_force.h
source/blender/render/intern/source/texture.c
source/gameengine/Converter/BL_ActionActuator.cpp
source/gameengine/Converter/BL_ActionActuator.h
source/gameengine/Converter/BL_ArmatureObject.h
source/gameengine/Ketsji/KXNetwork/KX_NetworkMessageActuator.cpp
source/gameengine/Ketsji/KX_MeshProxy.cpp
source/gameengine/Ketsji/KX_SoundActuator.cpp

Simple merge
@@@ -1,9 -1,12 +1,10 @@@
  LCGDIR = '#../lib/windows'
  LIBDIR = "${LCGDIR}"
  
 -WITH_BF_VERSE = False
 -BF_VERSE_INCLUDE = "#extern/verse/dist"
 -
  BF_PYTHON = LIBDIR + '/python'
 -BF_PYTHON_VERSION = '2.5'
 +BF_PYTHON_VERSION = '3.1'
 +#BF_PYTHON_VERSION = '2.6'
+ #BF_PYTHON_VERSION = '2.6'
  WITH_BF_STATICPYTHON = False
  BF_PYTHON_INC = '${BF_PYTHON}/include/python${BF_PYTHON_VERSION}'
  BF_PYTHON_BINARY = 'python'
@@@ -82,9 -82,9 +82,9 @@@ variables on the UI for no
  #include "BKE_DerivedMesh.h"
  #include "BKE_pointcache.h"
  #include "BKE_modifier.h"
+ #include "BKE_deform.h"
 -#include  "BIF_editdeform.h"
 -#include  "BIF_graphics.h"
 +//XXX #include  "BIF_editdeform.h"
 +//XXX #include  "BIF_graphics.h"
  #include  "PIL_time.h"
  // #include  "ONL_opennl.h" remove linking to ONL for now
  
@@@ -4126,9 -3703,12 +4126,12 @@@ static void direct_link_scene(FileData 
                                } else {
                                        seq->strip->color_balance = 0;
                                }
 -                                      seq->strip->color_balance->gui = 0;
+                               if (seq->strip->color_balance) {
++                                      // seq->strip->color_balance->gui = 0; // XXX - peter, is this relevant in 2.5?
+                               }
                        }
                }
 -              END_SEQ
 +              SEQ_END
                
                /* link metastack, slight abuse of structs here, have to restore pointer to internal part in struct */
                {
@@@ -950,14 -926,18 +954,18 @@@ KX_PYMETHODDEF_DOC(BL_ActionActuator, s
                obj->GetPose(&m_pose); /* Get the underlying pose from the armature */
                
                if (!m_userpose) {
-                       obj->GetPose(&m_pose); /* Get the underlying pose from the armature */
+                       if(!m_pose)
+                               obj->GetPose(&m_pose); /* Get the underlying pose from the armature */
                        game_copy_pose(&m_userpose, m_pose);
                }
-               pchan= verify_pose_channel(m_userpose, string); // adds the channel if its not there.
 -              //pchan= verify_pose_channel(m_userpose, string); // adds the channel if its not there.
++              // pchan= verify_pose_channel(m_userpose, string); // adds the channel if its not there.
+               pchan= get_pose_channel(m_userpose, string); // adds the channel if its not there.
                
-               VECCOPY (pchan->loc, matrix[3]);
-               Mat4ToSize(matrix, pchan->size);
-               Mat4ToQuat(matrix, pchan->quat);
 -              if (pchan) {
++              if(pchan) {
+                       VECCOPY (pchan->loc, matrix[3]);
+                       Mat4ToSize(matrix, pchan->size);
+                       Mat4ToQuat(matrix, pchan->quat);
+               }
        }
        else {
                MT_Vector3 loc;
                
                // same as above
                if (!m_userpose) {
-                       obj->GetPose(&m_pose); /* Get the underlying pose from the armature */
+                       if(!m_pose)
+                               obj->GetPose(&m_pose); /* Get the underlying pose from the armature */
                        game_copy_pose(&m_userpose, m_pose);
                }
-               pchan= verify_pose_channel(m_userpose, string);
 -              //pchan= verify_pose_channel(m_userpose, string); // adds the channel if its not there.
 -              pchan= get_pose_channel(m_userpose, string);
++              // pchan= verify_pose_channel(m_userpose, string);
++              pchan= get_pose_channel(m_userpose, string); // adds the channel if its not there.
                
                // for some reason loc.setValue(pchan->loc) fails
-               pchan->loc[0]= loc[0]; pchan->loc[1]= loc[1]; pchan->loc[2]= loc[2];
-               pchan->size[0]= size[0]; pchan->size[1]= size[1]; pchan->size[2]= size[2];
-               pchan->quat[0]= quat[3]; pchan->quat[1]= quat[0]; pchan->quat[2]= quat[1]; pchan->quat[3]= quat[2]; /* notice xyzw -> wxyz is intentional */
+               if(pchan) {
+                       pchan->loc[0]= loc[0]; pchan->loc[1]= loc[1]; pchan->loc[2]= loc[2];
+                       pchan->size[0]= size[0]; pchan->size[1]= size[1]; pchan->size[2]= size[2];
 -                      pchan->quat[0]= quat[0]; pchan->quat[1]= quat[1]; pchan->quat[2]= quat[2]; pchan->quat[3]= quat[3];
++                      pchan->quat[0]= quat[3]; pchan->quat[1]= quat[0]; pchan->quat[2]= quat[1]; pchan->quat[3]= quat[2]; /* notice xyzw -> wxyz is intentional */
+               }
+       }
+       
+       if(pchan==NULL) {
+               PyErr_SetString(PyExc_ValueError, "Channel could not be found, use the 'channelNames' attribute to get a list of valid channels");
+               return NULL;
        }
        
        pchan->flag |= POSE_ROT|POSE_LOC|POSE_SIZE;
@@@ -1094,3 -1101,23 +1112,23 @@@ int BL_ActionActuator::pyattr_set_actio
        return PY_SET_ATTR_SUCCESS;
  
  }
 -                      item= PyString_FromString(pchan->name);
+ PyObject* BL_ActionActuator::pyattr_get_channel_names(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef)
+ {
+       BL_ActionActuator* self= static_cast<BL_ActionActuator*>(self_v);
+       PyObject *ret= PyList_New(0);
+       PyObject *item;
+       
+       bPose *pose= ((BL_ArmatureObject*)self->GetParent())->GetOrigPose();
+       
+       if(pose) {
+               bPoseChannel *pchan;
+               for(pchan= (bPoseChannel *)pose->chanbase.first; pchan; pchan= (bPoseChannel *)pchan->next) {
++                      item= PyUnicode_FromString(pchan->name);
+                       PyList_Append(ret, item);
+                       Py_DECREF(item);
+               }
+       }
+       
+       return ret;
+ }
@@@ -112,9 -113,13 +112,9 @@@ public
  
        KX_PYMETHOD_DOC(BL_ActionActuator,setChannel);
  
 -      virtual PyObject* py_getattro(PyObject* attr);
 -      virtual PyObject*               py_getattro_dict();
 -      virtual int py_setattro(PyObject* attr, PyObject* value);
 -
        static PyObject*        pyattr_get_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
        static int                      pyattr_set_action(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
+       static PyObject*        pyattr_get_channel_names(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
        /* attribute check */
        static int CheckFrame(void *self, const PyAttributeDef*)
        {