Hi Chris,
I do not know, if this solves your problem,
I am detaching and attaching several light BranchGroups in my scene due to
user interaction. I have for each light direction one BranchGroup which I
am detaching and attaching.
DirectionalLight
northWest,northEast,south,southWest,southEast,west,east;
DirectionalLight zenith;
BranchGroup zenithBg,northWestBg,northEastBg,southBg,southWestBg;
BranchGroup southEastBg,westBg,eastBg;
I am instanciating them in the constructor:
northWestBg = new BranchGroup();
northWestBg.setCapability(BranchGroup.ALLOW_DETACH);
northWest = new DirectionalLight(new Color3f(1,1,1),new
Vector3f(1,-1,1));
northWest.setInfluencingBounds(mouseBounds);
northWestBg.addChild(northWest);
northEastBg = new BranchGroup();
northEastBg.setCapability(BranchGroup.ALLOW_DETACH);
northEast = new DirectionalLight(new Color3f(1,1,1),new
Vector3f(-1,-1,1));
northEast.setInfluencingBounds(mouseBounds);
northEastBg.addChild(northEast);
eastBg = new BranchGroup();
eastBg.setCapability(BranchGroup.ALLOW_DETACH);
east = new DirectionalLight(new Color3f(1,1,1),new
Vector3f(-1,-1,0));
east.setInfluencingBounds(mouseBounds);
eastBg.addChild(east);
westBg = new BranchGroup();
westBg.setCapability(BranchGroup.ALLOW_DETACH);
west = new DirectionalLight(new Color3f(1,1,1),new
Vector3f(1,-1,0));
west.setInfluencingBounds(mouseBounds);
westBg.addChild(west);
southWestBg = new BranchGroup();
southWestBg.setCapability(BranchGroup.ALLOW_DETACH);
southWest = new DirectionalLight(new Color3f(1,1,1),new
Vector3f(1,-1,-1));
southWest.setInfluencingBounds(mouseBounds);
southWestBg.addChild(southWest);
southEastBg = new BranchGroup();
southEastBg.setCapability(BranchGroup.ALLOW_DETACH);
southEast = new DirectionalLight(new Color3f(1,1,1),new
Vector3f(-1,-1,-1));
southEast.setInfluencingBounds(mouseBounds);
southEastBg.addChild(southEast);
southBg = new BranchGroup();
southBg.setCapability(BranchGroup.ALLOW_DETACH);
south = new DirectionalLight(new Color3f(1,1,1),new
Vector3f(0,-1,-1));
south.setInfluencingBounds(mouseBounds);
southBg.addChild(south);
zenithBg = new BranchGroup();
zenithBg.setCapability(BranchGroup.ALLOW_DETACH);
zenith = new DirectionalLight(new Color3f(1,1,1),new
Vector3f(0,-1,0));
zenith.setInfluencingBounds(mouseBounds);
zenithBg.addChild(zenith);
scene.addChild(northWestBg);
sunset = Property3DSceneDialog.NorthWest;
and in the following method, I am attaching and detaching to the scene:
public void setSunset(int type) {
sunset = type;
Enumeration childs = scene.getAllChildren();
while (childs.hasMoreElements()) {
Object oc = childs.nextElement();
if (oc instanceof BranchGroup) {
BranchGroup bgl = (BranchGroup) oc;
bgl.detach();
switch(type) {
case Property3DSceneDialog.Zenith: {
scene.addChild(zenithBg);
break;
}
case Property3DSceneDialog.NorthWest: {
scene.addChild(northWestBg);
break;
}
case Property3DSceneDialog.NorthEast: {
scene.addChild(northEastBg);
break;
}
case Property3DSceneDialog.West: {
scene.addChild(westBg);
break;
}
case Property3DSceneDialog.East: {
scene.addChild(eastBg);
break;
}
case Property3DSceneDialog.SouthWest: {
scene.addChild(southWestBg);
break;
}
case Property3DSceneDialog.SouthEast: {
scene.addChild(southEastBg);
break;
}
case Property3DSceneDialog.South: {
scene.addChild(southBg);
break;
}
}
}
}
}
Hope, this helps, Desiree
o------------------------------------------------------------------------o
| Desiree Hilbring Institut fuer Photogrammetrie und Fernerkundung |
| Universitaet Karlsruhe, Germany |
| |
| email: [EMAIL PROTECTED] |
| # 0721 6083676 |
o------------------------------------------------------------------------o
On Mon, 30 Oct 2000, Wyss Christian wrote:
> Hi all
> Is there anyone out there who could explain, how I have to do if I
> d'like to reattach a BranchGroup I took out of a Tree by detach() in
> another Tree without getting a "multiple parent exception" or something
> even worse ?
>
> Thanks,
> Chris
>
> ===========================================================================
> 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".
>
===========================================================================
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".