Hi Jim, > >3. When a Shape3D is removed from a live tree in J3D 1.1.3 and earlier it can >then be modified. In all versions of J3D 1.2, Java throws an exception claiming >that the Shape3D is still live. A go-around is to place the Shape3D in a >BranchGroup >before adding it to the tree, and then removing the BranchGroup from the tree. >This appears to work, but why is it necessary? It is hard to tell what is >causing >the performance problem (above) but this may be part of it. > Which API do you use to remove Shape3D from a live tree ? Currently using setChild() to replace the old Shape3D and use BranchGroup.detach() should reset the Shape3D status to non-live. > >4. Behaviors use SUBSTANTIAL CPU TIME when they should be idle. For example, >when a RotationInterpolator is added to a live tree CPU usage goes to >nearly 100% >on a very fast Wintel machine even though the RotationInterpolator is disabled, >and therefore should not be doing anything. Under J3D 1.1.3 and earlier, >CPU is 0% >under this circumstance. > A bug 4338168 is submit and we will consider checking for the disable flag in order not to activate behavior scheduler next time. A workaround is to detach the branch contain the behaviors instead of disable it. Note that if you implement you own RotationInterpolator, using a passive WakeupOnElapsedFrames condition should solve the problem. public WakeupOnElapsedFrames(int frameCount, boolean passive) Thanks for your bug report. - Kelvin --------------- Java 3D Team Sun Microsystems Inc. =========================================================================== 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".
