void AnimationForm::slot_setColorFromPicker(QRgb rgba) { CObjectModel *pModel = m_pEditData->getObjectModel() ; QModelIndex index = m_pEditData->getSelIndex() ; if ( !pModel->isLayer(index) ) { return ; } int frame = m_pEditData->getSelectFrame() ; ObjectItem *pItem = pModel->getItemFromIndex(index) ; FrameData *pData = pItem->getFrameDataPtr(frame) ; if ( !pData ) { pData = pModel->getFrameDataFromPrevFrame(index, frame, true) ; if ( !pData ) { return ; } FrameData *pNext = pModel->getFrameDataFromNextFrame(index, frame) ; FrameData data = pData->getInterpolation(pNext, frame) ; data.rgba[0] = qRed(rgba) ; data.rgba[1] = qGreen(rgba) ; data.rgba[2] = qBlue(rgba) ; slot_addNewFrameData(index, frame, data); } else { pData->rgba[0] = qRed(rgba) ; pData->rgba[1] = qGreen(rgba) ; pData->rgba[2] = qBlue(rgba) ; addCommandEdit(*pData); } }
FrameData ObjectItem::getDisplayFrameData(int frame, bool *bValid) { FrameData d ; FrameData *pPrev = getFrameDataFromPrevFrame(frame+1) ; if ( pPrev ) { FrameData *pNext = getFrameDataFromNextFrame(frame) ; d = pPrev->getInterpolation(pNext, frame) ; d.frame = frame ; if ( bValid ) { *bValid = true ; } } else { if ( bValid ) { *bValid = false ; } } return d ; }
// 選択レイヤの選択フレームにフレームデータを追加 void AnimationForm::addNowSelectLayerAndFrame( void ) { CObjectModel *pModel = m_pEditData->getObjectModel() ; QModelIndex index = m_pEditData->getSelIndex() ; if ( !pModel->isLayer(index) ) { return ; } ObjectItem *pItem = pModel->getItemFromIndex(index) ; if ( !pItem ) { return ; } int frame = m_pEditData->getSelectFrame() ; if ( pItem->getFrameDataPtr(frame) ) { return ; } FrameData *pPrev = pModel->getFrameDataFromPrevFrame(index, frame, true) ; if ( !pPrev ) { return ; } FrameData *pNext = pModel->getFrameDataFromNextFrame(index, frame) ; FrameData data = pPrev->getInterpolation(pNext, frame) ; slot_addNewFrameData(index, frame, data) ; // フレームデータ追加 }