Can you give an example as to what case this fixes? On Fri, Jan 27, 2012 at 4:11 AM, Sv. Lockal <[email protected]> wrote: > Revision: 43733 > > http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43733 > Author: lockal > Date: 2012-01-26 17:11:43 +0000 (Thu, 26 Jan 2012) > Log Message: > ----------- > Fix orthogonality check for mat3 and mat4 > > Modified Paths: > -------------- > trunk/blender/source/blender/blenlib/intern/math_matrix.c > > Modified: trunk/blender/source/blender/blenlib/intern/math_matrix.c > =================================================================== > --- trunk/blender/source/blender/blenlib/intern/math_matrix.c 2012-01-26 > 17:03:30 UTC (rev 43732) > +++ trunk/blender/source/blender/blenlib/intern/math_matrix.c 2012-01-26 > 17:11:43 UTC (rev 43733) > @@ -778,32 +778,38 @@ > mul_v3_fl(mat[2], size[2]); > } > > -int is_orthogonal_m3(float mat[][3]) > +int is_orthogonal_m3(float m[][3]) > { > - if (fabsf(dot_v3v3(mat[0], mat[1])) > 1.5f * FLT_EPSILON) > - return 0; > + int i, j; > > - if (fabsf(dot_v3v3(mat[1], mat[2])) > 1.5f * FLT_EPSILON) > - return 0; > + for (i = 0; i < 3; i++) { > + for (j = 0; j < i; j++) { > + if (fabsf(dot_v3v3(m[i], m[j])) > 1.5f * FLT_EPSILON) > + return 0; > + } > > - if (fabsf(dot_v3v3(mat[0], mat[2])) > 1.5f * FLT_EPSILON) > - return 0; > - > - return 1; > + if (fabsf(dot_v3v3(m[i], m[i]) - 1) > 1.5f * FLT_EPSILON) > + return 0; > + } > + > + return 1; > } > > -int is_orthogonal_m4(float mat[][4]) > +int is_orthogonal_m4(float m[][4]) > { > - if (fabsf(dot_v3v3(mat[0], mat[1])) > 1.5f * FLT_EPSILON) > - return 0; > + int i, j; > > - if (fabsf(dot_v3v3(mat[1], mat[2])) > 1.5f * FLT_EPSILON) > - return 0; > + for (i = 0; i < 4; i++) { > + for (j = 0; j < i; j++) { > + if (fabsf(dot_vn_vn(m[i], m[j], 4)) > 1.5f * FLT_EPSILON) > + return 0; > + } > > - if (fabsf(dot_v3v3(mat[0], mat[2])) > 1.5f * FLT_EPSILON) > - return 0; > - > - return 1; > + if (fabsf(dot_vn_vn(m[i], m[i], 4) - 1) > 1.5f * FLT_EPSILON) > + return 0; > + } > + > + return 1; > } > > void normalize_m3(float mat[][3]) > > _______________________________________________ > Bf-blender-cvs mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-blender-cvs
-- - Campbell _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
