svvitch
digital signage player
D:/vs_workspace/switch_sf/src/svvitch/SlideTransition.cpp
Go to the documentation of this file.
00001 #include "SlideTransition.h"
00002 
00003 
00004 SlideTransition::SlideTransition(ContentPtr c1, ContentPtr c2, float speed, int offsetX, int offsetY):
00005     Transition(c1, c2), _speed(speed), _offsetX(offsetX), _offsetY(offsetY)
00006 {
00007 }
00008 
00009 SlideTransition::‾SlideTransition() {
00010 }
00011 
00012 void SlideTransition::initialize(const DWORD& frame) {
00013     if (_c1) {
00014         float x, y;
00015         _c1->getPosition(x, y);
00016         _c1->setPosition(0, 0);
00017     }
00018     if (_c2) {
00019         _c2->setPosition(_offsetX, _offsetY);
00020     }
00021 }
00022 
00023 bool SlideTransition::process(const DWORD& frame) {
00024     bool finished = false;
00025     if (_c1) {
00026         float x1, y1;
00027         _c1->getPosition(x1, y1);
00028         y1 -= _speed;
00029         if (y1 <= -_offsetY) {
00030             y1 = _offsetY;
00031             finished = true;
00032         }
00033         _c1->setPosition(x1, y1);
00034     }
00035     if (_c2) {
00036         float x2, y2;
00037         _c2->getPosition(x2, y2);
00038         y2 -= _speed;
00039         if (finished) {
00040             y2 = L(y2);
00041         }
00042         _c2->setPosition(x2, y2);
00043     }
00044     return finished;
00045 }
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines