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

Ton Roosendaal ton at blender.org
Sat Jan 10 20:34:26 CET 2009


Revision: 18446
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18446
Author:   ton
Date:     2009-01-10 20:34:23 +0100 (Sat, 10 Jan 2009)

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

Instead of many commits, here 1!

- Constraint edit code back
- Removed XXX stubs for constraints
  (make parent follow path works)
- Removed XXX stubs for armature
  (make parent deform, do center, etc works)
- Found a bad uninitialized global Scene * in code, especially
  in kernel it wreaked havoc.
- added missing include in blenkernel/brush.c
- fixed Nicholas' fix for editmode subsurf crash
  (It needed to check for editmode)

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenkernel/BKE_armature.h
    branches/blender2.5/blender/source/blender/blenkernel/BKE_particle.h
    branches/blender2.5/blender/source/blender/blenkernel/BKE_pointcache.h
    branches/blender2.5/blender/source/blender/blenkernel/intern/armature.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/modifier.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/object.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/particle.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/particle_system.c
    branches/blender2.5/blender/source/blender/blenkernel/intern/softbody.c
    branches/blender2.5/blender/source/blender/editors/armature/editarmature.c
    branches/blender2.5/blender/source/blender/editors/include/ED_armature.h
    branches/blender2.5/blender/source/blender/editors/include/ED_mesh.h
    branches/blender2.5/blender/source/blender/editors/include/ED_object.h
    branches/blender2.5/blender/source/blender/editors/mesh/mesh_intern.h
    branches/blender2.5/blender/source/blender/editors/object/Makefile
    branches/blender2.5/blender/source/blender/editors/object/SConscript
    branches/blender2.5/blender/source/blender/editors/object/object_edit.c
    branches/blender2.5/blender/source/blender/editors/object/object_intern.h
    branches/blender2.5/blender/source/blender/python/intern/stubs.c

Added Paths:
-----------
    branches/blender2.5/blender/source/blender/editors/object/editconstraint.c

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_armature.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_armature.h	2009-01-10 18:33:16 UTC (rev 18445)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_armature.h	2009-01-10 19:34:23 UTC (rev 18446)
@@ -69,7 +69,9 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
+
 struct bArmature *add_armature(char *name);
+struct bArmature *get_armature(struct Object *ob);
 void free_boneChildren(struct Bone *bone);
 void free_bones (struct bArmature *arm);
 void unlink_armature(struct bArmature *arm);

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_particle.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_particle.h	2009-01-10 18:33:16 UTC (rev 18445)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_particle.h	2009-01-10 19:34:23 UTC (rev 18446)
@@ -152,6 +152,7 @@
 
 typedef struct ParticleThreadContext {
 	/* shared */
+	struct Scene *scene;
 	struct Object *ob;
 	struct DerivedMesh *dm;
 	struct ParticleSystemModifierData *psmd;
@@ -243,7 +244,7 @@
 
 void psys_cache_paths(struct Scene *scene, struct Object *ob, struct ParticleSystem *psys, float cfra, int editupdate);
 void psys_cache_child_paths(struct Scene *scene, struct Object *ob, struct ParticleSystem *psys, float cfra, int editupdate);
-int do_guide(struct ParticleKey *state, int pa_num, float time, struct ListBase *lb);
+int do_guide(struct Scene *scene, struct ParticleKey *state, int pa_num, float time, struct ListBase *lb);
 float psys_get_size(struct Object *ob, struct Material *ma, struct ParticleSystemModifierData *psmd, struct IpoCurve *icu_size, struct ParticleSystem *psys, struct ParticleSettings *part, struct ParticleData *pa, float *vg_size);
 float psys_get_timestep(struct ParticleSettings *part);
 float psys_get_child_time(struct ParticleSystem *psys, struct ChildParticle *cpa, float cfra);
@@ -294,9 +295,8 @@
 
 /* particle_system.c */
 void initialize_particle(struct ParticleData *pa, int p, struct Object *ob, struct ParticleSystem *psys, struct ParticleSystemModifierData *psmd);
-void reset_particle(struct ParticleData *pa, struct ParticleSystem *psys, struct ParticleSystemModifierData *psmd, struct Object *ob, float dtime, float cfra, float *vg_vel, float *vg_tan, float *vg_rot);
 
-void do_effectors(int pa_no, struct ParticleData *pa, struct ParticleKey *state, struct Object *ob, struct ParticleSystem *psys, float *texco, float *force_field, float *vel,float framestep, float cfra);
+void do_effectors(int pa_no, struct ParticleData *pa, struct ParticleKey *state, struct Scene *scene, struct Object *ob, struct ParticleSystem *psys, float *texco, float *force_field, float *vel,float framestep, float cfra);
 
 void psys_calc_dmcache(struct Object *ob, struct DerivedMesh *dm, struct ParticleSystem *psys);
 int psys_particle_dm_face_lookup(struct Object *ob, struct DerivedMesh *dm, int index, float *fw, struct LinkNode *node);

Modified: branches/blender2.5/blender/source/blender/blenkernel/BKE_pointcache.h
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/BKE_pointcache.h	2009-01-10 18:33:16 UTC (rev 18445)
+++ branches/blender2.5/blender/source/blender/blenkernel/BKE_pointcache.h	2009-01-10 19:34:23 UTC (rev 18446)
@@ -58,7 +58,7 @@
 
 /* Structs */
 struct Object;
-struct Scene *scene;
+struct Scene;
 struct SoftBody;
 struct ParticleSystem;
 struct ClothModifierData;

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/armature.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/armature.c	2009-01-10 18:33:16 UTC (rev 18445)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/armature.c	2009-01-10 19:34:23 UTC (rev 18446)
@@ -87,6 +87,12 @@
 	return arm;
 }
 
+bArmature *get_armature(Object *ob)
+{
+	if(ob->type==OB_ARMATURE)
+		return (bArmature *)ob->data;
+	return NULL;
+}
 
 void free_boneChildren(Bone *bone)
 { 

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c	2009-01-10 18:33:16 UTC (rev 18445)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/brush.c	2009-01-10 19:34:23 UTC (rev 18446)
@@ -41,6 +41,7 @@
 #include "BLI_blenlib.h"
 
 #include "BKE_brush.h"
+#include "BKE_colortools.h"
 #include "BKE_global.h"
 #include "BKE_library.h"
 #include "BKE_main.h"

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/modifier.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/modifier.c	2009-01-10 18:33:16 UTC (rev 18445)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/modifier.c	2009-01-10 19:34:23 UTC (rev 18446)
@@ -7318,7 +7318,7 @@
 				 if(emd->flag & eExplodeFlag_EdgeSplit){
 					 int *facepa = emd->facepa;
 					 DerivedMesh *splitdm=explodeModifier_splitEdges(emd,dm);
-					 DerivedMesh *explode=explodeModifier_explodeMesh(emd, psmd, scene, ob, splitdm);
+					 DerivedMesh *explode=explodeModifier_explodeMesh(emd, psmd, md->scene, ob, splitdm);
 
 					 MEM_freeN(emd->facepa);
 					 emd->facepa=facepa;
@@ -7326,7 +7326,7 @@
 					 return explode;
 				 }
 				 else
-					 return explodeModifier_explodeMesh(emd, psmd, scene, ob, derivedData);
+					 return explodeModifier_explodeMesh(emd, psmd, md->scene, ob, derivedData);
 	}
 	return derivedData;
 }

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/object.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/object.c	2009-01-10 18:33:16 UTC (rev 18445)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/object.c	2009-01-10 19:34:23 UTC (rev 18446)
@@ -117,7 +117,7 @@
 #include "GPU_material.h"
 
 /* Local function protos */
-static void solve_parenting (Object *ob, Object *par, float obmat[][4], float slowmat[][4], int simul);
+static void solve_parenting (Scene *scene, Object *ob, Object *par, float obmat[][4], float slowmat[][4], int simul);
 
 float originmat[3][3];	/* after where_is_object(), can be used in other functions (bad!) */
 
@@ -1847,7 +1847,7 @@
 			else where_is_object_time(scene, par, ctime);
 		}
 		
-		solve_parenting(ob, par, ob->obmat, slowmat, 0);
+		solve_parenting(scene, ob, par, ob->obmat, slowmat, 0);
 
 		if(pop) {
 			poplast(par);
@@ -1902,18 +1902,17 @@
 	else ob->transflag &= ~OB_NEG_SCALE;
 }
 
-static void solve_parenting (Object *ob, Object *par, float obmat[][4], float slowmat[][4], int simul)
+static void solve_parenting (Scene *scene, Object *ob, Object *par, float obmat[][4], float slowmat[][4], int simul)
 {
 	float totmat[4][4];
 	float tmat[4][4];
 	float locmat[4][4];
 	float vec[3];
 	int ok;
-
+	
 	object_to_mat4(ob, locmat);
 	
 	if(ob->partype & PARSLOW) Mat4CpyMat4(slowmat, obmat);
-	
 
 	switch(ob->partype & PARTYPE) {
 	case PAROBJECT:
@@ -2036,7 +2035,7 @@
 	if(ob->parent) {
 		par= ob->parent;
 		
-		solve_parenting(ob, par, ob->obmat, slowmat, 1);
+		solve_parenting(scene, ob, par, ob->obmat, slowmat, 1);
 
 		if(ob->partype & PARSLOW) {
 
@@ -2273,7 +2272,11 @@
 			
 			/* includes all keys and modifiers */
 			if(ob->type==OB_MESH) {
-				makeDerivedMesh(scene, ob, ((Mesh*)ob->data)->edit_mesh, CD_MASK_BAREMESH);	// here was vieweditdatamask? XXX
+					// here was vieweditdatamask? XXX
+				if(ob==scene->obedit)
+					makeDerivedMesh(scene, ob, ((Mesh*)ob->data)->edit_mesh, CD_MASK_BAREMESH);
+				else
+					makeDerivedMesh(scene, ob, NULL, CD_MASK_BAREMESH);
 			}
 			else if(ob->type==OB_MBALL) {
 				makeDispListMBall(scene, ob);

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/particle.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/particle.c	2009-01-10 18:33:16 UTC (rev 18445)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/particle.c	2009-01-10 19:34:23 UTC (rev 18446)
@@ -1408,6 +1408,7 @@
 	}
 	return 0.0;
 }
+
 static void do_prekink(ParticleKey *state, ParticleKey *par, float *par_rot, float time, float freq, float shape, float amplitude, short type, short axis, float obmat[][4])
 {
 	float vec[3]={0.0,0.0,0.0}, q1[4]={1,0,0,0},q2[4];
@@ -1542,6 +1543,7 @@
 			break;
 	}
 }
+
 static void do_clump(ParticleKey *state, ParticleKey *par, float time, float clumpfac, float clumppow, float pa_clump)
 {
 	if(par && clumpfac!=0.0){
@@ -1559,7 +1561,8 @@
 		VecLerpf(state->co,state->co,par->co,clump);
 	}
 }
-int do_guide(ParticleKey *state, int pa_num, float time, ListBase *lb)
+
+int do_guide(Scene *scene, ParticleKey *state, int pa_num, float time, ListBase *lb)
 {
 	PartDeflect *pd;
 	ParticleEffectorCache *ec;
@@ -1717,7 +1720,7 @@
 
 	VECADD(state->co,state->co,rough);
 }
-static void do_path_effectors(Object *ob, ParticleSystem *psys, int i, ParticleCacheKey *ca, int k, int steps, float *rootco, float effector, float dfra, float cfra, float *length, float *vec)
+static void do_path_effectors(Scene *scene, Object *ob, ParticleSystem *psys, int i, ParticleCacheKey *ca, int k, int steps, float *rootco, float effector, float dfra, float cfra, float *length, float *vec)
 {
 	float force[3] = {0.0f,0.0f,0.0f}, vel[3] = {0.0f,0.0f,0.0f};
 	ParticleKey eff_key;
@@ -1728,7 +1731,7 @@
 	QUATCOPY(eff_key.rot,(ca-1)->rot);
 
 	pa= psys->particles+i;
-	do_effectors(i, pa, &eff_key, ob, psys, rootco, force, vel, dfra, cfra);
+	do_effectors(i, pa, &eff_key, scene, ob, psys, rootco, force, vel, dfra, cfra);
 
 	VecMulf(force, effector*pow((float)k / (float)steps, 100.0f * psys->part->eff_hair) / (float)steps);
 
@@ -2117,7 +2120,7 @@
 	if(part->flag & PART_CHILD_EFFECT) {
 		for(k=0,state=keys; k<=ctx->steps; k++,state++) {
 			if(k) {
-				do_path_effectors(ob, psys, cpa->pa[0], state, k, ctx->steps, keys->co, pa_effector, 0.0f, ctx->cfra, &eff_length, eff_vec);
+				do_path_effectors(ctx->scene, ob, psys, cpa->pa[0], state, k, ctx->steps, keys->co, pa_effector, 0.0f, ctx->cfra, &eff_length, eff_vec);

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list