[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26373] trunk/blender/source/blender/ blenlib/intern/bpath.c: Multires displacement files are now also part of absolute/relative path

Brecht Van Lommel brecht at blender.org
Thu Jan 28 19:20:28 CET 2010


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;





More information about the Bf-blender-cvs mailing list