QMatrix LayerCamera::getViewAtFrame(int frameNumber) { //qDebug() << ">> " << frameNumber; int index = getLastIndexAtFrame(frameNumber); int frame1 = -1; int frame2 = -1; Camera* camera1 = getCameraAtIndex(index); if(camera1) frame1 = framesPosition.at(index); Camera* camera2 = getCameraAtIndex(index+1); if(camera2) frame2 = framesPosition.at(index+1); if(camera1 == NULL && camera2 == NULL) { return QMatrix(); } if(camera1 == NULL && camera2 != NULL) { return camera2->view; } if(camera2 == NULL && camera1 != NULL) { return camera1->view; } if(camera1 != NULL && camera2 != NULL) { // linear interpolation qreal c2 = (frameNumber-frame1+0.0)/(frame2-frame1); qreal c1 = 1.0 - c2; //qDebug() << ">> -- " << c1 << c2; return QMatrix( c1*camera1->view.m11() + c2*camera2->view.m11(), c1*camera1->view.m12() + c2*camera2->view.m12(), c1*camera1->view.m21() + c2*camera2->view.m21(), c1*camera1->view.m22() + c2*camera2->view.m22(), c1*camera1->view.dx() + c2*camera2->view.dx(), c1*camera1->view.dy() + c2*camera2->view.dy() ); } }
QImage* LayerVector::getLastImageAtFrame(int frameNumber, int increment, QSize size, bool simplified, bool showThinLines, qreal curveOpacity, bool antialiasing, int gradients) { int index = getLastIndexAtFrame(frameNumber); if(index == -1) { return NULL; } else { return getImageAtIndex(index + increment, size, simplified, showThinLines, curveOpacity, antialiasing, gradients); } }
void LayerImage::setModified(int frameNumber, bool trueOrFalse) { int index = getLastIndexAtFrame(frameNumber); if (index != -1) { framesModified[index] = trueOrFalse; object->modification(); } }
QImage* LayerImage::getLastImageAtFrame(int frameNumber, int increment) { int index = getLastIndexAtFrame(frameNumber); if (index == -1) { return NULL; } else { return getImageAtIndex(index + increment); } }
BitmapImage* LayerBitmap::getLastBitmapImageAtFrame(int frameNumber, int increment) { int index = getLastIndexAtFrame(frameNumber); return getBitmapImageAtIndex(index + increment); }
VectorImage* LayerVector::getLastVectorImageAtFrame(int frameNumber, int increment) { int index = getLastIndexAtFrame(frameNumber); return getVectorImageAtIndex(index + increment); }
Camera* LayerCamera::getLastCameraAtFrame(int frameNumber, int increment) { int index = getLastIndexAtFrame(frameNumber); return getCameraAtIndex(index + increment); }