Go to the documentation of this file.00001 #ifndef FCAM_ACTION_H
00002 #define FCAM_ACTION_H
00003
00004 #include <stdio.h>
00005
00013 namespace FCam {
00015 class Action {
00016 public:
00017 Action() {}
00018 virtual ~Action();
00021 int time;
00022
00024 int latency;
00025
00031 virtual void doAction() = 0;
00032
00038 virtual Action *copy() const = 0;
00039
00040 private:
00041
00042 friend class Shot;
00043 };
00044
00050 template<typename Derived>
00051 class CopyableAction : public Action {
00052 public:
00055 Action *copy() const {
00056 return new Derived(*((Derived *)this));
00057 }
00058 };
00059
00060 }
00061
00062
00063 #endif