Revision: 43545
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43545
Author:   campbellbarton
Date:     2012-01-19 23:34:53 +0000 (Thu, 19 Jan 2012)
Log Message:
-----------
for CDDM's dmcalcNormals now call CDDM_calc_normals(), not 
CDDM_calc_normals_mapping(), this means calculating normals will calculate 
MPoly and MVert normals but not tesselate the mesh (which is overkill for 
normal calculation anyway).

use CDDM_calc_normals over CDDM_calc_normals_mapping for editmode and ensure 
the final dm has tessfaces.

Modified Paths:
--------------
    branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c
    branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c

Modified: branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c       
2012-01-19 22:04:13 UTC (rev 43544)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c       
2012-01-19 23:34:53 UTC (rev 43545)
@@ -362,13 +362,13 @@
        if ( (numTessFaces == 0) && (numPolys != 0)) {
                dm->recalcTesselation(dm);
 
-               if (dm->getNumTessFaces(dm)) {
+               if (dm->getNumTessFaces(dm) != 0) {
+                       /* printf("info %s: polys -> ngons calculated\n", 
__func__); */
+               }
+               else {
                        printf("warning %s: could not create tessfaces from %d 
polygons, dm->type=%d\n",
                               __func__, numPolys, dm->type);
                }
-               else {
-                       printf("info %s: polys -> ngons calculated\n", 
__func__);
-               }
        }
 }
 
@@ -1765,7 +1765,7 @@
                if(!(cage_r && dm == *cage_r)) dm->release(dm);
 
                CDDM_apply_vert_coords(*final_r, deformedVerts);
-               CDDM_calc_normals_mapping(*final_r);
+               CDDM_calc_normals(*final_r); /* was CDDM_calc_normals_mapping - 
campbell */
        } else if (dm) {
                *final_r = dm;
                (*final_r)->calcNormals(*final_r); /* BMESH_ONLY - BMESH_TODO. 
check if this is needed */
@@ -1778,6 +1778,8 @@
                (*final_r)->calcNormals(*final_r); /* BMESH_ONLY - BMESH_TODO. 
check if this is needed */
        }
 
+       DM_ensure_tessface(*final_r); /* BMESH_ONLY */
+
        /* add an orco layer if needed */
        if(dataMask & CD_MASK_ORCO)
                add_orco_dm(ob, em, *final_r, orcodm, CD_ORCO);

Modified: 
branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c
===================================================================
--- branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c     
2012-01-19 22:04:13 UTC (rev 43544)
+++ branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c     
2012-01-19 23:34:53 UTC (rev 43545)
@@ -1659,7 +1659,7 @@
        dm->getEdgeDataArray = DM_get_edge_data_layer;
        dm->getTessFaceDataArray = DM_get_tessface_data_layer;
 
-       dm->calcNormals = CDDM_calc_normals_mapping;
+       dm->calcNormals = CDDM_calc_normals;
        dm->recalcTesselation = CDDM_recalc_tesselation;
 
        dm->getVertCos = cdDM_getVertCos;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to