==Python API==
authorKen Hughes <khughes@pacific.edu>
Wed, 18 Jan 2006 06:15:17 +0000 (06:15 +0000)
committerKen Hughes <khughes@pacific.edu>
Wed, 18 Jan 2006 06:15:17 +0000 (06:15 +0000)
Bugfix #3761: Attempting to set mesh.faceUV=1 when a mesh has no faces
now throws a RuntimeError exception.  Previous behavior was to do nothing.

source/blender/python/api2_2x/Mesh.c
source/blender/python/api2_2x/doc/Mesh.py

index ce131e3851a9eb3b96e8b55cbdfe1d6a776f6b8e..9440e15bbd87e39c12f4e1c9e6cd1168044db0dd 100644 (file)
@@ -6042,8 +6042,12 @@ static int Mesh_setFlag( BPy_Mesh * self, PyObject *value, void *type )
                                MEM_freeN( mesh->tface );
                                mesh->tface = NULL;
                        }
-               } else if( !mesh->tface )
+               } else if( !mesh->tface ) {
+                       if( !mesh->totface )
+                               return EXPP_ReturnIntError( PyExc_RuntimeError,
+                                       "mesh has no faces" );
                        make_tfaces( mesh );
+               }
                return 0;
        case MESH_HASMCOL:
                if( !param ) {
index 82b414c89e7411bc631b24cad683d89f0ba25f7e..7711345959e92cc6400b469dc764c34a0b50bbc0 100644 (file)
@@ -626,6 +626,9 @@ class Mesh:
     be set.  Furthermore, if vertexColors is already set when faceUV is set,
     vertexColors is cleared.  This is because the vertex color information
     is stored with UV faces, so enabling faceUV implies enabling vertexColors.
+    In addition, faceUV cannot be set when the mesh has no faces defined
+    (this is the same behavior as the UI).  Attempting to do so will throw
+    a RuntimeError exception.
   @type faceUV: bool
   @ivar vertexColors: The mesh contains vertex colors.  See L{faceUV} for the
     use of vertex colors when UV-mapped texture faces are enabled.