mirror of
https://github.com/HifiExperiments/overte.git
synced 2025-05-15 05:40:49 +02:00
Changing edited fade category properly updates widgets in edit window
This commit is contained in:
parent
fb33b8d1c1
commit
c5ca23f4ea
5 changed files with 290 additions and 228 deletions
|
@ -94,29 +94,46 @@ void FadeSwitchJob::distribute(const render::RenderContextPointer& renderContext
|
||||||
void FadeJobConfig::setEditedCategory(int value) {
|
void FadeJobConfig::setEditedCategory(int value) {
|
||||||
assert(value < EVENT_CATEGORY_COUNT);
|
assert(value < EVENT_CATEGORY_COUNT);
|
||||||
editedCategory = std::min<int>(EVENT_CATEGORY_COUNT, value);
|
editedCategory = std::min<int>(EVENT_CATEGORY_COUNT, value);
|
||||||
|
emit dirtyCategory();
|
||||||
emit dirty();
|
emit dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
void FadeJobConfig::setDuration(float value) {
|
void FadeJobConfig::setDuration(float value) {
|
||||||
duration[editedCategory] = value;
|
_duration[editedCategory] = value;
|
||||||
emit dirty();
|
emit dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float FadeJobConfig::getDuration() const {
|
||||||
|
return _duration[editedCategory];
|
||||||
|
}
|
||||||
|
|
||||||
void FadeJobConfig::setBaseSizeX(float value) {
|
void FadeJobConfig::setBaseSizeX(float value) {
|
||||||
baseSize[editedCategory].x = FADE_MIN_SCALE*powf(FADE_MAX_SCALE/ FADE_MIN_SCALE, value);
|
baseSize[editedCategory].x = FADE_MIN_SCALE*powf(FADE_MAX_SCALE/ FADE_MIN_SCALE, value);
|
||||||
emit dirty();
|
emit dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float FadeJobConfig::getBaseSizeX() const {
|
||||||
|
return logf(baseSize[editedCategory].x / FADE_MIN_SCALE) / logf(FADE_MAX_SCALE / FADE_MIN_SCALE);
|
||||||
|
}
|
||||||
|
|
||||||
void FadeJobConfig::setBaseSizeY(float value) {
|
void FadeJobConfig::setBaseSizeY(float value) {
|
||||||
baseSize[editedCategory].y = FADE_MIN_SCALE*powf(FADE_MAX_SCALE / FADE_MIN_SCALE, value);
|
baseSize[editedCategory].y = FADE_MIN_SCALE*powf(FADE_MAX_SCALE / FADE_MIN_SCALE, value);
|
||||||
emit dirty();
|
emit dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float FadeJobConfig::getBaseSizeY() const {
|
||||||
|
return logf(baseSize[editedCategory].y / FADE_MIN_SCALE) / logf(FADE_MAX_SCALE / FADE_MIN_SCALE);
|
||||||
|
}
|
||||||
|
|
||||||
void FadeJobConfig::setBaseSizeZ(float value) {
|
void FadeJobConfig::setBaseSizeZ(float value) {
|
||||||
baseSize[editedCategory].z = FADE_MIN_SCALE*powf(FADE_MAX_SCALE / FADE_MIN_SCALE, value);
|
baseSize[editedCategory].z = FADE_MIN_SCALE*powf(FADE_MAX_SCALE / FADE_MIN_SCALE, value);
|
||||||
emit dirty();
|
emit dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float FadeJobConfig::getBaseSizeZ() const {
|
||||||
|
return logf(baseSize[editedCategory].z / FADE_MIN_SCALE) / logf(FADE_MAX_SCALE / FADE_MIN_SCALE);
|
||||||
|
}
|
||||||
|
|
||||||
void FadeJobConfig::setBaseLevel(float value) {
|
void FadeJobConfig::setBaseLevel(float value) {
|
||||||
baseLevel[editedCategory] = value;
|
baseLevel[editedCategory] = value;
|
||||||
emit dirty();
|
emit dirty();
|
||||||
|
@ -127,21 +144,37 @@ void FadeJobConfig::setBaseInverted(bool value) {
|
||||||
emit dirty();
|
emit dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool FadeJobConfig::isBaseInverted() const {
|
||||||
|
return baseInverted[editedCategory];
|
||||||
|
}
|
||||||
|
|
||||||
void FadeJobConfig::setNoiseSizeX(float value) {
|
void FadeJobConfig::setNoiseSizeX(float value) {
|
||||||
noiseSize[editedCategory].x = FADE_MIN_SCALE*powf(FADE_MAX_SCALE / FADE_MIN_SCALE, value);
|
noiseSize[editedCategory].x = FADE_MIN_SCALE*powf(FADE_MAX_SCALE / FADE_MIN_SCALE, value);
|
||||||
emit dirty();
|
emit dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float FadeJobConfig::getNoiseSizeX() const {
|
||||||
|
return logf(noiseSize[editedCategory].x / FADE_MIN_SCALE) / logf(FADE_MAX_SCALE / FADE_MIN_SCALE);
|
||||||
|
}
|
||||||
|
|
||||||
void FadeJobConfig::setNoiseSizeY(float value) {
|
void FadeJobConfig::setNoiseSizeY(float value) {
|
||||||
noiseSize[editedCategory].y = FADE_MIN_SCALE*powf(FADE_MAX_SCALE / FADE_MIN_SCALE, value);
|
noiseSize[editedCategory].y = FADE_MIN_SCALE*powf(FADE_MAX_SCALE / FADE_MIN_SCALE, value);
|
||||||
emit dirty();
|
emit dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float FadeJobConfig::getNoiseSizeY() const {
|
||||||
|
return logf(noiseSize[editedCategory].y / FADE_MIN_SCALE) / logf(FADE_MAX_SCALE / FADE_MIN_SCALE);
|
||||||
|
}
|
||||||
|
|
||||||
void FadeJobConfig::setNoiseSizeZ(float value) {
|
void FadeJobConfig::setNoiseSizeZ(float value) {
|
||||||
noiseSize[editedCategory].z = FADE_MIN_SCALE*powf(FADE_MAX_SCALE / FADE_MIN_SCALE, value);
|
noiseSize[editedCategory].z = FADE_MIN_SCALE*powf(FADE_MAX_SCALE / FADE_MIN_SCALE, value);
|
||||||
emit dirty();
|
emit dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float FadeJobConfig::getNoiseSizeZ() const {
|
||||||
|
return logf(noiseSize[editedCategory].z / FADE_MIN_SCALE) / logf(FADE_MAX_SCALE / FADE_MIN_SCALE);
|
||||||
|
}
|
||||||
|
|
||||||
void FadeJobConfig::setNoiseLevel(float value) {
|
void FadeJobConfig::setNoiseLevel(float value) {
|
||||||
noiseLevel[editedCategory] = value;
|
noiseLevel[editedCategory] = value;
|
||||||
emit dirty();
|
emit dirty();
|
||||||
|
@ -152,6 +185,10 @@ void FadeJobConfig::setEdgeWidth(float value) {
|
||||||
emit dirty();
|
emit dirty();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
float FadeJobConfig::getEdgeWidth() const {
|
||||||
|
return sqrtf(edgeWidth[editedCategory]);
|
||||||
|
}
|
||||||
|
|
||||||
void FadeJobConfig::setEdgeInnerColorR(float value) {
|
void FadeJobConfig::setEdgeInnerColorR(float value) {
|
||||||
edgeInnerColor[editedCategory].r = value;
|
edgeInnerColor[editedCategory].r = value;
|
||||||
emit dirty();
|
emit dirty();
|
||||||
|
@ -205,7 +242,7 @@ void FadeConfigureJob::configure(const Config& config) {
|
||||||
for (auto i = 0; i < FadeJobConfig::EVENT_CATEGORY_COUNT; i++) {
|
for (auto i = 0; i < FadeJobConfig::EVENT_CATEGORY_COUNT; i++) {
|
||||||
auto& configuration = _configurations[i];
|
auto& configuration = _configurations[i];
|
||||||
|
|
||||||
_parameters->_durations[i] = config.duration[i];
|
_parameters->_durations[i] = config._duration[i];
|
||||||
configuration._baseInvSizeAndLevel.x = 1.f / config.baseSize[i].x;
|
configuration._baseInvSizeAndLevel.x = 1.f / config.baseSize[i].x;
|
||||||
configuration._baseInvSizeAndLevel.y = 1.f / config.baseSize[i].y;
|
configuration._baseInvSizeAndLevel.y = 1.f / config.baseSize[i].y;
|
||||||
configuration._baseInvSizeAndLevel.z = 1.f / config.baseSize[i].z;
|
configuration._baseInvSizeAndLevel.z = 1.f / config.baseSize[i].z;
|
||||||
|
|
|
@ -32,7 +32,7 @@ signals:
|
||||||
|
|
||||||
class FadeJobConfig : public render::Job::Config {
|
class FadeJobConfig : public render::Job::Config {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
Q_PROPERTY(int editedCategory MEMBER editedCategory WRITE setEditedCategory NOTIFY dirty)
|
Q_PROPERTY(int editedCategory MEMBER editedCategory WRITE setEditedCategory NOTIFY dirtyCategory)
|
||||||
Q_PROPERTY(float duration READ getDuration WRITE setDuration NOTIFY dirty)
|
Q_PROPERTY(float duration READ getDuration WRITE setDuration NOTIFY dirty)
|
||||||
Q_PROPERTY(float baseSizeX READ getBaseSizeX WRITE setBaseSizeX NOTIFY dirty)
|
Q_PROPERTY(float baseSizeX READ getBaseSizeX WRITE setBaseSizeX NOTIFY dirty)
|
||||||
Q_PROPERTY(float baseSizeY READ getBaseSizeY WRITE setBaseSizeY NOTIFY dirty)
|
Q_PROPERTY(float baseSizeY READ getBaseSizeY WRITE setBaseSizeY NOTIFY dirty)
|
||||||
|
@ -69,37 +69,37 @@ public:
|
||||||
void setEditedCategory(int value);
|
void setEditedCategory(int value);
|
||||||
|
|
||||||
void setDuration(float value);
|
void setDuration(float value);
|
||||||
float getDuration() const { return duration[editedCategory]; }
|
float getDuration() const;
|
||||||
|
|
||||||
void setBaseSizeX(float value);
|
void setBaseSizeX(float value);
|
||||||
float getBaseSizeX() const { return baseSize[editedCategory].x; }
|
float getBaseSizeX() const;
|
||||||
|
|
||||||
void setBaseSizeY(float value);
|
void setBaseSizeY(float value);
|
||||||
float getBaseSizeY() const { return baseSize[editedCategory].y; }
|
float getBaseSizeY() const;
|
||||||
|
|
||||||
void setBaseSizeZ(float value);
|
void setBaseSizeZ(float value);
|
||||||
float getBaseSizeZ() const { return baseSize[editedCategory].z; }
|
float getBaseSizeZ() const;
|
||||||
|
|
||||||
void setBaseLevel(float value);
|
void setBaseLevel(float value);
|
||||||
float getBaseLevel() const { return baseLevel[editedCategory]; }
|
float getBaseLevel() const { return baseLevel[editedCategory]; }
|
||||||
|
|
||||||
void setBaseInverted(bool value);
|
void setBaseInverted(bool value);
|
||||||
bool isBaseInverted() const { return baseInverted[editedCategory]; }
|
bool isBaseInverted() const;
|
||||||
|
|
||||||
void setNoiseSizeX(float value);
|
void setNoiseSizeX(float value);
|
||||||
float getNoiseSizeX() const { return noiseSize[editedCategory].x; }
|
float getNoiseSizeX() const;
|
||||||
|
|
||||||
void setNoiseSizeY(float value);
|
void setNoiseSizeY(float value);
|
||||||
float getNoiseSizeY() const { return noiseSize[editedCategory].y; }
|
float getNoiseSizeY() const;
|
||||||
|
|
||||||
void setNoiseSizeZ(float value);
|
void setNoiseSizeZ(float value);
|
||||||
float getNoiseSizeZ() const { return noiseSize[editedCategory].z; }
|
float getNoiseSizeZ() const;
|
||||||
|
|
||||||
void setNoiseLevel(float value);
|
void setNoiseLevel(float value);
|
||||||
float getNoiseLevel() const { return noiseLevel[editedCategory]; }
|
float getNoiseLevel() const { return noiseLevel[editedCategory]; }
|
||||||
|
|
||||||
void setEdgeWidth(float value);
|
void setEdgeWidth(float value);
|
||||||
float getEdgeWidth() const { return edgeWidth[editedCategory]; }
|
float getEdgeWidth() const;
|
||||||
|
|
||||||
void setEdgeInnerColorR(float value);
|
void setEdgeInnerColorR(float value);
|
||||||
float getEdgeInnerColorR() const { return edgeInnerColor[editedCategory].r; }
|
float getEdgeInnerColorR() const { return edgeInnerColor[editedCategory].r; }
|
||||||
|
@ -127,11 +127,11 @@ public:
|
||||||
|
|
||||||
int editedCategory{ ELEMENT_ENTER_LEAVE_DOMAIN };
|
int editedCategory{ ELEMENT_ENTER_LEAVE_DOMAIN };
|
||||||
glm::vec3 baseSize[EVENT_CATEGORY_COUNT]{
|
glm::vec3 baseSize[EVENT_CATEGORY_COUNT]{
|
||||||
{ 0.35f, 0.35f, 0.35f }, // ELEMENT_ENTER_LEAVE_DOMAIN
|
{ 0.4f, 0.4f, 0.4f }, // ELEMENT_ENTER_LEAVE_DOMAIN
|
||||||
{ 0.35f, 0.35f, 0.35f }, // BUBBLE_ISECT_OWNER
|
{ 0.4f, 0.4f, 0.4f }, // BUBBLE_ISECT_OWNER
|
||||||
{ 0.35f, 0.35f, 0.35f }, // BUBBLE_ISECT_TRESPASSER
|
{ 0.4f, 0.4f, 0.4f }, // BUBBLE_ISECT_TRESPASSER
|
||||||
{ 0.35f, 0.35f, 0.35f }, // USER_ENTER_LEAVE_DOMAIN
|
{ 0.875f, 0.4f, 0.875f }, // USER_ENTER_LEAVE_DOMAIN
|
||||||
{ 0.35f, 0.35f, 0.35f }, // AVATAR_CHANGE
|
{ 0.4f, 0.4f, 0.4f }, // AVATAR_CHANGE
|
||||||
};
|
};
|
||||||
float baseLevel[EVENT_CATEGORY_COUNT]{
|
float baseLevel[EVENT_CATEGORY_COUNT]{
|
||||||
1.0f, // ELEMENT_ENTER_LEAVE_DOMAIN
|
1.0f, // ELEMENT_ENTER_LEAVE_DOMAIN
|
||||||
|
@ -144,15 +144,15 @@ public:
|
||||||
false, // ELEMENT_ENTER_LEAVE_DOMAIN
|
false, // ELEMENT_ENTER_LEAVE_DOMAIN
|
||||||
false, // BUBBLE_ISECT_OWNER
|
false, // BUBBLE_ISECT_OWNER
|
||||||
false, // BUBBLE_ISECT_TRESPASSER
|
false, // BUBBLE_ISECT_TRESPASSER
|
||||||
false, // USER_ENTER_LEAVE_DOMAIN
|
true, // USER_ENTER_LEAVE_DOMAIN
|
||||||
false, // AVATAR_CHANGE
|
false, // AVATAR_CHANGE
|
||||||
};
|
};
|
||||||
glm::vec3 noiseSize[EVENT_CATEGORY_COUNT]{
|
glm::vec3 noiseSize[EVENT_CATEGORY_COUNT]{
|
||||||
{ 0.35f, 0.35f, 0.35f }, // ELEMENT_ENTER_LEAVE_DOMAIN
|
{ 0.41f, 0.41f, 0.41f }, // ELEMENT_ENTER_LEAVE_DOMAIN
|
||||||
{ 0.35f, 0.35f, 0.35f }, // BUBBLE_ISECT_OWNER
|
{ 0.4f, 0.4f, 0.4f }, // BUBBLE_ISECT_OWNER
|
||||||
{ 0.35f, 0.35f, 0.35f }, // BUBBLE_ISECT_TRESPASSER
|
{ 0.4f, 0.4f, 0.4f }, // BUBBLE_ISECT_TRESPASSER
|
||||||
{ 0.35f, 0.35f, 0.35f }, // USER_ENTER_LEAVE_DOMAIN
|
{ 0.4f, 0.4f, 0.4f }, // USER_ENTER_LEAVE_DOMAIN
|
||||||
{ 0.35f, 0.35f, 0.35f }, // AVATAR_CHANGE
|
{ 0.4f, 0.4f, 0.4f }, // AVATAR_CHANGE
|
||||||
};
|
};
|
||||||
float noiseLevel[EVENT_CATEGORY_COUNT]{
|
float noiseLevel[EVENT_CATEGORY_COUNT]{
|
||||||
1.0f, // ELEMENT_ENTER_LEAVE_DOMAIN
|
1.0f, // ELEMENT_ENTER_LEAVE_DOMAIN
|
||||||
|
@ -161,18 +161,18 @@ public:
|
||||||
1.0f, // USER_ENTER_LEAVE_DOMAIN
|
1.0f, // USER_ENTER_LEAVE_DOMAIN
|
||||||
1.0f, // AVATAR_CHANGE
|
1.0f, // AVATAR_CHANGE
|
||||||
};
|
};
|
||||||
float duration[EVENT_CATEGORY_COUNT]{
|
float _duration[EVENT_CATEGORY_COUNT]{
|
||||||
5.0f, // ELEMENT_ENTER_LEAVE_DOMAIN
|
4.0f, // ELEMENT_ENTER_LEAVE_DOMAIN
|
||||||
0.0f, // BUBBLE_ISECT_OWNER
|
0.0f, // BUBBLE_ISECT_OWNER
|
||||||
0.0f, // BUBBLE_ISECT_TRESPASSER
|
0.0f, // BUBBLE_ISECT_TRESPASSER
|
||||||
3.0f, // USER_ENTER_LEAVE_DOMAIN
|
3.0f, // USER_ENTER_LEAVE_DOMAIN
|
||||||
3.0f, // AVATAR_CHANGE
|
3.0f, // AVATAR_CHANGE
|
||||||
};
|
};
|
||||||
float edgeWidth[EVENT_CATEGORY_COUNT]{
|
float edgeWidth[EVENT_CATEGORY_COUNT]{
|
||||||
0.05f, // ELEMENT_ENTER_LEAVE_DOMAIN
|
0.10f, // ELEMENT_ENTER_LEAVE_DOMAIN
|
||||||
0.05f, // BUBBLE_ISECT_OWNER
|
0.10f, // BUBBLE_ISECT_OWNER
|
||||||
0.05f, // BUBBLE_ISECT_TRESPASSER
|
0.10f, // BUBBLE_ISECT_TRESPASSER
|
||||||
0.05f, // USER_ENTER_LEAVE_DOMAIN
|
0.10f, // USER_ENTER_LEAVE_DOMAIN
|
||||||
0.05f, // AVATAR_CHANGE
|
0.05f, // AVATAR_CHANGE
|
||||||
};
|
};
|
||||||
glm::vec4 edgeInnerColor[EVENT_CATEGORY_COUNT]{
|
glm::vec4 edgeInnerColor[EVENT_CATEGORY_COUNT]{
|
||||||
|
@ -192,6 +192,7 @@ public:
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void dirty();
|
void dirty();
|
||||||
|
void dirtyCategory();
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -38,6 +38,7 @@ Item {
|
||||||
}
|
}
|
||||||
|
|
||||||
Label {
|
Label {
|
||||||
|
id: labelValue
|
||||||
text: sliderControl.value.toFixed(root.integral ? 0 : 2)
|
text: sliderControl.value.toFixed(root.integral ? 0 : 2)
|
||||||
anchors.left: root.left
|
anchors.left: root.left
|
||||||
anchors.leftMargin: 200
|
anchors.leftMargin: 200
|
||||||
|
|
|
@ -15,8 +15,7 @@ var window = new OverlayWindow({
|
||||||
title: 'Fade',
|
title: 'Fade',
|
||||||
source: qml,
|
source: qml,
|
||||||
width: 500,
|
width: 500,
|
||||||
height: 900
|
height: 900,
|
||||||
});
|
});
|
||||||
window.setPosition(50, 50);
|
window.setPosition(50, 50);
|
||||||
window.closed.connect(function() { Script.stop(); });
|
window.closed.connect(function() { Script.stop(); });
|
||||||
Render.getConfig("RenderMainView.DrawFadedOpaqueBounds").enabled = true
|
|
|
@ -23,220 +23,244 @@ Column {
|
||||||
CheckBox {
|
CheckBox {
|
||||||
text: "Edit Fade"
|
text: "Edit Fade"
|
||||||
checked: root.switchConfig["editFade"]
|
checked: root.switchConfig["editFade"]
|
||||||
onCheckedChanged: { root.switchConfig["editFade"] = checked }
|
onCheckedChanged: {
|
||||||
|
root.switchConfig["editFade"] = checked;
|
||||||
|
Render.getConfig("RenderMainView.DrawFadedOpaqueBounds").enabled = checked;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ComboBox {
|
ComboBox {
|
||||||
|
id: categoryBox
|
||||||
width: 400
|
width: 400
|
||||||
model: ["Elements enter/leave domain", "Bubble isect. - Owner POV", "Bubble isect. - Trespasser POV", "Another user leaves/arrives", "Changing an avatar"]
|
model: ["Elements enter/leave domain", "Bubble isect. - Owner POV", "Bubble isect. - Trespasser POV", "Another user leaves/arrives", "Changing an avatar"]
|
||||||
onCurrentIndexChanged: { root.config["editedCategory"] = currentIndex }
|
Timer {
|
||||||
|
id: postpone
|
||||||
|
interval: 100; running: false; repeat: false
|
||||||
|
onTriggered: { paramWidgetLoader.sourceComponent = paramWidgets }
|
||||||
|
}
|
||||||
|
onCurrentIndexChanged: {
|
||||||
|
root.config["editedCategory"] = currentIndex;
|
||||||
|
// This is a hack to be sure the widgets below properly reflect the change of category: delete the Component
|
||||||
|
// by setting the loader source to Null and then recreate it 100ms later
|
||||||
|
paramWidgetLoader.sourceComponent = undefined;
|
||||||
|
postpone.start()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Column {
|
|
||||||
spacing: 8
|
|
||||||
|
|
||||||
ConfigSlider {
|
Component {
|
||||||
label: "Duration"
|
id: paramWidgets
|
||||||
integral: false
|
|
||||||
config: root.config
|
|
||||||
property: "duration"
|
|
||||||
max: 10.0
|
|
||||||
min: 0.1
|
|
||||||
width: 400
|
|
||||||
}
|
|
||||||
GroupBox {
|
|
||||||
title: "Base Gradient"
|
|
||||||
width: 500
|
|
||||||
Column {
|
|
||||||
spacing: 8
|
|
||||||
|
|
||||||
ConfigSlider {
|
Column {
|
||||||
label: "Size X"
|
spacing: 8
|
||||||
integral: false
|
|
||||||
config: root.config
|
ConfigSlider {
|
||||||
property: "baseSizeX"
|
label: "Duration"
|
||||||
max: 1.0
|
integral: false
|
||||||
min: 0.0
|
config: root.config
|
||||||
width: 400
|
property: "duration"
|
||||||
}
|
max: 10.0
|
||||||
ConfigSlider {
|
min: 0.1
|
||||||
label: "Size Y"
|
width: 400
|
||||||
integral: false
|
|
||||||
config: root.config
|
|
||||||
property: "baseSizeY"
|
|
||||||
max: 1.0
|
|
||||||
min: 0.0
|
|
||||||
width: 400
|
|
||||||
}
|
|
||||||
ConfigSlider {
|
|
||||||
label: "Size Z"
|
|
||||||
integral: false
|
|
||||||
config: root.config
|
|
||||||
property: "baseSizeZ"
|
|
||||||
max: 1.0
|
|
||||||
min: 0.0
|
|
||||||
width: 400
|
|
||||||
}
|
|
||||||
ConfigSlider {
|
|
||||||
label: "Level"
|
|
||||||
integral: false
|
|
||||||
config: root.config
|
|
||||||
property: "baseLevel"
|
|
||||||
max: 1.0
|
|
||||||
min: 0.0
|
|
||||||
width: 400
|
|
||||||
}
|
|
||||||
CheckBox {
|
|
||||||
text: "Invert"
|
|
||||||
checked: root.config["baseInverted"]
|
|
||||||
onCheckedChanged: { root.config["baseInverted"] = checked }
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
GroupBox {
|
||||||
GroupBox {
|
title: "Base Gradient"
|
||||||
title: "Noise Gradient"
|
width: 500
|
||||||
width: 500
|
Column {
|
||||||
Column {
|
spacing: 8
|
||||||
spacing: 8
|
|
||||||
|
|
||||||
ConfigSlider {
|
ConfigSlider {
|
||||||
label: "Size X"
|
label: "Size X"
|
||||||
integral: false
|
integral: false
|
||||||
config: root.config
|
config: root.config
|
||||||
property: "noiseSizeX"
|
property: "baseSizeX"
|
||||||
max: 1.0
|
max: 1.0
|
||||||
min: 0.0
|
min: 0.0
|
||||||
width: 400
|
width: 400
|
||||||
}
|
}
|
||||||
ConfigSlider {
|
ConfigSlider {
|
||||||
label: "Size Y"
|
label: "Size Y"
|
||||||
integral: false
|
integral: false
|
||||||
config: root.config
|
config: root.config
|
||||||
property: "noiseSizeY"
|
property: "baseSizeY"
|
||||||
max: 1.0
|
max: 1.0
|
||||||
min: 0.0
|
min: 0.0
|
||||||
width: 400
|
width: 400
|
||||||
}
|
}
|
||||||
ConfigSlider {
|
ConfigSlider {
|
||||||
label: "Size Z"
|
label: "Size Z"
|
||||||
integral: false
|
integral: false
|
||||||
config: root.config
|
config: root.config
|
||||||
property: "noiseSizeZ"
|
property: "baseSizeZ"
|
||||||
max: 1.0
|
max: 1.0
|
||||||
min: 0.0
|
min: 0.0
|
||||||
width: 400
|
width: 400
|
||||||
}
|
}
|
||||||
ConfigSlider {
|
ConfigSlider {
|
||||||
label: "Level"
|
label: "Level"
|
||||||
integral: false
|
integral: false
|
||||||
config: root.config
|
config: root.config
|
||||||
property: "noiseLevel"
|
property: "baseLevel"
|
||||||
max: 1.0
|
max: 1.0
|
||||||
min: 0.0
|
min: 0.0
|
||||||
width: 400
|
width: 400
|
||||||
}
|
}
|
||||||
}
|
CheckBox {
|
||||||
}
|
text: "Invert"
|
||||||
GroupBox {
|
checked: root.config["baseInverted"]
|
||||||
title: "Edge"
|
onCheckedChanged: { root.config["baseInverted"] = checked }
|
||||||
width: 500
|
|
||||||
Column {
|
|
||||||
spacing: 8
|
|
||||||
|
|
||||||
ConfigSlider {
|
|
||||||
label: "Width"
|
|
||||||
integral: false
|
|
||||||
config: root.config
|
|
||||||
property: "edgeWidth"
|
|
||||||
max: 1.0
|
|
||||||
min: 0.0
|
|
||||||
width: 400
|
|
||||||
}
|
|
||||||
GroupBox {
|
|
||||||
title: "Inner color"
|
|
||||||
Column {
|
|
||||||
spacing: 8
|
|
||||||
ConfigSlider {
|
|
||||||
label: "Color R"
|
|
||||||
integral: false
|
|
||||||
config: root.config
|
|
||||||
property: "edgeInnerColorR"
|
|
||||||
max: 1.0
|
|
||||||
min: 0.0
|
|
||||||
width: 400
|
|
||||||
}
|
|
||||||
ConfigSlider {
|
|
||||||
label: "Color G"
|
|
||||||
integral: false
|
|
||||||
config: root.config
|
|
||||||
property: "edgeInnerColorG"
|
|
||||||
max: 1.0
|
|
||||||
min: 0.0
|
|
||||||
width: 400
|
|
||||||
}
|
|
||||||
ConfigSlider {
|
|
||||||
label: "Color B"
|
|
||||||
integral: false
|
|
||||||
config: root.config
|
|
||||||
property: "edgeInnerColorB"
|
|
||||||
max: 1.0
|
|
||||||
min: 0.0
|
|
||||||
width: 400
|
|
||||||
}
|
|
||||||
ConfigSlider {
|
|
||||||
label: "Color intensity"
|
|
||||||
integral: false
|
|
||||||
config: root.config
|
|
||||||
property: "edgeInnerIntensity"
|
|
||||||
max: 5.0
|
|
||||||
min: 0.0
|
|
||||||
width: 400
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
GroupBox {
|
}
|
||||||
title: "Outer color"
|
GroupBox {
|
||||||
Column {
|
title: "Noise Gradient"
|
||||||
spacing: 8
|
width: 500
|
||||||
ConfigSlider {
|
Column {
|
||||||
label: "Color R"
|
spacing: 8
|
||||||
integral: false
|
|
||||||
config: root.config
|
ConfigSlider {
|
||||||
property: "edgeOuterColorR"
|
label: "Size X"
|
||||||
max: 1.0
|
integral: false
|
||||||
min: 0.0
|
config: root.config
|
||||||
width: 400
|
property: "noiseSizeX"
|
||||||
}
|
max: 1.0
|
||||||
ConfigSlider {
|
min: 0.0
|
||||||
label: "Color G"
|
width: 400
|
||||||
integral: false
|
}
|
||||||
config: root.config
|
ConfigSlider {
|
||||||
property: "edgeOuterColorG"
|
label: "Size Y"
|
||||||
max: 1.0
|
integral: false
|
||||||
min: 0.0
|
config: root.config
|
||||||
width: 400
|
property: "noiseSizeY"
|
||||||
|
max: 1.0
|
||||||
|
min: 0.0
|
||||||
|
width: 400
|
||||||
|
}
|
||||||
|
ConfigSlider {
|
||||||
|
label: "Size Z"
|
||||||
|
integral: false
|
||||||
|
config: root.config
|
||||||
|
property: "noiseSizeZ"
|
||||||
|
max: 1.0
|
||||||
|
min: 0.0
|
||||||
|
width: 400
|
||||||
|
}
|
||||||
|
ConfigSlider {
|
||||||
|
label: "Level"
|
||||||
|
integral: false
|
||||||
|
config: root.config
|
||||||
|
property: "noiseLevel"
|
||||||
|
max: 1.0
|
||||||
|
min: 0.0
|
||||||
|
width: 400
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
GroupBox {
|
||||||
|
title: "Edge"
|
||||||
|
width: 500
|
||||||
|
Column {
|
||||||
|
spacing: 8
|
||||||
|
|
||||||
|
ConfigSlider {
|
||||||
|
label: "Width"
|
||||||
|
integral: false
|
||||||
|
config: root.config
|
||||||
|
property: "edgeWidth"
|
||||||
|
max: 1.0
|
||||||
|
min: 0.0
|
||||||
|
width: 400
|
||||||
|
}
|
||||||
|
GroupBox {
|
||||||
|
title: "Inner color"
|
||||||
|
Column {
|
||||||
|
spacing: 8
|
||||||
|
ConfigSlider {
|
||||||
|
label: "Color R"
|
||||||
|
integral: false
|
||||||
|
config: root.config
|
||||||
|
property: "edgeInnerColorR"
|
||||||
|
max: 1.0
|
||||||
|
min: 0.0
|
||||||
|
width: 400
|
||||||
|
}
|
||||||
|
ConfigSlider {
|
||||||
|
label: "Color G"
|
||||||
|
integral: false
|
||||||
|
config: root.config
|
||||||
|
property: "edgeInnerColorG"
|
||||||
|
max: 1.0
|
||||||
|
min: 0.0
|
||||||
|
width: 400
|
||||||
|
}
|
||||||
|
ConfigSlider {
|
||||||
|
label: "Color B"
|
||||||
|
integral: false
|
||||||
|
config: root.config
|
||||||
|
property: "edgeInnerColorB"
|
||||||
|
max: 1.0
|
||||||
|
min: 0.0
|
||||||
|
width: 400
|
||||||
|
}
|
||||||
|
ConfigSlider {
|
||||||
|
label: "Color intensity"
|
||||||
|
integral: false
|
||||||
|
config: root.config
|
||||||
|
property: "edgeInnerIntensity"
|
||||||
|
max: 5.0
|
||||||
|
min: 0.0
|
||||||
|
width: 400
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ConfigSlider {
|
}
|
||||||
label: "Color B"
|
GroupBox {
|
||||||
integral: false
|
title: "Outer color"
|
||||||
config: root.config
|
Column {
|
||||||
property: "edgeOuterColorB"
|
spacing: 8
|
||||||
max: 1.0
|
ConfigSlider {
|
||||||
min: 0.0
|
label: "Color R"
|
||||||
width: 400
|
integral: false
|
||||||
}
|
config: root.config
|
||||||
ConfigSlider {
|
property: "edgeOuterColorR"
|
||||||
label: "Color intensity"
|
max: 1.0
|
||||||
integral: false
|
min: 0.0
|
||||||
config: root.config
|
width: 400
|
||||||
property: "edgeOuterIntensity"
|
}
|
||||||
max: 5.0
|
ConfigSlider {
|
||||||
min: 0.0
|
label: "Color G"
|
||||||
width: 400
|
integral: false
|
||||||
|
config: root.config
|
||||||
|
property: "edgeOuterColorG"
|
||||||
|
max: 1.0
|
||||||
|
min: 0.0
|
||||||
|
width: 400
|
||||||
|
}
|
||||||
|
ConfigSlider {
|
||||||
|
label: "Color B"
|
||||||
|
integral: false
|
||||||
|
config: root.config
|
||||||
|
property: "edgeOuterColorB"
|
||||||
|
max: 1.0
|
||||||
|
min: 0.0
|
||||||
|
width: 400
|
||||||
|
}
|
||||||
|
ConfigSlider {
|
||||||
|
label: "Color intensity"
|
||||||
|
integral: false
|
||||||
|
config: root.config
|
||||||
|
property: "edgeOuterIntensity"
|
||||||
|
max: 5.0
|
||||||
|
min: 0.0
|
||||||
|
width: 400
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loader {
|
||||||
|
id: paramWidgetLoader
|
||||||
|
sourceComponent: paramWidgets
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue