diff options
author | Campbell Barton <ideasman42@gmail.com> | 2009-09-07 12:37:28 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2009-09-07 12:37:28 +0400 |
commit | 4cc908b6769cbb05e10c9c4d55c615a7faa3e83b (patch) | |
tree | 6b94738cf8161722f7aa31595333e2b6d8025b1c | |
parent | d779410600de3061539c8c433c7a8c72cff022c0 (diff) | |
parent | c9dd69c11a639aece463dac9018e88dede4b9515 (diff) |
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r23023:HEAD
-rw-r--r-- | source/blender/blenkernel/intern/curve.c | 18 | ||||
-rw-r--r-- | source/blender/blenlib/BLI_arithb.h | 3 | ||||
-rw-r--r-- | source/blender/blenlib/intern/arithb.c | 32 | ||||
-rw-r--r-- | source/blender/imbuf/intern/anim5.c | 10 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_curve_types.h | 2 |
5 files changed, 44 insertions, 21 deletions
diff --git a/source/blender/blenkernel/intern/curve.c b/source/blender/blenkernel/intern/curve.c index 228523aa661..ca0d4a5fdc3 100644 --- a/source/blender/blenkernel/intern/curve.c +++ b/source/blender/blenkernel/intern/curve.c @@ -1820,14 +1820,14 @@ void makeBevelList(Object *ob) bl= blnext; } - /* STEP 3: COUNT POLYS TELLEN AND AUTOHOLE */ + /* STEP 3: POLYS COUNT AND AUTOHOLE */ bl= cu->bev.first; poly= 0; while(bl) { if(bl->nr && bl->poly>=0) { poly++; bl->poly= poly; - bl->gat= 0; /* 'gat' is dutch for hole */ + bl->hole= 0; } bl= bl->next; } @@ -1879,7 +1879,7 @@ void makeBevelList(Object *ob) sd1= sortdata+ (a-1); for(b=a-1; b>=0; b--, sd1--) { /* all polys to the left */ if(bevelinside(sd1->bl, bl)) { - bl->gat= 1- sd1->bl->gat; + bl->hole= 1- sd1->bl->hole; break; } } @@ -1889,7 +1889,7 @@ void makeBevelList(Object *ob) if((cu->flag & CU_3D)==0) { sd= sortdata; for(a=0; a<poly; a++, sd++) { - if(sd->bl->gat==sd->dir) { + if(sd->bl->hole==sd->dir) { bl= sd->bl; bevp1= (BevPoint *)(bl+1); bevp2= bevp1+ (bl->nr-1); @@ -1940,7 +1940,7 @@ void makeBevelList(Object *ob) } /* this has to be >2 points */ else if(cu->flag & CU_NO_TWIST && cu->flag & CU_3D && bl->poly != -1) { - /* Special case, cyclic curve with no twisy. tricky... */ + /* Special case, cyclic curve with no twist. tricky... */ float quat[4], q[4], cross[3]; @@ -1961,7 +1961,7 @@ void makeBevelList(Object *ob) while(nr--) { /* Normalizes */ - Vec3ToTangent(vec, &bevp0->x, &bevp1->x, &bevp2->x); + VecBisect3(vec, &bevp0->x, &bevp1->x, &bevp2->x); if(bl->nr==nr+1) { /* first time */ vectoquat(vec, 5, 1, quat); @@ -2013,7 +2013,7 @@ void makeBevelList(Object *ob) nr= bl->nr; while(nr--) { - Vec3ToTangent(vec, &bevp0->x, &bevp1->x, &bevp2->x); + VecBisect3(vec, &bevp0->x, &bevp1->x, &bevp2->x); quat_tmp1= (float *)bevp1->mat; quat_tmp2= quat_tmp1+4; @@ -2051,7 +2051,7 @@ void makeBevelList(Object *ob) if(cu->flag & CU_3D) { /* 3D */ /* Normalizes */ - Vec3ToTangent(vec, &bevp0->x, &bevp1->x, &bevp2->x); + VecBisect3(vec, &bevp0->x, &bevp1->x, &bevp2->x); if(bl->nr==nr+1 || !(cu->flag & CU_NO_TWIST)) { /* first time */ vectoquat(vec, 5, 1, quat); @@ -2070,7 +2070,7 @@ void makeBevelList(Object *ob) } QUATCOPY(quat_prev, quat); /* quat_prev can't have the tilt applied */ VECCOPY(vec_prev, vec); - + AxisAngleToQuat(q, vec, bevp1->alfa); QuatMul(quat, q, quat); QuatToMat3(quat, bevp1->mat); diff --git a/source/blender/blenlib/BLI_arithb.h b/source/blender/blenlib/BLI_arithb.h index 2ce4e8e268c..6deb6edf9fb 100644 --- a/source/blender/blenlib/BLI_arithb.h +++ b/source/blender/blenlib/BLI_arithb.h @@ -380,7 +380,8 @@ void AxisAngleToQuat(float *q, float *axis, float angle); void RotationBetweenVectorsToQuat(float *q, float v1[3], float v2[3]); void vectoquat(float *vec, short axis, short upflag, float *q); -void Vec3ToTangent(float *v, float *v1, float *v2, float *v3); +void VecReflect(float *out, float *v1, float *v2); +void VecBisect3(float *v, float *v1, float *v2, float *v3); float VecAngle2(float *v1, float *v2); float VecAngle3(float *v1, float *v2, float *v3); float NormalizedVecAngle2(float *v1, float *v2); diff --git a/source/blender/blenlib/intern/arithb.c b/source/blender/blenlib/intern/arithb.c index 55bdc32c4e9..96056ba7783 100644 --- a/source/blender/blenlib/intern/arithb.c +++ b/source/blender/blenlib/intern/arithb.c @@ -3374,17 +3374,39 @@ void VecRotToQuat(float *vec, float phi, float *quat) } } -/* get a direction from 3 vectors that wont depend - * on the distance between the points */ -void Vec3ToTangent(float *v, float *v1, float *v2, float *v3) +/* Returns a vector bisecting the angle at v2 formed by v1, v2 and v3 */ +void VecBisect3(float *out, float *v1, float *v2, float *v3) { float d_12[3], d_23[3]; VecSubf(d_12, v2, v1); VecSubf(d_23, v3, v2); Normalize(d_12); Normalize(d_23); - VecAddf(v, d_12, d_23); - Normalize(v); + VecAddf(out, d_12, d_23); + Normalize(out); +} + +/* Returns a reflection vector from a vector and a normal vector +reflect = vec - ((2 * DotVecs(vec, mirror)) * mirror) +*/ +void VecReflect(float *out, float *v1, float *v2) +{ + float vec[3], normal[3]; + float reflect[3] = {0.0f, 0.0f, 0.0f}; + float dot2; + + VecCopyf(vec, v1); + VecCopyf(normal, v2); + + Normalize(normal); + + dot2 = 2 * Inpf(vec, normal); + + reflect[0] = vec[0] - (dot2 * normal[0]); + reflect[1] = vec[1] - (dot2 * normal[1]); + reflect[2] = vec[2] - (dot2 * normal[2]); + + VecCopyf(out, reflect); } /* Return the angle in degrees between vecs 1-2 and 2-3 in degrees diff --git a/source/blender/imbuf/intern/anim5.c b/source/blender/imbuf/intern/anim5.c index 4fe4217cd2c..43a6b0d2c5d 100644 --- a/source/blender/imbuf/intern/anim5.c +++ b/source/blender/imbuf/intern/anim5.c @@ -210,12 +210,12 @@ static void anim5decode(struct ImBuf * ibuf, uchar * dlta) { int *ofspoint; uchar **planes; - /* samenstelling delta: - lijst met ofsets voor delta's per bitplane (ofspoint) - per kolom in delta (point) - aantal handelingen (noops) + /* composition delta: + list with ofsets for delta' s by bitplane (ofspoint) + by column in delta (point) + number of operations (noops) code - bijbehorende data + associated data ... ... */ diff --git a/source/blender/makesdna/DNA_curve_types.h b/source/blender/makesdna/DNA_curve_types.h index 3655c57558a..0466ea148fd 100644 --- a/source/blender/makesdna/DNA_curve_types.h +++ b/source/blender/makesdna/DNA_curve_types.h @@ -64,7 +64,7 @@ typedef struct Path { typedef struct BevList { struct BevList *next, *prev; int nr, flag; - short poly, gat; + short poly, hole; } BevList; /* These two Lines with # tell makesdna this struct can be excluded. */ |