[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [26288] trunk/blender/source/blender/ editors: Fix #20803: convert button in particle modifier didn't work
Brecht Van Lommel
brecht at blender.org
Tue Jan 26 12:15:46 CET 2010
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++;
}
}
}
More information about the Bf-blender-cvs
mailing list