Doug,
The only way to rearrange the children of the OrderedGroup is to do
attaches and reattaches of BranchGroups since I get an exception if I do
a "setChild(Node, index)" without the child being a BranchGroup. This
is from the Group.setChild() Javadoc:
"RestrictedAccessException - if this group node is part of live or
compiled scene graph and the child node being set is not a BranchGroup
node"
Since they are BranchGroups, I still get the overhead of doing
attach/detach with each child. My code for swapping children looks like
this:
in constructor...
{
...
empty = new BranchGroup();
empty.setCapability(BranchGroup.ALLOW_DETACH);
...
}
private void doReordering()
{
myBranch.detach(); // detach OrderedGroup from scene
// Call "swapBranches" as necessary
myParent.addChild( myBranch );
}
private void swapBranches(int a, int b)
{
BranchGroup b1 = (BranchGroup)myOrderedGroup.getChild( a );
BranchGroup b2 = (BranchGroup)myOrderedGroup.getChild( b );
myOrderedGroup.setChild( empty, a ); // I think this calls
b1.detach()
myOrderedGroup.setChild( b1, b );
myOrderedGroup.setChild( b2, a );
}
What do you think I can do? Is there a way to prevent my OrderedGroup
from being compiled so I don't have to use BranchGroups for the
children??
Thx
-Lee
> -----Original Message-----
> From: Doug Twilleager [mailto:[EMAIL PROTECTED]]
> Sent: Monday, April 23, 2001 1:23 PM
> To: [EMAIL PROTECTED]
> Subject: Re: [JAVA3D] Range ordering of transparent objects
<snip...>
> If you detach the branch graph which contains the
> OrderedGroup, rearrange
> the OrderedGroup, then reattach again, you will get better performance
> that attaching and reattaching the children of the
> OrderedGroup individually.
>
> Doug Twilleager
> Sun Microsystems
>
===========================================================================
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".