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