engine.H

00001 /*
00002  * This file is part of the "Archon" framework.
00003  * (http://files3d.sourceforge.net)
00004  *
00005  * Copyright © 2002 by Kristian Spangsege and Brian Kristiansen.
00006  *
00007  * Permission to use, copy, modify, and distribute this software and
00008  * its documentation under the terms of the GNU General Public License is
00009  * hereby granted. No representations are made about the suitability of
00010  * this software for any purpose. It is provided "as is" without express
00011  * or implied warranty. See the GNU General Public License
00012  * (http://www.gnu.org/copyleft/gpl.html) for more details.
00013  *
00014  * The characters in this file are ISO8859-1 encoded.
00015  *
00016  * The documentation in this file is in "Doxygen" style
00017  * (http://www.doxygen.org).
00018  */
00019 
00020 #ifndef ARCHON_RAYTRACER_ENGINE_H
00021 #define ARCHON_RAYTRACER_ENGINE_H
00022 
00023 #include <string>
00024 
00025 #include <archon/math/vector.H>
00026 #include <archon/util/logger.H>
00027 
00028 #include "world.H"
00029 
00030 namespace Archon
00031 {
00032   namespace Raytracer
00033   {
00034     struct View
00035     {
00036       CoordSystem3x3 coordSystem;
00037       double fieldOfView;
00038       string name;
00039       string description;
00040       View() {}
00041       View(const CoordSystem3x3 &coordSystem,
00042            double fieldOfView,
00043            string name,
00044            string description):
00045         coordSystem(coordSystem),
00046         fieldOfView(fieldOfView),
00047         name(name),
00048         description(description) {}
00049     };
00050 
00051     class Engine
00052     {
00053       Utilities::Logger *logger;
00054 
00055     public:
00056       Engine(Utilities::Logger * = Utilities::Logger::get()):
00057         logger(logger) {}
00058 
00059       void render(World *, View);
00060     };
00061   }
00062 }
00063 
00064 #endif // ARCHON_RAYTRACER_ENGINE_H

Generated on Sun Jul 30 22:55:51 2006 for Archon by  doxygen 1.4.4