Revision: 26288
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=26288
Author:   blendix
Date:     2010-01-26 12:15:45 +0100 (Tue, 26 Jan 2010)

Log Message:
-----------
Fix #20803: convert button in particle modifier didn't work
for creating duplis yet.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/interface/interface_templates.c
    trunk/blender/source/blender/editors/object/object_add.c
    trunk/blender/source/blender/editors/object/object_modifier.c

Modified: trunk/blender/source/blender/editors/interface/interface_templates.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_templates.c        
2010-01-26 11:14:44 UTC (rev 26287)
+++ trunk/blender/source/blender/editors/interface/interface_templates.c        
2010-01-26 11:15:45 UTC (rev 26288)
@@ -797,8 +797,10 @@
                        if (md->type==eModifierType_ParticleSystem) {
                        ParticleSystem *psys= ((ParticleSystemModifierData 
*)md)->psys;
                                
-                       if (!(ob->mode & OB_MODE_PARTICLE_EDIT)) {
-                                       if(ELEM3(psys->part->ren_as, 
PART_DRAW_PATH, PART_DRAW_GR, PART_DRAW_OB) && psys->pathcache)
+                       if (!(ob->mode & OB_MODE_PARTICLE_EDIT) && 
psys->pathcache) {
+                                       if(ELEM(psys->part->ren_as, 
PART_DRAW_GR, PART_DRAW_OB))
+                                               uiItemO(row, "Convert", 0, 
"OBJECT_OT_duplicates_make_real");
+                                       else if(psys->part->ren_as == 
PART_DRAW_PATH)
                                                uiItemO(row, "Convert", 0, 
"OBJECT_OT_modifier_convert");
                                }
                        }

Modified: trunk/blender/source/blender/editors/object/object_add.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_add.c    2010-01-26 
11:14:44 UTC (rev 26287)
+++ trunk/blender/source/blender/editors/object/object_add.c    2010-01-26 
11:15:45 UTC (rev 26288)
@@ -1152,7 +1152,6 @@
        ot->idname= "OBJECT_OT_duplicates_make_real";
        
        /* api callbacks */
-       ot->invoke= WM_operator_confirm;
        ot->exec= object_duplicates_make_real_exec;
        
        ot->poll= ED_operator_scene_editable;

Modified: trunk/blender/source/blender/editors/object/object_modifier.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_modifier.c       
2010-01-26 11:14:44 UTC (rev 26287)
+++ trunk/blender/source/blender/editors/object/object_modifier.c       
2010-01-26 11:15:45 UTC (rev 26288)
@@ -265,78 +265,73 @@
        psys=((ParticleSystemModifierData *)md)->psys;
        part= psys->part;
 
-       if(part->ren_as == PART_DRAW_GR || part->ren_as == PART_DRAW_OB) {
-               ; // XXX make_object_duplilist_real(NULL);
-       }
-       else {
-               if(part->ren_as != PART_DRAW_PATH || psys->pathcache == 0)
-                       return 0;
+       if(part->ren_as != PART_DRAW_PATH || psys->pathcache == 0)
+               return 0;
 
-               totpart= psys->totcached;
-               totchild= psys->totchildcache;
+       totpart= psys->totcached;
+       totchild= psys->totchildcache;
 
-               if(totchild && (part->draw&PART_DRAW_PARENT)==0)
-                       totpart= 0;
+       if(totchild && (part->draw&PART_DRAW_PARENT)==0)
+               totpart= 0;
 
-               /* count */
-               cache= psys->pathcache;
-               for(a=0; a<totpart; a++) {
-                       key= cache[a];
-                       totvert+= key->steps+1;
-                       totedge+= key->steps;
-               }
+       /* count */
+       cache= psys->pathcache;
+       for(a=0; a<totpart; a++) {
+               key= cache[a];
+               totvert+= key->steps+1;
+               totedge+= key->steps;
+       }
 
-               cache= psys->childcache;
-               for(a=0; a<totchild; a++) {
-                       key= cache[a];
-                       totvert+= key->steps+1;
-                       totedge+= key->steps;
-               }
+       cache= psys->childcache;
+       for(a=0; a<totchild; a++) {
+               key= cache[a];
+               totvert+= key->steps+1;
+               totedge+= key->steps;
+       }
 
-               if(totvert==0) return 0;
+       if(totvert==0) return 0;
 
-               /* add new mesh */
-               obn= add_object(scene, OB_MESH);
-               me= obn->data;
-               
-               me->totvert= totvert;
-               me->totedge= totedge;
-               
-               me->mvert= CustomData_add_layer(&me->vdata, CD_MVERT, 
CD_CALLOC, NULL, totvert);
-               me->medge= CustomData_add_layer(&me->edata, CD_MEDGE, 
CD_CALLOC, NULL, totedge);
-               me->mface= CustomData_add_layer(&me->fdata, CD_MFACE, 
CD_CALLOC, NULL, 0);
-               
-               mvert= me->mvert;
-               medge= me->medge;
+       /* add new mesh */
+       obn= add_object(scene, OB_MESH);
+       me= obn->data;
+       
+       me->totvert= totvert;
+       me->totedge= totedge;
+       
+       me->mvert= CustomData_add_layer(&me->vdata, CD_MVERT, CD_CALLOC, NULL, 
totvert);
+       me->medge= CustomData_add_layer(&me->edata, CD_MEDGE, CD_CALLOC, NULL, 
totedge);
+       me->mface= CustomData_add_layer(&me->fdata, CD_MFACE, CD_CALLOC, NULL, 
0);
+       
+       mvert= me->mvert;
+       medge= me->medge;
 
-               /* copy coordinates */
-               cache= psys->pathcache;
-               for(a=0; a<totpart; a++) {
-                       key= cache[a];
-                       kmax= key->steps;
-                       for(k=0; k<=kmax; k++,key++,cvert++,mvert++) {
-                               VECCOPY(mvert->co,key->co);
-                               if(k) {
-                                       medge->v1= cvert-1;
-                                       medge->v2= cvert;
-                                       medge->flag= 
ME_EDGEDRAW|ME_EDGERENDER|ME_LOOSEEDGE;
-                                       medge++;
-                               }
+       /* copy coordinates */
+       cache= psys->pathcache;
+       for(a=0; a<totpart; a++) {
+               key= cache[a];
+               kmax= key->steps;
+               for(k=0; k<=kmax; k++,key++,cvert++,mvert++) {
+                       VECCOPY(mvert->co,key->co);
+                       if(k) {
+                               medge->v1= cvert-1;
+                               medge->v2= cvert;
+                               medge->flag= 
ME_EDGEDRAW|ME_EDGERENDER|ME_LOOSEEDGE;
+                               medge++;
                        }
                }
+       }
 
-               cache=psys->childcache;
-               for(a=0; a<totchild; a++) {
-                       key=cache[a];
-                       kmax=key->steps;
-                       for(k=0; k<=kmax; k++,key++,cvert++,mvert++) {
-                               VECCOPY(mvert->co,key->co);
-                               if(k) {
-                                       medge->v1=cvert-1;
-                                       medge->v2=cvert;
-                                       medge->flag= 
ME_EDGEDRAW|ME_EDGERENDER|ME_LOOSEEDGE;
-                                       medge++;
-                               }
+       cache=psys->childcache;
+       for(a=0; a<totchild; a++) {
+               key=cache[a];
+               kmax=key->steps;
+               for(k=0; k<=kmax; k++,key++,cvert++,mvert++) {
+                       VECCOPY(mvert->co,key->co);
+                       if(k) {
+                               medge->v1=cvert-1;
+                               medge->v2=cvert;
+                               medge->flag= 
ME_EDGEDRAW|ME_EDGERENDER|ME_LOOSEEDGE;
+                               medge++;
                        }
                }
        }


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to