Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2010-03-30 22:10:05 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2010-03-30 22:10:05 +0400
commit0d19b4167c7369cdf760a9d94298cbd08afdb558 (patch)
treec88f912a54fb674059b13374c6cefa54551350c8 /source/blender/blenkernel/intern/displist.c
parentd0f8d9f38cfffaa5117930f7724bddf3d4c68d72 (diff)
- Call DAG_id_flush_update for each object in convert operator if keep_original
option is switched off. This fixes trouble when user converts curve which is set as taper/bevel object to mesh (scene kept unchanged until object recalculation). - Moved checking of taper/bevel objects type to RNA property update handlers. - Added resetting taper/bevel object in do_makeDispListCurveTypes it this objects aren't curves.
Diffstat (limited to 'source/blender/blenkernel/intern/displist.c')
-rw-r--r--source/blender/blenkernel/intern/displist.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c
index 4defa0e53a1..c65fac7d474 100644
--- a/source/blender/blenkernel/intern/displist.c
+++ b/source/blender/blenkernel/intern/displist.c
@@ -1657,6 +1657,15 @@ static void do_makeDispListCurveTypes(Scene *scene, Object *ob, ListBase *dispba
float (*deformedVerts)[3];
int numVerts;
+ /* Bevel and taper objects should always be curves */
+ if (cu->bevobj && cu->bevobj->type != OB_CURVE) {
+ cu->bevobj = NULL;
+ }
+
+ if (cu->taperobj && cu->taperobj->type != OB_CURVE) {
+ cu->taperobj = NULL;
+ }
+
if(cu->editnurb)
nubase= cu->editnurb;
else
@@ -1755,10 +1764,8 @@ static void do_makeDispListCurveTypes(Scene *scene, Object *ob, ListBase *dispba
bevp= (BevPoint *)(bl+1);
for(a=0; a<bl->nr; a++,bevp++) {
float fac=1.0;
- if (cu->taperobj==NULL ||
- cu->taperobj->type != OB_CURVE || cu->taperobj == ob) {
- if ( (cu->bevobj!=NULL && cu->bevobj->type == OB_CURVE) ||
- !((cu->flag & CU_FRONT) || (cu->flag & CU_BACK)) )
+ if (cu->taperobj==NULL) {
+ if ( (cu->bevobj!=NULL) || !((cu->flag & CU_FRONT) || (cu->flag & CU_BACK)) )
fac = bevp->radius;
} else {
fac = calc_taper(scene, cu->taperobj, a, bl->nr);