diff options
author | Martin Poirier <theeth@yahoo.com> | 2008-10-20 04:48:10 +0400 |
---|---|---|
committer | Martin Poirier <theeth@yahoo.com> | 2008-10-20 04:48:10 +0400 |
commit | a806c1eb7f53cca7c65775b7ce849d31c12902f9 (patch) | |
tree | f4554b9212dc021b6f932dd1093a66da30cbef26 /source/blender/blenkernel | |
parent | d16a8649ff6c2b65492a78eab80bcdbefa9dbe9d (diff) | |
parent | 90721f3f835fca7fed7dce99a2b7b447eba50e26 (diff) |
merge 16951:17122
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_blender.h | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/bullet.c | 1 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/collision.c | 18 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/displist.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/idprop.c | 5 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/image.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/key.c | 12 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/library.c | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/modifier.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/multires.c | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/particle_system.c | 2 |
11 files changed, 37 insertions, 19 deletions
diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index 421b4300c8a..1806fa18ea9 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -40,8 +40,8 @@ extern "C" { struct ListBase; struct MemFile; -#define BLENDER_VERSION 247 -#define BLENDER_SUBVERSION 10 +#define BLENDER_VERSION 248 +#define BLENDER_SUBVERSION 0 #define BLENDER_MINVERSION 245 #define BLENDER_MINSUBVERSION 15 diff --git a/source/blender/blenkernel/intern/bullet.c b/source/blender/blenkernel/intern/bullet.c index eeec4d0bd4e..b389f8c0536 100644 --- a/source/blender/blenkernel/intern/bullet.c +++ b/source/blender/blenkernel/intern/bullet.c @@ -78,6 +78,7 @@ BulletSoftBody *bsbNew(void) bsb->kSHR = 1.0f; bsb->kAHR = 0.7f; + bsb->collisionflags = 0; //bsb->collisionflags = OB_BSB_COL_CL_RS + OB_BSB_COL_CL_SS; bsb->numclusteriterations = 64; diff --git a/source/blender/blenkernel/intern/collision.c b/source/blender/blenkernel/intern/collision.c index b8f5b467c11..775f1dee241 100644 --- a/source/blender/blenkernel/intern/collision.c +++ b/source/blender/blenkernel/intern/collision.c @@ -1313,16 +1313,18 @@ CollisionModifierData **get_collisionobjects(Object *self, int *numcollobj) coll_ob = base->object; + if(coll_ob == self) + continue; + if(coll_ob->pd && coll_ob->pd->deflect) { collmd = ( CollisionModifierData * ) modifiers_findByType ( coll_ob, eModifierType_Collision ); } + else + collmd = NULL; if ( collmd ) - { - if(coll_ob == self) - continue; - + { if(numobj >= maxobj) { // realloc @@ -1351,16 +1353,18 @@ CollisionModifierData **get_collisionobjects(Object *self, int *numcollobj) coll_ob = go->ob; collmd = NULL; + if(coll_ob == self) + continue; + if(coll_ob->pd && coll_ob->pd->deflect) { collmd = ( CollisionModifierData * ) modifiers_findByType ( coll_ob, eModifierType_Collision ); } + else + collmd = NULL; if ( !collmd ) continue; - - if(coll_ob == self) - continue; if( !collmd->bvhtree) continue; diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c index bf17f0cecbc..3b6820461be 100644 --- a/source/blender/blenkernel/intern/displist.c +++ b/source/blender/blenkernel/intern/displist.c @@ -292,7 +292,7 @@ int surfindex_displist(DispList *dl, int a, int *b, int *p1, int *p2, int *p3, i (*b)= 1; } - if( (dl->flag & DL_CYCL_U) && a==dl->parts-1) { \ + if( (dl->flag & DL_CYCL_V) && a==dl->parts-1) { \ (*p3)-= dl->nr*dl->parts; \ (*p4)-= dl->nr*dl->parts; \ } diff --git a/source/blender/blenkernel/intern/idprop.c b/source/blender/blenkernel/intern/idprop.c index f83f66daa85..79ecbf09f55 100644 --- a/source/blender/blenkernel/intern/idprop.c +++ b/source/blender/blenkernel/intern/idprop.c @@ -352,7 +352,10 @@ IDProperty *IDP_GetProperties(ID *id, int create_if_needed) if (create_if_needed) { id->properties = MEM_callocN(sizeof(IDProperty), "IDProperty"); id->properties->type = IDP_GROUP; - strcpy(id->name, "top_level_group"); + /* dont overwite the data's name and type + * some functions might need this if they + * dont have a real ID, should be named elsewhere - Campbell */ + /* strcpy(id->name, "top_level_group");*/ } return id->properties; } diff --git a/source/blender/blenkernel/intern/image.c b/source/blender/blenkernel/intern/image.c index 18570515057..d5166fc7a83 100644 --- a/source/blender/blenkernel/intern/image.c +++ b/source/blender/blenkernel/intern/image.c @@ -1571,7 +1571,7 @@ static ImBuf *image_load_sequence_multilayer(Image *ima, ImageUser *iuser, int f ibuf->channels= rpass->channels; image_initialize_after_load(ima, ibuf); - image_assign_ibuf(ima, ibuf, iuser->multi_index, frame); + image_assign_ibuf(ima, ibuf, iuser?iuser->multi_index:0, frame); } // else printf("pass not found\n"); diff --git a/source/blender/blenkernel/intern/key.c b/source/blender/blenkernel/intern/key.c index dd6c7ddacd2..755a41ec4b2 100644 --- a/source/blender/blenkernel/intern/key.c +++ b/source/blender/blenkernel/intern/key.c @@ -284,10 +284,10 @@ void set_four_ipo(float d, float *data, int type) } else if(type==KEY_BSPLINE) { - data[0]= -0.1666f*d3 +0.5f*d2 -0.5f*d +0.16666f; - data[1]= 0.5f*d3 -d2 +0.6666f; - data[2]= -0.5f*d3 +0.5f*d2 +0.5f*d +0.1666f; - data[3]= 0.1666f*d3 ; + data[0]= -0.16666666f*d3 +0.5f*d2 -0.5f*d +0.16666666f; + data[1]= 0.5f*d3 -d2 +0.6666666f; + data[2]= -0.5f*d3 +0.5f*d2 +0.5f*d +0.16666666f; + data[3]= 0.16666666f*d3 ; } } } @@ -313,10 +313,10 @@ void set_afgeleide_four_ipo(float d, float *data, int type) } else if(type==KEY_BSPLINE) { - data[0]= -0.1666f*3.0f*d2 +d -0.5f; + data[0]= -0.16666666f*3.0f*d2 +d -0.5f; data[1]= 1.5f*d2 -2.0f*d; data[2]= -1.5f*d2 +d +0.5f; - data[3]= 0.1666f*3.0f*d2 ; + data[3]= 0.16666666f*3.0f*d2 ; } } } diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index c3dddf06e7c..3d1b342bf73 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -407,6 +407,10 @@ void *copy_libblock(void *rt) lb= wich_libbase(G.main, GS(id->name)); idn= alloc_libblock(lb, GS(id->name), id->name+2); + if(idn==NULL) { + printf("ERROR: Illegal ID name for %s (Crashing now)\n", id->name); + } + idn_len= MEM_allocN_len(idn); if(idn_len - sizeof(ID) > 0) { cp= (char *)id; diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index b9a60ca9329..13dc2e834f2 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -7759,6 +7759,8 @@ static void shrinkwrapModifier_copyData(ModifierData *md, ModifierData *target) tsmd->keepDist = smd->keepDist; tsmd->shrinkType= smd->shrinkType; tsmd->shrinkOpts= smd->shrinkOpts; + tsmd->projAxis = smd->projAxis; + tsmd->subsurfLevels = smd->subsurfLevels; } CustomDataMask shrinkwrapModifier_requiredDataMask(ModifierData *md) diff --git a/source/blender/blenkernel/intern/multires.c b/source/blender/blenkernel/intern/multires.c index 259a4e0de04..4d312632b1a 100644 --- a/source/blender/blenkernel/intern/multires.c +++ b/source/blender/blenkernel/intern/multires.c @@ -642,6 +642,10 @@ static void multires_update_vertices(Mesh *me, EditMesh *em) MultiApplyData data; int i, j; + /* XXX added this to prevent crash, but if it works? (ton) */ + if(me->mr->verts==NULL) + return; + /* Prepare deltas */ pr_deltas= MEM_callocN(sizeof(vec3f)*last_lvl->totvert, "multires deltas 1"); cr_deltas= MEM_callocN(sizeof(vec3f)*last_lvl->totvert, "multires deltas 2"); diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 4a4278a05f8..39226faff1e 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -3101,7 +3101,7 @@ static void deflect_particle(Object *pob, ParticleSystemModifierData *psmd, Part col.md = ( CollisionModifierData * ) ( modifiers_findByType ( ec->ob, eModifierType_Collision ) ); col.ob_t = ob; - if(col.md->bvhtree) + if(col.md && col.md->bvhtree) BLI_bvhtree_ray_cast(col.md->bvhtree, col.co1, ray_dir, radius, &hit, particle_intersect_face, &col); } } |