Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2009-06-13 07:54:27 +0400
committerCampbell Barton <ideasman42@gmail.com>2009-06-13 07:54:27 +0400
commit2371c35afc820cd00645ae4b3be59e7b576d09c9 (patch)
tree217f4bbe9d708cfaefdaa5eba28f81286061d872 /release/scripts
parent03de57c6d5a72b30014ed7753525af1df4feba93 (diff)
OBJ Import
* Wasn't setting the curve 3D option * The nurbs object name could be None which caused an error, check its set. OBJ Export * Off by 1 error on closed nurbs was incorrect, broke other importers but worked with blender. * Nurbs verts were not adding to the total vert count, scrambling meshes added after (somehow my first test case had all the curve objects last)
Diffstat (limited to 'release/scripts')
-rw-r--r--release/scripts/export_obj.py10
-rw-r--r--release/scripts/import_obj.py5
2 files changed, 10 insertions, 5 deletions
diff --git a/release/scripts/export_obj.py b/release/scripts/export_obj.py
index a57788abf3f..739b02bcbb3 100644
--- a/release/scripts/export_obj.py
+++ b/release/scripts/export_obj.py
@@ -193,6 +193,7 @@ def test_nurbs_compat(ob):
return False
def write_nurb(file, ob, ob_mat):
+ tot_verts = 0
cu = ob.data
# use negative indices
@@ -222,7 +223,7 @@ def write_nurb(file, ob, ob_mat):
pt = Vector(pt[0], pt[1], pt[2]) * ob_mat
file.write('v %.6f %.6f %.6f\n' % (pt[0], pt[1], pt[2]))
pt_num += 1
-
+ tot_verts += pt_num
file.write('g %s\n' % (fixName(ob.name))) # fixName(ob.getData(1)) could use the data name too
file.write('cstype bspline\n') # not ideal, hard coded
@@ -236,7 +237,7 @@ def write_nurb(file, ob, ob_mat):
pt_num += 1
curve_ls.append(-1)
else:
- pt_num += DEG_ORDER_U-1
+ pt_num += DEG_ORDER_U
curve_ls = curve_ls + curve_ls[0:DEG_ORDER_U]
file.write('curv 0.0 1.0 %s\n' % (' '.join( [str(i) for i in curve_ls] ))) # Blender has no U and V values for the curve
@@ -254,6 +255,8 @@ def write_nurb(file, ob, ob_mat):
file.write('parm u %s\n' % ' '.join( [str(i) for i in parm_ls] ))
file.write('end\n')
+
+ return tot_verts
def write(filename, objects,\
EXPORT_TRI=False, EXPORT_EDGES=False, EXPORT_NORMALS=False, EXPORT_NORMALS_HQ=False,\
@@ -337,7 +340,6 @@ EXPORT_POLYGROUPS=False, EXPORT_CURVE_AS_NURBS=True):
globalNormals = {}
-
# Get all meshes
for ob_main in objects:
for ob, ob_mat in BPyObject.getDerivedObjects(ob_main):
@@ -347,7 +349,7 @@ EXPORT_POLYGROUPS=False, EXPORT_CURVE_AS_NURBS=True):
if EXPORT_ROTX90:
ob_mat = ob_mat * mat_xrot90
- write_nurb(file, ob, ob_mat)
+ totverts += write_nurb(file, ob, ob_mat)
continue
# end nurbs
diff --git a/release/scripts/import_obj.py b/release/scripts/import_obj.py
index caeffa70614..9e5a4925f69 100644
--- a/release/scripts/import_obj.py
+++ b/release/scripts/import_obj.py
@@ -563,6 +563,8 @@ def create_nurbs(scn, context_nurbs, vert_loc, new_objects):
return
cu = bpy.data.curves.new(name, 'Curve')
+ cu.flag |= 1 # 3D curve
+
nu = None
for pt in curv_idx:
@@ -907,7 +909,8 @@ def load_obj(filepath,
context_nurbs['deg']= [int(i) for i in line.split()[1:]]
elif line.startswith('end'):
# Add the nurbs curve
- context_nurbs['name'] = context_object
+ if context_object:
+ context_nurbs['name'] = context_object
nurbs.append(context_nurbs)
context_nurbs = {}
context_parm = ''