Render 3 scale axes.
1773 {
1775
1776
1777 TGLCamera& cam = ctx.RefCamera();
1778 TGLLine3 l1 = cam.ViewportToWorld(
eXa,
eYa);
1780
1781
1782 const TGLVector3& glv1 = l1.Vector();
1783 const TGLVector3& glv12 = l2.Start()-l1.Start();
1784 TVector3 v1(glv1.X(), glv1.Y(), glv1.Z());
1785 v1.SetMag(1.);
1786 TVector3 v12(glv12.X(), glv12.Y(), glv12.Z());
1787 TVector3 vx = v1.Cross(v12);
1788 double d1 = vx.Mag();
1789
1790
1792 for(int i=0;i<10;i++){
1793 if( d1 < 2*TMath::Power(10,i) ) {
d=1*TMath::Power(10,i);
break; }
1794 if( d1 < 5*TMath::Power(10,i) ) {
d=2*TMath::Power(10,i);
break; }
1795 if( d1 < 10*TMath::Power(10,i) ) {
d=5*TMath::Power(10,i);
break; }
1797 }
1798
1799
1800
1801
1802 TGLLine3 l3 = cam.ViewportToWorld(
eXa+10,
eYa+20);
1803 const TGLVertex3& glp31=l3.Start();
1804 const TGLVertex3& glp32=l3.End();
1805 TVector3 vec31(glp31.CArr());
1806 TVector3 vec32(glp32.CArr());
1807 TVector3 p31 = (vec31+vec32)*0.5;
1808
1809 TString num=Form(
" %d um",(
int)
d);
1810#if ROOT_VERSION_CODE>=ROOT_VERSION(5,26,00)
1811 TGLUtil::Color(kWhite);
1812 TGLFont font;
1813 ctx.RegisterFont(12, "arial", TGLFont::kBitmap, font);
1814 font.PreRender();
1815 font.Render(num, p31.X(), p31.Y(), p31.Z(), TGLFont::kLeft, TGLFont::kTop);
1816 font.PostRender();
1817
1818 TGLUtil::LineWidth(1.0);
1819#else
1820 gEve->GetBrowser()->SetStatusText(num,0);
1821#endif
1822
1823
1824 TGLCapabilitySwitch lights_off(GL_LIGHTING, kFALSE);
1825
1826
1827 const TGLVertex3& glp1=l1.Start();
1828 const TGLVertex3& glp2=l1.End();
1829 TVector3 vec1(glp1.CArr());
1830 TVector3 vec2(glp2.CArr());
1831 TVector3 p1 = (vec1+vec2)*0.5;
1832 TVector3 p2;
1833
1834 TGLUtil::Color3f(1.,0.,0.);
1835 TGLVertex3 glpos(p1.X(), p1.Y(), p1.Z());
1836 TGLVertex3 glpos2(p1.X()+
d, p1.Y(), p1.Z());
1837 TGLLine3 lx(glpos, glpos2);
1838 lx.Draw();
1839
1840 TGLUtil::Color3f(0.,1.,0.);
1841 glpos2.Set(p1.X(), p1.Y()+
d, p1.Z());
1842 TGLLine3 ly(glpos, glpos2);
1843 ly.Draw();
1844
1845 TGLUtil::Color(kCyan);
1847 TGLLine3 lz(glpos, glpos2);
1848 lz.Draw();
1849
1850
1851}
void d()
Definition: RecDispEX.C:381