[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22762] branches/bmesh/blender/source/ blender: subsurf works now! YES! take *that* subsurf_ccg.cscons/scons. py BF_QUICK=bf_python, bf_blenkernel, bf_blenlib, bf_blenloader, bf_editors_mesh, bf_b
joe
joeedh at gmail.com
Tue Aug 25 12:23:00 CEST 2009
- Previous message (by thread): [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22762] branches/bmesh/blender/source/ blender: subsurf works now! YES! take *that* subsurf_ccg.cscons/scons. py BF_QUICK=bf_python, bf_blenkernel, bf_blenlib, bf_blenloader, bf_editors_mesh, bf_bmesh, bf_editors_space_view3d, bf_editors_transform, bf_makesdna, bf_makesrna, bf_dna, bf_rn, bf_bmesh, bf_editors_object, editors_uvedit, editors_space_image, editors_screen, editors_space_screen, editors_space_api, bf_windowmanager, bf_wm still an issue with some modifier combinations though, and I think there's some memory corruption going on, need to valgrind it.
- Next message (by thread): [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22763] branches/blender2.5/blender/source /blender/editors/animation/keyingsets.c: 2.5 - Keying Sets Bugfix
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Stupid terminal mangled my log message. Correct message:
subsurf works now! YES! take *that* subsurf_ccg.c! still an issue with
some modifier combinations though, and I think there's some memory
corruption going on, need to valgrind it.
Joe
On Tue, Aug 25, 2009 at 4:21 AM, Joseph Eagar<joeedh at gmail.com> wrote:
> Revision: 22762
> http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22762
> Author: joeedh
> Date: 2009-08-25 12:21:10 +0200 (Tue, 25 Aug 2009)
>
> Log Message:
> -----------
> subsurf works now! YES! take *that* subsurf_ccg.cscons/scons.py BF_QUICK=bf_python,bf_blenkernel,bf_blenlib,bf_blenloader,bf_editors_mesh,bf_bmesh,bf_editors_space_view3d,bf_editors_transform,bf_makesdna,bf_makesrna,bf_dna,bf_rn,bf_bmesh,bf_editors_object,editors_uvedit,editors_space_image,editors_screen,editors_space_screen,editors_space_api,bf_windowmanager,bf_wm still an issue with some modifier combinations though, and I think there's some memory corruption going on, need to valgrind it.
>
> Modified Paths:
> --------------
> branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c
> branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c
> branches/bmesh/blender/source/blender/blenkernel/intern/modifiers_bmesh.c
> branches/bmesh/blender/source/blender/blenkernel/intern/subsurf_ccg.c
> branches/bmesh/blender/source/blender/bmesh/intern/bmesh_walkers.c
> branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c
> branches/bmesh/blender/source/blender/editors/mesh/editmesh_tools.c
> branches/bmesh/blender/source/blender/makesdna/DNA_customdata_types.h
>
> Modified: branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c
> ===================================================================
> --- branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c 2009-08-25 10:20:06 UTC (rev 22761)
> +++ branches/bmesh/blender/source/blender/blenkernel/intern/DerivedMesh.c 2009-08-25 10:21:10 UTC (rev 22762)
> @@ -310,6 +310,11 @@
> for (i=0; i<opdata->totlayer; i++) {
> void *e1, *e2;
>
> + if (opdata->layers[i].type == lasttype)
> + j++;
> + else
> + j = 0;
> +
> if (opdata->layers[i].type == CD_MPOLY)
> continue;
>
> @@ -321,11 +326,6 @@
>
> CustomData_copy_elements(opdata->layers[i].type, e1, e2, 1);
>
> - if (opdata->layers[i].type == lasttype)
> - j++;
> - else
> - j = 0;
> -
> lasttype = opdata->layers[i].type;
> }
>
> @@ -342,6 +342,11 @@
> if (oldata->layers[i].type == CD_MLOOP)
> continue;
>
> + if (oldata->layers[i].type == lasttype)
> + j++;
> + else
> + j = 0;
> +
> e1 = liter->getLoopCDData(liter, oldata->layers[i].type, j);
> e2 = CustomData_get_n(ldata, oldata->layers[i].type, l, j);
>
> @@ -349,12 +354,6 @@
> continue;
>
> CustomData_copy_elements(oldata->layers[i].type, e1, e2, 1);
> -
> - if (oldata->layers[i].type == lasttype)
> - j++;
> - else
> - j = 0;
> -
> lasttype = oldata->layers[i].type;
> }
> }
>
> Modified: branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c
> ===================================================================
> --- branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c 2009-08-25 10:20:06 UTC (rev 22761)
> +++ branches/bmesh/blender/source/blender/blenkernel/intern/cdderivedmesh.c 2009-08-25 10:21:10 UTC (rev 22762)
> @@ -1417,6 +1417,7 @@
> CustomData_add_layer(&dm->faceData, CD_MFACE, CD_ASSIGN, cddm->mface, numFaces);
>
> DM_DupPolys(source, dm);
> + //CDDM_tessfaces_to_faces(dm);
>
> cddm->mloop = CustomData_get_layer(&dm->loopData, CD_MLOOP);
> cddm->mpoly = CustomData_get_layer(&dm->polyData, CD_MPOLY);
> @@ -1662,6 +1663,10 @@
> EdgeHash *eh = BLI_edgehash_new();
> int i, l, totloop, *index1, *index2;
>
> + /*ensure we have all the edges we need*/
> + CDDM_calc_edges(dm);
> +
> + /*build edge hash*/
> me = cddm->medge;
> for (i=0; i<cddm->dm.numEdgeData; i++, me++) {
> BLI_edgehash_insert(eh, me->v1, me->v2, SET_INT_IN_POINTER(i));
> @@ -1687,7 +1692,7 @@
> CustomData_add_layer(&cddm->dm.loopData, CD_MLOOP, CD_ASSIGN, cddm->mloop, totloop);
> CustomData_add_layer(&cddm->dm.polyData, CD_MPOLY, CD_ASSIGN, cddm->mpoly, cddm->dm.numPolyData);
> CustomData_merge(&cddm->dm.faceData, &cddm->dm.polyData,
> - CD_MASK_DERIVEDMESH, CD_DUPLICATE, cddm->dm.numFaceData);
> + CD_MASK_ORIGINDEX, CD_DUPLICATE, cddm->dm.numFaceData);
>
> index1 = CustomData_get_layer(&cddm->dm.faceData, CD_ORIGINDEX);
> index2 = CustomData_get_layer(&cddm->dm.polyData, CD_ORIGINDEX);
>
> Modified: branches/bmesh/blender/source/blender/blenkernel/intern/modifiers_bmesh.c
> ===================================================================
> --- branches/bmesh/blender/source/blender/blenkernel/intern/modifiers_bmesh.c 2009-08-25 10:20:06 UTC (rev 22761)
> +++ branches/bmesh/blender/source/blender/blenkernel/intern/modifiers_bmesh.c 2009-08-25 10:21:10 UTC (rev 22762)
> @@ -198,12 +198,13 @@
> break;
>
> f = BM_Make_Ngon(bm, verts[0], verts[1], edges, dfiter->len, 0);
> - f->head.flag = MEFlags_To_BMFlags(dfiter->flags, BM_FACE);
> - f->mat_nr = dfiter->mat_nr;
>
> if (!f)
> continue;
>
> + f->head.flag = MEFlags_To_BMFlags(dfiter->flags, BM_FACE);
> + f->mat_nr = dfiter->mat_nr;
> +
> dliter = dfiter->getLoopsIter(dfiter);
> l = BMIter_New(&liter, bm, BM_LOOPS_OF_FACE, f);
> for (j=0; l; l=BMIter_Step(&liter)) {
>
> Modified: branches/bmesh/blender/source/blender/blenkernel/intern/subsurf_ccg.c
> ===================================================================
> --- branches/bmesh/blender/source/blender/blenkernel/intern/subsurf_ccg.c 2009-08-25 10:20:06 UTC (rev 22761)
> +++ branches/bmesh/blender/source/blender/blenkernel/intern/subsurf_ccg.c 2009-08-25 10:21:10 UTC (rev 22762)
> @@ -540,28 +540,6 @@
> }
>
> return wtable->weight_table[faceLen].w;
> -#if 0
> - /*ensure we have at least the triangle and quad weights*/
> - if (wtable->len < 4) {
> - wtable->weight_table = MEM_callocN(sizeof(FaceVertWeightEntry)*5, "weight table alloc");
> - wtable->len = 5;
> -
> - calc_ss_weights(gridFaces, &wtable->weight_table[4].weight, &wtable->weight_table[3].weight);
> - wtable->weight_table[4].valid = wtable->weight_table[3].valid = 1;
> - }
> -
> - if (wtable->len <= faceLen) {
> - void *tmp = MEM_callocN(sizeof(FaceVertWeightEntry)*(faceLen+1), "weight table alloc 2");
> -
> - memcpy(tmp, wtable->weight_table, sizeof(FaceVertWeightEntry)*wtable->len);
> - MEM_freeN(wtable->weight_table);
> -
> - wtable->weight_table = tmp;
> - wtable->len = faceLen+1;
> - }
> -
> - return wtable->weight_table[faceLen].weight;
> -#endif
> }
>
> void free_ss_weights(WeightTable *wtable)
> @@ -2631,7 +2609,6 @@
> int gridSideEdges;
> int numTex, numCol;
> int gridInternalEdges;
> - int index2;
> float *w = NULL, one = 1.0f;
> WeightTable wtable = {0};
> V_DECLARE(w);
> @@ -2655,9 +2632,9 @@
> numTex = CustomData_number_of_layers(&cgdm->dm.loopData, CD_MLOOPUV);
> numCol = CustomData_number_of_layers(&cgdm->dm.loopData, CD_MLOOPCOL);
>
> - if (numTex && CustomData_number_of_layers(&cgdm->dm.faceData, CD_MTFACE)==0)
> + if (numTex && CustomData_number_of_layers(&cgdm->dm.faceData, CD_MTFACE) != numTex)
> CustomData_from_bmeshpoly(&cgdm->dm.faceData, &cgdm->dm.polyData, &cgdm->dm.loopData, CCS_getNumFinalFaces(ss));
> - else if (numCol && CustomData_number_of_layers(&cgdm->dm.faceData, CD_MCOL)==0)
> + else if (numCol && CustomData_number_of_layers(&cgdm->dm.faceData, CD_MCOL) != numCol)
> CustomData_from_bmeshpoly(&cgdm->dm.faceData, &cgdm->dm.polyData, &cgdm->dm.loopData, CCS_getNumFinalFaces(ss));
>
> CustomData_set_layer_flag(&cgdm->dm.faceData, CD_FLAGS, CD_FLAG_NOCOPY);
> @@ -2771,7 +2748,7 @@
>
> mcol = DM_get_tessface_data_layer(&cgdm->dm, CD_MCOL);
>
> - index2 = 0;
> + faceNum = 0;
> loopindex = loopindex2 = 0; //current loop index
> for (index = 0; index < totface; index++) {
> CCFace *f = cgdm->faceMap[index].face;
> @@ -2787,10 +2764,12 @@
>
> cgdm->faceMap[index].startVert = vertNum;
> cgdm->faceMap[index].startEdge = edgeNum;
> - cgdm->faceMap[index].startFace = index2;
> + cgdm->faceMap[index].startFace = faceNum;
>
> - V_RESET(loopidx);
> -
> + /* set the face base vert */
> + *((int*)CCS_getFaceUserData(ss, f)) = vertNum;
> +
> + V_RESET(loopidx);
> for (s=0; s<numVerts; s++) {
> V_GROW(loopidx);
> loopidx[s] = loopindex++;
> @@ -2805,7 +2784,8 @@
> }
>
>
> - w2 = w + s*numVerts*g2_wid*g2_wid;
> + /*I think this is for interpolating the center vert?*/
> + w2 = w; // + numVerts*(g2_wid-1)*(g2_wid-1); //numVerts*((g2_wid-1)*g2_wid+g2_wid-1);
> DM_interp_vert_data(dm, &cgdm->dm, vertidx, w2,
> numVerts, vertNum);
> if (vertOrigIndex)
> @@ -2827,6 +2807,7 @@
> }
> }
>
> + /*interpolate per-vert data*/
> for(s = 0; s < numVerts; s++) {
> for(y = 1; y < gridFaces; y++) {
> for(x = 1; x < gridFaces; x++) {
> @@ -2842,8 +2823,9 @@
> }
> }
>
> - /* set the face base vert */
> - *((int*)CCS_getFaceUserData(ss, f)) = vertNum;
> + for(i = 0; i < numFinalEdges; ++i)
> + *(int *)DM_get_edge_data(&cgdm->dm, edgeNum + i,
> + CD_ORIGINDEX) = ORIGINDEX_NONE;
> for (s=0; s<numVerts; s++) {
> /*interpolate per-face data*/
> for (y=0; y<gridFaces; y++) {
> @@ -2867,16 +2849,16 @@
> CustomData_interp(&dm->loopData, &cgdm->dm.loopData,
> loopidx, w2, NULL, numVerts, loopindex2);
> loopindex2++;
> -
> +
> /*copy over poly data, e.g. mtexpoly*/
> - CustomData_interp(&dm->polyData, &cgdm->dm.polyData, &origIndex, &one, NULL, 1, index2);
> + CustomData_copy_data(&dm->polyData, &cgdm->dm.polyData, origIndex, faceNum, 1);
> + //CustomData_interp(&dm->polyData, &cgdm->dm.polyData, &origIndex, &one, NULL, 1, faceNum);
>
> /*generate tesselated face data used for drawing*/
> ccg_loops_to_corners(&cgdm->dm.faceData, &cgdm->dm.loopData,
> - &cgdm->dm.polyData, loopindex2-4, index2, index2, numTex, numCol);
> + &cgdm->dm.polyData, loopindex2-4, faceNum, faceNum, numTex, numCol);
>
> faceNum++;
> - index2++;
> }
> }
> }
> @@ -2944,6 +2926,12 @@
> ++vertOrigIndex;
> ++vertNum;
> }
> +
> + cgdm->dm.numVertData = vertNum;
> + cgdm->dm.numEdgeData = edgeNum;
> + cgdm->dm.numFaceData = faceNum;
> + cgdm->dm.numLoopData = loopindex2;
> + cgdm->dm.numPolyData = faceNum;
> #if 0
> for(index = 0; index < totface; ++index) {
> CCFace *f = cgdm->faceMap[index].face;
> @@ -3182,7 +3170,7 @@
>
> return result;
> } else {
> - int useIncremental = (smd->flags & eSubsurfModifierFlag_Incremental);
> + int useIncremental = 1; //(smd->flags & eSubsurfModifierFlag_Incremental);
> int useAging = smd->flags & eSubsurfModifierFlag_DebugIncr;
> CSubSurf *ss;
>
>
> Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_walkers.c
> ===================================================================
> --- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_walkers.c 2009-08-25 10:20:06 UTC (rev 22761)
> +++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_walkers.c 2009-08-25 10:21:10 UTC (rev 22762)
> @@ -659,6 +659,10 @@
> if (rlen != 1 && i == stopi) break;
>
> l = BM_OtherFaceLoop(l->e, l->f, v);
> +
> + if (!l)
> + break;
> +
> l2 = bmesh_radial_nextloop(l);
>
> if (l2 == l) {
>
> Modified: branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c
> ===================================================================
> --- branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c 2009-08-25 10:20:06 UTC (rev 22761)
> +++ branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c 2009-08-25 10:21:10 UTC (rev 22762)
> @@ -1965,3 +1965,78 @@
>
> //RNA_def_int(ot->srna, "repeat", 1, 1, 100, "Number of times to smooth the mesh", "", 1, INT_MAX);
> }
> +
> +/********************** Smooth/Solid Operators *************************/
> +
> +void mesh_set_smooth_faces(BMEditMesh *em, short smooth)
> +{
> + BMIter iter;
> + BMFace *efa;
> +
> + if(em==NULL) return;
> +
> + BM_ITER(efa, &iter, em->bm, BM_FACES_OF_MESH, NULL) {
> + if (BM_TestHFlag(efa, BM_SELECT)) {
> + if (smooth)
> + BM_SetHFlag(efa, BM_SMOOTH);
> + else
> + BM_ClearHFlag(efa, BM_SMOOTH);
> + }
> + }
> +}
> +
> +static int mesh_faces_shade_smooth_exec(bContext *C, wmOperator *op)
> +{
> + Scene *scene= CTX_data_scene(C);
>
> @@ Diff output truncated at 10240 characters. @@
>
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>
- Previous message (by thread): [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22762] branches/bmesh/blender/source/ blender: subsurf works now! YES! take *that* subsurf_ccg.cscons/scons. py BF_QUICK=bf_python, bf_blenkernel, bf_blenlib, bf_blenloader, bf_editors_mesh, bf_bmesh, bf_editors_space_view3d, bf_editors_transform, bf_makesdna, bf_makesrna, bf_dna, bf_rn, bf_bmesh, bf_editors_object, editors_uvedit, editors_space_image, editors_screen, editors_space_screen, editors_space_api, bf_windowmanager, bf_wm still an issue with some modifier combinations though, and I think there's some memory corruption going on, need to valgrind it.
- Next message (by thread): [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22763] branches/blender2.5/blender/source /blender/editors/animation/keyingsets.c: 2.5 - Keying Sets Bugfix
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the Bf-blender-cvs
mailing list