• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

include/FCam/Lens.h

Go to the documentation of this file.
00001 #ifndef FCAM_LENS_H
00002 #define FCAM_LENS_H
00003 
00006 
00007 #include "Device.h"
00008 #include "Action.h"
00009 
00010 namespace FCam {
00011 
00014     class Lens : public Device { 
00015     public: 
00016 
00044         virtual void setFocus(float, float speed = -1) = 0; 
00045 
00047         virtual float getFocus() const = 0;
00048 
00050         virtual float farFocus() const = 0;
00051 
00053         virtual float nearFocus() const = 0;
00054 
00056         virtual bool focusChanging() const = 0;
00057 
00060         virtual int focusLatency() const = 0;
00061 
00063         virtual float minFocusSpeed() const = 0;
00064 
00066         virtual float maxFocusSpeed() const = 0;
00068 
00079         virtual void setZoom(float, float speed = -1) = 0;
00080 
00082         virtual float getZoom() const = 0;
00083 
00085         virtual float minZoom() const = 0;
00086 
00088         virtual float maxZoom() const = 0;
00089 
00091         virtual bool zoomChanging() const = 0;
00092 
00095         virtual int zoomLatency() const = 0;
00096 
00098         virtual float minZoomSpeed() const = 0;
00099 
00101         virtual float maxZoomSpeed() const = 0;
00102 
00118         virtual void setAperture(float, float speed = -1) = 0;
00119 
00121         virtual float getAperture() const = 0;
00122 
00126         virtual float wideAperture(float zoom) const = 0;
00127 
00131         virtual float narrowAperture(float zoom) const = 0;
00132 
00134         virtual bool apertureChanging() const = 0;      
00135 
00137         virtual int apertureLatency() const = 0;
00138 
00142         virtual float minApertureSpeed() const = 0;
00143 
00147         virtual float maxApertureSpeed() const = 0;
00149     
00152         class FocusAction : public CopyableAction<FocusAction> {
00153         public:
00155             FocusAction(Lens *);
00156 
00160             FocusAction(Lens *, int, float);
00161 
00166             FocusAction(Lens *, int, float, float);
00167 
00169             float focus;
00170 
00172             float speed;
00173 
00174             void doAction();
00175         private:
00176             Lens *lens;
00177         };
00178 
00181         class ZoomAction : public CopyableAction<ZoomAction> {
00183             ZoomAction(Lens *);
00184 
00188             ZoomAction(Lens *, int, float);
00189 
00194             ZoomAction(Lens *, int, float, float);
00195 
00197             float zoom;
00198 
00200             float speed;
00201 
00202             void doAction();
00203         private:
00204             Lens *lens;
00205         };
00206 
00209         class ApertureAction : public CopyableAction<ApertureAction> {
00211             ApertureAction(Lens *);
00212 
00216             ApertureAction(Lens *, int, float);
00217 
00222             ApertureAction(Lens *, int, float, float);
00223         
00225             float aperture;
00226         
00228             float speed;
00229 
00230             void doAction();
00231         private:
00232             Lens *lens;
00233         };
00234 
00238         virtual void tagFrame(Frame) = 0;
00239 
00258         struct Tags {
00259             
00261             Tags(Frame);
00262 
00263             float focus;           
00264             float focusSpeed;      
00265             float initialFocus;    
00266             float finalFocus;      
00267 
00268             float zoom;            
00269             float zoomSpeed;       
00270             float initialZoom;     
00271             float finalZoom;       
00272 
00273             float aperture;        
00274             float apertureSpeed;   
00275             float initialAperture; 
00276             float finalAperture;   
00277         };
00278     };
00279 
00280 }
00281 
00282 #endif
00283 

Generated on Thu Jul 15 2010 17:51:28 for FCam by  doxygen 1.7.1