[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [20965] branches/bmesh/blender/source/ blender: ctrl-click to make an isolated vert works again
Joseph Eagar
joeedh at gmail.com
Thu Jun 18 05:04:28 CEST 2009
Revision: 20965
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20965
Author: joeedh
Date: 2009-06-18 05:04:27 +0200 (Thu, 18 Jun 2009)
Log Message:
-----------
ctrl-click to make an isolated vert works again
Modified Paths:
--------------
branches/bmesh/blender/source/blender/bmesh/intern/bmesh_opdefines.c
branches/bmesh/blender/source/blender/bmesh/intern/bmesh_operators_private.h
branches/bmesh/blender/source/blender/bmesh/operators/utils.c
branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c
Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_opdefines.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_opdefines.c 2009-06-18 02:05:56 UTC (rev 20964)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_opdefines.c 2009-06-18 03:04:27 UTC (rev 20965)
@@ -3,7 +3,14 @@
#include <stdio.h>
-/*applies a transform to vertices*/
+BMOpDefine def_makevert = {
+ "makevert",
+ {{BMOP_OPSLOT_VEC, "co"},
+ {BMOP_OPSLOT_ELEMENT_BUF, "newvertout"},
+ {0, /*null-terminating sentinel*/}},
+ bmesh_makevert_exec,
+ 0,
+};
/*contextual_create is fkey, it creates
new faces, makes stuff from edge nets,
@@ -47,6 +54,7 @@
};
+/*applies a transform to vertices*/
BMOpDefine def_transform = {
"transform",
{{BMOP_OPSLOT_MAT, "mat"},
@@ -248,6 +256,7 @@
&def_rotate,
&def_edgenet_fill,
&def_contextual_create,
+ &def_makevert,
};
int bmesh_total_ops = (sizeof(opdefines) / sizeof(void*));
Modified: branches/bmesh/blender/source/blender/bmesh/intern/bmesh_operators_private.h
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/intern/bmesh_operators_private.h 2009-06-18 02:05:56 UTC (rev 20964)
+++ branches/bmesh/blender/source/blender/bmesh/intern/bmesh_operators_private.h 2009-06-18 03:04:27 UTC (rev 20965)
@@ -28,5 +28,7 @@
void bmesh_contextual_create_exec(BMesh *bm, BMOperator *op);
void bmesh_edgenet_fill_exec(BMesh *bm, BMOperator *op);
void bmesh_rotate_exec(BMesh *bm, BMOperator *op);
+void bmesh_makevert_exec(BMesh *bm, BMOperator *op);
+
#endif
Modified: branches/bmesh/blender/source/blender/bmesh/operators/utils.c
===================================================================
--- branches/bmesh/blender/source/blender/bmesh/operators/utils.c 2009-06-18 02:05:56 UTC (rev 20964)
+++ branches/bmesh/blender/source/blender/bmesh/operators/utils.c 2009-06-18 03:04:27 UTC (rev 20965)
@@ -32,6 +32,15 @@
*
*/
+void bmesh_makevert_exec(BMesh *bm, BMOperator *op) {
+ float vec[3];
+
+ BMO_Get_Vec(op, "co", vec);
+
+ BMO_SetFlag(bm, BM_Make_Vert(bm, vec, NULL), 1);
+ BMO_Flag_To_Slot(bm, op, "newvertout", 1, BM_VERT);
+}
+
void bmesh_transform_exec(BMesh *bm, BMOperator *op) {
BMOIter iter;
BMVert *v;
Modified: branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c
===================================================================
--- branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c 2009-06-18 02:05:56 UTC (rev 20964)
+++ branches/bmesh/blender/source/blender/editors/mesh/bmesh_tools.c 2009-06-18 03:04:27 UTC (rev 20965)
@@ -450,7 +450,6 @@
short EDBM_Extrude_verts_indiv(BMEditMesh *em, wmOperator *op, short flag, float *nor)
{
BMOperator bmop;
- BMIter iter;
BMOIter siter;
BMVert *v;
@@ -912,26 +911,27 @@
EDBM_CallOpf(vc.em, op, "translate verts=%hv vec=%v",
BM_SELECT, min);
}
- /*
else {
- float mat[3][3],imat[3][3];
float *curs= give_cursor(vc.scene, vc.v3d);
+ BMOperator bmop;
+ BMOIter oiter;
VECCOPY(min, curs);
+
view3d_get_view_aligned_coordinate(&vc, min, event->mval);
+ Mat4Invert(vc.obedit->imat, vc.obedit->obmat);
+ Mat4MulVecfl(vc.obedit->imat, min); // back in object space
- eve= addvertlist(vc.em, 0, NULL);
+ EDBM_InitOpf(vc.em, &bmop, op, "makevert co=%v", min);
+ BMO_Exec_Op(vc.em->bm, &bmop);
- Mat3CpyMat4(mat, vc.obedit->obmat);
- Mat3Inv(imat, mat);
-
- VECCOPY(eve->co, min);
- Mat3MulVecfl(imat, eve->co);
- VecSubf(eve->co, eve->co, vc.obedit->obmat[3]);
-
- eve->f= SELECT;
+ BMO_ITER(v1, &oiter, vc.em->bm, &bmop, "newvertout") {
+ BM_Select(vc.em->bm, v1, 1);
+ }
+
+ if (!EDBM_FinishOp(vc.em, &bmop, op, 1))
+ return OPERATOR_CANCELLED;
}
- */
//retopo_do_all();
WM_event_add_notifier(C, NC_OBJECT|ND_GEOM_SELECT, vc.obedit);
More information about the Bf-blender-cvs
mailing list