[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