Theme.h

Go to the documentation of this file.
00001 
00005 /* Copyright © 2009, 2010 James Legg.
00006     This program is free software: you can redistribute it and/or modify
00007     it under the terms of the GNU General Public License as published by
00008     the Free Software Foundation, either version 3 of the License, or
00009     (at your option) any later version.
00010 */
00011 #ifndef LIBTRACK_THEME_H_
00012 #define LIBTRACK_THEME_H_
00013 
00014 #include "Skybox.h"
00015 #include "Segment.h"
00016 
00017 #include <vector>
00018 #include <istream>
00019 #include <string>
00020 
00021 #include <boost/shared_ptr.hpp>
00022 
00023 namespace Track
00024 {
00025 
00031 class Theme
00032 {
00033 public:
00040     Theme(std::istream & source);
00042     virtual ~Theme();
00043     
00047     const Skybox & get_skybox() const;
00048     
00052     std::size_t get_number_of_segments() const;
00053     
00059     const Segment & get_segment(std::size_t index) const;
00060     
00062     const std::string & get_name() const;
00063     
00065     std::size_t get_segment_index(std::string name) const;
00066     
00068     std::size_t get_default_segment_index() const;
00069     
00071     bool get_use_sky_particles() const;
00072 protected:
00074     Skybox skybox;
00076     std::vector<boost::shared_ptr<Segment> > segments;
00078     std::string name;
00079     
00081     std::size_t m_default_segment_index;
00082     
00083     void find_default_segment();
00084     
00085     bool m_use_sky_particles;
00086 };
00087 
00088 }
00089 
00090 #endif /*THEME_H_*/

Get Racer at SourceForge.net. Fast, secure and Free Open Source software downloads

Generated at Mon Sep 6 00:41:12 2010 by Doxygen version 1.4.7 for Racer version svn335.