diff --git a/src/fgt/edit_texture/edit_texture.pro b/src/fgt/edit_texture/edit_texture.pro index 166fd7bd2..9d75527c9 100644 --- a/src/fgt/edit_texture/edit_texture.pro +++ b/src/fgt/edit_texture/edit_texture.pro @@ -2,7 +2,8 @@ TEMPLATE = lib CONFIG += plugin INCLUDEPATH += ../.. ../../../../sf ../../../../code/lib/glew/include HEADERS = edittexture.h textureeditor.h renderarea.h ui_textureeditor.h ../../../../sf/wrap/gui/trackball.h -SOURCES = edittexture.cpp ../../../../code/lib/glew/src/glew.c textureeditor.cpp renderarea.cpp ../../../../sf/wrap/gui/trackball.cpp +SOURCES = edittexture.cpp ../../../../code/lib/glew/src/glew.c textureeditor.cpp renderarea.cpp ../../../../sf/wrap/gui/trackball.cpp ../../../../sf/wrap/gui/trackmode.cpp + TARGET = edit_texture DESTDIR = ../../meshlab/plugins DEFINES += GLEW_STATIC diff --git a/src/fgt/edit_texture/meshlab.qrc b/src/fgt/edit_texture/meshlab.qrc index 535a81689..ea486d062 100644 --- a/src/fgt/edit_texture/meshlab.qrc +++ b/src/fgt/edit_texture/meshlab.qrc @@ -4,5 +4,6 @@ images/sel_rect.png images/sel_rect_plus.png images/sel_rect_minus.png + images/sel_move.png diff --git a/src/fgt/edit_texture/renderarea.cpp b/src/fgt/edit_texture/renderarea.cpp index f7633a54b..301db7e14 100644 --- a/src/fgt/edit_texture/renderarea.cpp +++ b/src/fgt/edit_texture/renderarea.cpp @@ -2,7 +2,6 @@ #include "renderarea.h" #include "textureeditor.h" #include -#include #include #include @@ -29,8 +28,11 @@ RenderArea::RenderArea(QWidget *parent, QString textureName, MeshModel *m, unsig tb = new Trackball(); tb->center = Point3f(0, 0, 0); tb->radius = 1; + panX = 0; panY = 0; + oldPX = 0; oldPY = 0; brush = QBrush(Qt::green); + mode = View; this->setMouseTracking(true); this->setCursor(Qt::PointingHandCursor); @@ -76,7 +78,7 @@ void RenderArea::paintEvent(QPaintEvent *) tb->GetView(); tb->Apply(true); - int maxX = 0, maxY = 0, minX = 0, minY = 0; // For texCoord out of border + maxX = 0; maxY = 0; minX = 0; minY = 0; if (image != QImage()) { glEnable(GL_COLOR_LOGIC_OP); @@ -86,14 +88,15 @@ void RenderArea::paintEvent(QPaintEvent *) glLineWidth(2); for (unsigned i = 0; i < model->cm.face.size(); i++) { - // While drawning, it counts the number of 'planes' - if (model->cm.face[i].WT(0).u() > maxX || model->cm.face[i].WT(1).u() > maxX || model->cm.face[i].WT(2).u() > maxX) maxX++; - if (model->cm.face[i].WT(0).v() > maxY || model->cm.face[i].WT(1).v() > maxY || model->cm.face[i].WT(2).v() > maxY) maxY++; - if (model->cm.face[i].WT(0).u() < minX || model->cm.face[i].WT(1).u() < minX || model->cm.face[i].WT(2).u() < minX) minX--; - if (model->cm.face[i].WT(0).v() < minY || model->cm.face[i].WT(1).v() < minY || model->cm.face[i].WT(2).v() < minY) minY--; // First draw the model in u,v space if (model->cm.face[i].IsS() && model->cm.face[i].WT(0).n() == textNum) { + // While drawning, it counts the number of 'planes' + if (model->cm.face[i].WT(0).u() > maxX || model->cm.face[i].WT(1).u() > maxX || model->cm.face[i].WT(2).u() > maxX) maxX++; + if (model->cm.face[i].WT(0).v() > maxY || model->cm.face[i].WT(1).v() > maxY || model->cm.face[i].WT(2).v() > maxY) maxY++; + if (model->cm.face[i].WT(0).u() < minX || model->cm.face[i].WT(1).u() < minX || model->cm.face[i].WT(2).u() < minX) minX--; + if (model->cm.face[i].WT(0).v() < minY || model->cm.face[i].WT(1).v() < minY || model->cm.face[i].WT(2).v() < minY) minY--; + glBegin(GL_LINE_LOOP); glVertex3f(model->cm.face[i].WT(0).u() * AREADIM, AREADIM - (model->cm.face[i].WT(0).v() * AREADIM), 1); glVertex3f(model->cm.face[i].WT(1).u() * AREADIM, AREADIM - (model->cm.face[i].WT(1).v() * AREADIM), 1); @@ -105,10 +108,14 @@ void RenderArea::paintEvent(QPaintEvent *) glDisable(GL_COLOR_LOGIC_OP); // Draw the background behind the model - for (int x = minX; x < maxX; x++) - for (int y = minY; y < maxY; y++) - painter.drawImage(QRect(x*AREADIM,-y*AREADIM,AREADIM,AREADIM),image,QRect(0,0,image.width(),image.height())); - + if (minX != 0 || minY != 0 || maxX != 0 || maxY != 0) + { + for (int x = minX; x < maxX; x++) + for (int y = minY; y < maxY; y++) + painter.drawImage(QRect(x*AREADIM + panX,-y*AREADIM + panY,AREADIM,AREADIM),image,QRect(0,0,image.width(),image.height())); + } + else painter.drawImage(QRect(0,0,AREADIM,AREADIM),image,QRect(0,0,image.width(),image.height())); + // and the axis, always in first plane glMatrixMode(GL_PROJECTION); glPushMatrix(); @@ -148,47 +155,77 @@ void RenderArea::paintEvent(QPaintEvent *) // Mouse Event: void RenderArea::mousePressEvent(QMouseEvent *e) { - oldX = e->x(); oldY = e->y(); - tmpX = viewport.X(); tmpY = viewport.Y(); - tb->MouseDown(e->x(), AREADIM-e->y(), QT2VCG(e->button(), e->modifiers())); - this->update(); + switch(mode) + { + case View: + oldX = e->x(); oldY = e->y(); + tmpX = viewport.X(); tmpY = viewport.Y(); + tb->MouseDown(e->x(), AREADIM-e->y(), QT2VCG(e->button(), e->modifiers())); + this->update(); + break; + case Edit: + tpanX = e->x(); + tpanY = e->y(); + break; + } } void RenderArea::mouseReleaseEvent(QMouseEvent *e) { - tb->MouseUp(e->x(), AREADIM-e->y(), QT2VCG(e->button(), e->modifiers())); - this->update(); + switch(mode) + { + case View: + tb->MouseUp(e->x(), AREADIM-e->y(), QT2VCG(e->button(), e->modifiers())); + this->update(); + break; + case Edit: + oldPX = panX; + oldPY = panY; + UpdateUV(); + break; + } } void RenderArea::mouseMoveEvent(QMouseEvent *e) { - if((e->buttons() & Qt::LeftButton)) + if((e->buttons() & Qt::LeftButton)) // <---- Se non ci sono facce selezionate -> non si fa nulla { - tb->track.SetTranslate(Point3f(tmpX + oldX - e->x(), tmpY + oldY - e->y(), 0)); - viewport = Point2f(tmpX + oldX - e->x(), tmpY + oldY - e->y()); - this->update(); + switch(mode) + { + case View: + tb->track.SetTranslate(Point3f(tmpX + oldX - e->x(), tmpY + oldY - e->y(), 0)); + viewport = Point2f(tmpX + oldX - e->x(), tmpY + oldY - e->y()); + this->update(); + break; + case Edit: + panX = oldPX + tpanX - e->x(); + panY = oldPY + tpanY - e->y(); + this->update(); + break; + } } } void RenderArea::mouseDoubleClickEvent(QMouseEvent *) { - // Reset of the trackball - tb->center = Point3f(0, 0, 0); - viewport = Point2f(0,0); - oldX = 0; oldY = 0; - tb->track.SetTranslate(Point3f(0,0,0)); + ResetTrack(); // <--- reset dello zoom this->update(); } void RenderArea::wheelEvent(QWheelEvent*e) { - // Zoom - float WHEEL_STEP = 120.0f; - float notch = (float)e->delta()/WHEEL_STEP; - tb->MouseWheel(notch, QTWheel2VCG(e->modifiers())); - tb->track.SetScale(notch); // <---- ???? parametro ???? - this->update(); + switch(mode) + { + case View: + // Zoom + float WHEEL_STEP = 120.0f; + float notch = (float)e->delta()/WHEEL_STEP; + tb->MouseWheel(notch, QTWheel2VCG(e->modifiers())); + tb->track.SetScale(notch); // <---- ???? parametro ???? + this->update(); + break; + } } void RenderArea::RemapRepeat() @@ -210,37 +247,50 @@ void RenderArea::RemapRepeat() void RenderArea::RemapClamp() { - /* // Remap the uv coord out of border using clamp method - out = false; - for (unsigned i = 0; i < map.size(); i++) + for (unsigned i = 0; i < model->cm.face.size(); i++) { - float u = map[i].GetU(); - float v = map[i].GetV(); - map[i].SetVertex(GetClampVertex(u, v, i)); + if (model->cm.face[i].WT(0).n() == textNum) + { + for (unsigned j = 0; j < 3; j++) + { + if (model->cm.face[i].WT(j).u() > 1) model->cm.face[i].WT(j).u() = 1; + else if (model->cm.face[i].WT(j).u() < 0) model->cm.face[i].WT(j).u() = 0; + if (model->cm.face[i].WT(j).v() > 1) model->cm.face[i].WT(j).v() = 1; + else if (model->cm.face[i].WT(j).v() < 0) model->cm.face[i].WT(j).v() = 0; + } + } } + panX = 0; panY = 0; tpanX = 0; tpanY = 0; oldPX = 0; oldPY = 0; + ResetTrack(); this->update(); - */ + emit UpdateStat(0,0,0,0,0); // <-------- } void RenderArea::RemapMod() { - /* // Remap the uv coord out of border using mod function - out = false; - for (unsigned i = 0; i < map.size(); i++) + for (unsigned i = 0; i < model->cm.face.size(); i++) { - float u = map[i].GetU(); - float v = map[i].GetV(); - if (u < 0) {while (u<0) u++;} - else if (u > 1) {while (u>1) u--;} - if (v < 0) {while(v<0) v++;} - else if (v > 1) {while(v>1) v--;} - map[i].SetVertex(QRect(u * AREADIM - RADIUS/2, (AREADIM - (v * AREADIM)) - RADIUS/2, RADIUS, RADIUS)); - UpdateSingleUV(i, u, v); + if (model->cm.face[i].WT(0).n() == textNum) + { + for (unsigned j = 0; j < 3; j++) + { + float u = model->cm.face[i].WT(j).u(); + float v = model->cm.face[i].WT(j).v(); + if (u < 0) u = u + (int)u + 1; + else if (u > 1) u = u - (int)u; + if (v < 0) v = v + (int)v + 1; + else if (v > 1) v = v - (int)v; + model->cm.face[i].WT(j).u() = u; + model->cm.face[i].WT(j).v() = v; + } + } } + panX = 0; panY = 0; tpanX = 0; tpanY = 0; oldPX = 0; oldPY = 0; + ResetTrack(); this->update(); - */ + emit UpdateStat(0,0,0,0,0); // <-------- } void RenderArea::UpdateVertex(float u, float v) @@ -276,13 +326,28 @@ void RenderArea::ChangeMode(int index) switch(index) { case 0: - mode = Point; + if (mode != View) + { + mode = View; + this->setCursor(Qt::PointingHandCursor); + } break; case 1: - mode = Face; + if (mode != Edit) + { + mode = Edit; + this->setCursor(QCursor(QBitmap(":/images/sel_move.png"))); + } break; case 2: - mode = Smooth; + if (mode != Select) + { + mode = Select; + this->setCursor(Qt::CrossCursor); + } + break; + default: + this->setCursor(Qt::ArrowCursor); break; } this->update(); @@ -354,15 +419,22 @@ void RenderArea::ScaleComponent(int perc) void RenderArea::UpdateUV() { - /* // After a move of component, re-calculate the new UV coordinates - for (unsigned i = 0; i < connected.size(); i++) + for (unsigned i = 0; i < model->cm.face.size(); i++) { - float u = (float)map[connected[i]].GetVertex().center().x() / AREADIM; - float v = (float)(AREADIM - map[connected[i]].GetVertex().center().y()) / AREADIM; - UpdateSingleUV(connected[i], u, v); + if (model->cm.face[i].WT(0).n() == textNum) + { + for (unsigned j = 0; j < 3; j++) + { + model->cm.face[i].WT(j).u() = model->cm.face[i].WT(j).u() - (float)panX/AREADIM; + model->cm.face[i].WT(j).v() = model->cm.face[i].WT(j).v() + (float)panY/AREADIM; + } + } } - */ + panX = 0; panY = 0; tpanX = 0; tpanY = 0; oldPX = 0; oldPY = 0; + ResetTrack(); + this->update(); + emit UpdateStat(0,0,0,0,0); // <-------- } void RenderArea::UpdateSingleUV(int index, float u, float v) @@ -451,4 +523,11 @@ QRect RenderArea::GetClampVertex(float u, float v, int index) return QRect(); } - +void RenderArea::ResetTrack() +{ + // Reset the center of the trackball + tb->center = Point3f(0, 0, 0); + viewport = Point2f(0,0); + oldX = 0; oldY = 0; + tb->track.SetTranslate(Point3f(0,0,0)); +} diff --git a/src/fgt/edit_texture/renderarea.h b/src/fgt/edit_texture/renderarea.h index 4e82ffc83..5ec0fcde0 100644 --- a/src/fgt/edit_texture/renderarea.h +++ b/src/fgt/edit_texture/renderarea.h @@ -28,7 +28,7 @@ class RenderArea : public QGLWidget Q_OBJECT public: - enum Mode { Point, Face, Smooth }; + enum Mode { View, Edit, Select }; RenderArea(QWidget *parent = 0, QString path = QString(), MeshModel *m = 0, unsigned textNum = 0); ~RenderArea(); @@ -41,8 +41,6 @@ public: highClick; // Clicked vertex bool out; - Mode mode; // Action type - public: void setPen(const QPen &pen); void setBrush(const QBrush &brush); @@ -74,6 +72,8 @@ private: QString fileName; // Name of the texture MeshModel *model; // Ref to the model (for upate) + Mode mode; // Action type + // Trackball data vcg::Trackball *tb; Point2f viewport; @@ -83,6 +83,10 @@ private: QPen pen; // For 2D painting QBrush brush; + int panX, panY, tpanX, tpanY, oldPX, oldPY; // Temp for axis + int maxX, maxY, minX, minY; // For texCoord out of border + + void ResetTrack(); void VisitConnected(); QRect GetRepeatVertex(float u, float v, int index); QRect GetClampVertex(float u, float v, int index); diff --git a/src/fgt/edit_texture/textureeditor.cpp b/src/fgt/edit_texture/textureeditor.cpp index 271e51eeb..d107a517d 100644 --- a/src/fgt/edit_texture/textureeditor.cpp +++ b/src/fgt/edit_texture/textureeditor.cpp @@ -198,6 +198,7 @@ void TextureEditor::UpStat(float u, float v, int faceN, int vertN, int countFace if (countFace > 0) ui.LabelFaceNum->setText(QString("%1").arg(countFace)); else ui.LabelFaceNum->setText(QString("0")); lock = false; + area->update(); } @@ -267,4 +268,36 @@ void TextureEditor::on_ApplyScale_clicked() int a = ((RenderArea*)ui.tabWidget->currentWidget()->childAt(MARGIN,MARGIN))->highComp; if (a != -1 && ui.spinBoxScale->value() != 100) ((RenderArea*)ui.tabWidget->currentWidget()->childAt(MARGIN,MARGIN))->ScaleComponent(ui.spinBoxScale->value()); -} \ No newline at end of file +} + +void TextureEditor::on_moveButton_clicked() +{ + ((RenderArea*)ui.tabWidget->currentWidget()->childAt(MARGIN,MARGIN))->ChangeMode(0); + +} + +void TextureEditor::on_editButton_clicked() +{ + ((RenderArea*)ui.tabWidget->currentWidget()->childAt(MARGIN,MARGIN))->ChangeMode(1); +} + +void TextureEditor::on_selectButton_clicked() +{ + ((RenderArea*)ui.tabWidget->currentWidget()->childAt(MARGIN,MARGIN))->ChangeMode(2); +} + +void TextureEditor::on_optionButton_clicked() +{ + ((RenderArea*)ui.tabWidget->currentWidget()->childAt(MARGIN,MARGIN))->ChangeMode(3); +} + +void TextureEditor::on_clampButton_clicked() +{ + ((RenderArea*)ui.tabWidget->currentWidget()->childAt(MARGIN,MARGIN))->RemapClamp(); +} + +void TextureEditor::on_modulusButton_clicked() +{ + ((RenderArea*)ui.tabWidget->currentWidget()->childAt(MARGIN,MARGIN))->RemapMod(); +} + diff --git a/src/fgt/edit_texture/textureeditor.h b/src/fgt/edit_texture/textureeditor.h index 46d924589..f725a7e85 100644 --- a/src/fgt/edit_texture/textureeditor.h +++ b/src/fgt/edit_texture/textureeditor.h @@ -39,6 +39,10 @@ private: void HandleSpinBoxXY(); private slots: + void on_editButton_clicked(); + void on_moveButton_clicked(); + void on_selectButton_clicked(); + void on_optionButton_clicked(); void on_ApplyScale_clicked(); void on_ApplyRotate_clicked(); void on_spinBoxY_valueChanged(int); @@ -51,6 +55,8 @@ private slots: void on_remapRB_toggled(bool); void on_vertRB_toggled(bool); void on_faceRB_toggled(bool); + void on_clampButton_clicked(); + void on_modulusButton_clicked(); public slots: void UpStat(float u, float v, int faceN, int vertN, int countFace); diff --git a/src/fgt/edit_texture/textureeditor.ui b/src/fgt/edit_texture/textureeditor.ui index 5f2947300..6c2f376dc 100644 --- a/src/fgt/edit_texture/textureeditor.ui +++ b/src/fgt/edit_texture/textureeditor.ui @@ -36,58 +36,94 @@ - + + + + 340 + 610 + 75 + 23 + + + + Modulus + + + + + + 340 + 580 + 75 + 23 + + + + Clamp + + + 10 450 - 311 - 41 + 411 + 71 - Border managment + Action selection - + - 106 - 15 - 81 - 19 + 20 + 20 + 70 + 40 - Clamp + View - + - 199 - 15 - 81 - 19 + 120 + 20 + 70 + 40 - Modulus + Select - + - 12 - 15 - 61 - 19 + 220 + 20 + 70 + 40 - Repeat + Edit - - true + + + + + 320 + 20 + 70 + 40 + + + + Option @@ -95,51 +131,19 @@ 10 - 500 + 530 311 - 261 + 231 UV Map editing - - - - 10 - 230 - 100 - 25 - - - - Save Changes - - - - - - 200 - 230 - 100 - 20 - - - - 100 - - - 0 - - - Qt::Horizontal - - 120 - 230 + 200 71 21 @@ -162,13 +166,32 @@ Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + 200 + 200 + 100 + 20 + + + + 100 + + + 0 + + + Qt::Horizontal + + 10 20 293 - 201 + 171 @@ -178,30 +201,6 @@ Single Points - - - - 10 - 20 - 101 - 17 - - - - - MS Shell Dlg 2 - 10 - 50 - false - false - false - false - - - - UV Coordinates: - - false @@ -294,11 +293,138 @@ V: + + + + 10 + 100 + 261 + 41 + + + + Border managment + + + + + 106 + 15 + 81 + 19 + + + + Clamp + + + + + + 199 + 15 + 81 + 19 + + + + Modulus + + + + + + 12 + 15 + 61 + 19 + + + + Repeat + + + true + + + + + + + 10 + 20 + 101 + 17 + + + + + MS Shell Dlg 2 + 10 + 50 + false + false + false + false + + + + UV Coordinates: + + Connected component + + + + 140 + 10 + 61 + 17 + + + + + MS Shell Dlg 2 + 10 + 50 + false + false + false + false + + + + 0 + + + + + + 20 + 10 + 111 + 17 + + + + + MS Shell Dlg 2 + 10 + 50 + false + false + false + false + + + + Selected Vertexes: + + Qt::NonModal @@ -306,13 +432,13 @@ 10 - 40 - 272 - 131 + 30 + 276 + 111 - 0 + 1 false @@ -339,42 +465,6 @@ Move selected component - - - - 130 - 40 - 16 - 16 - - - - - 10 - - - - X = - - - - - - 130 - 70 - 16 - 16 - - - - - 10 - - - - Y = - - @@ -399,8 +489,8 @@ - 160 - 40 + 200 + 20 46 22 @@ -418,8 +508,8 @@ - 160 - 70 + 200 + 50 46 22 @@ -431,18 +521,13 @@ -300 - - - - Rotate - - + - 10 - 10 - 193 - 17 + 180 + 50 + 16 + 16 @@ -451,16 +536,39 @@ - Rotate around the selected vertex + Y = + + + + 180 + 20 + 16 + 16 + + + + + 10 + + + + X = + + + + + + Rotate + 10 - 40 + 30 41 - 17 + 21 @@ -472,22 +580,6 @@ Angle: - - - false - - - - 180 - 70 - 75 - 24 - - - - Apply - - Qt::NonModal @@ -498,7 +590,7 @@ 70 - 40 + 30 55 55 @@ -544,7 +636,7 @@ 10 - 70 + 60 46 22 @@ -556,6 +648,40 @@ -360 + + + false + + + + 140 + 50 + 75 + 24 + + + + Apply + + + + + + 10 + 10 + 193 + 17 + + + + + 10 + + + + Rotate around the selected vertex + + @@ -658,54 +784,6 @@ - - - - 20 - 10 - 111 - 17 - - - - - MS Shell Dlg 2 - 10 - 50 - false - false - false - false - - - - Selected Vertexes: - - - - - - 140 - 10 - 61 - 17 - - - - - MS Shell Dlg 2 - 10 - 50 - false - false - false - false - - - - 0 - - @@ -713,6 +791,19 @@ + + + + 10 + 200 + 100 + 25 + + + + Save Changes + + diff --git a/src/fgt/edit_texture/ui_textureeditor.h b/src/fgt/edit_texture/ui_textureeditor.h index 83e67f91e..1fe4a947e 100644 --- a/src/fgt/edit_texture/ui_textureeditor.h +++ b/src/fgt/edit_texture/ui_textureeditor.h @@ -1,7 +1,7 @@ /******************************************************************************** ** Form generated from reading ui file 'textureeditor.ui' ** -** Created: Sun 16. Mar 11:36:51 2008 +** Created: Thu 20. Mar 19:49:39 2008 ** by: Qt User Interface Compiler version 4.2.2 ** ** WARNING! All changes made in this file will be lost when recompiling ui file! @@ -30,45 +30,52 @@ class Ui_TextureEditorClass public: QTabWidget *tabWidget; QWidget *tab; - QGroupBox *groupBox; - QRadioButton *vertRB; - QRadioButton *remapRB; - QRadioButton *faceRB; + QPushButton *modulusButton; + QPushButton *clampButton; + QGroupBox *groupBox_3; + QPushButton *moveButton; + QPushButton *selectButton; + QPushButton *editButton; + QPushButton *optionButton; QGroupBox *groupBox_2; - QPushButton *applyButton; - QProgressBar *progressBar; QLabel *StatusLabel; + QProgressBar *progressBar; QTabWidget *tabWidgetEdit; QWidget *tab_point; - QLabel *label_11; QDoubleSpinBox *SpinBoxU; QDoubleSpinBox *SpinBoxV; QLabel *label_9; QLabel *label_10; + QGroupBox *groupBox; + QRadioButton *vertRB; + QRadioButton *remapRB; + QRadioButton *faceRB; + QLabel *label_11; QWidget *tab_comp; + QLabel *LabelFaceNum; + QLabel *label_6; QTabWidget *tabWidget_2; QWidget *tab_2; QLabel *label_19; - QLabel *label_12; - QLabel *label_13; QLabel *label_2; QSpinBox *spinBoxX; QSpinBox *spinBoxY; + QLabel *label_13; + QLabel *label_12; QWidget *tab_3; - QLabel *label_15; QLabel *label_14; - QPushButton *ApplyRotate; QDial *angle; QSpinBox *spinBoxAngle; + QPushButton *ApplyRotate; + QLabel *label_15; QWidget *tab_4; QLabel *label_17; QLabel *label_18; QLabel *label_16; QPushButton *ApplyScale; QSpinBox *spinBoxScale; - QLabel *label_6; - QLabel *LabelFaceNum; QWidget *tab_smooth; + QPushButton *applyButton; void setupUi(QWidget *TextureEditorClass) { @@ -80,34 +87,33 @@ public: tab = new QWidget(); tab->setObjectName(QString::fromUtf8("tab")); tabWidget->addTab(tab, QApplication::translate("TextureEditorClass", "Texture", 0, QApplication::UnicodeUTF8)); - groupBox = new QGroupBox(TextureEditorClass); - groupBox->setObjectName(QString::fromUtf8("groupBox")); - groupBox->setGeometry(QRect(10, 450, 311, 41)); - vertRB = new QRadioButton(groupBox); - vertRB->setObjectName(QString::fromUtf8("vertRB")); - vertRB->setGeometry(QRect(106, 15, 81, 19)); - remapRB = new QRadioButton(groupBox); - remapRB->setObjectName(QString::fromUtf8("remapRB")); - remapRB->setGeometry(QRect(199, 15, 81, 19)); - faceRB = new QRadioButton(groupBox); - faceRB->setObjectName(QString::fromUtf8("faceRB")); - faceRB->setGeometry(QRect(12, 15, 61, 19)); - faceRB->setChecked(true); + modulusButton = new QPushButton(TextureEditorClass); + modulusButton->setObjectName(QString::fromUtf8("modulusButton")); + modulusButton->setGeometry(QRect(340, 610, 75, 23)); + clampButton = new QPushButton(TextureEditorClass); + clampButton->setObjectName(QString::fromUtf8("clampButton")); + clampButton->setGeometry(QRect(340, 580, 75, 23)); + groupBox_3 = new QGroupBox(TextureEditorClass); + groupBox_3->setObjectName(QString::fromUtf8("groupBox_3")); + groupBox_3->setGeometry(QRect(10, 450, 411, 71)); + moveButton = new QPushButton(groupBox_3); + moveButton->setObjectName(QString::fromUtf8("moveButton")); + moveButton->setGeometry(QRect(20, 20, 70, 40)); + selectButton = new QPushButton(groupBox_3); + selectButton->setObjectName(QString::fromUtf8("selectButton")); + selectButton->setGeometry(QRect(120, 20, 70, 40)); + editButton = new QPushButton(groupBox_3); + editButton->setObjectName(QString::fromUtf8("editButton")); + editButton->setGeometry(QRect(220, 20, 70, 40)); + optionButton = new QPushButton(groupBox_3); + optionButton->setObjectName(QString::fromUtf8("optionButton")); + optionButton->setGeometry(QRect(320, 20, 70, 40)); groupBox_2 = new QGroupBox(TextureEditorClass); groupBox_2->setObjectName(QString::fromUtf8("groupBox_2")); - groupBox_2->setGeometry(QRect(10, 500, 311, 261)); - applyButton = new QPushButton(groupBox_2); - applyButton->setObjectName(QString::fromUtf8("applyButton")); - applyButton->setGeometry(QRect(10, 230, 100, 25)); - progressBar = new QProgressBar(groupBox_2); - progressBar->setObjectName(QString::fromUtf8("progressBar")); - progressBar->setGeometry(QRect(200, 230, 100, 20)); - progressBar->setMaximum(100); - progressBar->setValue(0); - progressBar->setOrientation(Qt::Horizontal); + groupBox_2->setGeometry(QRect(10, 530, 311, 231)); StatusLabel = new QLabel(groupBox_2); StatusLabel->setObjectName(QString::fromUtf8("StatusLabel")); - StatusLabel->setGeometry(QRect(120, 230, 71, 21)); + StatusLabel->setGeometry(QRect(120, 200, 71, 21)); QFont font; font.setFamily(QString::fromUtf8("MS Shell Dlg 2")); font.setPointSize(10); @@ -118,23 +124,17 @@ public: font.setStrikeOut(false); StatusLabel->setFont(font); StatusLabel->setAlignment(Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter); + progressBar = new QProgressBar(groupBox_2); + progressBar->setObjectName(QString::fromUtf8("progressBar")); + progressBar->setGeometry(QRect(200, 200, 100, 20)); + progressBar->setMaximum(100); + progressBar->setValue(0); + progressBar->setOrientation(Qt::Horizontal); tabWidgetEdit = new QTabWidget(groupBox_2); tabWidgetEdit->setObjectName(QString::fromUtf8("tabWidgetEdit")); - tabWidgetEdit->setGeometry(QRect(10, 20, 293, 201)); + tabWidgetEdit->setGeometry(QRect(10, 20, 293, 171)); tab_point = new QWidget(); tab_point->setObjectName(QString::fromUtf8("tab_point")); - label_11 = new QLabel(tab_point); - label_11->setObjectName(QString::fromUtf8("label_11")); - label_11->setGeometry(QRect(10, 20, 101, 17)); - QFont font1; - font1.setFamily(QString::fromUtf8("MS Shell Dlg 2")); - font1.setPointSize(10); - font1.setBold(false); - font1.setItalic(false); - font1.setUnderline(false); - font1.setWeight(50); - font1.setStrikeOut(false); - label_11->setFont(font1); SpinBoxU = new QDoubleSpinBox(tab_point); SpinBoxU->setObjectName(QString::fromUtf8("SpinBoxU")); SpinBoxU->setEnabled(false); @@ -152,6 +152,18 @@ public: label_9 = new QLabel(tab_point); label_9->setObjectName(QString::fromUtf8("label_9")); label_9->setGeometry(QRect(160, 20, 16, 16)); + QFont font1; + font1.setFamily(QString::fromUtf8("MS Shell Dlg 2")); + font1.setPointSize(10); + font1.setBold(false); + font1.setItalic(false); + font1.setUnderline(false); + font1.setWeight(50); + font1.setStrikeOut(false); + label_9->setFont(font1); + label_10 = new QLabel(tab_point); + label_10->setObjectName(QString::fromUtf8("label_10")); + label_10->setGeometry(QRect(160, 60, 16, 16)); QFont font2; font2.setFamily(QString::fromUtf8("MS Shell Dlg 2")); font2.setPointSize(10); @@ -160,10 +172,23 @@ public: font2.setUnderline(false); font2.setWeight(50); font2.setStrikeOut(false); - label_9->setFont(font2); - label_10 = new QLabel(tab_point); - label_10->setObjectName(QString::fromUtf8("label_10")); - label_10->setGeometry(QRect(160, 60, 16, 16)); + label_10->setFont(font2); + groupBox = new QGroupBox(tab_point); + groupBox->setObjectName(QString::fromUtf8("groupBox")); + groupBox->setGeometry(QRect(10, 100, 261, 41)); + vertRB = new QRadioButton(groupBox); + vertRB->setObjectName(QString::fromUtf8("vertRB")); + vertRB->setGeometry(QRect(106, 15, 81, 19)); + remapRB = new QRadioButton(groupBox); + remapRB->setObjectName(QString::fromUtf8("remapRB")); + remapRB->setGeometry(QRect(199, 15, 81, 19)); + faceRB = new QRadioButton(groupBox); + faceRB->setObjectName(QString::fromUtf8("faceRB")); + faceRB->setGeometry(QRect(12, 15, 61, 19)); + faceRB->setChecked(true); + label_11 = new QLabel(tab_point); + label_11->setObjectName(QString::fromUtf8("label_11")); + label_11->setGeometry(QRect(10, 20, 101, 17)); QFont font3; font3.setFamily(QString::fromUtf8("MS Shell Dlg 2")); font3.setPointSize(10); @@ -172,35 +197,47 @@ public: font3.setUnderline(false); font3.setWeight(50); font3.setStrikeOut(false); - label_10->setFont(font3); + label_11->setFont(font3); tabWidgetEdit->addTab(tab_point, QApplication::translate("TextureEditorClass", "Single Points", 0, QApplication::UnicodeUTF8)); tab_comp = new QWidget(); tab_comp->setObjectName(QString::fromUtf8("tab_comp")); + LabelFaceNum = new QLabel(tab_comp); + LabelFaceNum->setObjectName(QString::fromUtf8("LabelFaceNum")); + LabelFaceNum->setGeometry(QRect(140, 10, 61, 17)); + QFont font4; + font4.setFamily(QString::fromUtf8("MS Shell Dlg 2")); + font4.setPointSize(10); + font4.setBold(false); + font4.setItalic(false); + font4.setUnderline(false); + font4.setWeight(50); + font4.setStrikeOut(false); + LabelFaceNum->setFont(font4); + label_6 = new QLabel(tab_comp); + label_6->setObjectName(QString::fromUtf8("label_6")); + label_6->setGeometry(QRect(20, 10, 111, 17)); + QFont font5; + font5.setFamily(QString::fromUtf8("MS Shell Dlg 2")); + font5.setPointSize(10); + font5.setBold(false); + font5.setItalic(false); + font5.setUnderline(false); + font5.setWeight(50); + font5.setStrikeOut(false); + label_6->setFont(font5); tabWidget_2 = new QTabWidget(tab_comp); tabWidget_2->setObjectName(QString::fromUtf8("tabWidget_2")); tabWidget_2->setWindowModality(Qt::NonModal); - tabWidget_2->setGeometry(QRect(10, 40, 272, 131)); + tabWidget_2->setGeometry(QRect(10, 30, 276, 111)); tabWidget_2->setUsesScrollButtons(false); tab_2 = new QWidget(); tab_2->setObjectName(QString::fromUtf8("tab_2")); label_19 = new QLabel(tab_2); label_19->setObjectName(QString::fromUtf8("label_19")); label_19->setGeometry(QRect(10, 10, 193, 17)); - QFont font4; - font4.setPointSize(10); - label_19->setFont(font4); - label_12 = new QLabel(tab_2); - label_12->setObjectName(QString::fromUtf8("label_12")); - label_12->setGeometry(QRect(130, 40, 16, 16)); - QFont font5; - font5.setPointSize(10); - label_12->setFont(font5); - label_13 = new QLabel(tab_2); - label_13->setObjectName(QString::fromUtf8("label_13")); - label_13->setGeometry(QRect(130, 70, 16, 16)); QFont font6; font6.setPointSize(10); - label_13->setFont(font6); + label_19->setFont(font6); label_2 = new QLabel(tab_2); label_2->setObjectName(QString::fromUtf8("label_2")); label_2->setGeometry(QRect(10, 50, 98, 17)); @@ -210,39 +247,41 @@ public: spinBoxX = new QSpinBox(tab_2); spinBoxX->setObjectName(QString::fromUtf8("spinBoxX")); spinBoxX->setEnabled(false); - spinBoxX->setGeometry(QRect(160, 40, 46, 22)); + spinBoxX->setGeometry(QRect(200, 20, 46, 22)); spinBoxX->setMaximum(300); spinBoxX->setMinimum(-300); spinBoxY = new QSpinBox(tab_2); spinBoxY->setObjectName(QString::fromUtf8("spinBoxY")); spinBoxY->setEnabled(false); - spinBoxY->setGeometry(QRect(160, 70, 46, 22)); + spinBoxY->setGeometry(QRect(200, 50, 46, 22)); spinBoxY->setMaximum(300); spinBoxY->setMinimum(-300); + label_13 = new QLabel(tab_2); + label_13->setObjectName(QString::fromUtf8("label_13")); + label_13->setGeometry(QRect(180, 50, 16, 16)); + QFont font8; + font8.setPointSize(10); + label_13->setFont(font8); + label_12 = new QLabel(tab_2); + label_12->setObjectName(QString::fromUtf8("label_12")); + label_12->setGeometry(QRect(180, 20, 16, 16)); + QFont font9; + font9.setPointSize(10); + label_12->setFont(font9); tabWidget_2->addTab(tab_2, QApplication::translate("TextureEditorClass", " Move ", 0, QApplication::UnicodeUTF8)); tab_3 = new QWidget(); tab_3->setObjectName(QString::fromUtf8("tab_3")); - label_15 = new QLabel(tab_3); - label_15->setObjectName(QString::fromUtf8("label_15")); - label_15->setGeometry(QRect(10, 10, 193, 17)); - QFont font8; - font8.setPointSize(10); - label_15->setFont(font8); label_14 = new QLabel(tab_3); label_14->setObjectName(QString::fromUtf8("label_14")); - label_14->setGeometry(QRect(10, 40, 41, 17)); - QFont font9; - font9.setPointSize(10); - label_14->setFont(font9); - ApplyRotate = new QPushButton(tab_3); - ApplyRotate->setObjectName(QString::fromUtf8("ApplyRotate")); - ApplyRotate->setEnabled(false); - ApplyRotate->setGeometry(QRect(180, 70, 75, 24)); + label_14->setGeometry(QRect(10, 30, 41, 21)); + QFont font10; + font10.setPointSize(10); + label_14->setFont(font10); angle = new QDial(tab_3); angle->setObjectName(QString::fromUtf8("angle")); angle->setWindowModality(Qt::NonModal); angle->setEnabled(true); - angle->setGeometry(QRect(70, 40, 55, 55)); + angle->setGeometry(QRect(70, 30, 55, 55)); angle->setMinimum(-360); angle->setMaximum(360); angle->setPageStep(45); @@ -257,30 +296,40 @@ public: spinBoxAngle = new QSpinBox(tab_3); spinBoxAngle->setObjectName(QString::fromUtf8("spinBoxAngle")); spinBoxAngle->setEnabled(true); - spinBoxAngle->setGeometry(QRect(10, 70, 46, 22)); + spinBoxAngle->setGeometry(QRect(10, 60, 46, 22)); spinBoxAngle->setMaximum(360); spinBoxAngle->setMinimum(-360); + ApplyRotate = new QPushButton(tab_3); + ApplyRotate->setObjectName(QString::fromUtf8("ApplyRotate")); + ApplyRotate->setEnabled(false); + ApplyRotate->setGeometry(QRect(140, 50, 75, 24)); + label_15 = new QLabel(tab_3); + label_15->setObjectName(QString::fromUtf8("label_15")); + label_15->setGeometry(QRect(10, 10, 193, 17)); + QFont font11; + font11.setPointSize(10); + label_15->setFont(font11); tabWidget_2->addTab(tab_3, QApplication::translate("TextureEditorClass", " Rotate ", 0, QApplication::UnicodeUTF8)); tab_4 = new QWidget(); tab_4->setObjectName(QString::fromUtf8("tab_4")); label_17 = new QLabel(tab_4); label_17->setObjectName(QString::fromUtf8("label_17")); label_17->setGeometry(QRect(120, 50, 16, 17)); - QFont font10; - font10.setPointSize(10); - label_17->setFont(font10); + QFont font12; + font12.setPointSize(10); + label_17->setFont(font12); label_18 = new QLabel(tab_4); label_18->setObjectName(QString::fromUtf8("label_18")); label_18->setGeometry(QRect(20, 50, 41, 17)); - QFont font11; - font11.setPointSize(10); - label_18->setFont(font11); + QFont font13; + font13.setPointSize(10); + label_18->setFont(font13); label_16 = new QLabel(tab_4); label_16->setObjectName(QString::fromUtf8("label_16")); label_16->setGeometry(QRect(10, 10, 193, 17)); - QFont font12; - font12.setPointSize(10); - label_16->setFont(font12); + QFont font14; + font14.setPointSize(10); + label_16->setFont(font14); ApplyScale = new QPushButton(tab_4); ApplyScale->setObjectName(QString::fromUtf8("ApplyScale")); ApplyScale->setEnabled(false); @@ -294,34 +343,13 @@ public: spinBoxScale->setSingleStep(5); spinBoxScale->setValue(100); tabWidget_2->addTab(tab_4, QApplication::translate("TextureEditorClass", " Scale ", 0, QApplication::UnicodeUTF8)); - label_6 = new QLabel(tab_comp); - label_6->setObjectName(QString::fromUtf8("label_6")); - label_6->setGeometry(QRect(20, 10, 111, 17)); - QFont font13; - font13.setFamily(QString::fromUtf8("MS Shell Dlg 2")); - font13.setPointSize(10); - font13.setBold(false); - font13.setItalic(false); - font13.setUnderline(false); - font13.setWeight(50); - font13.setStrikeOut(false); - label_6->setFont(font13); - LabelFaceNum = new QLabel(tab_comp); - LabelFaceNum->setObjectName(QString::fromUtf8("LabelFaceNum")); - LabelFaceNum->setGeometry(QRect(140, 10, 61, 17)); - QFont font14; - font14.setFamily(QString::fromUtf8("MS Shell Dlg 2")); - font14.setPointSize(10); - font14.setBold(false); - font14.setItalic(false); - font14.setUnderline(false); - font14.setWeight(50); - font14.setStrikeOut(false); - LabelFaceNum->setFont(font14); tabWidgetEdit->addTab(tab_comp, QApplication::translate("TextureEditorClass", "Connected component", 0, QApplication::UnicodeUTF8)); tab_smooth = new QWidget(); tab_smooth->setObjectName(QString::fromUtf8("tab_smooth")); tabWidgetEdit->addTab(tab_smooth, QApplication::translate("TextureEditorClass", " Smooth ", 0, QApplication::UnicodeUTF8)); + applyButton = new QPushButton(groupBox_2); + applyButton->setObjectName(QString::fromUtf8("applyButton")); + applyButton->setGeometry(QRect(10, 200, 100, 25)); retranslateUi(TextureEditorClass); @@ -334,7 +362,7 @@ public: tabWidget->setCurrentIndex(0); tabWidgetEdit->setCurrentIndex(0); - tabWidget_2->setCurrentIndex(0); + tabWidget_2->setCurrentIndex(1); QMetaObject::connectSlotsByName(TextureEditorClass); @@ -344,35 +372,42 @@ public: { TextureEditorClass->setWindowTitle(QApplication::translate("TextureEditorClass", "TextureEditor", 0, QApplication::UnicodeUTF8)); tabWidget->setTabText(tabWidget->indexOf(tab), QApplication::translate("TextureEditorClass", "Texture", 0, QApplication::UnicodeUTF8)); + modulusButton->setText(QApplication::translate("TextureEditorClass", "Modulus", 0, QApplication::UnicodeUTF8)); + clampButton->setText(QApplication::translate("TextureEditorClass", "Clamp", 0, QApplication::UnicodeUTF8)); + groupBox_3->setTitle(QApplication::translate("TextureEditorClass", " Action selection ", 0, QApplication::UnicodeUTF8)); + moveButton->setText(QApplication::translate("TextureEditorClass", "View", 0, QApplication::UnicodeUTF8)); + selectButton->setText(QApplication::translate("TextureEditorClass", "Select", 0, QApplication::UnicodeUTF8)); + editButton->setText(QApplication::translate("TextureEditorClass", "Edit", 0, QApplication::UnicodeUTF8)); + optionButton->setText(QApplication::translate("TextureEditorClass", "Option", 0, QApplication::UnicodeUTF8)); + groupBox_2->setTitle(QApplication::translate("TextureEditorClass", " UV Map editing ", 0, QApplication::UnicodeUTF8)); + StatusLabel->setText(QApplication::translate("TextureEditorClass", "Loading...", 0, QApplication::UnicodeUTF8)); + label_9->setText(QApplication::translate("TextureEditorClass", "U:", 0, QApplication::UnicodeUTF8)); + label_10->setText(QApplication::translate("TextureEditorClass", "V:", 0, QApplication::UnicodeUTF8)); groupBox->setTitle(QApplication::translate("TextureEditorClass", " Border managment ", 0, QApplication::UnicodeUTF8)); vertRB->setText(QApplication::translate("TextureEditorClass", "Clamp", 0, QApplication::UnicodeUTF8)); remapRB->setText(QApplication::translate("TextureEditorClass", "Modulus", 0, QApplication::UnicodeUTF8)); faceRB->setText(QApplication::translate("TextureEditorClass", "Repeat", 0, QApplication::UnicodeUTF8)); - groupBox_2->setTitle(QApplication::translate("TextureEditorClass", " UV Map editing ", 0, QApplication::UnicodeUTF8)); - applyButton->setText(QApplication::translate("TextureEditorClass", "Save Changes", 0, QApplication::UnicodeUTF8)); - StatusLabel->setText(QApplication::translate("TextureEditorClass", "Loading...", 0, QApplication::UnicodeUTF8)); label_11->setText(QApplication::translate("TextureEditorClass", "UV Coordinates:", 0, QApplication::UnicodeUTF8)); - label_9->setText(QApplication::translate("TextureEditorClass", "U:", 0, QApplication::UnicodeUTF8)); - label_10->setText(QApplication::translate("TextureEditorClass", "V:", 0, QApplication::UnicodeUTF8)); tabWidgetEdit->setTabText(tabWidgetEdit->indexOf(tab_point), QApplication::translate("TextureEditorClass", "Single Points", 0, QApplication::UnicodeUTF8)); + LabelFaceNum->setText(QApplication::translate("TextureEditorClass", "0", 0, QApplication::UnicodeUTF8)); + label_6->setText(QApplication::translate("TextureEditorClass", "Selected Vertexes:", 0, QApplication::UnicodeUTF8)); label_19->setText(QApplication::translate("TextureEditorClass", "Move selected component", 0, QApplication::UnicodeUTF8)); - label_12->setText(QApplication::translate("TextureEditorClass", "X =", 0, QApplication::UnicodeUTF8)); - label_13->setText(QApplication::translate("TextureEditorClass", "Y =", 0, QApplication::UnicodeUTF8)); label_2->setText(QApplication::translate("TextureEditorClass", "Relative position:", 0, QApplication::UnicodeUTF8)); + label_13->setText(QApplication::translate("TextureEditorClass", "Y =", 0, QApplication::UnicodeUTF8)); + label_12->setText(QApplication::translate("TextureEditorClass", "X =", 0, QApplication::UnicodeUTF8)); tabWidget_2->setTabText(tabWidget_2->indexOf(tab_2), QApplication::translate("TextureEditorClass", " Move ", 0, QApplication::UnicodeUTF8)); - label_15->setText(QApplication::translate("TextureEditorClass", "Rotate around the selected vertex", 0, QApplication::UnicodeUTF8)); label_14->setText(QApplication::translate("TextureEditorClass", "Angle:", 0, QApplication::UnicodeUTF8)); ApplyRotate->setText(QApplication::translate("TextureEditorClass", "Apply", 0, QApplication::UnicodeUTF8)); + label_15->setText(QApplication::translate("TextureEditorClass", "Rotate around the selected vertex", 0, QApplication::UnicodeUTF8)); tabWidget_2->setTabText(tabWidget_2->indexOf(tab_3), QApplication::translate("TextureEditorClass", " Rotate ", 0, QApplication::UnicodeUTF8)); label_17->setText(QApplication::translate("TextureEditorClass", "%", 0, QApplication::UnicodeUTF8)); label_18->setText(QApplication::translate("TextureEditorClass", "Scale:", 0, QApplication::UnicodeUTF8)); label_16->setText(QApplication::translate("TextureEditorClass", "Scale from the selected vertex", 0, QApplication::UnicodeUTF8)); ApplyScale->setText(QApplication::translate("TextureEditorClass", "Apply", 0, QApplication::UnicodeUTF8)); tabWidget_2->setTabText(tabWidget_2->indexOf(tab_4), QApplication::translate("TextureEditorClass", " Scale ", 0, QApplication::UnicodeUTF8)); - label_6->setText(QApplication::translate("TextureEditorClass", "Selected Vertexes:", 0, QApplication::UnicodeUTF8)); - LabelFaceNum->setText(QApplication::translate("TextureEditorClass", "0", 0, QApplication::UnicodeUTF8)); tabWidgetEdit->setTabText(tabWidgetEdit->indexOf(tab_comp), QApplication::translate("TextureEditorClass", "Connected component", 0, QApplication::UnicodeUTF8)); tabWidgetEdit->setTabText(tabWidgetEdit->indexOf(tab_smooth), QApplication::translate("TextureEditorClass", " Smooth ", 0, QApplication::UnicodeUTF8)); + applyButton->setText(QApplication::translate("TextureEditorClass", "Save Changes", 0, QApplication::UnicodeUTF8)); Q_UNUSED(TextureEditorClass); } // retranslateUi