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".

Reply via email to