Main Page | Namespace List | Class Hierarchy | Class List | File List | Namespace Members | Class Members | File Members

TimeFade.H

Go to the documentation of this file.
00001 
00010 #ifndef TIMEFADE_H
00011 #define TIMEFADE_H
00012 
00013 #include "Color.H"
00014 
00015 // Gluebase includes
00016 #define OUTSIDE_GLUE_CORE
00017 #include <std/time.H>
00018 
00019 namespace InSpace {
00020 
00021 class TimeFade
00022 {
00023  public:
00024   TimeFade(double startTime, Color startCol,
00025        double endTime, Color endCol) {
00026     _startTime = startTime;
00027     _startCol = startCol;
00028     _endTime = endTime;
00029     _endCol = endCol;
00030   }
00031 
00032   virtual ~TimeFade() {}
00033 
00034   Color getColor() {
00035     return getColor(the_time());
00036   }
00037 
00038   Color getColor(double t) {
00039     float f = (t - _startTime) / (_endTime - _startTime);
00040     if (f < 0.0) f = 0.0;
00041     else if (f > 1.0) f = 1.0;
00042     float f2 = 1.0 - f;
00043     float r = _startCol.r()*f2 + _endCol.r()*f;
00044     float g = _startCol.g()*f2 + _endCol.g()*f;
00045     float b = _startCol.b()*f2 + _endCol.b()*f;
00046     float a = _startCol.a()*f2 + _endCol.a()*f;
00047     return Color(r,g,b,a);
00048   }
00049 
00050  protected:
00051 
00052   double _startTime;
00053   Color  _startCol;
00054   double _endTime;
00055   Color  _endCol;
00056 
00057 };
00058 
00059 }
00060 #endif

Generated on Thu Jul 8 15:19:29 2004 for inspace by doxygen 1.3.4