I found that the RotPosScaleTCBSplinePathInterpolator in the Sun
j3dutils did not support non-uniform scaling.  Can the guys at Sun fix
this by the next release?  I changed all of 3 lines of code and got it
to work... at least it "looks" right.

            // TODO: Vijay - Handle Non-Uniform scale
            // Currently this interpolator does not handle non uniform
scale
            // We cheat by just taking the x scale component
//          sMat.set((double)iScale.x);    // LEED: commented this out.
            tMat.set(iQuat);
//          tMat.mul(sMat);  // LEED commented this out

            // Set the translation components.
            tMat.m03 = iPos.x;
            tMat.m13 = iPos.y;
            tMat.m23 = iPos.z;
            rotation.set(tMat);

            // construct a Transform3D from:  axis * rotation *
axisInverse
            temp.mul(axis, rotation);
            temp.setScale(new Vector3d(iScale));  // LEED: set the
non-uniform scale here!
            temp.mul(temp, axisInverse);
            target.setTransform(temp);

Or is there something inherently wrong with my fix that I did not see
with my example usage of this interpolator?  Have to admit I didn't sit
down with the math... just tried my first guess and it looked good.

J. Lee Dixon
Software Engineer
SAIC - Celebration, FL
[EMAIL PROTECTED]

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff JAVA3D-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to