Revision: 26373
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26373
Author:   blendix
Date:     2010-01-28 19:20:28 +0100 (Thu, 28 Jan 2010)

Log Message:
-----------
Multires displacement files are now also part of absolute/relative path
remapping.

Modified Paths:
--------------
    trunk/blender/source/blender/blenlib/intern/bpath.c

Modified: trunk/blender/source/blender/blenlib/intern/bpath.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/bpath.c 2010-01-28 17:50:50 UTC 
(rev 26372)
+++ trunk/blender/source/blender/blenlib/intern/bpath.c 2010-01-28 18:20:28 UTC 
(rev 26373)
@@ -47,11 +47,13 @@
 #include "MEM_guardedalloc.h"
 
 #include "DNA_ID.h" /* Library */
-#include "DNA_vfont_types.h"
+#include "DNA_customdata_types.h"
 #include "DNA_image_types.h"
-#include "DNA_sound_types.h"
+#include "DNA_mesh_types.h"
 #include "DNA_scene_types.h" /* to get the current frame */
 #include "DNA_sequence_types.h"
+#include "DNA_sound_types.h"
+#include "DNA_vfont_types.h"
 #include "DNA_windowmanager_types.h"
 
 #include "BLI_blenlib.h"
@@ -82,6 +84,7 @@
        BPATH_FONT,
        BPATH_LIB,
        BPATH_SEQ,
+       BPATH_CDATA,
 
        BPATH_DONE
 };
@@ -295,6 +298,23 @@
        }
 }
 
+static struct Mesh *cdata_stepdata__internal(struct Mesh *me, int step_next) {
+       if (me==NULL)
+               return NULL;
+       
+       if (step_next)
+               me = me->id.next;
+       
+       while (me) {
+               if (me->fdata.external) {
+                       break;
+               }
+               
+               me = me->id.next;
+       }       
+       return me;
+}
+
 static void bpi_type_step__internal( struct BPathIterator *bpi) {
        bpi->type++; /* advance to the next type */
        bpi->data = NULL;
@@ -406,6 +426,20 @@
                        } else {
                                bpi_type_step__internal(bpi);
                        }
+               } else if  ((bpi->type) == BPATH_CDATA) {
+                       if (bpi->data)  bpi->data = cdata_stepdata__internal( 
bpi->data, 1 );
+                       else                    bpi->data = 
cdata_stepdata__internal( G.main->mesh.first, 0 );
+
+                       if (bpi->data) {
+                               Mesh *me = (Mesh *)bpi->data;
+                               bpi->lib = me->id.lib ? me->id.lib->filename : 
NULL;
+                               bpi->path = me->fdata.external->filename;
+                               bpi->name = me->id.name+2;
+                               bpi->len = sizeof(me->fdata.external->filename);
+                               break;
+                       } else {
+                               bpi_type_step__internal(bpi);
+                       }
                }
        }
 }
@@ -440,6 +474,9 @@
        case BPATH_SEQ:
                prefix= "Sequence";
                break;
+       case BPATH_CDATA:
+               prefix= "Mesh Data";
+               break;
        default:
                prefix= "Unknown";
                break;


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to