[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22491] branches/blender2.5/blender/source /blender: 2.5/Particle edit:

Nicholas Bishop nicholasbishop at gmail.com
Sun Aug 16 04:35:46 CEST 2009


Revision: 22491
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22491
Author:   nicholasbishop
Date:     2009-08-16 04:35:44 +0200 (Sun, 16 Aug 2009)

Log Message:
-----------
2.5/Particle edit:

* Made particle edit object-localized.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h
    branches/blender2.5/blender/source/blender/blenkernel/intern/DerivedMesh.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/context.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/particle.c
    branches/blender2.5/blender/source/blender/editors/armature/poseobject.c
    branches/blender2.5/blender/source/blender/editors/include/ED_view3d.h
    branches/blender2.5/blender/source/blender/editors/interface/interface_templates.c
    branches/blender2.5/blender/source/blender/editors/object/object_edit.c
    branches/blender2.5/blender/source/blender/editors/object/object_modifier.c
    branches/blender2.5/blender/source/blender/editors/physics/editparticle.c
    branches/blender2.5/blender/source/blender/editors/screen/screen_context.c
    branches/blender2.5/blender/source/blender/editors/space_outliner/outliner.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/drawobject.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_buttons.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_draw.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_edit.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_header.c
    branches/blender2.5/blender/source/blender/editors/space_view3d/view3d_select.c
    branches/blender2.5/blender/source/blender/editors/transform/transform_conversions.c
    branches/blender2.5/blender/source/blender/editors/transform/transform_generics.c
    branches/blender2.5/blender/source/blender/editors/transform/transform_manipulator.c
    branches/blender2.5/blender/source/blender/editors/transform/transform_orientations.c
    branches/blender2.5/blender/source/blender/editors/util/undo.c
    branches/blender2.5/blender/source/blender/makesdna/DNA_object_types.h

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h	2009-08-16 02:21:43 UTC (rev 22490)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_global.h	2009-08-16 02:35:44 UTC (rev 22491)
@@ -118,8 +118,6 @@
 /* #define G_NOFROZEN	(1 << 17) also removed */
 #define G_GREASEPENCIL 	(1 << 17)
 
-#define G_PARTICLEEDIT	(1 << 30)
-
 /* #define G_AUTOMATKEYS	(1 << 30)   also removed */
 #define G_HIDDENHANDLES (1 << 31) /* used for curves only */
 

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/DerivedMesh.c	2009-08-16 02:21:43 UTC (rev 22490)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/DerivedMesh.c	2009-08-16 02:35:44 UTC (rev 22491)
@@ -2077,7 +2077,7 @@
 static void mesh_build_data(Scene *scene, Object *ob, CustomDataMask dataMask)
 {
 	Object *obact = scene->basact?scene->basact->object:NULL;
-	int editing = paint_facesel_test(ob)|(G.f & G_PARTICLEEDIT);
+	int editing = paint_facesel_test(ob)|(ob && ob->mode & OB_MODE_PARTICLE_EDIT);
 	int needMapping = editing && (ob==obact);
 	float min[3], max[3];
 	

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c	2009-08-16 02:21:43 UTC (rev 22490)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/blender.c	2009-08-16 02:35:44 UTC (rev 22491)
@@ -226,7 +226,7 @@
 
 	G.main= NULL;
 	
-	G.f &= ~(G_FACESELECT + G_PARTICLEEDIT);
+	G.f &= ~(G_FACESELECT);
 }
 
 /* make sure path names are correct for OS */

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/context.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/context.c	2009-08-16 02:21:43 UTC (rev 22490)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/context.c	2009-08-16 02:35:44 UTC (rev 22491)
@@ -692,8 +692,8 @@
 			else if(ob->mode & OB_MODE_WEIGHT_PAINT) return "weightpaint";
 			else if(ob->mode & OB_MODE_VERTEX_PAINT) return "vertexpaint";
 			else if(ob->mode & OB_MODE_TEXTURE_PAINT) return "texturepaint";
+			else if(ob->mode & OB_MODE_PARTICLE_EDIT) return "particlemode";
 		}
-		else if(G.f & G_PARTICLEEDIT) return "particlemode";
 	}
 	
 	return "objectmode";

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/particle.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/particle.c	2009-08-16 02:21:43 UTC (rev 22490)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/particle.c	2009-08-16 02:35:44 UTC (rev 22491)
@@ -321,7 +321,7 @@
 }
 int psys_in_edit_mode(Scene *scene, ParticleSystem *psys)
 {
-	return ((G.f & G_PARTICLEEDIT) && psys==psys_get_current((scene->basact)->object) && psys->edit);
+	return ((scene->basact->object->mode & OB_MODE_PARTICLE_EDIT) && psys==psys_get_current((scene->basact)->object) && psys->edit);
 }
 int psys_check_enabled(Object *ob, ParticleSystem *psys)
 {
@@ -431,9 +431,6 @@
 		int nr = 0;
 		ParticleSystem * tpsys;
 		
-		if(ob->particlesystem.first == NULL && G.f & G_PARTICLEEDIT)
-			G.f &= ~G_PARTICLEEDIT;
-
 		psys_free_path_cache(psys);
 
 		free_hair(psys, 1);

Modified: branches/blender2.5/blender/source/blender/editors/armature/poseobject.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/armature/poseobject.c	2009-08-16 02:21:43 UTC (rev 22490)
+++ branches/blender2.5/blender/source/blender/editors/armature/poseobject.c	2009-08-16 02:35:44 UTC (rev 22491)
@@ -135,7 +135,7 @@
 		default:
 			return;
 	}
-	ED_view3d_exit_paint_modes(C);
+
 	ED_object_toggle_modes(C, ob->mode);
 }
 

Modified: branches/blender2.5/blender/source/blender/editors/include/ED_view3d.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/ED_view3d.h	2009-08-16 02:21:43 UTC (rev 22490)
+++ branches/blender2.5/blender/source/blender/editors/include/ED_view3d.h	2009-08-16 02:35:44 UTC (rev 22491)
@@ -130,9 +130,6 @@
 int lasso_inside(short mcords[][2], short moves, short sx, short sy);
 int lasso_inside_edge(short mcords[][2], short moves, int x0, int y0, int x1, int y1);
 
-/* modes */
-int ED_view3d_exit_paint_modes(struct bContext *C);
-void ED_view3d_restore_paint_modes(struct bContext *C, int);
 /* get 3d region from context, also if mouse is in header or toolbar */
 struct RegionView3D *ED_view3d_context_rv3d(struct bContext *C);
 

Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_templates.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_templates.c	2009-08-16 02:21:43 UTC (rev 22490)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_templates.c	2009-08-16 02:35:44 UTC (rev 22491)
@@ -483,7 +483,7 @@
 			if(md->type==eModifierType_ParticleSystem) {
 		    	ParticleSystem *psys= ((ParticleSystemModifierData *)md)->psys;
 
-	    		if(!(G.f & G_PARTICLEEDIT))
+	    		if(!(ob->mode & OB_MODE_PARTICLE_EDIT))
 					if(ELEM3(psys->part->ren_as, PART_DRAW_PATH, PART_DRAW_GR, PART_DRAW_OB) && psys->pathcache)
 						uiItemO(row, "Convert", 0, "OBJECT_OT_modifier_convert");
 			}

Modified: branches/blender2.5/blender/source/blender/editors/object/object_edit.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/object/object_edit.c	2009-08-16 02:21:43 UTC (rev 22490)
+++ branches/blender2.5/blender/source/blender/editors/object/object_edit.c	2009-08-16 02:35:44 UTC (rev 22491)
@@ -178,10 +178,6 @@
 	Scene *scene= CTX_data_scene(C);
 	Base *tbase;
 	
-	/* activating a non-mesh, should end a couple of modes... */
-	if(base && base->object->type!=OB_MESH)
-		ED_view3d_exit_paint_modes(C);
-	
 	/* sets scene->basact */
 	BASACT= base;
 	
@@ -273,9 +269,6 @@
 	Scene *scene= CTX_data_scene(C);
 	Object *ob;
 	
-	/* XXX hrms, this is editor level operator, remove? */
-	ED_view3d_exit_paint_modes(C);
-	
 	/* for as long scene has editmode... */
 	if (CTX_data_edit_object(C)) 
 		ED_object_exit_editmode(C, EM_FREEDATA|EM_FREEUNDO|EM_WAITCURSOR); /* freedata, and undo */
@@ -752,8 +745,6 @@
 	if(CTX_data_edit_object(C)) 
 		return OPERATOR_CANCELLED;
 	
-	ED_view3d_exit_paint_modes(C);
-
 	CTX_DATA_BEGIN(C, Base*, base, selected_editable_bases) {
 
 		if(base->object->type==OB_LAMP) islamp= 1;
@@ -3776,7 +3767,6 @@
 	if(flag & EM_WAITCURSOR) waitcursor(1);
 
 	ob->restore_mode = ob->mode;
-	ED_view3d_exit_paint_modes(C);
 	ED_object_toggle_modes(C, ob->mode);
 	
 	if(ob->type==OB_MESH) {
@@ -4188,7 +4178,7 @@
 // XXX					pose_adds_vgroups(ob, (nr == 2));
 			}
 		}
-		else if(G.f & G_PARTICLEEDIT) {
+		else if(ob->mode & OB_MODE_PARTICLE_EDIT) {
 #if 0
 			// XXX
 			ParticleSystem *psys = PE_get_current(ob);
@@ -7048,4 +7038,6 @@
 		WM_operator_name_call(C, "PAINT_OT_weight_paint_toggle", WM_OP_EXEC_REGION_WIN, NULL);
 	if(mode & OB_MODE_TEXTURE_PAINT)
 		WM_operator_name_call(C, "PAINT_OT_texture_paint_toggle", WM_OP_EXEC_REGION_WIN, NULL);
+	if(mode & OB_MODE_PARTICLE_EDIT)
+		WM_operator_name_call(C, "PARTICLE_OT_particle_edit_toggle", WM_OP_EXEC_REGION_WIN, NULL);
 }

Modified: branches/blender2.5/blender/source/blender/editors/object/object_modifier.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/object/object_modifier.c	2009-08-16 02:21:43 UTC (rev 22490)
+++ branches/blender2.5/blender/source/blender/editors/object/object_modifier.c	2009-08-16 02:35:44 UTC (rev 22491)
@@ -226,7 +226,7 @@
 	int totpart=0, totchild=0;
 
 	if(md->type != eModifierType_ParticleSystem) return 0;
-	if(G.f & G_PARTICLEEDIT) return 0;
+	if(ob && ob->mode & OB_MODE_PARTICLE_EDIT) return 0;
 
 	psys=((ParticleSystemModifierData *)md)->psys;
 	part= psys->part;

Modified: branches/blender2.5/blender/source/blender/editors/physics/editparticle.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/physics/editparticle.c	2009-08-16 02:21:43 UTC (rev 22490)
+++ branches/blender2.5/blender/source/blender/editors/physics/editparticle.c	2009-08-16 02:35:44 UTC (rev 22491)
@@ -104,21 +104,12 @@
 	
 	psys= PE_get_current(scene, ob);
 
-	return (psys && psys->edit && (G.f & G_PARTICLEEDIT));
+	return (psys && psys->edit && (ob && ob->mode & OB_MODE_PARTICLE_EDIT));
 }
 
 static int PE_poll_3dview(bContext *C)
 {
-	Scene *scene= CTX_data_scene(C);
-	Object *ob= CTX_data_active_object(C);
-	ParticleSystem *psys;
-
-	if(!scene || !ob || !CTX_wm_region_view3d(C))
-		return 0;
-	
-	psys= PE_get_current(scene, ob);
-
-	return (psys && psys->edit && (G.f & G_PARTICLEEDIT));
+	return PE_poll(C) && CTX_wm_region_view3d(C);
 }
 
 static void PE_free_particle_edit(ParticleSystem *psys)
@@ -164,7 +155,7 @@
 
 int PE_can_edit(ParticleSystem *psys)
 {
-	return (psys && psys->edit && (G.f & G_PARTICLEEDIT));
+	return (psys && psys->edit);
 }
 
 ParticleEditSettings *PE_settings(Scene *scene)
@@ -194,7 +185,7 @@
 
 	/* this happens when Blender is started with particle
 	 * edit mode enabled XXX there's a draw error then? */
-	if(psys && psys_check_enabled(ob, psys) && (ob == OBACT) && (G.f & G_PARTICLEEDIT))
+	if(psys && psys_check_enabled(ob, psys) && (ob == OBACT) && (ob->mode & OB_MODE_PARTICLE_EDIT))
 		if(psys->part->type == PART_HAIR && psys->flag & PSYS_EDITED)
 			if(psys->edit == NULL)
 				PE_create_particle_edit(scene, ob, psys);
@@ -3710,7 +3701,7 @@
 		psys->flag |= PSYS_CURRENT;
 	}
 
-	if(!(G.f & G_PARTICLEEDIT)) {
+	if(!(ob->mode & OB_MODE_PARTICLE_EDIT)) {
 		if(psys && psys->part->type == PART_HAIR && psys->flag & PSYS_EDITED) {
 			if(psys_check_enabled(ob, psys)) {
 				if(psys->edit==NULL)
@@ -3720,12 +3711,12 @@
 			}
 		}
 
-		G.f |= G_PARTICLEEDIT;
+		ob->mode |= OB_MODE_PARTICLE_EDIT;
 		toggle_particle_cursor(C, 1);

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list