ROOT logo
// $Id: AEVFlatSSpace.cxx 2088 2008-11-23 20:26:46Z matevz $

// Copyright (C) 1999-2008, Matevz Tadel. All rights reserved.
// This file is part of GLED, released under GNU General Public License version 2.
// For the licensing terms see $GLEDSYS/LICENSE or http://www.gnu.org/.

//__________________________________________________________________________
// AEVFlatSSpace
//
//

#include "AEVFlatSSpace.h"
#include "AEVSite.h"
#include "AEVSiteViz.h"
#include "AEVFlatSSpace.c7"

#include <Glasses/ZQueen.h>

#include <TMath.h>

ClassImp(AEVFlatSSpace);

/**************************************************************************/

void AEVFlatSSpace::_init()
{
  // ZNode::OM stuffe
  bUseOM = true; mOM = 1.5;

  mTheta0 = 0; mDTheta = 180;
  mPhi0   = 0; mDPhi   = 360;
}

/**************************************************************************/

Bool_t AEVFlatSSpace::ImportSite(AEVSite* site, Bool_t warn)
{
  // Here create site-viz for site if within limits.

  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);
  }
}

/**************************************************************************/
 AEVFlatSSpace.cxx:1
 AEVFlatSSpace.cxx:2
 AEVFlatSSpace.cxx:3
 AEVFlatSSpace.cxx:4
 AEVFlatSSpace.cxx:5
 AEVFlatSSpace.cxx:6
 AEVFlatSSpace.cxx:7
 AEVFlatSSpace.cxx:8
 AEVFlatSSpace.cxx:9
 AEVFlatSSpace.cxx:10
 AEVFlatSSpace.cxx:11
 AEVFlatSSpace.cxx:12
 AEVFlatSSpace.cxx:13
 AEVFlatSSpace.cxx:14
 AEVFlatSSpace.cxx:15
 AEVFlatSSpace.cxx:16
 AEVFlatSSpace.cxx:17
 AEVFlatSSpace.cxx:18
 AEVFlatSSpace.cxx:19
 AEVFlatSSpace.cxx:20
 AEVFlatSSpace.cxx:21
 AEVFlatSSpace.cxx:22
 AEVFlatSSpace.cxx:23
 AEVFlatSSpace.cxx:24
 AEVFlatSSpace.cxx:25
 AEVFlatSSpace.cxx:26
 AEVFlatSSpace.cxx:27
 AEVFlatSSpace.cxx:28
 AEVFlatSSpace.cxx:29
 AEVFlatSSpace.cxx:30
 AEVFlatSSpace.cxx:31
 AEVFlatSSpace.cxx:32
 AEVFlatSSpace.cxx:33
 AEVFlatSSpace.cxx:34
 AEVFlatSSpace.cxx:35
 AEVFlatSSpace.cxx:36
 AEVFlatSSpace.cxx:37
 AEVFlatSSpace.cxx:38
 AEVFlatSSpace.cxx:39
 AEVFlatSSpace.cxx:40
 AEVFlatSSpace.cxx:41
 AEVFlatSSpace.cxx:42
 AEVFlatSSpace.cxx:43
 AEVFlatSSpace.cxx:44
 AEVFlatSSpace.cxx:45
 AEVFlatSSpace.cxx:46
 AEVFlatSSpace.cxx:47
 AEVFlatSSpace.cxx:48
 AEVFlatSSpace.cxx:49
 AEVFlatSSpace.cxx:50
 AEVFlatSSpace.cxx:51
 AEVFlatSSpace.cxx:52
 AEVFlatSSpace.cxx:53
 AEVFlatSSpace.cxx:54
 AEVFlatSSpace.cxx:55
 AEVFlatSSpace.cxx:56
 AEVFlatSSpace.cxx:57
 AEVFlatSSpace.cxx:58
 AEVFlatSSpace.cxx:59
 AEVFlatSSpace.cxx:60
 AEVFlatSSpace.cxx:61
 AEVFlatSSpace.cxx:62
 AEVFlatSSpace.cxx:63
 AEVFlatSSpace.cxx:64
 AEVFlatSSpace.cxx:65
 AEVFlatSSpace.cxx:66
 AEVFlatSSpace.cxx:67
 AEVFlatSSpace.cxx:68
 AEVFlatSSpace.cxx:69
 AEVFlatSSpace.cxx:70
 AEVFlatSSpace.cxx:71
 AEVFlatSSpace.cxx:72
 AEVFlatSSpace.cxx:73
 AEVFlatSSpace.cxx:74
 AEVFlatSSpace.cxx:75
 AEVFlatSSpace.cxx:76
 AEVFlatSSpace.cxx:77
 AEVFlatSSpace.cxx:78
 AEVFlatSSpace.cxx:79
 AEVFlatSSpace.cxx:80
 AEVFlatSSpace.cxx:81
 AEVFlatSSpace.cxx:82
 AEVFlatSSpace.cxx:83
 AEVFlatSSpace.cxx:84
 AEVFlatSSpace.cxx:85
 AEVFlatSSpace.cxx:86
 AEVFlatSSpace.cxx:87
 AEVFlatSSpace.cxx:88
 AEVFlatSSpace.cxx:89
 AEVFlatSSpace.cxx:90