Add parametrs input

This commit is contained in:
K1rillProkhorov
2024-04-26 19:40:08 +03:00
parent 283f21de86
commit 51c6fe496b
3 changed files with 597 additions and 69 deletions

View File

@ -134,7 +134,7 @@ void MainWindow::on_actionCoons_Patch_Parametric_triggered()
ui->stackedWidget_2->setCurrentIndex(5);
ui->statusbar->showMessage("Coons Patch Parametric");
info.gradient = CoonsPatchParametric;
info.gradient_type = c_BrushTypePathNewLinearGradient;
info.gradient_type = c_BrushTypeCurveGradient;
}
void MainWindow::on_actionTensor_Coons_Patch_Gradient_triggered()
@ -192,9 +192,17 @@ void MainWindow::on_pushButton_clicked()
info.triangle[1].y = ui->Second_Vertex_Y_Coordinate_Input->text().toInt();
info.triangle[2].x = ui->Third_Vertex_X_Coordinate_Input->text().toInt();
info.triangle[2].y = ui->Third_Vertex_Y_Coordinate_Input->text().toInt();
if (info.gradient == TriangleParametric)
{
info.triangle_parametrs[0] = ui->First_Vertex_Parametr_Input_4->text().toFloat();
info.triangle_parametrs[1] = ui->Second_Vertex_Parametr_Input_4->text().toFloat();
info.triangle_parametrs[2] = ui->Third_Vertex_Parametr_Input_4->text().toFloat();
}
info.ginfo = NSStructures::GInfoConstructor::get_triangle(info.triangle,
{{255, 0, 0}, {0, 255, 0}, {0, 0, 255}},
{0.f, 0.9f, 1.f},
info.triangle_parametrs,
info.gradient == TriangleParametric);
points = {};
for (auto p : info.triangle)
@ -204,33 +212,51 @@ void MainWindow::on_pushButton_clicked()
}
else if (info.gradient == CoonsPatch || info.gradient == CoonsPatchParametric)
{
info.curve[0].x = MM_TO_COORD(ui->lable_test->width()) * ui->First_Vertex_X_Coordinate_Input_3->text().toInt();
info.curve[0].y = MM_TO_COORD(ui->lable_test->height()) * ui->First_Vertex_Y_Coordinate_Input_3->text().toInt();
info.curve[1].x = MM_TO_COORD(ui->lable_test->width()) * ui->First_X_Coordinate_First_Edge->text().toInt();
info.curve[1].y = MM_TO_COORD(ui->lable_test->height()) * ui->First_Y_Coordinate_First_Edge->text().toInt();
info.curve[2].x = MM_TO_COORD(ui->lable_test->width()) * ui->Second_X_Coordinate_First_Edge->text().toInt();
info.curve[2].y = MM_TO_COORD(ui->lable_test->height()) * ui->Second_Y_Coordinate_First_Edge->text().toInt();
info.curve[3].x = MM_TO_COORD(ui->lable_test->width()) * ui->Second_Vertex_X_Coordinate_Input_3->text().toInt();
info.curve[3].y = MM_TO_COORD(ui->lable_test->height()) * ui->Second_Vertex_Y_Coordinate_Input_3->text().toInt();
info.curve[4].x = MM_TO_COORD(ui->lable_test->width()) * ui->First_X_Coordinate_Second_Edge->text().toInt();
info.curve[4].y = MM_TO_COORD(ui->lable_test->height()) * ui->First_Y_Coordinate_Second_Edge->text().toInt();
info.curve[5].x = MM_TO_COORD(ui->lable_test->width()) * ui->Second_X_Coordinate_Second_Edge->text().toInt();
info.curve[5].y = MM_TO_COORD(ui->lable_test->height()) * ui->Second_Y_Coordinate_Second_Edge->text().toInt();
info.curve[6].x = MM_TO_COORD(ui->lable_test->width()) * ui->Third_Vertex_X_Coordinate_Input_3->text().toInt();
info.curve[6].y = MM_TO_COORD(ui->lable_test->height()) * ui->Third_Vertex_Y_Coordinate_Input_3->text().toInt();
info.curve[7].x = MM_TO_COORD(ui->lable_test->width()) * ui->First_X_Coordinate_Third_Edge->text().toInt();
info.curve[7].y = MM_TO_COORD(ui->lable_test->height()) * ui->First_Y_Coordinate_Third_Edge->text().toInt();
info.curve[8].x = MM_TO_COORD(ui->lable_test->width()) * ui->Second_X_Coordinate_Third_Edge->text().toInt();
info.curve[8].y = MM_TO_COORD(ui->lable_test->height()) * ui->Second_Y_Coordinate_Third_Edge->text().toInt();
info.curve[9].x = MM_TO_COORD(ui->lable_test->width()) * ui->Fourth_Vertex_X_Coordinate_Input_3->text().toInt();
info.curve[9].y = MM_TO_COORD(ui->lable_test->height()) * ui->Fourth_Vertex_Y_Coordinate_Input_3->text().toInt();
info.curve[10].x = MM_TO_COORD(ui->lable_test->width()) * ui->First_X_Coordinate_Fourth_Edge->text().toInt();
info.curve[10].y = MM_TO_COORD(ui->lable_test->height()) * ui->First_Y_Coordinate_Fourth_Edge->text().toInt();
info.curve[11].x = MM_TO_COORD(ui->lable_test->width()) * ui->Second_X_Coordinate_Fourth_Edge->text().toInt();
info.curve[11].y = MM_TO_COORD(ui->lable_test->height()) * ui->Second_Y_Coordinate_Fourth_Edge->text().toInt();
info.curve[0].x = ui->First_Vertex_X_Coordinate_Input_3->text().toInt();
info.curve[0].y = ui->First_Vertex_Y_Coordinate_Input_3->text().toInt();
info.curve[1].x = ui->First_X_Coordinate_First_Edge->text().toInt();
info.curve[1].y = ui->First_Y_Coordinate_First_Edge->text().toInt();
info.curve[2].x = ui->Second_X_Coordinate_First_Edge->text().toInt();
info.curve[2].y = ui->Second_Y_Coordinate_First_Edge->text().toInt();
info.curve[3].x = ui->Second_Vertex_X_Coordinate_Input_3->text().toInt();
info.curve[3].y = ui->Second_Vertex_Y_Coordinate_Input_3->text().toInt();
info.curve[4].x = ui->First_X_Coordinate_Second_Edge->text().toInt();
info.curve[4].y = ui->First_Y_Coordinate_Second_Edge->text().toInt();
info.curve[5].x = ui->Second_X_Coordinate_Second_Edge->text().toInt();
info.curve[5].y = ui->Second_Y_Coordinate_Second_Edge->text().toInt();
info.curve[6].x = ui->Third_Vertex_X_Coordinate_Input_3->text().toInt();
info.curve[6].y = ui->Third_Vertex_Y_Coordinate_Input_3->text().toInt();
info.curve[7].x = ui->First_X_Coordinate_Third_Edge->text().toInt();
info.curve[7].y = ui->First_Y_Coordinate_Third_Edge->text().toInt();
info.curve[8].x = ui->Second_X_Coordinate_Third_Edge->text().toInt();
info.curve[8].y = ui->Second_Y_Coordinate_Third_Edge->text().toInt();
info.curve[9].x = ui->Fourth_Vertex_X_Coordinate_Input_3->text().toInt();
info.curve[9].y = ui->Fourth_Vertex_Y_Coordinate_Input_3->text().toInt();
info.curve[10].x = ui->First_X_Coordinate_Fourth_Edge->text().toInt();
info.curve[10].y = ui->First_Y_Coordinate_Fourth_Edge->text().toInt();
info.curve[11].x = ui->Second_X_Coordinate_Fourth_Edge->text().toInt();
info.curve[11].y = ui->Second_Y_Coordinate_Fourth_Edge->text().toInt();
if (info.gradient == CoonsPatchParametric)
{
info.curve_parametrs[0] = ui->First_Vertex_Parametr_Input_2->text().toFloat();
info.curve_parametrs[1] = ui->Second_Vertex_Parametr_Input_2->text().toFloat();
info.curve_parametrs[2] = ui->Third_Vertex_Parametr_Input_2->text().toFloat();
info.curve_parametrs[3] = ui->Fourth_Vertex_Parametr_Input_2->text().toFloat();
}
if (info.gradient == CoonsPatch)
{
for(int j = 0; j < 12; j++)
{
info.curve[j].x *= MM_TO_COORD(ui->lable_test->width());
info.curve[j].y *= MM_TO_COORD(ui->lable_test->height());
}
}
info.ginfo = NSStructures::GInfoConstructor::get_curve(
info.curve,
{0.1f, 0.5f, 0.9f, 0.2f},
info.curve_parametrs,
{{0, 0, 255}, {255, 0, 255},
{255, 0, 0}, {0, 255, 0}},
info.gradient == CoonsPatchParametric
@ -238,41 +264,62 @@ void MainWindow::on_pushButton_clicked()
}
else if (info.gradient == TensorCoonsPatch || info.gradient == TensorCoonsPatchParametric)
{
info.tensorcurve[0][0].x = MM_TO_COORD(ui->lable_test->width()) * ui->First_X_Coordinate_First_Edge_3->text().toInt();
info.tensorcurve[0][0].y = MM_TO_COORD(ui->lable_test->height()) * ui->First_Y_Coordinate_First_Edge_3->text().toInt();
info.tensorcurve[0][1].x = MM_TO_COORD(ui->lable_test->width()) * ui->Second_X_Coordinate_First_Edge_3->text().toInt();
info.tensorcurve[0][1].y = MM_TO_COORD(ui->lable_test->height()) * ui->Second_Y_Coordinate_First_Edge_3->text().toInt();
info.tensorcurve[0][2].x = MM_TO_COORD(ui->lable_test->width()) * ui->Third_X_Coordinate_First_Edge_3->text().toInt();
info.tensorcurve[0][2].y = MM_TO_COORD(ui->lable_test->height()) * ui->Third_Y_Coordinate_First_Edge_3->text().toInt();
info.tensorcurve[0][3].x = MM_TO_COORD(ui->lable_test->width()) * ui->Fourth_X_Coordinate_First_Edge_3->text().toInt();
info.tensorcurve[0][3].y = MM_TO_COORD(ui->lable_test->height()) * ui->Fourth_Y_Coordinate_First_Edge_3->text().toInt();
info.tensorcurve[1][0].x = MM_TO_COORD(ui->lable_test->width()) * ui->First_X_Coordinate_Second_Edge_3->text().toInt();
info.tensorcurve[1][0].y = MM_TO_COORD(ui->lable_test->height()) * ui->First_Y_Coordinate_Second_Edge_3->text().toInt();
info.tensorcurve[1][1].x = MM_TO_COORD(ui->lable_test->width()) * ui->Second_X_Coordinate_Second_Edge_3->text().toInt();
info.tensorcurve[1][1].y = MM_TO_COORD(ui->lable_test->height()) * ui->Second_Y_Coordinate_Second_Edge_3->text().toInt();
info.tensorcurve[1][2].x = MM_TO_COORD(ui->lable_test->width()) * ui->Third_X_Coordinate_Second_Edge_3->text().toInt();
info.tensorcurve[1][2].y = MM_TO_COORD(ui->lable_test->height()) * ui->Third_Y_Coordinate_Second_Edge_3->text().toInt();
info.tensorcurve[1][3].x = MM_TO_COORD(ui->lable_test->width()) * ui->Fourth_X_Coordinate_Second_Edge_3->text().toInt();
info.tensorcurve[1][3].y = MM_TO_COORD(ui->lable_test->height()) * ui->Fourth_Y_Coordinate_Second_Edge_3->text().toInt();
info.tensorcurve[2][0].x = MM_TO_COORD(ui->lable_test->width()) * ui->First_X_Coordinate_Third_Edge_3->text().toInt();
info.tensorcurve[2][0].y = MM_TO_COORD(ui->lable_test->height()) * ui->First_Y_Coordinate_Third_Edge_3->text().toInt();
info.tensorcurve[2][1].x = MM_TO_COORD(ui->lable_test->width()) * ui->Second_Y_Coordinate_Third_Edge_3->text().toInt();
info.tensorcurve[2][1].y = MM_TO_COORD(ui->lable_test->height()) * ui->Second_Y_Coordinate_Third_Edge_3->text().toInt();
info.tensorcurve[2][2].x = MM_TO_COORD(ui->lable_test->width()) * ui->Third_X_Coordinate_Third_Edge_3->text().toInt();
info.tensorcurve[2][2].y = MM_TO_COORD(ui->lable_test->height()) * ui->Third_Y_Coordinate_Third_Edge_3->text().toInt();
info.tensorcurve[2][3].x = MM_TO_COORD(ui->lable_test->width()) * ui->Fourth_X_Coordinate_Third_Edge_3->text().toInt();
info.tensorcurve[2][3].y = MM_TO_COORD(ui->lable_test->height()) * ui->Fourth_Y_Coordinate_Third_Edge_3->text().toInt();
info.tensorcurve[3][0].x = MM_TO_COORD(ui->lable_test->width()) * ui->First_X_Coordinate_Fourth_Edge_3->text().toInt();
info.tensorcurve[3][0].y = MM_TO_COORD(ui->lable_test->height()) * ui->First_Y_Coordinate_Fourth_Edge_3->text().toInt();
info.tensorcurve[3][1].x = MM_TO_COORD(ui->lable_test->width()) * ui->Second_X_Coordinate_Fourth_Edge_3->text().toInt();
info.tensorcurve[3][1].y = MM_TO_COORD(ui->lable_test->height()) * ui->Second_Y_Coordinate_Fourth_Edge_3->text().toInt();
info.tensorcurve[3][2].x = MM_TO_COORD(ui->lable_test->width()) * ui->Third_X_Coordinate_Fourth_Edge_3->text().toInt();
info.tensorcurve[3][2].y = MM_TO_COORD(ui->lable_test->height()) * ui->Third_Y_Coordinate_Fourth_Edge_3->text().toInt();
info.tensorcurve[3][3].x = MM_TO_COORD(ui->lable_test->width()) * ui->Fourth_X_Coordinate_Fourth_Edge_3->text().toInt();
info.tensorcurve[3][3].y = MM_TO_COORD(ui->lable_test->height()) * ui->Fourth_Y_Coordinate_Fourth_Edge_3->text().toInt();
info.tensorcurve[0][0].x = ui->First_X_Coordinate_First_Edge_3->text().toInt();
info.tensorcurve[0][0].y = ui->First_Y_Coordinate_First_Edge_3->text().toInt();
info.tensorcurve[0][1].x = ui->Second_X_Coordinate_First_Edge_3->text().toInt();
info.tensorcurve[0][1].y = ui->Second_Y_Coordinate_First_Edge_3->text().toInt();
info.tensorcurve[0][2].x = ui->Third_X_Coordinate_First_Edge_3->text().toInt();
info.tensorcurve[0][2].y = ui->Third_Y_Coordinate_First_Edge_3->text().toInt();
info.tensorcurve[0][3].x = ui->Fourth_X_Coordinate_First_Edge_3->text().toInt();
info.tensorcurve[0][3].y = ui->Fourth_Y_Coordinate_First_Edge_3->text().toInt();
info.tensorcurve[1][0].x = ui->First_X_Coordinate_Second_Edge_3->text().toInt();
info.tensorcurve[1][0].y = ui->First_Y_Coordinate_Second_Edge_3->text().toInt();
info.tensorcurve[1][1].x = ui->Second_X_Coordinate_Second_Edge_3->text().toInt();
info.tensorcurve[1][1].y = ui->Second_Y_Coordinate_Second_Edge_3->text().toInt();
info.tensorcurve[1][2].x = ui->Third_X_Coordinate_Second_Edge_3->text().toInt();
info.tensorcurve[1][2].y = ui->Third_Y_Coordinate_Second_Edge_3->text().toInt();
info.tensorcurve[1][3].x = ui->Fourth_X_Coordinate_Second_Edge_3->text().toInt();
info.tensorcurve[1][3].y = ui->Fourth_Y_Coordinate_Second_Edge_3->text().toInt();
info.tensorcurve[2][0].x = ui->First_X_Coordinate_Third_Edge_3->text().toInt();
info.tensorcurve[2][0].y = ui->First_Y_Coordinate_Third_Edge_3->text().toInt();
info.tensorcurve[2][1].x = ui->Second_Y_Coordinate_Third_Edge_3->text().toInt();
info.tensorcurve[2][1].y = ui->Second_Y_Coordinate_Third_Edge_3->text().toInt();
info.tensorcurve[2][2].x = ui->Third_X_Coordinate_Third_Edge_3->text().toInt();
info.tensorcurve[2][2].y = ui->Third_Y_Coordinate_Third_Edge_3->text().toInt();
info.tensorcurve[2][3].x = ui->Fourth_X_Coordinate_Third_Edge_3->text().toInt();
info.tensorcurve[2][3].y = ui->Fourth_Y_Coordinate_Third_Edge_3->text().toInt();
info.tensorcurve[3][0].x = ui->First_X_Coordinate_Fourth_Edge_3->text().toInt();
info.tensorcurve[3][0].y = ui->First_Y_Coordinate_Fourth_Edge_3->text().toInt();
info.tensorcurve[3][1].x = ui->Second_X_Coordinate_Fourth_Edge_3->text().toInt();
info.tensorcurve[3][1].y = ui->Second_Y_Coordinate_Fourth_Edge_3->text().toInt();
info.tensorcurve[3][2].x = ui->Third_X_Coordinate_Fourth_Edge_3->text().toInt();
info.tensorcurve[3][2].y = ui->Third_Y_Coordinate_Fourth_Edge_3->text().toInt();
info.tensorcurve[3][3].x = ui->Fourth_X_Coordinate_Fourth_Edge_3->text().toInt();
info.tensorcurve[3][3].y = ui->Fourth_Y_Coordinate_Fourth_Edge_3->text().toInt();
if (info.gradient == TensorCoonsPatchParametric)
{
info.tensor_curve_parametrs[0][0] = ui->First_Vertex_Parametr_Input_3->text().toFloat();
info.tensor_curve_parametrs[0][1] = ui->Second_Vertex_Parametr_Input_3->text().toFloat();
info.tensor_curve_parametrs[1][0] = ui->Third_Vertex_Parametr_Input_3->text().toFloat();
info.tensor_curve_parametrs[1][1] = ui->Fourth_Vertex_Parametr_Input_3->text().toFloat();
}
if (info.gradient == TensorCoonsPatch)
{
for (int i = 0; i < 4; i++)
{
for (int j = 0; j < 4; j++)
{
info.tensorcurve[i][j].x *= MM_TO_COORD(ui->lable_test->width());
info.tensorcurve[i][j].y *= MM_TO_COORD(ui->lable_test->height());
}
}
}
info.ginfo = NSStructures::GInfoConstructor::get_tensor_curve(
info.tensorcurve,
{{0, 0.5}, {1, 0.5}},
info.tensor_curve_parametrs,
{{{0, 0, 255}, {255, 0, 255}}, {{255, 0, 0}, {0, 255, 0}}},
info.gradient == TensorCoonsPatchParametric
);

View File

@ -41,6 +41,27 @@ public slots:
}
};
class CustomParametrLineEdit : public QLineEdit
{
Q_OBJECT
public:
CustomParametrLineEdit(QWidget *parent = nullptr) : QLineEdit(parent)
{
connect(this, &QLineEdit::editingFinished, this, &CustomParametrLineEdit::onEditingFinished);
}
~CustomParametrLineEdit() {}
public slots:
void onEditingFinished()
{
if (this->text() == "")
this->setText(this->placeholderText());
if (this->text().toDouble() < 0)
this->setText("0");
if (this->text().toDouble() > 1)
this->setText("1");
}
};
class CustomLabel : public QLabel
{
Q_OBJECT
@ -134,6 +155,9 @@ struct Info
{{150, 250}, {170, 230}, {170, 170}, {50, 150}},
{{350, 250}, {230, 230}, {230, 170}, {150, 250}},
{{300, 300}, {250, 250}, {350, 150}, {300, 100}}};
std::vector<float> triangle_parametrs = {0.f, 0.5f, 1.f};
std::vector<float> curve_parametrs = {0.f, 0.3f, 1.f, 0.6f};
std::vector<std::vector<float>> tensor_curve_parametrs = {{0.f, 0.3f}, {1.f, 0.6f}};
NSStructures::GradientInfo ginfo;
int gradient_type;

View File

@ -117,7 +117,7 @@
</rect>
</property>
<property name="currentIndex">
<number>4</number>
<number>3</number>
</property>
<widget class="QWidget" name="Linear_Page">
<widget class="QGroupBox" name="groupBox">
@ -2481,8 +2481,8 @@
<widget class="QPushButton" name="pushButton">
<property name="geometry">
<rect>
<x>360</x>
<y>60</y>
<x>370</x>
<y>40</y>
<width>117</width>
<height>29</height>
</rect>
@ -2494,8 +2494,8 @@
<widget class="QPushButton" name="pushButton_2">
<property name="geometry">
<rect>
<x>380</x>
<y>110</y>
<x>390</x>
<y>100</y>
<width>80</width>
<height>29</height>
</rect>
@ -2504,6 +2504,19 @@
<string>set from</string>
</property>
</widget>
<widget class="QLabel" name="label_42">
<property name="geometry">
<rect>
<x>300</x>
<y>80</y>
<width>288</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Set the coordinates from the label and click</string>
</property>
</widget>
</widget>
<widget class="QStackedWidget" name="stackedWidget_2">
<property name="geometry">
@ -2515,7 +2528,7 @@
</rect>
</property>
<property name="currentIndex">
<number>6</number>
<number>3</number>
</property>
<widget class="QWidget" name="page">
<widget class="QLabel" name="label_5">
@ -2646,7 +2659,134 @@
</property>
</widget>
</widget>
<widget class="QWidget" name="page_4"/>
<widget class="QWidget" name="page_4">
<widget class="QLabel" name="label_26">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>469</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>A parametric gradient differs in that the colors at the corners are set by</string>
</property>
</widget>
<widget class="QLabel" name="label_27">
<property name="geometry">
<rect>
<x>10</x>
<y>30</y>
<width>271</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>the initial parameters (value from 0 to 1).</string>
</property>
</widget>
<widget class="QGroupBox" name="groupBox_16">
<property name="geometry">
<rect>
<x>10</x>
<y>50</y>
<width>470</width>
<height>130</height>
</rect>
</property>
<property name="title">
<string>Set Parametrs</string>
</property>
<widget class="QLabel" name="label_77">
<property name="geometry">
<rect>
<x>10</x>
<y>30</y>
<width>135</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>First Vertex Parametr</string>
</property>
</widget>
<widget class="CustomParametrLineEdit" name="First_Vertex_Parametr_Input_4">
<property name="geometry">
<rect>
<x>10</x>
<y>50</y>
<width>113</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>0</string>
</property>
<property name="placeholderText">
<string>0</string>
</property>
</widget>
<widget class="QLabel" name="label_78">
<property name="geometry">
<rect>
<x>270</x>
<y>30</y>
<width>157</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Second Vertex Parametr</string>
</property>
</widget>
<widget class="CustomParametrLineEdit" name="Second_Vertex_Parametr_Input_4">
<property name="geometry">
<rect>
<x>270</x>
<y>50</y>
<width>113</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>0.5</string>
</property>
<property name="placeholderText">
<string>0.5</string>
</property>
</widget>
<widget class="QLabel" name="label_79">
<property name="geometry">
<rect>
<x>10</x>
<y>80</y>
<width>157</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Third Vertex Parametr</string>
</property>
</widget>
<widget class="CustomParametrLineEdit" name="Third_Vertex_Parametr_Input_4">
<property name="geometry">
<rect>
<x>10</x>
<y>100</y>
<width>113</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>1</string>
</property>
<property name="placeholderText">
<string>1</string>
</property>
</widget>
</widget>
</widget>
<widget class="QWidget" name="page_5">
<widget class="QLabel" name="label_32">
<property name="geometry">
@ -2753,7 +2893,163 @@
</property>
</widget>
</widget>
<widget class="QWidget" name="page_6"/>
<widget class="QWidget" name="page_6">
<widget class="QLabel" name="label_24">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>469</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>A parametric gradient differs in that the colors at the corners are set by</string>
</property>
</widget>
<widget class="QLabel" name="label_25">
<property name="geometry">
<rect>
<x>10</x>
<y>30</y>
<width>271</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>the initial parameters (value from 0 to 1).</string>
</property>
</widget>
<widget class="QGroupBox" name="groupBox_15">
<property name="geometry">
<rect>
<x>10</x>
<y>50</y>
<width>470</width>
<height>130</height>
</rect>
</property>
<property name="title">
<string>Set Parametrs</string>
</property>
<widget class="QLabel" name="label_73">
<property name="geometry">
<rect>
<x>10</x>
<y>30</y>
<width>135</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>First Vertex Parametr</string>
</property>
</widget>
<widget class="CustomParametrLineEdit" name="First_Vertex_Parametr_Input_2">
<property name="geometry">
<rect>
<x>10</x>
<y>50</y>
<width>113</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>0</string>
</property>
<property name="placeholderText">
<string>0</string>
</property>
</widget>
<widget class="QLabel" name="label_74">
<property name="geometry">
<rect>
<x>270</x>
<y>30</y>
<width>157</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Second Vertex Parametr</string>
</property>
</widget>
<widget class="CustomParametrLineEdit" name="Second_Vertex_Parametr_Input_2">
<property name="geometry">
<rect>
<x>270</x>
<y>50</y>
<width>113</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>0.3</string>
</property>
<property name="placeholderText">
<string>0.3</string>
</property>
</widget>
<widget class="QLabel" name="label_75">
<property name="geometry">
<rect>
<x>10</x>
<y>80</y>
<width>157</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Third Vertex Parametr</string>
</property>
</widget>
<widget class="CustomParametrLineEdit" name="Third_Vertex_Parametr_Input_2">
<property name="geometry">
<rect>
<x>10</x>
<y>100</y>
<width>113</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>0.6</string>
</property>
<property name="placeholderText">
<string>0.6</string>
</property>
</widget>
<widget class="QLabel" name="label_76">
<property name="geometry">
<rect>
<x>270</x>
<y>80</y>
<width>157</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Fourth Vertex Parametr</string>
</property>
</widget>
<widget class="CustomParametrLineEdit" name="Fourth_Vertex_Parametr_Input_2">
<property name="geometry">
<rect>
<x>270</x>
<y>100</y>
<width>113</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>1</string>
</property>
<property name="placeholderText">
<string>1</string>
</property>
</widget>
</widget>
</widget>
<widget class="QWidget" name="page_7">
<widget class="QLabel" name="label_60">
<property name="geometry">
@ -2808,7 +3104,163 @@
</property>
</widget>
</widget>
<widget class="QWidget" name="page_8"/>
<widget class="QWidget" name="page_8">
<widget class="QLabel" name="label_22">
<property name="geometry">
<rect>
<x>10</x>
<y>10</y>
<width>469</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>A parametric gradient differs in that the colors at the corners are set by</string>
</property>
</widget>
<widget class="QLabel" name="label_23">
<property name="geometry">
<rect>
<x>10</x>
<y>30</y>
<width>271</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>the initial parameters (value from 0 to 1).</string>
</property>
</widget>
<widget class="QGroupBox" name="groupBox_8">
<property name="geometry">
<rect>
<x>10</x>
<y>50</y>
<width>470</width>
<height>130</height>
</rect>
</property>
<property name="title">
<string>Set Parametrs</string>
</property>
<widget class="QLabel" name="label_69">
<property name="geometry">
<rect>
<x>10</x>
<y>30</y>
<width>135</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>First Vertex Parametr</string>
</property>
</widget>
<widget class="CustomParametrLineEdit" name="First_Vertex_Parametr_Input_3">
<property name="geometry">
<rect>
<x>10</x>
<y>50</y>
<width>113</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>0</string>
</property>
<property name="placeholderText">
<string>0</string>
</property>
</widget>
<widget class="QLabel" name="label_70">
<property name="geometry">
<rect>
<x>270</x>
<y>30</y>
<width>157</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Second Vertex Parametr</string>
</property>
</widget>
<widget class="CustomParametrLineEdit" name="Second_Vertex_Parametr_Input_3">
<property name="geometry">
<rect>
<x>270</x>
<y>50</y>
<width>113</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>0.3</string>
</property>
<property name="placeholderText">
<string>0.3</string>
</property>
</widget>
<widget class="QLabel" name="label_71">
<property name="geometry">
<rect>
<x>10</x>
<y>80</y>
<width>157</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Third Vertex Parametr</string>
</property>
</widget>
<widget class="CustomParametrLineEdit" name="Third_Vertex_Parametr_Input_3">
<property name="geometry">
<rect>
<x>10</x>
<y>100</y>
<width>113</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>0.6</string>
</property>
<property name="placeholderText">
<string>0.6</string>
</property>
</widget>
<widget class="QLabel" name="label_72">
<property name="geometry">
<rect>
<x>270</x>
<y>80</y>
<width>157</width>
<height>20</height>
</rect>
</property>
<property name="text">
<string>Fourth Vertex Parametr</string>
</property>
</widget>
<widget class="CustomParametrLineEdit" name="Fourth_Vertex_Parametr_Input_3">
<property name="geometry">
<rect>
<x>270</x>
<y>100</y>
<width>113</width>
<height>28</height>
</rect>
</property>
<property name="text">
<string>1</string>
</property>
<property name="placeholderText">
<string>1</string>
</property>
</widget>
</widget>
</widget>
</widget>
</widget>
<widget class="QMenuBar" name="menubar">
@ -2911,6 +3363,11 @@
<extends>QLabel</extends>
<header>mainwindow.h</header>
</customwidget>
<customwidget>
<class>CustomParametrLineEdit</class>
<extends>QLineEdit</extends>
<header>mainwindow.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>