src/CameraInstructions.h

Go to the documentation of this file.
00001 #ifndef CAMERAINSTRUCTIONS_H
00002 #define CAMERAINSTRUCTIONS_H
00003 
00004 #include <cassert>
00005 
00006 #include "Vec3f.h"
00007 #include "Matrix.h"
00008 
00009 class CameraAnimator;
00010 
00014 class CameraInstructions
00015 {
00016   public:
00019   CameraInstructions(CameraAnimator* anim)
00020       :animator(anim)
00021   {}
00022 
00025     virtual ~CameraInstructions()
00026     {}
00027 
00030     virtual void execute() = 0;
00031 
00032   protected:
00033     CameraAnimator* animator; 
00034 };
00035 
00038 class CameraInstructionMove : public CameraInstructions
00039 {
00040   public:
00052     CameraInstructionMove(CameraAnimator* anim, Vec3f end, Vec3f dir, Vec3f up, float aperture, float distance, unsigned int depthsamples, unsigned int framesleft, unsigned int camnum);
00053     
00054     virtual ~CameraInstructionMove()
00055     {}
00056     
00059     virtual void execute();
00060 
00061   private:
00062     Vec3f mEndPos;               
00063     Vec3f mEndDir;               
00064     Vec3f mEndUp;                
00065     float mEndAperture;          
00066     float mEndFocusDistance;     
00067     unsigned int mEndDepthSamples; 
00068     unsigned int mFramesLeft;    
00069     unsigned int mCameraNumber;  
00070     Matrix mDirMatrix;           
00071     Matrix mUpMatrix;            
00072     bool mRuned;                  
00073  
00074 };
00075 
00076 
00079 class CameraInstructionSet : public CameraInstructions
00080 {
00081   public:
00086     CameraInstructionSet(CameraAnimator* anim, unsigned int camnum)
00087         :CameraInstructions(anim),
00088         mCameraNumber(camnum)
00089     {}
00090         
00091     virtual ~CameraInstructionSet()
00092     {}
00093         
00096     virtual void execute();
00097 
00098   private:
00099     unsigned int mCameraNumber;  
00100  
00101 };
00102 
00103 
00106 class CameraInstructionNormal : public CameraInstructions
00107 {
00108   public:
00113     CameraInstructionNormal(CameraAnimator* anim, unsigned int camnum)
00114         :CameraInstructions(anim),
00115         mCameraNumber(camnum)
00116         {}
00117 
00118     virtual ~CameraInstructionNormal()
00119     {}
00120 
00123     virtual void execute();
00124 
00125   private:
00126     unsigned int mCameraNumber;  
00127 };
00128 
00129 
00132 class CameraInstructionStay : public CameraInstructions
00133 {
00134   public:
00140   CameraInstructionStay(CameraAnimator* anim, unsigned int frames, unsigned int camnum)
00141         :CameraInstructions(anim),
00142         mFrames(frames),
00143         mCameraNumber(camnum)
00144         {
00145         }
00146 
00147     virtual ~CameraInstructionStay()
00148     {}
00149 
00152     virtual void execute();
00153 
00154   private:
00155     unsigned int mFrames;       
00156     unsigned int mCameraNumber; 
00157 };
00158 
00159 #endif

Generated on Fri Feb 1 00:01:42 2008 for Grayfall by  doxygen 1.5.1