How do i close a cA->x3d();?

Dear ROOT experts,

a have a compiled code, and
i draw on a TCanvas a TView volume with my geometry

ThreeD = new TRootEmbeddedCanvas(“ThreeD”, UpperFrame, 600, 600);
UpperFrame->AddFrame(ThreeD,new TGLayoutHints(kLHintsExpandX | kLHintsExpandY, 0, 0, 0, 0));
ThreeD->GetCanvas()->SetBorderMode(0);
cA = ThreeD->GetCanvas();
cA->SetFillColor(1);
cA->cd();

I list for viewing a TTree events with tracks that i plot on my TView volume.

when I open for every new event a
cA-x3d();
my application complains that it can “have only one x3d viewer active”

does anyone know how I can close all opened x3d viewers before opening a new one?
or there is more nice solution for my problem?

especially if, you can help me to open my x3d viewer in same mainframe instead of my ugly TView object.

any comments or help for my stupid question
will be heartly appreciated

igor :blush:

Hi Igor,

We are right now in the process of reingeering the 3-d viewers.
The new interface is already in CVS. With this interface, you can have multiple viewers (one per pad), delete/update a viewer.
We hope to decsribe the new interface before the first development release at the end of the month.

Rene

You can try to add the “ROOT Qt extension” from root.bnl.gov to your current ROOT.
then you can open as many 3D viewer as you want.
See: root.bnl.gov/picture/geoshapes.png

Valeri,

You should not encourage users to do this.
Your implementation with the 3-d viewer is obsolete, not able to visualize the geometries with the current CVS.

Rene

[quote=“fine”]You can try to add the “ROOT Qt extension” from root.bnl.gov to your current ROOT.
then you can open as many 3D viewer as you want.
See: root.bnl.gov/picture/geoshapes.png[/quote]

thanks, but i do not need many 3D viewers.
I want only to have in the same 3Dviewer updated shapes from my original TView.
It is done somehow implicitly in shapes.C
but it is far from being vivid to me.

right now i have to close the 3d viewer window manually, and then go to the next event.
otherwise i have an error message.

i guess this should be more understandable then, what i wrote in my forst note :unamused:

As soon as I can see it works for the viewer I posted.
As soon as you change the object in TPad the OpenGL view is updated properly. With no extra effort.

This doesn’t with with x3d though.

[quote=“brun”]Valeri,

You should not encourage users to do this.
Rene[/quote]

Why? The user interface is NOT affected. No piece of the user code whatsoever is to be changed. Just install the extra share lib and get what you need. ( 5 min job)
If tomorrow there would be another shared library then user plight would not have become worse.

[quote=“brun”]Valeri,
Your implementation with the 3-d viewer is obsolete, not able to visualize the geometries with the current CVS.
Rene[/quote]

Hmm I think I misunderstand the term “obsolete”

Anyway the ROOT Qt extension I mentioned do work with what ROOT Web site calles
"Production Version 4.00/08"
Is it “obsolete”?

Sure the “Qt ROOT extensions” will be provided for the future ROOT version also. I see no “huge” problem with that. Just some amount of job to be done. This can be done as soon as the new ROOT 3D interface will be published somewhere

[quote=“fine”]As soon as I can see it works for the viewer I posted.
As soon as you change the object in TPad the OpenGL view is updated properly. With no extra effort.

This doesn’t with with x3d though.[/quote]

that’s what i said,
it does not update with x3d()

:cry: