svn merge ^/trunk/blender -r43830:43864
authorCampbell Barton <ideasman42@gmail.com>
Fri, 3 Feb 2012 01:30:21 +0000 (01:30 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Fri, 3 Feb 2012 01:30:21 +0000 (01:30 +0000)
1  2 
CMakeLists.txt
source/blender/blenkernel/intern/constraint.c
source/blender/blenkernel/intern/displist.c
source/blender/blenkernel/intern/navmesh_conversion.c
source/blender/collada/GeometryExporter.cpp
source/blender/editors/interface/interface_templates.c
source/blender/editors/transform/transform_conversions.c
source/blender/modifiers/intern/MOD_fluidsim_util.c
source/gameengine/Ketsji/KX_NavMeshObject.cpp

diff --cc CMakeLists.txt
Simple merge
@@@ -171,7 -166,7 +166,7 @@@ void fluidsim_free(FluidsimModifierDat
  
  #ifdef WITH_MOD_FLUID
  /* read .bobj.gz file into a fluidsimDerivedMesh struct */
- static DerivedMesh *fluidsim_read_obj(const char *filename)
 -static DerivedMesh *fluidsim_read_obj(const char *filename, const MFace *mf_example)
++static DerivedMesh *fluidsim_read_obj(const char *filename, const MPoly *mp_example)
  {
        int wri = 0,i;
        int gotBytes;
        short *normals, *no_s;
        float no[3];
  
 -      const short mf_mat_nr = mf_example->mat_nr;
 -      const char  mf_flag =   mf_example->flag;
++      const short mp_mat_nr = mp_example->mat_nr;
++      const char  mp_flag =   mp_example->flag;
        // ------------------------------------------------
        // get numverts + numfaces first
        // ------------------------------------------------
  
                gotBytes = gzread(gzf, face, sizeof(int) * 3);
  
 -              mf->mat_nr = mf_mat_nr;
 -              mf->flag =   mf_flag;
+               /* initialize from existing face */
 -              // check if 3rd vertex has index 0 (not allowed in blender)
 -              if(face[2])
 -              {
 -                      mf->v1 = face[0];
 -                      mf->v2 = face[1];
 -                      mf->v3 = face[2];
 -              }
 -              else
 -              {
 -                      mf->v1 = face[1];
 -                      mf->v2 = face[2];
 -                      mf->v3 = face[0];
 -              }
 -              mf->v4 = 0;
++              mp->mat_nr = mp_mat_nr;
++              mp->flag =   mp_flag;
 +              mp->loopstart = i * 3;
 +              mp->totloop = 3;
 +
 +              ml[0].v = face[0];
 +              ml[1].v = face[1];
 +              ml[2].v = face[2];
  
 -              test_index_face(mf, NULL, 0, 3);
        }
  
        gzclose( gzf );
@@@ -443,9 -453,9 +445,8 @@@ static DerivedMesh *fluidsim_read_cache
        char targetFile[FILE_MAX];
        FluidsimSettings *fss = fluidmd->fss;
        DerivedMesh *dm = NULL;
 -      MFace *mface;
 -      MFace mf_example = {0};
 -
 +      MPoly *mpoly;
-       int numpolys;
-       int mat_nr, flag, i;
++      MPoly mp_example = {0};
  
        if(!useRenderParams) {
                displaymode = fss->guiDisplayMode;
        BLI_path_abs(targetFile, modifier_path_relbase(ob));
        BLI_path_frame(targetFile, curFrame, 0); // fixed #frame-no
  
-       dm = fluidsim_read_obj(targetFile);
+       // assign material + flags to new dm
+       // if there's no faces in original dm, keep materials and flags unchanged
 -      mface = orgdm->getFaceArray(orgdm);
 -      if (mface) {
 -              mf_example = *mface;
++      mpoly = orgdm->getPolyArray(orgdm);
++      if (mpoly) {
++              mp_example = *mpoly;
+       }
+       /* else leave NULL'd */
 -      dm = fluidsim_read_obj(targetFile, &mf_example);
++      dm = fluidsim_read_obj(targetFile, &mp_example);
  
        if(!dm)
        {