Files
LAIC/venv/Lib/site-packages/PySide6/qml/QtQuick3D/designer/ModelSection.qml
T
2026-04-29 07:19:21 +03:00

364 lines
13 KiB
QML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Copyright (C) 2021 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
import QtQuick 2.15
import QtQuick.Layouts 1.15
import HelperWidgets 2.0
import StudioTheme 1.0 as StudioTheme
Column {
width: parent.width
Section {
caption: qsTr("Model")
width: parent.width
SectionLayout {
PropertyLabel {
text: qsTr("Source")
tooltip: qsTr("Sets the location of the mesh file containing the geometry of this model.")
}
SecondColumnLayout {
UrlChooser {
id: sourceUrlChooser
backendValue: backendValues.source
filter: "*.mesh"
defaultItems: ["#Rectangle" ,"#Sphere" ,"#Cube" ,"#Cone" ,"#Cylinder"]
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Geometry")
tooltip: qsTr("Sets a custom geometry for the model")
}
SecondColumnLayout {
ItemFilterComboBox {
id: geometryComboBox
typeFilter: "QtQuick3D.Geometry"
backendValue: backendValues.geometry
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
Connections {
target: geometryComboBox.backendValue
function onExpressionChanged() {
if (geometryComboBox.backendValue.expression !== "" &&
sourceUrlChooser.backendValue.expression !== "")
sourceUrlChooser.backendValue.resetValue()
}
}
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Materials")
Layout.alignment: Qt.AlignTop
Layout.topMargin: 5
}
SecondColumnLayout {
EditableListView {
backendValue: backendValues.materials
model: backendValues.materials.expressionAsList
Layout.fillWidth: true
typeFilter: "QtQuick3D.Material"
textRole: "idAndName"
onAdd: function(value) { backendValues.materials.idListAdd(value) }
onRemove: function(idx) { backendValues.materials.idListRemove(idx) }
onReplace: function (idx, value) { backendValues.materials.idListReplace(idx, value) }
extraButtonIcon: StudioTheme.Constants.material_medium
extraButtonToolTip: qsTr("Edit material")
onExtraButtonClicked: (idx) => { backendValues.materials.openMaterialEditor(idx) }
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Casts Shadows")
tooltip: qsTr("Enables the geometry of this model to be rendered to the shadow maps.")
}
SecondColumnLayout {
CheckBox {
text: backendValues.castsShadows.valueToString
backendValue: backendValues.castsShadows
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Receives Shadows")
tooltip: qsTr("Enables the geometry of this model to receive shadows.")
}
SecondColumnLayout {
CheckBox {
text: backendValues.receivesShadows.valueToString
backendValue: backendValues.receivesShadows
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Casts Reflections")
tooltip: qsTr("Enables reflection probes to reflect this model.")
}
SecondColumnLayout {
CheckBox {
text: backendValues.castsReflections.valueToString
backendValue: backendValues.castsReflections
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Receives Reflections")
tooltip: qsTr("Enables the geometry of this model to receive reflections from the nearest reflection probe. The model must be inside at least one reflection probe to start receiving reflections.")
}
SecondColumnLayout {
CheckBox {
text: backendValues.receivesReflections.valueToString
backendValue: backendValues.receivesReflections
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Is Pickable")
tooltip: qsTr("Enables ray cast based picking for this model.")
}
SecondColumnLayout {
CheckBox {
text: backendValues.pickable.valueToString
backendValue: backendValues.pickable
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Used in Baked Lighting")
tooltip: qsTr("This model is static and suitable to contribute to baked lighting.")
}
SecondColumnLayout {
CheckBox {
text: backendValues.usedInBakedLighting.valueToString
backendValue: backendValues.usedInBakedLighting
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Depth Bias")
tooltip: qsTr("Sets the depth bias of the model.")
}
SecondColumnLayout {
SpinBox {
minimumValue: -9999999
maximumValue: 9999999
decimals: 0
backendValue: backendValues.depthBias
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("LOD Bias")
tooltip: qsTr("Sets the size a model needs to be when rendered before the automatic level of detail meshes are used")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0.0
maximumValue: 9999999
decimals: 2
backendValue: backendValues.levelOfDetailBias
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
}
}
Section {
caption: qsTr("Instancing")
width: parent.width
SectionLayout {
PropertyLabel {
text: qsTr("Data Source")
tooltip: qsTr("If this property is set, the model will not be rendered normally. Instead, a number of instances of the model will be rendered, as defined by the instance table.")
}
SecondColumnLayout {
ItemFilterComboBox {
typeFilter: "QtQuick3D.Instancing"
backendValue: backendValues.instancing
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Origin Node")
tooltip: qsTr("Sets the origin of the instances coordinate system.")
}
SecondColumnLayout {
ItemFilterComboBox {
typeFilter: "QtQuick3D.Node"
backendValue: backendValues.instanceRoot
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
}
}
Section {
caption: qsTr("Animation")
width: parent.width
SectionLayout {
PropertyLabel {
text: qsTr("Skeleton")
tooltip: qsTr("Sets the skeleton for the model.")
}
SecondColumnLayout {
ItemFilterComboBox {
typeFilter: "QtQuick3D.Skeleton"
backendValue: backendValues.skeleton
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Morph Targets")
tooltip: qsTr("Sets a list of MorphTargets used to render the provided geometry.")
Layout.alignment: Qt.AlignTop
Layout.topMargin: 5
}
SecondColumnLayout {
EditableListView {
backendValue: backendValues.morphTargets
model: backendValues.morphTargets.expressionAsList
Layout.fillWidth: true
typeFilter: "QtQuick3D.MorphTarget"
onAdd: function(value) { backendValues.morphTargets.idListAdd(value) }
onRemove: function(idx) { backendValues.morphTargets.idListRemove(idx) }
onReplace: function (idx, value) { backendValues.morphTargets.idListReplace(idx, value) }
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Skin")
tooltip: qsTr("Sets the skin for the model.")
}
SecondColumnLayout {
ItemFilterComboBox {
typeFilter: "QtQuick3D.Skin"
backendValue: backendValues.skin
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
}
}
Section {
caption: qsTr("Lightmapping")
width: parent.width
SectionLayout {
PropertyLabel {
text: qsTr("Resolution")
tooltip: qsTr("Sets the target resolution of the baked lightmap texture for the model.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 128
maximumValue: 4096
decimals: 0
stepSize: 128
sliderIndicatorVisible: true
backendValue: backendValues.lightmapBaseResolution
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Lightmap")
tooltip: qsTr("Sets the baked lightmap data for the model.")
}
SecondColumnLayout {
ItemFilterComboBox {
typeFilter: "QtQuick3D.BakedLightmap"
backendValue: backendValues.bakedLightmap
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
}
}
}