IAP GITLAB

Skip to content
Snippets Groups Projects
RootCoordinateSystem.h 880 B
#ifndef _include_corsika_geometry_rootcoordinatesystem_h_
#define _include_corsika_geometry_rootcoordinatesystem_h_

#include <corsika/utl/Singleton.h>

#include <corsika/geometry/CoordinateSystem.h>

/*!
 * This is the only way to get a root-coordinate system, and it is a
 * singleton. All other CoordinateSystems must be relative to the
 * RootCoordinateSystem
 */

namespace corsika::geometry {

  class RootCoordinateSystem : public corsika::utl::Singleton<RootCoordinateSystem> {
    
    friend class corsika::utl::Singleton<RootCoordinateSystem>;
    
  protected:
    
    RootCoordinateSystem() {}
    
  public:

    corsika::geometry::CoordinateSystem& GetRootCS() { return fRootCS; }
    const corsika::geometry::CoordinateSystem& GetRootCS() const { return fRootCS; }

  private:
    corsika::geometry::CoordinateSystem fRootCS; // THIS IS IT
    
  };
  
}

#endif