X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fanimation.cpp;h=b1d639e7c957dbffb3ce73f43256be5e0ba52c8a;hb=fa5b232a16e11d7950e80764497f0167ec9e3b41;hp=c0b508180b0da9f8676cd12e6f5c74a4a77cede1;hpb=2b779717e42b514210f7128cf9aee2276650e003;p=libs%2Fgl.git diff --git a/source/animation.cpp b/source/animation.cpp index c0b50818..b1d639e7 100644 --- a/source/animation.cpp +++ b/source/animation.cpp @@ -59,12 +59,12 @@ Animation::AxisInterpolation::AxisInterpolation(): scale(0) { } -Animation::AxisInterpolation::AxisInterpolation(const double *axis1, const double *axis2) +Animation::AxisInterpolation::AxisInterpolation(const float *axis1, const float *axis2) { // Compute a normalized vector halfway between the two endpoints - double half[3]; - double a1_len = 0; - double h_len = 0; + float half[3]; + float a1_len = 0; + float h_len = 0; for(unsigned i=0; i<3; ++i) { half[i] = (axis1[i]+axis2[i])/2; @@ -73,8 +73,8 @@ Animation::AxisInterpolation::AxisInterpolation(const double *axis1, const doubl } // Compute correction factors for smooth interpolation - double cos_half = (axis1[0]*half[0]+axis1[1]*half[1]+axis1[2]*half[2])/sqrt(a1_len*h_len); - double angle = acos(cos_half); + float cos_half = (axis1[0]*half[0]+axis1[1]*half[1]+axis1[2]*half[2])/sqrt(a1_len*h_len); + float angle = acos(cos_half); slope = (angle ? angle/tan(angle) : 1); scale = cos_half; } @@ -89,8 +89,8 @@ Animation::MatrixInterpolation::MatrixInterpolation(const Matrix &m1, const Matr matrix1(&m1), matrix2(&m2) { - const double *m1_data = matrix1->data(); - const double *m2_data = matrix2->data(); + const float *m1_data = matrix1->data(); + const float *m2_data = matrix2->data(); for(unsigned i=0; i<3; ++i) axes[i] = AxisInterpolation(m1_data+i*4, m2_data+i*4); } @@ -99,12 +99,12 @@ Matrix Animation::MatrixInterpolation::get(float t) const { float u = t*2.0f-1.0f; - double matrix[16]; + float matrix[16]; for(unsigned i=0; i<4; ++i) { - const double *m1_col = matrix1->data()+i*4; - const double *m2_col = matrix2->data()+i*4; - double *out_col = matrix+i*4; + const float *m1_col = matrix1->data()+i*4; + const float *m2_col = matrix2->data()+i*4; + float *out_col = matrix+i*4; if(i<3) {