00001 #include <stdlib.h>
00002
00003 #include "FCam/Lens.h"
00004 #include "FCam/Frame.h"
00005
00006 #include "Debug.h"
00007
00008 namespace FCam {
00009
00010 Lens::FocusAction::FocusAction(Lens *l) :
00011 lens(l) {
00012 focus = 0.0f;
00013 speed = lens->maxFocusSpeed();
00014 latency = lens->focusLatency();
00015 time = 0;
00016 }
00017
00018 Lens::FocusAction::FocusAction(Lens *l, int t, float f) :
00019 focus(f), lens(l) {
00020 speed = lens->maxFocusSpeed();
00021 latency = lens->focusLatency();
00022 time = t;
00023 }
00024
00025 Lens::FocusAction::FocusAction(Lens *l, int t, float f, float s) :
00026 focus(f), speed(s), lens(l) {
00027 latency = lens->focusLatency();
00028 time = t;
00029 }
00030
00031 void Lens::FocusAction::doAction() {
00032 lens->setFocus(focus, speed);
00033 }
00034
00035 Lens::ZoomAction::ZoomAction(Lens *l) :
00036 lens(l) {
00037 zoom = 0.0f;
00038 speed = lens->maxZoomSpeed();
00039 latency = lens->zoomLatency();
00040 time = 0;
00041 }
00042
00043 Lens::ZoomAction::ZoomAction(Lens *l, int t, float f) :
00044 zoom(f), lens(l) {
00045 speed = lens->maxZoomSpeed();
00046 latency = lens->zoomLatency();
00047 time = t;
00048 }
00049
00050 Lens::ZoomAction::ZoomAction(Lens *l, int t, float f, float s) :
00051 zoom(f), speed(s), lens(l) {
00052 latency = lens->zoomLatency();
00053 time = t;
00054 }
00055
00056 void Lens::ZoomAction::doAction() {
00057 lens->setZoom(zoom, speed);
00058 }
00059
00060
00061 Lens::ApertureAction::ApertureAction(Lens *l) :
00062 lens(l) {
00063 aperture = 0.0f;
00064 speed = lens->maxApertureSpeed();
00065 latency = lens->apertureLatency();
00066 time = 0;
00067 }
00068
00069 Lens::ApertureAction::ApertureAction(Lens *l, int t, float f) :
00070 aperture(f), lens(l) {
00071 speed = lens->maxApertureSpeed();
00072 latency = lens->apertureLatency();
00073 time = t;
00074 }
00075
00076 Lens::ApertureAction::ApertureAction(Lens *l, int t, float f, float s) :
00077 aperture(f), speed(s), lens(l) {
00078 latency = lens->apertureLatency();
00079 time = t;
00080 }
00081
00082 void Lens::ApertureAction::doAction() {
00083 lens->setAperture(aperture, speed);
00084 }
00085
00086 Lens::Tags::Tags(Frame f) {
00087 initialFocus = f["lens.initialFocus"];
00088 finalFocus = f["lens.finalFocus"];
00089 focus = f["lens.focus"];
00090 focusSpeed = f["lens.focusSpeed"];
00091 zoom = f["lens.zoom"];
00092 initialZoom = f["lens.initialZoom"];
00093 finalZoom = f["lens.finalZoom"];
00094 aperture = f["lens.aperture"];
00095 initialAperture = f["lens.initialAperture"];
00096 finalAperture = f["lens.finalAperture"];
00097 apertureSpeed = f["lens.aperturedSpeed"];
00098 }
00099
00100 }