[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [1867] trunk/py/scripts/addons/ io_scene_obj/__init__.py: fixed [#27145] obj import does not retain the vertex order

Campbell Barton ideasman42 at gmail.com
Mon Apr 25 08:37:05 CEST 2011


Revision: 1867
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=1867
Author:   campbellbarton
Date:     2011-04-25 06:37:05 +0000 (Mon, 25 Apr 2011)
Log Message:
-----------
fixed [#27145] obj import does not retain the vertex order

Modified Paths:
--------------
    trunk/py/scripts/addons/io_scene_obj/__init__.py

Modified: trunk/py/scripts/addons/io_scene_obj/__init__.py
===================================================================
--- trunk/py/scripts/addons/io_scene_obj/__init__.py	2011-04-25 05:51:01 UTC (rev 1866)
+++ trunk/py/scripts/addons/io_scene_obj/__init__.py	2011-04-25 06:37:05 UTC (rev 1867)
@@ -42,7 +42,7 @@
 
 
 import bpy
-from bpy.props import BoolProperty, FloatProperty, StringProperty
+from bpy.props import BoolProperty, FloatProperty, StringProperty, EnumProperty
 import io_utils
 from io_utils import ExportHelper, ImportHelper
 
@@ -56,25 +56,69 @@
     filename_ext = ".obj"
     filter_glob = StringProperty(default="*.obj;*.mtl", options={'HIDDEN'})
 
+    use_ngons = BoolProperty(name="NGons", description="Import faces with more then 4 verts as fgons", default=True)
+    use_edges = BoolProperty(name="Lines", description="Import lines and faces with 2 verts as edge", default=True)
     use_smooth_groups = BoolProperty(name="Smooth Groups", description="Surround smooth groups by sharp edges", default=True)
-    use_ngons = BoolProperty(name="NGons as FGons", description="Import faces with more then 4 verts as fgons", default=True)
-    use_edges = BoolProperty(name="Lines as Edges", description="Import lines and faces with 2 verts as edge", default=True)
+
     use_split_objects = BoolProperty(name="Object", description="Import OBJ Objects into Blender Objects", default=True)
     use_split_groups = BoolProperty(name="Group", description="Import OBJ Groups into Blender Objects", default=True)
-    # old comment: only used for user feedback
-    # disabled this option because in old code a handler for it disabled SPLIT* params, it's not passed to load_obj
-    # KEEP_VERT_ORDER = BoolProperty(name="Keep Vert Order", description="Keep vert and face order, disables split options, enable for morph targets", default= True)
+
+    use_groups_as_vgroups = BoolProperty(name="Poly Groups", description="Import OBJ groups as vertex groups.", default=False)
+
     use_rotate_x90 = BoolProperty(name="-X90", description="Rotate X 90.", default=True)
     global_clamp_size = FloatProperty(name="Clamp Scale", description="Clamp the size to this maximum (Zero to Disable)", min=0.0, max=1000.0, soft_min=0.0, soft_max=1000.0, default=0.0)
-    use_groups_as_vgroups = BoolProperty(name="Poly Groups", description="Import OBJ groups as vertex groups.", default=False)
     use_image_search = BoolProperty(name="Image Search", description="Search subdirs for any assosiated images (Warning, may be slow)", default=True)
 
+    split_mode = EnumProperty(
+            name="Smoothing",
+            items=(('ON', "Split", "Split imported meshes"),
+                   ('OFF', "Keep Vert Order", "Maintain vertex order"),
+                   ),
+            )
+
+    # fake prop, only disables split.
+    # keep_vertex_order = BoolProperty(name="Keep Vert Order", description="Keep vert and face order, disables split options, enable for morph targets", default= True)
+
     def execute(self, context):
         # print("Selected: " + context.active_object.name)
         from . import import_obj
-        return import_obj.load(self, context, **self.as_keywords(ignore=("filter_glob",)))
 
+        if self.split_mode == 'OFF':
+            self.use_split_objects = False
+            self.use_split_groups = False
+        else:
+            self.use_groups_as_vgroups = False
 
+        return import_obj.load(self, context, **self.as_keywords(ignore=("filter_glob", "split_mode")))
+
+    def draw(self, context):
+        layout = self.layout
+
+        row = layout.row(align=True)
+        row.prop(self, "use_ngons")
+        row.prop(self, "use_edges")
+
+        layout.prop(self, "use_smooth_groups") 
+
+        box = layout.box()
+        row = box.row()
+        row.prop(self, "split_mode", expand=True)
+    
+        row = box.row()
+        if self.split_mode == 'ON':
+            row.label(text="Split by:")
+            row.prop(self, "use_split_objects")
+            row.prop(self, "use_split_groups")
+        else:
+            row.prop(self, "use_groups_as_vgroups")
+
+        row = layout.split(percentage=0.67)
+        row.prop(self, "global_clamp_size")
+        row.prop(self, "use_rotate_x90")
+
+        layout.prop(self, "use_image_search")
+
+
 class ExportOBJ(bpy.types.Operator, ExportHelper):
     '''Save a Wavefront OBJ File'''
 



More information about the Bf-extensions-cvs mailing list