[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [1984] trunk/py/scripts/addons/ io_scene_x3d: support for optionally exporting geometry as IndexedTriangleSet rather then IndexedFaceSet .

Campbell Barton ideasman42 at gmail.com
Mon May 30 04:21:00 CEST 2011


Revision: 1984
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=1984
Author:   campbellbarton
Date:     2011-05-30 02:20:59 +0000 (Mon, 30 May 2011)
Log Message:
-----------
support for optionally exporting geometry as IndexedTriangleSet rather then IndexedFaceSet.

Modified Paths:
--------------
    trunk/py/scripts/addons/io_scene_x3d/__init__.py
    trunk/py/scripts/addons/io_scene_x3d/export_x3d.py

Modified: trunk/py/scripts/addons/io_scene_x3d/__init__.py
===================================================================
--- trunk/py/scripts/addons/io_scene_x3d/__init__.py	2011-05-30 00:15:29 UTC (rev 1983)
+++ trunk/py/scripts/addons/io_scene_x3d/__init__.py	2011-05-30 02:20:59 UTC (rev 1984)
@@ -96,7 +96,7 @@
 
     use_selection = BoolProperty(name="Selection Only", description="Export selected objects only", default=False)
     use_apply_modifiers = BoolProperty(name="Apply Modifiers", description="Use transformed mesh data from each object", default=True)
-    use_triangulate = BoolProperty(name="Triangulate", description="Triangulate quads.", default=False)
+    use_triangulate = BoolProperty(name="Triangulate", description="Write quads into 'IndexedTriangleSet'", default=False)
     use_compress = BoolProperty(name="Compress", description="GZip the resulting file, requires a full python install", default=False)
 
     axis_forward = EnumProperty(

Modified: trunk/py/scripts/addons/io_scene_x3d/export_x3d.py
===================================================================
--- trunk/py/scripts/addons/io_scene_x3d/export_x3d.py	2011-05-30 00:15:29 UTC (rev 1983)
+++ trunk/py/scripts/addons/io_scene_x3d/export_x3d.py	2011-05-30 02:20:59 UTC (rev 1984)
@@ -424,8 +424,10 @@
                     fw("%s</Appearance>\n" % ident)
 
                     #-- IndexedFaceSet or IndexedLineSet
-
-                    fw("%s<IndexedFaceSet " % ident)
+                    if EXPORT_TRI:
+                        fw("%s<IndexedTriangleSet " % ident)
+                    else:
+                        fw("%s<IndexedFaceSet " % ident)
                     ident += "\t"
 
                     # --- Write IndexedFaceSet Attributes
@@ -438,16 +440,29 @@
                         fw("creaseAngle=\"%.4g\" " % mesh.auto_smooth_angle)
 
                     if is_uv:
-                        # "texCoordIndex"
-                        fw("%stexCoordIndex=\"" % ident)
+                        if EXPORT_TRI:
+                            fw("%stexIndex=\"" % ident)
+                        else:
+                            fw("%stexCoordIndex=\"" % ident)
+
                         j = 0
-                        for i in face_group:
-                            if len(mesh_faces[i].vertices) == 4:
-                                fw("%d %d %d %d -1, " % (j, j + 1, j + 2, j + 3))
-                                j += 4
-                            else:
-                                fw("%d %d %d -1, " % (j, j + 1, j + 2))
-                                j += 3
+                        if EXPORT_TRI:
+                            for i in face_group:
+                                if len(mesh_faces[i].vertices) == 4:
+                                    fw("%d %d %d " % (j, j + 1, j + 2))
+                                    fw("%d %d %d " % (j, j + 2, j + 3))
+                                    j += 4
+                                else:
+                                    fw("%d %d %d " % (j, j + 1, j + 2))
+                                    j += 3
+                        else:
+                            for i in face_group:
+                                if len(mesh_faces[i].vertices) == 4:
+                                    fw("%d %d %d %d -1, " % (j, j + 1, j + 2, j + 3))
+                                    j += 4
+                                else:
+                                    fw("%d %d %d -1, " % (j, j + 1, j + 2))
+                                    j += 3
                         fw("\" ")
                         # --- end texCoordIndex
 
@@ -456,15 +471,19 @@
 
                     if True:
                         # "coordIndex"
-                        fw("coordIndex=\"")
                         if EXPORT_TRI:
+                            fw("index=\"")
+                        else:
+                            fw("coordIndex=\"")
+
+                        if EXPORT_TRI:
                             for i in face_group:
                                 fv = mesh_faces[i].vertices[:]
                                 if len(fv) == 3:
-                                    fw("%i %i %i -1, " % fv)
+                                    fw("%i %i %i " % fv)
                                 else:
-                                    fw("%i %i %i -1, " % (fv[0], fv[1], fv[2]))
-                                    fw("%i %i %i -1, " % (fv[0], fv[2], fv[3]))
+                                    fw("%i %i %i " % (fv[0], fv[1], fv[2]))
+                                    fw("%i %i %i " % (fv[0], fv[2], fv[3]))
                         else:
                             for i in face_group:
                                 fv = mesh_faces[i].vertices[:]
@@ -504,8 +523,14 @@
                         fw("%s<Color color=\"" % ident)
                         # XXX, 1 color per face, only
                         mesh_faces_col = mesh.vertex_colors.active.data
-                        for i in face_group:
-                            fw("%.3g %.3g %.3g, " % mesh_faces_col[i].color1[:])
+                        if EXPORT_TRI:
+                            for i in face_group:
+                                fw("%.3g %.3g %.3g, " % mesh_faces_col[i].color1[:])
+                                if len(mesh_faces[i].vertices) == 4:
+                                    fw("%.3g %.3g %.3g, " % mesh_faces_col[i].color1[:])
+                        else:
+                            for i in face_group:
+                                fw("%.3g %.3g %.3g, " % mesh_faces_col[i].color1[:])
                         del mesh_faces_col
                         fw("\" />\n")
 
@@ -513,7 +538,12 @@
 
                     #--- output closing braces
                     ident = ident[:-1]
-                    fw("%s</IndexedFaceSet>\n" % ident)
+
+                    if EXPORT_TRI:
+                        fw("%s</IndexedTriangleSet>\n" % ident)
+                    else:
+                        fw("%s</IndexedFaceSet>\n" % ident)
+
                     ident = ident[:-1]
                     fw("%s</Shape>\n" % ident)
 



More information about the Bf-extensions-cvs mailing list