[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47283] branches/soc-2012-sushi/source/ blender: Check if all faces are triangle
Michael Fox
mfoxdogg at gmail.com
Thu May 31 23:56:09 CEST 2012
Ok its no my place to comment, but why not use the underlying tessfaces
structure, instead of using the top structure, that way the user don't
have to tesselate their mesh by hand, and granted most scanned models
are tris, but saying "tri's only" really limits the usability of this tool
On 01/06/12 01:52, Alexander Pinzon wrote:
> Revision: 47283
> http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47283
> Author: apinzonf
> Date: 2012-05-31 15:52:18 +0000 (Thu, 31 May 2012)
> Log Message:
> -----------
> Check if all faces are triangle
>
> Modified Paths:
> --------------
> branches/soc-2012-sushi/source/blender/bmesh/operators/bmo_smooth_laplacian.c
> branches/soc-2012-sushi/source/blender/editors/mesh/editmesh_tools.c
>
> Modified: branches/soc-2012-sushi/source/blender/bmesh/operators/bmo_smooth_laplacian.c
> ===================================================================
> --- branches/soc-2012-sushi/source/blender/bmesh/operators/bmo_smooth_laplacian.c 2012-05-31 15:37:44 UTC (rev 47282)
> +++ branches/soc-2012-sushi/source/blender/bmesh/operators/bmo_smooth_laplacian.c 2012-05-31 15:52:18 UTC (rev 47283)
> @@ -59,6 +59,7 @@
> NLContext *context;
> float lambda = BMO_slot_float_get(op, "lambda");
> float we;
> + int i;
>
> init_index(bm);
>
> @@ -69,8 +70,13 @@
> nlSolverParameteri(NL_NB_ROWS, bm->totvert);
> nlSolverParameteri(NL_NB_RIGHT_HAND_SIDES, 3);
> nlBegin(NL_SYSTEM);
> +
> + for(i=0; i<bm->totvert; i++){
> + nlLockVariable(i);
> + }
> BMO_ITER (v,&siter, bm, op, "verts", BM_VERT) {
> m_vertex_id = BM_elem_index_get(v);
> + nlUnlockVariable(m_vertex_id);
> nlSetVariable(0,m_vertex_id, v->co[0]);
> nlSetVariable(1,m_vertex_id, v->co[1]);
> nlSetVariable(2,m_vertex_id, v->co[2]);
> @@ -148,10 +154,8 @@
> int vc_id = BM_elem_index_get(vf[vc]);
> wa = lambda*cotan_weight(vf[vb]->co, vf[vc]->co, vf[va]->co);
> nlMatrixAdd(vid, vc_id, -wa);
> - //nlMatrixAdd(vid, vid, wa);
> wa = lambda*cotan_weight(vf[vc]->co, vf[va]->co, vf[vb]->co);
> nlMatrixAdd(vid, vb_id, -wa);
> - //nlMatrixAdd(vid, vid, wa);
> }
> }
> }
>
> Modified: branches/soc-2012-sushi/source/blender/editors/mesh/editmesh_tools.c
> ===================================================================
> --- branches/soc-2012-sushi/source/blender/editors/mesh/editmesh_tools.c 2012-05-31 15:37:44 UTC (rev 47282)
> +++ branches/soc-2012-sushi/source/blender/editors/mesh/editmesh_tools.c 2012-05-31 15:52:18 UTC (rev 47283)
> @@ -1604,6 +1604,23 @@
> int i, repeat;
> float clipdist = 0.0f;
> float lambda = 0.1f;
> + BMIter fiter;
> + BMIter viter;
> + BMFace *f;
> + BMVert *v;
> + int count;
> +
> + /* Check if all faces are triangles */
> + BM_ITER_MESH (f,&fiter, em->bm, BM_FACES_OF_MESH) {
> + count = 0;
> + BM_ITER_ELEM(v,&viter, f, BM_VERTS_OF_FACE){
> + count = count + 1;
> + }
> + if(count>3){
> + BKE_report(op->reports, RPT_WARNING, "Selected faces must be triangles");
> + return OPERATOR_CANCELLED;
> + }
> + }
>
> /* mirror before smooth */
> if (((Mesh *)obedit->data)->editflag& ME_EDIT_MIRROR_X) {
>
> _______________________________________________
> Bf-blender-cvs mailing list
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>
More information about the Bf-committers
mailing list