blob: e91104fc1264237c7b4f301c908d70860f157a6e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
// Copyright (C) 2025 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick3D
import QtQuick3D.Helpers
Pane {
id: panel
required property CapsuleGeometry target
ColumnLayout {
width: panel.width
Label {
text: "Capsule Settings"
}
RowLayout {
Layout.fillWidth: true
CheckBox {
Layout.fillWidth: true
checked: panel.target.enableNormals
text: qsTr("enableNormals")
onCheckedChanged: panel.target.enableNormals = checked
}
}
RowLayout {
Layout.fillWidth: true
CheckBox {
Layout.fillWidth: true
checked: panel.target.enableUV
text: qsTr("enableUV")
onCheckedChanged: panel.target.enableUV = checked
}
}
RowLayout {
Layout.fillWidth: true
Label {
text: "longitudes"
}
Slider {
Layout.fillWidth: true
from: 1
to: 100
stepSize: 1
value: panel.target.longitudes
onValueChanged: panel.target.longitudes = value
}
Label {
text: panel.target.longitudes
Layout.minimumWidth: 50
}
}
RowLayout {
Layout.fillWidth: true
Label {
text: "latitudes"
}
Slider {
Layout.fillWidth: true
from: 1
to: 100
stepSize: 1
value: panel.target.latitudes
onValueChanged: panel.target.latitudes = value
}
Label {
text: panel.target.latitudes
Layout.minimumWidth: 50
}
}
RowLayout {
Layout.fillWidth: true
Label {
text: "rings"
}
Slider {
Layout.fillWidth: true
from: 1
to: 100
stepSize: 1
value: panel.target.rings
onValueChanged: panel.target.rings = value
}
Label {
text: panel.target.rings
Layout.minimumWidth: 50
}
}
RowLayout {
Layout.fillWidth: true
Label {
text: "height"
}
Slider {
Layout.fillWidth: true
from: 0
to: 100
value: panel.target.height
onValueChanged: panel.target.height = value
}
Label {
text: panel.target.height.toFixed(2)
Layout.minimumWidth: 50
}
}
RowLayout {
Layout.fillWidth: true
Label {
text: "diameter"
}
Slider {
Layout.fillWidth: true
from: 0
to: 100
value: panel.target.diameter
onValueChanged: panel.target.diameter = value
}
Label {
text: panel.target.diameter.toFixed(2)
Layout.minimumWidth: 50
}
}
RowLayout {
Layout.fillWidth: true
Label {
text: "uvProfile"
}
ComboBox {
textRole: "text"
valueRole: "value"
// When an item is selected, update the backend.
onActivated: panel.target.uvProfile = currentValue
// Set the initial currentIndex to the value stored in the backend.
Component.onCompleted: currentIndex = indexOfValue(panel.target.uvProfile)
model: [{
"value": CapsuleGeometry.Fixed,
"text": qsTr("Fixed")
}, {
"value": CapsuleGeometry.Aspect,
"text": qsTr("Aspect")
}, {
"value": CapsuleGeometry.Uniform,
"text": qsTr("Uniform")
}]
}
}
}
}
|