[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12694] trunk/blender/source/blender:

Brecht Van Lommel brechtvanlommel at pandora.be
Tue Nov 27 17:16:47 CET 2007


Revision: 12694
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12694
Author:   blendix
Date:     2007-11-27 17:16:47 +0100 (Tue, 27 Nov 2007)

Log Message:
-----------

Particles
=========

- Fix for bug in emission from vertices.
- Fix for undo/redo refresh glitch.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/particle.c
    trunk/blender/source/blender/blenloader/intern/readfile.c

Modified: trunk/blender/source/blender/blenkernel/intern/particle.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/particle.c	2007-11-27 14:12:56 UTC (rev 12693)
+++ trunk/blender/source/blender/blenkernel/intern/particle.c	2007-11-27 16:16:47 UTC (rev 12694)
@@ -645,12 +645,12 @@
 		/* this works for meshes with deform verts only - constructive modifiers wont work properly*/
 		float temp1[3];
 
-		if(index >= dm->getNumFaces(dm)) {
-			PARTICLE_ERROR(nor, vec);
-			return;
-		}
-
 		if(from == PART_FROM_VERT) {
+			if(index >= dm->getNumVerts(dm)) {
+				PARTICLE_ERROR(nor, vec);
+				return;
+			}
+	
 			dm->getVertCo(dm,index,vec);
 			if(nor){
 				dm->getVertNo(dm,index,nor);
@@ -658,11 +658,20 @@
 			}
 		}
 		else { /* PART_FROM_FACE / PART_FROM_VOLUME */
-			MFace *mface=dm->getFaceData(dm,index,CD_MFACE);
+			MFace *mface;
 			MTFace *mtface=0;
-			MVert *mvert=dm->getVertDataArray(dm,CD_MVERT);
-			int uv_index=CustomData_get_active_layer_index(&dm->faceData,CD_MTFACE);
+			MVert *mvert;
+			int uv_index;
 
+			if(index >= dm->getNumFaces(dm)) {
+				PARTICLE_ERROR(nor, vec);
+				return;
+			}
+			
+			mface=dm->getFaceData(dm,index,CD_MFACE);
+			mvert=dm->getVertDataArray(dm,CD_MVERT);
+			uv_index=CustomData_get_active_layer_index(&dm->faceData,CD_MTFACE);
+
 			if(uv_index>=0){
 				CustomDataLayer *layer=&dm->faceData.layers[uv_index];
 				mtface= &((MTFace*)layer->data)[index];

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2007-11-27 14:12:56 UTC (rev 12693)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2007-11-27 16:16:47 UTC (rev 12694)
@@ -2975,7 +2975,7 @@
 
 			psmd->dm=0;
 			psmd->psys=newdataadr(fd, psmd->psys);
-			psmd->flag|=eParticleSystemFlag_Loaded;
+			psmd->flag &= ~eParticleSystemFlag_psys_updated;
 		} else if (md->type==eModifierType_Explode) {
 			ExplodeModifierData *psmd = (ExplodeModifierData*) md;
 





More information about the Bf-blender-cvs mailing list