/* - copyright (c) 2011 Copenhagen Institute of Interaction Design (CIID) - all rights reserved. + redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + > redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + > redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + SUCH DAMAGE. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~ author: dviid ~ contact: dviid@labs.ciid.dk */ #pragma once #include "AbstractAnalysis.h" #include "Poco/Timer.h" enum shadow_type { H, V, D, }; class ShadowScapesAnalysis : public AbstractAnalysis { public: ShadowScapesAnalysis(shadow_type dir): AbstractAnalysis("SHADOWSCAPE"), _dir(dir){;} ShadowScapesAnalysis(): AbstractAnalysis("SHADOWSCAPE"), _dir(H){;} virtual ~ShadowScapesAnalysis(){;} public: void setup(int camWidth, int camHeight); void acquire(); void synthesise(); void draw(); void scan_cb(Poco::Timer& timer); protected: int _line; int _speed; // pix per second int _step; shadow_type _dir; };