00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef LOSR_LOSR_hpp
00024 #define LOSR_LOSR_hpp
00025
00026 #include <cstdio>
00027 #include <stdexcept>
00028 #include <string>
00029
00030 #include "losr/Surface.hpp"
00031 #include "losr/OpticalSystem.hpp"
00032 #include "losr/ApproxRaytracer.hpp"
00033 #include "losr/ExactRaytracer.hpp"
00034 #include "losr/Analyzer.hpp"
00035
00036
00044 #define LOSR_RuntimeErrorM(MESSAGE) \
00045 std::runtime_error( \
00046 std::string("Runtime Error (File: ") + \
00047 std::string(__FILE__) + \
00048 std::string(", line: ") + \
00049 int2string(__LINE__) + \
00050 std::string("):\n\t") + \
00051 std::string(MESSAGE) + \
00052 std::string("\n") \
00053 )
00054
00055
00056 namespace LOSR {
00057
00058
00066 inline std::string int2string(
00067 int inInt
00068 )
00069 {
00070 char lBuf[128];
00071 std::sprintf(lBuf, "%i", inInt);
00072 return std::string(lBuf);
00073 }
00074
00075
00083 inline std::string double2string(
00084 double inDbl
00085 )
00086 {
00087 char lBuf[512];
00088 std::sprintf(lBuf, "%.8f", inDbl);
00089 return std::string(lBuf);
00090 }
00091
00092 }
00093
00094 #endif // LOSR_LOSR_hpp