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:
authorCampbell Barton <ideasman42@gmail.com>2009-09-07 12:37:28 +0400
committerCampbell Barton <ideasman42@gmail.com>2009-09-07 12:37:28 +0400
commit4cc908b6769cbb05e10c9c4d55c615a7faa3e83b (patch)
tree6b94738cf8161722f7aa31595333e2b6d8025b1c
parentd779410600de3061539c8c433c7a8c72cff022c0 (diff)
parentc9dd69c11a639aece463dac9018e88dede4b9515 (diff)
svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r23023:HEAD
-rw-r--r--source/blender/blenkernel/intern/curve.c18
-rw-r--r--source/blender/blenlib/BLI_arithb.h3
-rw-r--r--source/blender/blenlib/intern/arithb.c32
-rw-r--r--source/blender/imbuf/intern/anim5.c10
-rw-r--r--source/blender/makesdna/DNA_curve_types.h2
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. */