Hi Tianlan,

Could you provide a small example that illustrates the problem?

I did a quick test of:

        osg::Matrixd matrix = osg::Matrixd::scale(3.0,4.0,1.0);
        OSG_NOTICE<<"Matrixd.getScale() = "<<matrix.getScale()<<std::endl;

And this works.  I will need to have a think about a more complex
scale set up before I can judge what it should be.

Robert.

On 15 April 2014 16:43, Tianlan Shao <shaotianlan...@gmail.com> wrote:
> Dear all,
> The following code in the header file MatrixD looks very suspicious to me:
>
> inline Vec3d getScale() const {
>           Vec3d x_vec(_mat[0][0],_mat[1][0],_mat[2][0]);
>           Vec3d y_vec(_mat[0][1],_mat[1][1],_mat[2][1]);
>           Vec3d z_vec(_mat[0][2],_mat[1][2],_mat[2][2]);
>           return Vec3d(x_vec.length(), y_vec.length(), z_vec.length());
>         }
>
> Shouldn't the index order be the other way around? I mean it should be
>
> inline Vec3d getScale() const {
>           Vec3d x_vec(_mat[0][0],_mat[0][1],_mat[0][2]);
>           Vec3d y_vec(_mat[1][0],_mat[1][1],_mat[1][2]);
>           Vec3d z_vec(_mat[2][0],_mat[2][1],_mat[2][2]);
>           return Vec3d(x_vec.length(), y_vec.length(), z_vec.length());
>         }
>
> The behaviour of my program was strange before I fix this problem. I'm not
> 100% percent sure, but since it's of fundamental importance, I still decided
> to report.
>
> Best regards,
> Tianlan Shao
>
>
> _______________________________________________
> osg-users mailing list
> osg-users@lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
_______________________________________________
osg-users mailing list
osg-users@lists.openscenegraph.org
http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org

Reply via email to