Hi, everyone,
I have a problem as follows. The snapshot of the code is
......
Transform3D currentTF = new Transform3D();
tg.getTransform(currentTF);
// tg is an instance of TransformGroup
Vector3d newVec = null;
... // other code for initializing newVec
// e.g. newVec = new Vector3d(0.1d, 0.2d, 0.3d);
// what I want to do is to set different scales for X,Y,Z
System.out.println("Operand vector=" + newVec);
Vector3d v3d = new Vector3d();
currentTF.getScale(v3d); // read the current scale
System.out.println("Old vector=" + v3d);
v3d.add(newVec);
Vector3d clampV3d = new Vector3d();
clampV3d.clamp(0.01d, 1.0d, v3d); // set up min and max
System.out.println("Result vector=" + clampV3d);
currentTF.setScale(clampV3d);
tg.setTransform(currentTF);
The above code was executed many times.
The problem I had is :
About once in 6 times (randomly), the scale read in from the Transform3D
is different from that was set last time. The 3 values for X, Y, and Z
were somehow
swapped as described below.
Operand vector=(0.1, 0.0, 0.0)
Old vector=(0.513342083279505, 0.3099999999999998, 0.3133420832795053)
Result vector=(0.613342083279505, 0.3099999999999998,
0.3133420832795053)
Operand vector=(0.1, 0.0, 0.0)
Old vector=(0.613342083279505, 0.3099999999999998, 0.3133420832795053)
//my comments. This time the vector3d is the same as expected
Result vector=(0.713342083279505, 0.3099999999999998,
0.3133420832795053)
Operand vector=(0.1, 0.0, 0.0)
Old vector=(0.3133420832795053, 0.7133420832795052, 0.30999999999999983)
//my comments, this time it is not correct. The values were swapped.
Result vector=(0.8133420832795052, 0.30999999999999983,
0.3133420832795053)
========
This error can be reproduced.
As I can see, the TransformGroup.setTransform() method was not
performing consistently. I wonder if this is a bug?
Did anyone see this before?
Thanks.
Hua Cao
--
Hua Cao
=====================================================================
To subscribe/unsubscribe, send mail to [EMAIL PROTECTED]
Java 3D Home Page: http://java.sun.com/products/java-media/3D/