Revision: 18207 http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18207 Author: joeedh Date: 2009-01-01 03:00:15 +0100 (Thu, 01 Jan 2009)
Log Message: ----------- stuff compiles now Modified Paths: -------------- branches/bmesh/bmesh/SConscript branches/bmesh/bmesh/bmesh_operators.h branches/bmesh/bmesh/intern/bmesh_mods.c branches/bmesh/bmesh/intern/bmesh_operators.c branches/bmesh/bmesh/intern/bmesh_walkers.c branches/bmesh/bmesh/operators/bmesh_dupeops.c branches/bmesh/bmesh/operators/subdivideop.c Modified: branches/bmesh/bmesh/SConscript =================================================================== --- branches/bmesh/bmesh/SConscript 2009-01-01 01:47:36 UTC (rev 18206) +++ branches/bmesh/bmesh/SConscript 2009-01-01 02:00:15 UTC (rev 18207) @@ -21,6 +21,8 @@ sources = env.Glob('intern/*.c') +sources = env.Glob('operators/*.c') + #sources += env.Glob('tools/*.c') incs = ['#/intern/guardedalloc'] Modified: branches/bmesh/bmesh/bmesh_operators.h =================================================================== --- branches/bmesh/bmesh/bmesh_operators.h 2009-01-01 01:47:36 UTC (rev 18206) +++ branches/bmesh/bmesh/bmesh_operators.h 2009-01-01 02:00:15 UTC (rev 18207) @@ -12,7 +12,7 @@ dynamically allocated arrays*/ #define BMOP_OPSLOT_INT_BUF 10 #define BMOP_OPSLOT_FLT_BUF 11 -#define BMOP_OPSLOT_PNT_BUF 12 +#define BMOP_OPSLOT_PNT_BUF 12 #define BMOP_OPSLOT_TYPES 13 typedef struct BMOpSlot{ @@ -47,7 +47,6 @@ void BMO_Init_Op(struct BMOperator *op, int opcode); void BMO_Exec_Op(struct BMesh *bm, struct BMOperator *op); void BMO_Finish_Op(struct BMesh *bm, struct BMOperator *op); -void BMO_Init_Op(struct BMOpSlot *s1, struct BMOpSlot *s2); BMOpSlot *BMO_GetSlot(struct BMOperator *op, int slotcode); void BMO_CopySlot(struct BMOperator *source_op, struct BMOperator *dest_op, int src, int dst); void BMO_Set_Float(struct BMOperator *op, int slotcode, float f); @@ -61,46 +60,61 @@ 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); -#define BMOP_OPSLOT_INT 0 -#define BMOP_OPSLOT_FLT 1 -#define BMOP_OPSLOT_PNT 2 -#define BMOP_OPSLOT_VEC 3 -#define BMOP_OPSLOT_INT_BUF 4 -#define BMOP_OPSLOT_FLT_BUF 5 -#define BMOP_OPSLOT_PNT_BUF 6 -#define BMOP_OPSLOT_TYPES 7 - /*defines for individual operators*/ /*split op*/ #define BMOP_SPLIT 0 -#define BMOP_SPLIT_MULTINPUT 0 -#define BMOP_SPLIT_MULTOUTPUT 1 -#define BMOP_SPLIT_TOTSLOT 2 +#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 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, }; -/*----------begin operator defines--------*/ +/*--------------------begin operator defines------------------------*/ /*dupe op*/ #define BMOP_DUPE 1 -#define BMOP_DUPE_MULTINPUT 0 -#define BMOP_DUPE_ORIGINAL 1 -#define BMOP_DUPE_NEW 2 -#define BMOP_DUPE_TOTSLOT 3 +#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 + 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, + BMOP_OPSLOT_PNT_BUF, }; /*delete op*/ #define BMOP_DEL 2 -#define BMOP_DEL_MULTINPUT 0 -#define BMOP_DEL_CONTEXT 1 -#define BMOP_DEL_TOTSLOT 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 /*BMOP_DEL_CONTEXT*/ #define BMOP_DEL_VERTS 1 @@ -111,6 +125,8 @@ const int BMOP_DEL_TYPEINFO[BMOP_DEL_TOTSLOT] = { BMOP_OPSLOT_PNT_BUF, + BMOP_OPSLOT_PNT_BUF, + BMOP_OPSLOT_PNT_BUF, BMOP_OPSLOT_INT }; @@ -128,27 +144,37 @@ #define BMOP_TO_EDITMESH_EM 0 #define BMOP_TO_EDITMESH_TOTSLOT 1 -/*keep this updated!*/ -#define BMOP_TOTAL_OPS 5 -/*----------end operator defines--------*/ - const int BMOP_TO_EDITMESH_TYPEINFO[BMOP_TO_EDITMESH_TOTSLOT] = { BMOP_OPSLOT_PNT }; +#define BMOP_ESUBDIVIDE 5 +#define BMOP_ESUBDIVIDE_EDGES 0 +#define BMOP_ESUBDIVIDE_TOTSLOT 1 + +const int BMOP_ESUBDIVIDE_TYPEINFO[] = { + BMOP_OPSLOT_PNT_BUF +}; + +/*keep this updated!*/ +#define BMOP_TOTAL_OPS 6 +/*-------------------------------end operator defines-------------------------------*/ + /*Following arrays are used by the init functions to init operator slot typecodes*/ const int *BMOP_TYPEINFO[BMOP_TOTAL_OPS] = { BMOP_SPLIT_TYPEINFO, BMOP_DEL_TYPEINFO, BMOP_FROM_EDITMESH_TYPEINFO, - BMOP_TO_EDITMESH_TYPEINFO + BMOP_TO_EDITMESH_TYPEINFO, + BMOP_ESUBDIVIDE_TYPEINFO }; const int BMOP_TYPETOTALS[BMOP_TOTAL_OPS] = { BMOP_SPLIT_TOTSLOT, BMOP_DEL_TOTSLOT, BMOP_FROM_EDITMESH_TOTSLOT, - BMOP_TO_EDITMESH_TOTSLOT + BMOP_TO_EDITMESH_TOTSLOT, + BMOP_ESUBDIVIDE_TOTSLOT }; #endif Modified: branches/bmesh/bmesh/intern/bmesh_mods.c =================================================================== --- branches/bmesh/bmesh/intern/bmesh_mods.c 2009-01-01 01:47:36 UTC (rev 18206) +++ branches/bmesh/bmesh/intern/bmesh_mods.c 2009-01-01 02:00:15 UTC (rev 18207) @@ -205,7 +205,7 @@ * purposes. * * Returns - - * Nothing + * the new vert */ BMVert *BM_Split_Edge(BMesh *bm, BMVert *v, BMEdge *e, BMEdge **ne, float percent, int calcnorm) { Modified: branches/bmesh/bmesh/intern/bmesh_operators.c =================================================================== --- branches/bmesh/bmesh/intern/bmesh_operators.c 2009-01-01 01:47:36 UTC (rev 18206) +++ branches/bmesh/bmesh/intern/bmesh_operators.c 2009-01-01 02:00:15 UTC (rev 18207) @@ -319,7 +319,7 @@ if(totelement){ alloc_slot_buffer(op, slotcode, totelement); - if (type & BM_VERT) { + if (type & BMESH_VERT) { for (e = BMIter_New(&elements, bm, BM_VERTS, bm); e; e = BMIter_Step(&elements)) { if(BMO_TestFlag(bm, e, flag)){ ((BMHeader**)output->data.p)[i] = e; @@ -328,7 +328,7 @@ } } - if (type & BM_EDGE) { + if (type & BMESH_EDGE) { for (e = BMIter_New(&elements, bm, BM_EDGES, bm); e; e = BMIter_Step(&elements)) { if(BMO_TestFlag(bm, e, flag)){ ((BMHeader**)output->data.p)[i] = e; @@ -337,7 +337,7 @@ } } - if (type & BM_FACE) { + if (type & BMESH_FACE) { for (e = BMIter_New(&elements, bm, BM_FACES, bm); e; e = BMIter_Step(&elements)) { if(BMO_TestFlag(bm, e, flag)){ ((BMHeader**)output->data.p)[i] = e; Modified: branches/bmesh/bmesh/intern/bmesh_walkers.c =================================================================== --- branches/bmesh/bmesh/intern/bmesh_walkers.c 2009-01-01 01:47:36 UTC (rev 18206) +++ branches/bmesh/bmesh/intern/bmesh_walkers.c 2009-01-01 02:00:15 UTC (rev 18207) @@ -27,7 +27,7 @@ */ /*Forward declerations*/ -static int request_walkerMask(struct BMMesh *bm); +static int request_walkerMask(struct BMesh *bm); static void *bmeshWalker_walk(struct BMWalker *walker); static void bmeshWalker_popState(struct BMWalker *walker); static void bmeshWalker_pushState(struct BMWalker *walker); @@ -55,7 +55,7 @@ * */ -static int request_walkerMask(BMMesh *bm) +static int request_walkerMask(BMesh *bm) { int i; for(i=0; i < BMESH_MAXWALKERS; i++){ @@ -79,7 +79,7 @@ * */ -void bmeshWalker_init(BMWalker *walker, BMMesh *bm, int type, int searchmask) +void bmeshWalker_init(BMWalker *walker, BMesh *bm, int type, int searchmask) { int visitedmask = request_walkerMask(bm); int size = 0; Modified: branches/bmesh/bmesh/operators/bmesh_dupeops.c =================================================================== --- branches/bmesh/bmesh/operators/bmesh_dupeops.c 2009-01-01 01:47:36 UTC (rev 18206) +++ branches/bmesh/bmesh/operators/bmesh_dupeops.c 2009-01-01 02:00:15 UTC (rev 18207) @@ -1,7 +1,24 @@ +#include "MEM_guardedalloc.h" + +#include "BKE_utildefines.h" + +#include "BLI_ghash.h" +#include "BLI_memarena.h" +#include "BLI_blenlib.h" +#include "BLI_arithb.h" + #include "bmesh.h" #include "bmesh_operators_private.h" +/*local flag defines*/ +#define DUPE_INPUT 1 /*input from operator*/ +#define DUPE_NEW 2 +#define DUPE_DONE 4 +#ifndef SELECT +#define SELECT 1 +#endif + /* * COPY VERTEX * @@ -13,7 +30,7 @@ BMVert *target_vertex = NULL; /*create a new vertex*/ - target_vertex = BM_Make_Vert(target, source_vertex->co, NULL); + target_vertex = BM_Make_Vert(target_mesh, source_vertex->co, NULL); /*insert new vertex into the vert hash*/ BLI_ghash_insert(vhash, source_vertex, target_vertex); @@ -21,9 +38,9 @@ /*copy custom data in this function since we cannot be assured that byte layout is same between meshes*/ CustomData_bmesh_copy_data(&source_mesh->vdata, &target_mesh->vdata, source_vertex->data, &target_vertex->data); - /*Copy Markings*/ - if(BM_Is_Selected((BMHeader*)source_vertex)) BM_Select_Vert(target_mesh, target_vertex, 1); - if(BM_Is_Hidden((BMHeader*)source_vertex)) BM_Mark_Hidden((BMHeader*)target_vertex, 1); + /*Copy Flags*/ + if(source_vertex->head.flag & SELECT) BM_Select_Vert(target_mesh, target_vertex, 1); + target_vertex->head.flag |= source_vertex->head.flag; BMO_SetFlag(target_mesh, (BMHeader*)target_vertex, DUPE_NEW); @@ -68,9 +85,8 @@ * Copy an existing face from one bmesh to another. * */ -static BMFace *copy_face(BMesh *source_mesh, BMFace *source_face, BMesh *target_mesh, BMEdge **edar, GHash *verthash, GHash *ehash) +static BMFace *copy_face(BMesh *source_mesh, BMFace *source_face, BMesh *target_mesh, BMEdge **edar, GHash *vhash, GHash *ehash) { - BMEdge *target_edge; BMVert *target_vert1, *target_vert2; BMLoop *source_loop, *target_loop; BMFace *target_face = NULL; @@ -78,7 +94,7 @@ /*lookup the first and second verts*/ target_vert1 = BLI_ghash_lookup(vhash, source_face->loopbase->v); - target_vert2 = BLI_ghash_lookup(vhash, source_face->loopbase->next->v); + target_vert2 = BLI_ghash_lookup(vhash, source_face->loopbase->radial.next->data); /*lookup edges*/ i = 0; @@ -86,7 +102,7 @@ do{ edar[i] = BLI_ghash_lookup(ehash, source_loop->e); i++; - source_loop = source_loop->next; + source_loop = source_loop->radial.next->data; }while(source_loop != source_face->loopbase); /*create new face*/ @@ -97,7 +113,7 @@ /*copy flags*/ target_face->head.flags = source_face->head.flags; - if(BM_Is_Selected((BMHeader*)source_face)) BM_Select_face(target, target_face, 1); @@ Diff output truncated at 10240 characters. @@ _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org http://lists.blender.org/mailman/listinfo/bf-blender-cvs