RE: problem with TView zoom

From: Fine, Valeri <fine_at_bnl.gov>
Date: Mon, 20 Feb 2006 15:38:57 -0500


Can you elaborate what kind of the projection you used Orthographic or perspective.  

In my mind the default was changed sometimes ago and it must affect the way Zoom method "look and feel"  

Can you toggle the projection to make sure that may have cured the problem you reported. See:  

http://root.cern.ch/root/htmldoc//src/TView.cxx.html#TView:SetPerspective  

http://root.cern.ch/root/htmldoc//src/TView.cxx.html#TView:SetParallel    


From: owner-roottalk_at_pcroot.cern.ch on behalf of G.Mavromanolakis Sent: Thu 2/16/2006 5:33 AM
To: roottalk_at_pcroot.cern.ch
Cc: gmavroma_at_mail.cern.ch
Subject: [ROOT] problem with TView zoom

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 Mon Feb 20 2006 - 21:39:33 MET

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