Revision: 20844 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20844 Author: campbellbarton Date: 2009-06-13 05:54:27 +0200 (Sat, 13 Jun 2009)
Log Message: ----------- 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) Modified Paths: -------------- trunk/blender/release/scripts/export_obj.py trunk/blender/release/scripts/import_obj.py Modified: trunk/blender/release/scripts/export_obj.py =================================================================== --- trunk/blender/release/scripts/export_obj.py 2009-06-13 03:08:58 UTC (rev 20843) +++ trunk/blender/release/scripts/export_obj.py 2009-06-13 03:54:27 UTC (rev 20844) @@ -193,6 +193,7 @@ return False def write_nurb(file, ob, ob_mat): + tot_verts = 0 cu = ob.data # use negative indices @@ -222,8 +223,8 @@ 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 file.write('deg %d\n' % DEG_ORDER_U) # not used for curves but most files have it still @@ -236,7 +237,7 @@ 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 @@ 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 @@ globalNormals = {} - # Get all meshes for ob_main in objects: for ob, ob_mat in BPyObject.getDerivedObjects(ob_main): @@ -347,7 +349,7 @@ 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 Modified: trunk/blender/release/scripts/import_obj.py =================================================================== --- trunk/blender/release/scripts/import_obj.py 2009-06-13 03:08:58 UTC (rev 20843) +++ trunk/blender/release/scripts/import_obj.py 2009-06-13 03:54:27 UTC (rev 20844) @@ -563,6 +563,8 @@ return cu = bpy.data.curves.new(name, 'Curve') + cu.flag |= 1 # 3D curve + nu = None for pt in curv_idx: @@ -907,7 +909,8 @@ 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 = '' _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs