#include "AEVFlatSSpace.h"
#include "AEVSite.h"
#include "AEVSiteViz.h"
#include "AEVFlatSSpace.c7"
#include <Glasses/ZQueen.h>
#include <TMath.h>
ClassImp(AEVFlatSSpace);
void AEVFlatSSpace::_init()
{
bUseOM = true; mOM = 1.5;
mTheta0 = 0; mDTheta = 180;
mPhi0 = 0; mDPhi = 360;
}
Bool_t AEVFlatSSpace::ImportSite(AEVSite* site, Bool_t warn)
{
static const Exc_t _eh("AEVFlatSSpace::ImportAEVSite ");
Float_t t = site->GetLatitude(), p = site->GetLongitude();
Float_t v = (t - mTheta0) / mDTheta;
Float_t u = (p - mPhi0) / mDPhi;
if(TMath::Abs(u) > 0.5 || TMath::Abs(v) > 0.5) {
if(warn)
ISmess(_eh + GForm("site %s (%f,%f) outside limits of %s.",
site->GetName(), t, p, GetName()));
return false;
}
AEVSiteViz* sv = new AEVSiteViz(site->GetName(), GForm("SiteViz of %s", site->GetName()));
sv->SetPos(u*mULen, v*mVLen, 0.001);
mQueen->CheckIn(sv);
Add(sv);
return true;
}
void AEVFlatSSpace::ClearSiteVizes()
{
list<AEVSiteViz*> vizen;
CopyListByGlass<AEVSiteViz>(vizen);
for(list<AEVSiteViz*>::iterator v=vizen.begin(); v!=vizen.end(); ++v) {
RemoveAll(*v);
}
}
void AEVFlatSSpace::ImportAllSites()
{
static const Exc_t _eh("AEVFlatSSpace::ImportAllSites ");
ZList* sites = dynamic_cast<ZList*>
(mQueen->FindLensByPath("Sites"));
if(sites == 0) {
throw(_eh + "could not retrive the site list.");
}
list<AEVSite*> ss; sites->CopyListByGlass<AEVSite>(ss);
for(list<AEVSite*>::iterator i = ss.begin(); i!=ss.end(); ++i) {
ImportSite(*i);
}
}