diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-04-02 18:38:40 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-04-02 18:38:40 +0400 |
commit | e9ad9f894e2151fb192e8a4215b4ac6e73a28d0c (patch) | |
tree | 53e10812f555c7b41bb4f7b7cdd83619795988e8 /source/blender/blenkernel/intern/cdderivedmesh.c | |
parent | 4bb41c3dcdd029db63435e83700520070703a9bc (diff) |
2.5: weight paint mode fix for corrupted layer data, and added
a customdata layer specifically to store weightpaint colors
instead of abusing the vertex colors layers.
Diffstat (limited to 'source/blender/blenkernel/intern/cdderivedmesh.c')
-rw-r--r-- | source/blender/blenkernel/intern/cdderivedmesh.c | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/source/blender/blenkernel/intern/cdderivedmesh.c b/source/blender/blenkernel/intern/cdderivedmesh.c index 538e65bfdc9..7969eac2bf0 100644 --- a/source/blender/blenkernel/intern/cdderivedmesh.c +++ b/source/blender/blenkernel/intern/cdderivedmesh.c @@ -482,10 +482,14 @@ static void cdDM_drawMappedFaces(DerivedMesh *dm, int (*setDrawOptions)(void *us CDDerivedMesh *cddm = (CDDerivedMesh*) dm; MVert *mv = cddm->mvert; MFace *mf = cddm->mface; - MCol *mc = DM_get_face_data_layer(dm, CD_MCOL); + MCol *mc; float *nors= dm->getFaceDataArray(dm, CD_NORMAL); int i, orig, *index = DM_get_face_data_layer(dm, CD_ORIGINDEX); + mc = DM_get_face_data_layer(dm, CD_WEIGHT_MCOL); + if(!mc) + mc = DM_get_face_data_layer(dm, CD_MCOL); + for(i = 0; i < dm->numFaceData; i++, mf++) { int drawSmooth = (mf->flag & ME_SMOOTH); @@ -926,13 +930,6 @@ DerivedMesh *CDDM_from_mesh(Mesh *mesh, Object *ob) index = CustomData_get_layer(&dm->faceData, CD_ORIGINDEX); for(i = 0; i < mesh->totface; ++i, ++index) *index = i; - - /* works in conjunction with hack during modifier calc, where active mcol - layer with weight paint colors is temporarily added */ - /* XXX make this real but temporary layer */ -// if ((G.f & G_WEIGHTPAINT) && -// (ob && ob==(scene->basact?scene->basact->object:NULL))) -// CustomData_duplicate_referenced_layer(&dm->faceData, CD_MCOL); return dm; } |