Revision: 42682
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=42682
Author:   campbellbarton
Date:     2011-12-17 03:46:38 +0000 (Sat, 17 Dec 2011)
Log Message:
-----------
use 2d copy functions with UV's in more places.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c
    trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.h
    trunk/blender/source/blender/blenkernel/intern/anim.c
    trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
    trunk/blender/source/blender/editors/uvedit/uvedit_ops.c
    trunk/blender/source/blender/modifiers/intern/MOD_uvproject.c

Modified: trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c 2011-12-17 
02:41:53 UTC (rev 42681)
+++ trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.c 2011-12-17 
03:46:38 UTC (rev 42682)
@@ -218,7 +218,7 @@
 
 /***/
 
-static int VertDataEqual(float *a, float *b) {
+static int VertDataEqual(const float *a, const float *b) {
        return a[0]==b[0] && a[1]==b[1] && a[2]==b[2];
 }
 #define VertDataZero(av)                               { float *_a = (float*) 
av; _a[0] = _a[1] = _a[2] = 0.0f; }
@@ -238,7 +238,7 @@
 #define NormAdd(av, bv)                                        { float *_a = 
(float*) av, *_b = (float*) bv; _a[0]+=_b[0]; _a[1]+=_b[1]; _a[2]+=_b[2]; }
 
 
-static int _edge_isBoundary(CCGEdge *e);
+static int _edge_isBoundary(const CCGEdge *e);
 
 /***/
 
@@ -392,7 +392,7 @@
        v->faces = CCGSUBSURF_realloc(ss, v->faces, 
(v->numFaces+1)*sizeof(*v->faces), v->numFaces*sizeof(*v->faces));
        v->faces[v->numFaces++] = f;
 }
-static CCGEdge *_vert_findEdgeTo(CCGVert *v, CCGVert *vQ) {
+static CCGEdge *_vert_findEdgeTo(const CCGVert *v, const CCGVert *vQ) {
        int i;
        for (i=0; i<v->numEdges; i++) {
                CCGEdge *e = v->edges[v->numEdges-1-i]; // XXX, note reverse
@@ -402,7 +402,7 @@
        }
        return NULL;
 }
-static int _vert_isBoundary(CCGVert *v) {
+static int _vert_isBoundary(const CCGVert *v) {
        int i;
        for (i=0; i<v->numEdges; i++)
                if (_edge_isBoundary(v->edges[i]))
@@ -423,7 +423,7 @@
        CCGSUBSURF_free(ss, v);
 }
 
-static int VERT_seam(CCGVert *v) {
+static int VERT_seam(const CCGVert *v) {
        return ((v->flags & Vert_eSeam) != 0);
 }
 
@@ -462,7 +462,7 @@
        e->faces = CCGSUBSURF_realloc(ss, e->faces, 
(e->numFaces+1)*sizeof(*e->faces), e->numFaces*sizeof(*e->faces));
        e->faces[e->numFaces++] = f;
 }
-static int _edge_isBoundary(CCGEdge *e) {
+static int _edge_isBoundary(const CCGEdge *e) {
        return e->numFaces<2;
 }
 
@@ -900,7 +900,7 @@
        return eCCGError_None;
 }
 
-CCGError ccgSubSurf_syncVert(CCGSubSurf *ss, CCGVertHDL vHDL, void *vertData, 
int seam, CCGVert **v_r) {
+CCGError ccgSubSurf_syncVert(CCGSubSurf *ss, CCGVertHDL vHDL, const void 
*vertData, int seam, CCGVert **v_r) {
        void **prevp;
        CCGVert *v = NULL;
        short seamflag = (seam)? Vert_eSeam: 0;
@@ -2484,13 +2484,13 @@
 
 /*** External API accessor functions ***/
 
-int ccgSubSurf_getNumVerts(CCGSubSurf *ss) {
+int ccgSubSurf_getNumVerts(const CCGSubSurf *ss) {
        return ss->vMap->numEntries;
 }
-int ccgSubSurf_getNumEdges(CCGSubSurf *ss) {
+int ccgSubSurf_getNumEdges(const CCGSubSurf *ss) {
        return ss->eMap->numEntries;
 }
-int ccgSubSurf_getNumFaces(CCGSubSurf *ss) {
+int ccgSubSurf_getNumFaces(const CCGSubSurf *ss) {
        return ss->fMap->numEntries;
 }
 
@@ -2504,23 +2504,23 @@
        return (CCGFace*) _ehash_lookup(ss->fMap, f);
 }
 
-int ccgSubSurf_getSubdivisionLevels(CCGSubSurf *ss) {
+int ccgSubSurf_getSubdivisionLevels(const CCGSubSurf *ss) {
        return ss->subdivLevels;
 }
-int ccgSubSurf_getEdgeSize(CCGSubSurf *ss) {
+int ccgSubSurf_getEdgeSize(const CCGSubSurf *ss) {
        return ccgSubSurf_getEdgeLevelSize(ss, ss->subdivLevels);
 }
-int ccgSubSurf_getEdgeLevelSize(CCGSubSurf *ss, int level) {
+int ccgSubSurf_getEdgeLevelSize(const CCGSubSurf *ss, int level) {
        if (level<1 || level>ss->subdivLevels) {
                return -1;
        } else {
                return 1 + (1<<level);
        }
 }
-int ccgSubSurf_getGridSize(CCGSubSurf *ss) {
+int ccgSubSurf_getGridSize(const CCGSubSurf *ss) {
        return ccgSubSurf_getGridLevelSize(ss, ss->subdivLevels);
 }
-int ccgSubSurf_getGridLevelSize(CCGSubSurf *ss, int level) {
+int ccgSubSurf_getGridLevelSize(const CCGSubSurf *ss, int level) {
        if (level<1 || level>ss->subdivLevels) {
                return -1;
        } else {
@@ -2736,19 +2736,19 @@
 
 /*** Extern API final vert/edge/face interface ***/
 
-int ccgSubSurf_getNumFinalVerts(CCGSubSurf *ss) {
+int ccgSubSurf_getNumFinalVerts(const CCGSubSurf *ss) {
        int edgeSize = 1 + (1<<ss->subdivLevels);
        int gridSize = 1 + (1<<(ss->subdivLevels-1));
        int numFinalVerts = ss->vMap->numEntries + 
ss->eMap->numEntries*(edgeSize-2) + ss->fMap->numEntries + 
ss->numGrids*((gridSize-2) + ((gridSize-2)*(gridSize-2)));
        return numFinalVerts;
 }
-int ccgSubSurf_getNumFinalEdges(CCGSubSurf *ss) {
+int ccgSubSurf_getNumFinalEdges(const CCGSubSurf *ss) {
        int edgeSize = 1 + (1<<ss->subdivLevels);
        int gridSize = 1 + (1<<(ss->subdivLevels-1));
        int numFinalEdges = ss->eMap->numEntries*(edgeSize-1) + 
ss->numGrids*((gridSize-1) + 2*((gridSize-2)*(gridSize-1)));
        return numFinalEdges;
 }
-int ccgSubSurf_getNumFinalFaces(CCGSubSurf *ss) {
+int ccgSubSurf_getNumFinalFaces(const CCGSubSurf *ss) {
        int gridSize = 1 + (1<<(ss->subdivLevels-1));
        int numFinalFaces = ss->numGrids*((gridSize-1)*(gridSize-1));
        return numFinalFaces;

Modified: trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.h
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.h 2011-12-17 
02:41:53 UTC (rev 42681)
+++ trunk/blender/source/blender/blenkernel/intern/CCGSubSurf.h 2011-12-17 
03:46:38 UTC (rev 42682)
@@ -56,7 +56,7 @@
 CCGError       ccgSubSurf_initFullSync         (CCGSubSurf *ss);
 CCGError       ccgSubSurf_initPartialSync      (CCGSubSurf *ss);
 
-CCGError       ccgSubSurf_syncVert             (CCGSubSurf *ss, CCGVertHDL 
vHDL, void *vertData, int seam, CCGVert **v_r);
+CCGError       ccgSubSurf_syncVert             (CCGSubSurf *ss, CCGVertHDL 
vHDL, const void *vertData, int seam, CCGVert **v_r);
 CCGError       ccgSubSurf_syncEdge             (CCGSubSurf *ss, CCGEdgeHDL 
eHDL, CCGVertHDL e_vHDL0, CCGVertHDL e_vHDL1, float crease, CCGEdge **e_r);
 CCGError       ccgSubSurf_syncFace             (CCGSubSurf *ss, CCGFaceHDL 
fHDL, int numVerts, CCGVertHDL *vHDLs, CCGFace **f_r);
 
@@ -84,15 +84,15 @@
 
 /***/
 
-int                    ccgSubSurf_getNumVerts                          
(CCGSubSurf *ss);
-int                    ccgSubSurf_getNumEdges                          
(CCGSubSurf *ss);
-int                    ccgSubSurf_getNumFaces                          
(CCGSubSurf *ss);
+int                    ccgSubSurf_getNumVerts                          (const 
CCGSubSurf *ss);
+int                    ccgSubSurf_getNumEdges                          (const 
CCGSubSurf *ss);
+int                    ccgSubSurf_getNumFaces                          (const 
CCGSubSurf *ss);
 
-int                    ccgSubSurf_getSubdivisionLevels         (CCGSubSurf 
*ss);
-int                    ccgSubSurf_getEdgeSize                          
(CCGSubSurf *ss);
-int                    ccgSubSurf_getEdgeLevelSize                     
(CCGSubSurf *ss, int level);
-int                    ccgSubSurf_getGridSize                          
(CCGSubSurf *ss);
-int                    ccgSubSurf_getGridLevelSize                     
(CCGSubSurf *ss, int level);
+int                    ccgSubSurf_getSubdivisionLevels         (const 
CCGSubSurf *ss);
+int                    ccgSubSurf_getEdgeSize                          (const 
CCGSubSurf *ss);
+int                    ccgSubSurf_getEdgeLevelSize                     (const 
CCGSubSurf *ss, int level);
+int                    ccgSubSurf_getGridSize                          (const 
CCGSubSurf *ss);
+int                    ccgSubSurf_getGridLevelSize                     (const 
CCGSubSurf *ss, int level);
 
 CCGVert*       ccgSubSurf_getVert                                      
(CCGSubSurf *ss, CCGVertHDL v);
 CCGVertHDL     ccgSubSurf_getVertVertHandle            (CCGVert *v);
@@ -135,9 +135,9 @@
 void*          ccgSubSurf_getFaceGridDataArray         (CCGSubSurf *ss, 
CCGFace *f, int gridIndex);
 void*          ccgSubSurf_getFaceGridData                      (CCGSubSurf 
*ss, CCGFace *f, int gridIndex, int x, int y);
 
-int                    ccgSubSurf_getNumFinalVerts             (CCGSubSurf 
*ss);
-int                    ccgSubSurf_getNumFinalEdges             (CCGSubSurf 
*ss);
-int                    ccgSubSurf_getNumFinalFaces             (CCGSubSurf 
*ss);
+int                    ccgSubSurf_getNumFinalVerts             (const 
CCGSubSurf *ss);
+int                    ccgSubSurf_getNumFinalEdges             (const 
CCGSubSurf *ss);
+int                    ccgSubSurf_getNumFinalFaces             (const 
CCGSubSurf *ss);
 
 /***/
 

Modified: trunk/blender/source/blender/blenkernel/intern/anim.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/anim.c       2011-12-17 
02:41:53 UTC (rev 42681)
+++ trunk/blender/source/blender/blenkernel/intern/anim.c       2011-12-17 
03:46:38 UTC (rev 42682)
@@ -1143,21 +1143,17 @@
                                                                
madd_v3_v3v3fl(dob->orco, dob->orco, orco[mv1], w);
                                                                
madd_v3_v3v3fl(dob->orco, dob->orco, orco[mv2], w);
                                                                
madd_v3_v3v3fl(dob->orco, dob->orco, orco[mv3], w);
-                                                               if(mv4)
+                                                               if (mv4) {
                                                                        
madd_v3_v3v3fl(dob->orco, dob->orco, orco[mv4], w);
+                                                               }
                                                        }
 
                                                        if(mtface) {
-                                                               dob->uv[0] += 
w*mtface[a].uv[0][0];
-                                                               dob->uv[1] += 
w*mtface[a].uv[0][1];
-                                                               dob->uv[0] += 
w*mtface[a].uv[1][0];
-                                                               dob->uv[1] += 
w*mtface[a].uv[1][1];
-                                                               dob->uv[0] += 
w*mtface[a].uv[2][0];
-                                                               dob->uv[1] += 
w*mtface[a].uv[2][1];
-
-                                                               if(mv4) {
-                                                                       
dob->uv[0] += w*mtface[a].uv[3][0];
-                                                                       
dob->uv[1] += w*mtface[a].uv[3][1];
+                                                               
madd_v2_v2v2fl(dob->uv, dob->uv, mtface[a].uv[0], w);
+                                                               
madd_v2_v2v2fl(dob->uv, dob->uv, mtface[a].uv[1], w);
+                                                               
madd_v2_v2v2fl(dob->uv, dob->uv, mtface[a].uv[2], w);
+                                                               if (mv4) {
+                                                                       
madd_v2_v2v2fl(dob->uv, dob->uv, mtface[a].uv[3], w);
                                                                }
                                                        }
                                                }

Modified: trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c        
2011-12-17 02:41:53 UTC (rev 42681)
+++ trunk/blender/source/blender/blenkernel/intern/subsurf_ccg.c        
2011-12-17 03:46:38 UTC (rev 42682)
@@ -225,6 +225,7 @@
        CCGVertHDL fverts[4];
        EdgeHash *ehash;
        float creaseFactor = (float)ccgSubSurf_getSubdivisionLevels(ss);
+       float uv[3]= {0.0f, 0.0f, 0.0f}; /* only first 2 values are written 
into */
 
        limit[0]= limit[1]= STD_UV_CONNECT_LIMIT;
        vmap= make_uv_vert_map(mface, tface, totface, totvert, 0, limit);
@@ -248,11 +249,8 @@
                        if (v->separate) {
                                CCGVert *ssv;
                                CCGVertHDL vhdl = SET_INT_IN_POINTER(v->f*4 + 
v->tfindex);
-                               float uv[3];
 
-                               uv[0]= (tface+v->f)->uv[v->tfindex][0];
-                               uv[1]= (tface+v->f)->uv[v->tfindex][1];
-                               uv[2]= 0.0f;
+                               copy_v2_v2(uv, (tface+v->f)->uv[v->tfindex]);
 
                                ccgSubSurf_syncVert(ss, vhdl, uv, seam, &ssv);
                        }
@@ -359,16 +357,11 @@
 
                        for(y = 0; y < gridFaces; y++) {
                                for(x = 0; x < gridFaces; x++) {
-                                       float *a = faceGridData[(y + 
0)*gridSize + x + 0].co;
-                                       float *b = faceGridData[(y + 
0)*gridSize + x + 1].co;
-                                       float *c = faceGridData[(y + 
1)*gridSize + x + 1].co;
-                                       float *d = faceGridData[(y + 
1)*gridSize + x + 0].co;
+                                       copy_v2_v2(tf->uv[0], faceGridData[(y + 
0)*gridSize + x + 0].co);
+                                       copy_v2_v2(tf->uv[1], faceGridData[(y + 
1)*gridSize + x + 0].co);
+                                       copy_v2_v2(tf->uv[2], faceGridData[(y + 
1)*gridSize + x + 1].co);
+                                       copy_v2_v2(tf->uv[3], faceGridData[(y + 
0)*gridSize + x + 1].co);
 
-                                       tf->uv[0][0] = a[0]; tf->uv[0][1] = 
a[1];
-                                       tf->uv[1][0] = d[0]; tf->uv[1][1] = 
d[1];

@@ Diff output truncated at 10240 characters. @@
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to