Revision: 17198
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17198
Author:   nicholasbishop
Date:     2008-10-26 20:42:29 +0100 (Sun, 26 Oct 2008)

Log Message:
-----------
Preparing for a change in the way the TS matrix is calculated. Removed the old 
fixed matrix entirely.

Modified Paths:
--------------
    branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c

Modified: 
branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c
===================================================================
--- 
branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c    
    2008-10-26 09:41:59 UTC (rev 17197)
+++ 
branches/soc-2008-nicholasbishop/source/blender/blenkernel/intern/multires.c    
    2008-10-26 19:42:29 UTC (rev 17198)
@@ -56,28 +56,6 @@
 #include <math.h>
 #include <string.h>
 
-typedef struct MultiresDisplacer {
-       struct MDisps *grid;
-       struct MFace *face;
-       float mat[3][3];
-       
-       /* For matrix calc */
-       float mat_target[3];
-       float mat_center[3];
-       float (*mat_norms)[3];
-
-       int spacing;
-       int sidetot;
-       int sidendx;
-       int type;
-       int invert;
-       float (*orco)[3];
-       struct MVert *subco;
-       float weight;
-
-       int x, y, ax, ay;
-} MultiresDisplacer;
-
 void create_vert_face_map(ListBase **map, IndexNode **mem, const MFace *mface, 
const int totvert, const int totface)
 {
        int i,j;
@@ -181,6 +159,29 @@
        }
 }
 
+/* Returns 0 on success, 1 if the src's totvert doesn't match */
+int multiresModifier_reshape(MultiresModifierData *mmd, Object *dst, Object 
*src)
+{
+       Mesh *src_me = get_mesh(src);
+       DerivedMesh *mrdm = dst->derivedFinal;
+
+       if(mrdm && mrdm->getNumVerts(mrdm) == src_me->totvert) {
+               MVert *mvert = CDDM_get_verts(mrdm);
+               int i;
+
+               for(i = 0; i < src_me->totvert; ++i)
+                       VecCopyf(mvert[i].co, src_me->mvert[i].co);
+               mrdm->needsFree = 1;
+               *MultiresDM_get_flags(mrdm) |= MULTIRES_DM_UPDATE_ALWAYS;
+               mrdm->release(mrdm);
+               dst->derivedFinal = NULL;
+
+               return 0;
+       }
+
+       return 1;
+}
+
 static void Mat3FromColVecs(float mat[][3], float v1[3], float v2[3], float 
v3[3])
 {
        VecCopyf(mat[0], v1);
@@ -561,22 +562,37 @@
        mmd->lvl = mmd->totlvl;
 }
 
+typedef struct MultiresDisplacer {
+       struct MDisps *grid;
+       struct MFace *face;
+       
+       /* For matrix calc */
+       float mat_target[3];
+       float mat_center[3];
+       float (*mat_norms)[3];
+
+       int spacing;
+       int sidetot;
+       int sidendx;
+       int type;
+       int invert;
+       float (*orco)[3];
+       struct MVert *subco;
+       float weight;
+
+       int x, y, ax, ay;
+} MultiresDisplacer;
+
 static void multires_displacer_init(MultiresDisplacer *d, DerivedMesh *dm,
                             const int face_index, const int invert)
 {
        Mesh *me = MultiresDM_get_mesh(dm);
-       float inv[3][3];
 
        d->face = me->mface + face_index;
-       /* Get the multires grid from customdata and calculate the TS matrix */
+       /* Get the multires grid from customdata */
        d->grid = CustomData_get_layer(&me->fdata, CD_MDISPS);
        if(d->grid)
                d->grid += face_index;
-       calc_face_ts_mat_dm(d->mat, MultiresDM_get_orco(dm), d->face);
-       if(invert) {
-               Mat3Inv(inv, d->mat);
-               Mat3CpyMat3(d->mat, inv);
-       }
 
        calc_face_ts_partial(d->mat_center, d->mat_target, d->mat_norms, 
MultiresDM_get_orco(dm), d->face);
        d->mat_norms = MultiresDM_get_vertnorm(dm);
@@ -768,29 +784,6 @@
        }
 }
 
-/* Returns 0 on success, 1 if the src's totvert doesn't match */
-int multiresModifier_reshape(MultiresModifierData *mmd, Object *dst, Object 
*src)
-{
-       Mesh *src_me = get_mesh(src);
-       DerivedMesh *mrdm = dst->derivedFinal;
-
-       if(mrdm && mrdm->getNumVerts(mrdm) == src_me->totvert) {
-               MVert *mvert = CDDM_get_verts(mrdm);
-               int i;
-
-               for(i = 0; i < src_me->totvert; ++i)
-                       VecCopyf(mvert[i].co, src_me->mvert[i].co);
-               mrdm->needsFree = 1;
-               *MultiresDM_get_flags(mrdm) |= MULTIRES_DM_UPDATE_ALWAYS;
-               mrdm->release(mrdm);
-               dst->derivedFinal = NULL;
-
-               return 0;
-       }
-
-       return 1;
-}
-
 static void multiresModifier_disp_run(DerivedMesh *dm, MVert *subco, int 
invert)
 {
        const int lvl = MultiresDM_get_lvl(dm);


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

Reply via email to