[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22221] branches/soc-2009-kazanbas: - modified BKE_get_image_export_path so that it writes relative path if src file = dest file returning 2 in this case
Arystanbek Dyussenov
arystan.d at gmail.com
Wed Aug 5 09:59:49 CEST 2009
Revision: 22221
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22221
Author: kazanbas
Date: 2009-08-05 09:59:49 +0200 (Wed, 05 Aug 2009)
Log Message:
-----------
- modified BKE_get_image_export_path so that it writes relative path if src file = dest file returning 2 in this case
- modified unit tests for ^ firstly
- incorporated Image.get_export_path into FBX exporter script
Modified Paths:
--------------
branches/soc-2009-kazanbas/release/io/export_fbx.py
branches/soc-2009-kazanbas/source/blender/blenkernel/intern/image.c
branches/soc-2009-kazanbas/source/blender/makesrna/intern/rna_image_api.c
branches/soc-2009-kazanbas/source/creator/tests/alltest.c
Modified: branches/soc-2009-kazanbas/release/io/export_fbx.py
===================================================================
--- branches/soc-2009-kazanbas/release/io/export_fbx.py 2009-08-05 07:15:17 UTC (rev 22220)
+++ branches/soc-2009-kazanbas/release/io/export_fbx.py 2009-08-05 07:59:49 UTC (rev 22221)
@@ -39,6 +39,7 @@
import os
import time
import math # math.pi
+import shutil # for file copying
# try:
# import time
@@ -1324,8 +1325,6 @@
# tex is an Image (Arystan)
def write_video(texname, tex):
- if not EXP_IMAGE_COPY: return
-
# Same as texture really!
file.write('\n\tVideo: "Video::%s", "Clip" {' % texname)
@@ -1337,9 +1336,15 @@
Property: "Width", "int", "",0
Property: "Height", "int", "",0''')
if tex:
- abspath = tex.export(basepath)
- fname_rel = os.path.relpath(abspath, basepath)
- fname_strip = os.path.basename(abspath)
+ src = bpy.sys.expandpath(tex.filename)
+ fname_rel = tex.get_export_path(basepath, True)
+ fname_abs = tex.get_export_path(basepath, False)
+ fname_strip = os.path.basename(fname_rel)
+
+ if EXP_IMAGE_COPY:
+ if !os.path.exists(fname_abs):
+ shutil.copy(src, fname_abs)
+
# fname, fname_strip, fname_rel = derived_paths(tex.filename, basepath, EXP_IMAGE_COPY)
else:
fname = fname_strip = fname_rel = ''
@@ -1404,11 +1409,14 @@
file.write('\n\t\tMedia: "Video::%s"' % texname)
if tex:
- fname_rel = tex.get_export_path(relpath, True)
+ src = bpy.sys.expandpath(tex.filename)
+ fname_rel = tex.get_export_path(basepath, True)
+ fname_abs = tex.get_export_path(basepath, False)
fname_strip = os.path.basename(fname_rel)
if EXP_IMAGE_COPY:
-
+ if !os.path.exists(fname_abs):
+ shutil.copy(src, fname_abs)
# fname, fname_strip, fname_rel = derived_paths(tex.filename, basepath, EXP_IMAGE_COPY)
else:
Modified: branches/soc-2009-kazanbas/source/blender/blenkernel/intern/image.c
===================================================================
--- branches/soc-2009-kazanbas/source/blender/blenkernel/intern/image.c 2009-08-05 07:15:17 UTC (rev 22220)
+++ branches/soc-2009-kazanbas/source/blender/blenkernel/intern/image.c 2009-08-05 07:59:49 UTC (rev 22221)
@@ -2206,12 +2206,6 @@
BLI_join_dirfile(dest_path, dest_dir, base);
}
- /* only return 1 if paths differ */
- if (!strcmp(path, dest_path)) {
- if (G.f & G_DEBUG) printf("%s and %s are the same file\n", path, dest_path);
- return 0;
- }
-
if (abs)
BLI_strncpy(abs, dest_path, abs_size);
@@ -2220,5 +2214,11 @@
strncat(rel, base, rel_size);
}
+ /* return 2 if src=dest */
+ if (!strcmp(path, dest_path)) {
+ if (G.f & G_DEBUG) printf("%s and %s are the same file\n", path, dest_path);
+ return 2;
+ }
+
return 1;
}
Modified: branches/soc-2009-kazanbas/source/blender/makesrna/intern/rna_image_api.c
===================================================================
--- branches/soc-2009-kazanbas/source/blender/makesrna/intern/rna_image_api.c 2009-08-05 07:15:17 UTC (rev 22220)
+++ branches/soc-2009-kazanbas/source/blender/makesrna/intern/rna_image_api.c 2009-08-05 07:59:49 UTC (rev 22221)
@@ -41,6 +41,11 @@
#include "BKE_utildefines.h"
#include "BKE_image.h"
+/*
+ User should check if returned path exists before copying a file there.
+
+ TODO: it would be better to return a (abs, rel) tuple.
+*/
static char *rna_Image_get_export_path(Image *image, char *dest_dir, int rel)
{
int length = FILE_MAX;
Modified: branches/soc-2009-kazanbas/source/creator/tests/alltest.c
===================================================================
--- branches/soc-2009-kazanbas/source/creator/tests/alltest.c 2009-08-05 07:15:17 UTC (rev 22220)
+++ branches/soc-2009-kazanbas/source/creator/tests/alltest.c 2009-08-05 07:59:49 UTC (rev 22221)
@@ -60,19 +60,19 @@
{"//image.png", {{"/home/user/image.png", "image.png", 1},
{"/home/user/image.png", "image.png", 1},
{"/home/user/export/image.png", "image.png", 1},
- {"", "", 0},}},
+ {"/home/user/foo/image.png", "image.png", 2},}},
/* relative, 1 level deep */
{"//bar/image.png", {{"/home/user/bar/image.png", "bar/image.png", 1},
{"/home/user/bar/image.png", "bar/image.png", 1},
{"/home/user/export/bar/image.png", "bar/image.png", 1},
- {"", "", 0},}},
+ {"/home/user/foo/bar/image.png", "bar/image.png", 2},}},
/* relative, 2 level deep */
{"//bar/foo/image.png", {{"/home/user/bar/foo/image.png", "bar/foo/image.png", 1},
{"/home/user/bar/foo/image.png", "bar/foo/image.png", 1},
{"/home/user/export/bar/foo/image.png", "bar/foo/image.png", 1},
- {"", "", 0},}},
+ {"/home/user/foo/bar/foo/image.png", "bar/foo/image.png", 2},}},
/* absolute, not under .blend dir */
{"/home/user/bar/image.png", {{"/home/user/image.png", "image.png", 1},
@@ -84,19 +84,19 @@
{"/home/user/foo/image.png", {{"/home/user/image.png", "image.png", 1},
{"/home/user/image.png", "image.png", 1},
{"/home/user/export/image.png", "image.png", 1},
- {"", "", 0},}},
+ {"/home/user/foo/image.png", "image.png", 2},}},
/* absolute, under .blend dir, 1 level deep */
{"/home/user/foo/bar/image.png", {{"/home/user/bar/image.png", "bar/image.png", 1},
{"/home/user/bar/image.png", "bar/image.png", 1},
{"/home/user/export/bar/image.png", "bar/image.png", 1},
- {"", "", 0},}},
+ {"/home/user/foo/bar/image.png", "bar/image.png", 2},}},
/* absolute, under .blend dir, 2 level deep */
{"/home/user/foo/bar/foo/image.png", {{"/home/user/bar/foo/image.png", "bar/foo/image.png", 1},
{"/home/user/bar/foo/image.png", "bar/foo/image.png", 1},
{"/home/user/export/bar/foo/image.png", "bar/foo/image.png", 1},
- {"", "", 0},}},
+ {"/home/user/foo/bar/foo/image.png", "bar/foo/image.png", 2},}},
/* empty image path, don't let these pass! */
{"", {{"", 0},
More information about the Bf-blender-cvs
mailing list