// UI数値セット void AnimationForm::slot_setUI(FrameData data) { m_bDontSetData = true ; if ( data.pos_x != ui->doubleSpinBox_pos_x->value() ) { ui->doubleSpinBox_pos_x->setValue(data.pos_x); } if ( data.pos_y != ui->doubleSpinBox_pos_y->value() ) { ui->doubleSpinBox_pos_y->setValue(data.pos_y); } if ( data.pos_z != ui->doubleSpinBox_pos_z->value() ) { ui->doubleSpinBox_pos_z->setValue(data.pos_z); } if ( data.rot_x != ui->doubleSpinBox_rot_x->value() ) { ui->doubleSpinBox_rot_x->setValue(data.rot_x); } if ( data.rot_y != ui->doubleSpinBox_rot_y->value() ) { ui->doubleSpinBox_rot_y->setValue(data.rot_y); } if ( data.rot_z != ui->doubleSpinBox_rot_z->value() ) { ui->doubleSpinBox_rot_z->setValue(data.rot_z); } if ( data.fScaleX != (float)ui->doubleSpinBox_scale_x->value() ) { ui->doubleSpinBox_scale_x->setValue(data.fScaleX) ; } if ( data.fScaleY != (float)ui->doubleSpinBox_scale_y->value() ) { ui->doubleSpinBox_scale_y->setValue(data.fScaleY) ; } if ( data.left != ui->doubleSpinBox_uv_left->value() ) { ui->doubleSpinBox_uv_left->setValue(data.left); } if ( data.right != ui->doubleSpinBox_uv_right->value() ) { ui->doubleSpinBox_uv_right->setValue(data.right); } if ( data.top != ui->doubleSpinBox_uv_top->value() ) { ui->doubleSpinBox_uv_top->setValue(data.top); } if ( data.bottom != ui->doubleSpinBox_uv_bottom->value() ) { ui->doubleSpinBox_uv_bottom->setValue(data.bottom); } if ( data.center_x != ui->doubleSpinBox_center_x->value() ) { ui->doubleSpinBox_center_x->setValue(data.center_x); } if ( data.center_y != ui->doubleSpinBox_center_y->value() ) { ui->doubleSpinBox_center_y->setValue(data.center_y); } if ( data.nImage != ui->comboBox_image_no->currentText().toInt() ) { for ( int i = 0 ; i < ui->comboBox_image_no->count() ; i ++ ) { if ( ui->comboBox_image_no->itemText(i).toInt() == data.nImage ) { ui->comboBox_image_no->setCurrentIndex(i); break ; } } emit sig_imageChangeTab(data.nImage) ; } if ( data.bUVAnime != ui->checkBox_uv_anime->isChecked() ) { ui->checkBox_uv_anime->setChecked(data.bUVAnime); } if ( data.rgba[0] != ui->spinBox_r->value() ) { ui->spinBox_r->setValue(data.rgba[0]); } if ( data.rgba[1] != ui->spinBox_g->value() ) { ui->spinBox_g->setValue(data.rgba[1]); } if ( data.rgba[2] != ui->spinBox_b->value() ) { ui->spinBox_b->setValue(data.rgba[2]); } if ( data.rgba[3] != ui->spinBox_a->value() ) { ui->spinBox_a->setValue(data.rgba[3]); } m_bDontSetData = false ; if ( data.getRect() != m_pEditData->getCatchRect() ) { QRectF rect = data.getRect() ; m_pEditData->setCatchRect(rect); emit sig_imageChangeRect(rect) ; emit sig_imageRepaint() ; } }
// uv bottom 変更 void AnimationForm::slot_changeUvBottom( double val ) { if ( m_pGlWidget->getDragMode() != AnimeGLWidget::kDragMode_None ) { return ; } if ( m_bDontSetData ) { return ; } addNowSelectLayerAndFrame(); FrameData *p = getNowSelectFrameData() ; if ( !p ) { return ; } p->bottom = val ; addCommandEdit(*p) ; QRectF rect = p->getRect() ; m_pEditData->setCatchRect(rect); emit sig_imageRepaint() ; }
void CAnm2D::renderOpenGL_FrameData(const FrameData &data, QMatrix4x4 mat) { QRectF rect ; QRect uv = data.getRect() ; QRectF uvF ; AnmImage *pImage = getImage(data.nImage) ; if ( !pImage ) { return ; } const GLTexture *pTex = gEditData.getTexture(pImage->path) ; if ( !pTex ) { return ; } glPushMatrix() ; { double m[16] ; convMat(m, mat) ; m[14] /= 4096.0 ; glMultMatrixd(m) ; Vertex v = data.getVertex() ; rect.setLeft(v.x0); rect.setRight(v.x1) ; rect.setTop(v.y0); rect.setBottom(v.y1); int w = pTex->imgSize.width() ; int h = pTex->imgSize.height() ; uvF.setLeft((float)uv.left()/w) ; uvF.setRight((float)uv.right()/w) ; uvF.setTop(1.0f-(float)uv.top()/h) ; uvF.setBottom(1.0f-(float)uv.bottom()/h) ; glBindTexture(GL_TEXTURE_2D, pTex->nTexObj) ; QColor col ; col.setRed(data.rgba[0]); col.setGreen(data.rgba[1]); col.setBlue(data.rgba[2]); col.setAlpha(data.rgba[3]); drawRect(rect, uvF, 0, col) ; } glPopMatrix() ; }