problem with TView zoom

From: G.Mavromanolakis <gmavroma_at_mail.cern.ch>
Date: Thu, 16 Feb 2006 11:33:01 +0100 (CET)


Hello ROOTers,

I am developing a 3d event display for a monitor application. I used ROOTv4.02.00 under ScientificLinux3 and I tried to switched recently to a newer version. I experience some strange behavior from the zoom methods in TView class. They work as expected when invoked within the CINT or by clicking a TView object on a pad. But when they are put in a macro or source code they produce no effect.
For example something like

void test()
{

   TCanvas *c1 = new TCanvas("c1","The ... canvas",200,10,700,700);    c1->cd();

   BuildLayout()->Draw();
   //ShowAxis(-15,-15,-20,4);
   ShowView(1.);       

   TCanvas* c2 = new TCanvas("c2","The ... canvas",200,10,700,700);    c2->cd();

   BuildLayout()->Draw();
   //ShowAxis(-15,-15,-20,4);
   ShowView(0.5);

}

with

void ShowView(float zoomfactor)
{

   gPad->GetView()->ZoomView(0,zoomfactor);
   gPad->SetFillColor(17);//light grey
   gPad->Modified();
   gPad->Update();

}

should produce 2 canvases with one normal and one small view. This is the case for v4.02.00 or older. When trying with a newer version (4.04.02g, 5.08.00) there is no zoom, the example above gives 2 identical canvases!

Also the TView::Zoom, ZoomIn, ZoomOut methods behave similarly strange, ie they give no effect.

Any hints??? Am I doing something wrong???

Thanks and regards,
George

PS. I attach a small example macro
(run it from root with
.L test.C
test()
)

Received on Thu Feb 16 2006 - 11:33:09 MET

This archive was generated by hypermail 2.2.0 : Mon Jan 01 2007 - 16:31:57 MET