Qt Quick 3D Physics - Compound Shapes Example
// Copyright (C) 2022 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
import QtQuick
import QtQuick3D
import QtQuick3D.Physics
DynamicRigidBody {
property real len: 170
property real w: 17
PrincipledMaterial {
id: material3
baseColor: "yellow"
metalness: 1.0
roughness: 0.5
}
Node {
opacity: 1
Model {
materials: material3
source: "#Cylinder"
scale: Qt.vector3d(w / 100, len / 100, w / 100)
eulerRotation.z: 90
y: -len / 2
}
Model {
materials: material3
source: "#Cylinder"
scale: Qt.vector3d(w / 100, len / 100, w / 100)
eulerRotation.z: 90
y: len / 2
}
Model {
materials: material3
source: "#Cylinder"
scale: Qt.vector3d(w / 100, len / 100, w / 100)
x: len / 2
}
Model {
materials: material3
source: "#Cylinder"
scale: Qt.vector3d(w / 100, len / 100, w / 100)
x: -len / 2
}
Model {
materials: material3
source: "#Sphere"
scale: Qt.vector3d(w / 100, w / 100, w / 100)
x: -len / 2
y: -len / 2
}
Model {
materials: material3
source: "#Sphere"
scale: Qt.vector3d(w / 100, w / 100, w / 100)
x: -len / 2
y: len / 2
}
Model {
materials: material3
source: "#Sphere"
scale: Qt.vector3d(w / 100, w / 100, w / 100)
x: len / 2
y: -len / 2
}
Model {
materials: material3
source: "#Sphere"
scale: Qt.vector3d(w / 100, w / 100, w / 100)
x: len / 2
y: len / 2
}
}
collisionShapes: [
CapsuleShape {
y: -len / 2
height: len
diameter: w
},
CapsuleShape {
y: len / 2
height: len
diameter: w
},
CapsuleShape {
x: -len / 2
eulerRotation.z: 90
height: len
diameter: w
},
CapsuleShape {
x: len / 2
eulerRotation.z: 90
height: len
diameter: w
}
]
}