[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18272] branches/bmesh/bmesh: -> Cleanup of operator defines

Geoffrey Bantle hairbat at yahoo.com
Fri Jan 2 23:34:07 CET 2009


Revision: 18272
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18272
Author:   briggs
Date:     2009-01-02 23:34:07 +0100 (Fri, 02 Jan 2009)

Log Message:
-----------
-> Cleanup of operator defines

 Cleaned up the dupe/split/del operator slot definitions.
 Generally speaking input/output slots that are collections
 of mesh elements shoudl be mixed unless there is a good
 reason to seperate them out. Also got rid of some defines
 left over from aborted flag layer twiddling from previous
 commits.

Modified Paths:
--------------
    branches/bmesh/bmesh/bmesh_operators.h
    branches/bmesh/bmesh/operators/bmesh_dupeops.c

Modified: branches/bmesh/bmesh/bmesh_operators.h
===================================================================
--- branches/bmesh/bmesh/bmesh_operators.h	2009-01-02 22:15:05 UTC (rev 18271)
+++ branches/bmesh/bmesh/bmesh_operators.h	2009-01-02 22:34:07 UTC (rev 18272)
@@ -69,66 +69,37 @@
 void BMO_Flag_To_Slot(struct BMesh *bm, struct BMOperator *op, int slotcode, int flag, int type);
 void BMO_Flag_Buffer(struct BMesh *bm, struct BMOperator *op, int slotcode, int flag);
 
-/*operator option flags*/
-#define NEEDFLAGS	1 /*note: doesn't do anything*/
-
 /*--------------------begin operator defines------------------------*/
 /*split op*/
 #define BMOP_SPLIT				0
-#define BMOP_SPLIT_VINPUT		1
-#define BMOP_SPLIT_EINPUT		2
-#define BMOP_SPLIT_FINPUT		3
-#define BMOP_SPLIT_VOUTPUT		4
-#define BMOP_SPLIT_EOUTPUT		5
-#define BMOP_SPLIT_FOUTPUT		6
-#define BMOP_SPLIT_TOTSLOT		7
+#define BMOP_SPLIT_MULTIN		0
+#define BMOP_SPLIT_MULTOUT		1
+#define BMOP_SPLIT_TOTSLOT		2
 
 static const int BMOP_SPLIT_TYPEINFO[BMOP_SPLIT_TOTSLOT] = {
 	BMOP_OPSLOT_PNT_BUF,
-	BMOP_OPSLOT_PNT_BUF,
-	BMOP_OPSLOT_PNT_BUF,
-	BMOP_OPSLOT_PNT_BUF,
-	BMOP_OPSLOT_PNT_BUF,
-	BMOP_OPSLOT_PNT_BUF,
-	BMOP_OPSLOT_PNT_BUF,
+	BMOP_OPSLOT_PNT_BUF
 };
 
-#define SPLIT_OPTIONS	NEEDFLAGS
-
 /*dupe op*/
 #define BMOP_DUPE				1
 
-#define BMOP_DUPE_VINPUT		0
-#define BMOP_DUPE_EINPUT		1
-#define BMOP_DUPE_FINPUT		2
-#define BMOP_DUPE_VORIGINAL		3
-#define BMOP_DUPE_EORIGINAL		4
-#define BMOP_DUPE_FORIGINAL		5
-#define BMOP_DUPE_VNEW			6
-#define BMOP_DUPE_ENEW			7
-#define BMOP_DUPE_FNEW			8
-#define BMOP_DUPE_TOTSLOT		9
+#define BMOP_DUPE_MULTIN		0
+#define BMOP_DUPE_ORIG			1
+#define BMOP_DUPE_NEW			2
+#define BMOP_DUPE_TOTSLOT		3
 
 static const int BMOP_DUPE_TYPEINFO[BMOP_DUPE_TOTSLOT] = {
 	BMOP_OPSLOT_PNT_BUF,
 	BMOP_OPSLOT_PNT_BUF,
 	BMOP_OPSLOT_PNT_BUF,
-	BMOP_OPSLOT_PNT_BUF,
-	BMOP_OPSLOT_PNT_BUF,
-	BMOP_OPSLOT_PNT_BUF,
-	BMOP_OPSLOT_PNT_BUF,
-	BMOP_OPSLOT_PNT_BUF,
-	BMOP_OPSLOT_PNT_BUF,
 };
-#define DUPE_OPTIONS		NEEDFLAGS
 
 /*delete op*/
 #define BMOP_DEL			2
-#define BMOP_DEL_VINPUT		0
-#define BMOP_DEL_EINPUT		1
-#define BMOP_DEL_FINPUT		2
-#define BMOP_DEL_CONTEXT	3
-#define BMOP_DEL_TOTSLOT	4
+#define BMOP_DEL_MULTIN		0
+#define BMOP_DEL_CONTEXT	1
+#define BMOP_DEL_TOTSLOT	2
 
 /*BMOP_DEL_CONTEXT*/
 #define BMOP_DEL_VERTS				1
@@ -139,13 +110,9 @@
 
 static const int BMOP_DEL_TYPEINFO[BMOP_DEL_TOTSLOT] = {
 	BMOP_OPSLOT_PNT_BUF,
-	BMOP_OPSLOT_PNT_BUF,
-	BMOP_OPSLOT_PNT_BUF,
 	BMOP_OPSLOT_INT
 };
 
-#define DEL_OPTIONS		NEEDFLAGS
-
 /*editmesh->bmesh op*/
 #define BMOP_FROM_EDITMESH		3
 #define BMOP_FROM_EDITMESH_EM	0
@@ -166,7 +133,6 @@
 	BMOP_OPSLOT_PNT
 };
 
-#define TOEDIT_OPTIONS			NEEDFLAGS
 
 #define BMOP_ESUBDIVIDE			5
 #define BMOP_ESUBDIVIDE_EDGES	0
@@ -176,8 +142,6 @@
 	BMOP_OPSLOT_PNT_BUF
 };
 
-#define SUBD_OPTIONS		NEEDFLAGS
-
 /*keep this updated!*/
 #define BMOP_TOTAL_OPS				6
 /*-------------------------------end operator defines-------------------------------*/
@@ -201,13 +165,4 @@
 	BMOP_ESUBDIVIDE_TOTSLOT
 };
 
-static const int BMOP_OPTIONS[] = {
-	SPLIT_OPTIONS,
-	DUPE_OPTIONS,
-	DEL_OPTIONS,
-	FROMEDIT_OPTIONS,
-	TOEDIT_OPTIONS,
-	SUBD_OPTIONS,	
-};
-
 #endif

Modified: branches/bmesh/bmesh/operators/bmesh_dupeops.c
===================================================================
--- branches/bmesh/bmesh/operators/bmesh_dupeops.c	2009-01-02 22:15:05 UTC (rev 18271)
+++ branches/bmesh/bmesh/operators/bmesh_dupeops.c	2009-01-02 22:34:07 UTC (rev 18272)
@@ -264,30 +264,18 @@
 void dupeop_exec(BMesh *bm, BMOperator *op)
 {
 	BMOperator *dupeop = op;
-	BMOpSlot *vinput, *einput, *finput;
 	
-	vinput = BMO_GetSlot(dupeop, BMOP_DUPE_VINPUT);
-	einput = BMO_GetSlot(dupeop, BMOP_DUPE_EINPUT);
-	finput = BMO_GetSlot(dupeop, BMOP_DUPE_FINPUT);
-
-	/*go through vinput, einput, and finput and flag elements with private flags*/
-	BMO_Flag_Buffer(bm, dupeop, BMOP_DUPE_VINPUT, DUPE_INPUT);
-	BMO_Flag_Buffer(bm, dupeop, BMOP_DUPE_EINPUT, DUPE_INPUT);
-	BMO_Flag_Buffer(bm, dupeop, BMOP_DUPE_FINPUT, DUPE_INPUT);
-
+	/*flag input*/
+	BMO_Flag_Buffer(bm, dupeop, BMOP_DUPE_MULTIN, DUPE_INPUT);
 	/*use the internal copy function*/
 	copy_mesh(bm, bm);
 	
 	/*Output*/
 	/*First copy the input buffers to output buffers - original data*/
-	BMO_CopySlot(dupeop, dupeop, vinput->index, BMOP_DUPE_VORIGINAL);
-	BMO_CopySlot(dupeop, dupeop, einput->index, BMOP_DUPE_EORIGINAL);
-	BMO_CopySlot(dupeop, dupeop, finput->index, BMOP_DUPE_FORIGINAL);
+	BMO_CopySlot(dupeop, dupeop, BMOP_DUPE_MULTIN, BMOP_DUPE_ORIG);
 
 	/*Now alloc the new output buffers*/
-	BMO_Flag_To_Slot(bm, dupeop, BMOP_DUPE_VNEW, DUPE_NEW, BM_VERT);
-	BMO_Flag_To_Slot(bm, dupeop, BMOP_DUPE_ENEW, DUPE_NEW, BM_EDGE);
-	BMO_Flag_To_Slot(bm, dupeop, BMOP_DUPE_FNEW, DUPE_NEW, BM_FACE);
+	BMO_Flag_To_Slot(bm, dupeop, BMOP_DUPE_NEW, DUPE_NEW, BM_VERT|BM_EDGE|BM_FACE);
 }
 
 
@@ -320,23 +308,17 @@
 	BMO_Init_Op(&dupeop, BMOP_DUPE);
 	BMO_Init_Op(&delop, BMOP_DEL);
 
-	BMO_CopySlot(&dupeop, &delop, BMOP_SPLIT_VINPUT, BMOP_DUPE_VINPUT);
-	BMO_CopySlot(&dupeop, &delop, BMOP_SPLIT_EINPUT, BMOP_DUPE_EINPUT);
-	BMO_CopySlot(&dupeop, &delop, BMOP_SPLIT_FINPUT, BMOP_DUPE_FINPUT);
+	BMO_Set_Int(&delop, BMOP_DEL_CONTEXT, BMOP_DEL_FACES);
 
+	BMO_CopySlot(&dupeop, &delop, BMOP_SPLIT_MULTIN, BMOP_DUPE_MULTIN);
 	BMO_Exec_Op(bm, &dupeop);
 
 	/*connect outputs of dupe to delete*/
-	BMO_CopySlot(&dupeop, &delop, BMOP_DUPE_VORIGINAL, BMOP_DEL_VINPUT);
-	BMO_CopySlot(&dupeop, &delop, BMOP_DUPE_EORIGINAL, BMOP_DEL_EINPUT);
-	BMO_CopySlot(&dupeop, &delop, BMOP_DUPE_FORIGINAL, BMOP_DEL_FINPUT);
-
+	BMO_CopySlot(&dupeop, &delop, BMOP_DUPE_ORIG, BMOP_DEL_MULTIN);
 	BMO_Exec_Op(bm, &delop);
 
 	/*now we make our outputs by copying the dupe outputs*/
-	BMO_CopySlot(&dupeop, splitop, BMOP_DUPE_VNEW, BMOP_SPLIT_VOUTPUT);
-	BMO_CopySlot(&dupeop, splitop, BMOP_DUPE_ENEW, BMOP_SPLIT_EOUTPUT);
-	BMO_CopySlot(&dupeop, splitop, BMOP_DUPE_FNEW, BMOP_SPLIT_FOUTPUT);
+	BMO_CopySlot(&dupeop, splitop, BMOP_DUPE_NEW, BMOP_SPLIT_MULTOUT);
 
 	/*cleanup*/
 	BMO_Finish_Op(bm, &dupeop);





More information about the Bf-blender-cvs mailing list