QCustom3DItem Class
Die Klasse QCustom3DItem fügt ein benutzerdefiniertes Element zu einem Diagramm hinzu. Mehr...
Kopfzeile: | #include <QCustom3DItem> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Graphs) target_link_libraries(mytarget PRIVATE Qt6::Graphs) |
qmake: | QT += graphs |
In QML: | Custom3DItem |
Vererbt: | QObject |
Geerbt von: |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- QCustom3DItem ist Teil von Qt Graphs C++ Classes for 3D.
Eigenschaften
|
|
Öffentliche Funktionen
QCustom3DItem(QObject *parent = nullptr) | |
QCustom3DItem(const QString &meshFile, QVector3D position, QVector3D scaling, const QQuaternion &rotation, const QImage &texture, QObject *parent = nullptr) | |
virtual | ~QCustom3DItem() override |
bool | isPositionAbsolute() const |
bool | isScalingAbsolute() const |
bool | isShadowCasting() const |
bool | isVisible() const |
QString | meshFile() const |
QVector3D | position() const |
QQuaternion | rotation() |
QVector3D | scaling() const |
void | setMeshFile(const QString &meshFile) |
void | setPosition(QVector3D position) |
void | setPositionAbsolute(bool positionAbsolute) |
void | setRotation(const QQuaternion &rotation) |
void | setRotationAxisAndAngle(QVector3D axis, float angle) |
void | setScaling(QVector3D scaling) |
void | setScalingAbsolute(bool scalingAbsolute) |
void | setShadowCasting(bool enabled) |
void | setTextureFile(const QString &textureFile) |
void | setTextureImage(const QImage &textureImage) |
void | setVisible(bool visible) |
QString | textureFile() const |
Signale
void | meshFileChanged(const QString &meshFile) |
void | positionAbsoluteChanged(bool positionAbsolute) |
void | positionChanged(QVector3D position) |
void | rotationChanged(const QQuaternion &rotation) |
void | scalingAbsoluteChanged(bool scalingAbsolute) |
void | scalingChanged(QVector3D scaling) |
void | shadowCastingChanged(bool shadowCasting) |
void | textureFileChanged(const QString &textureFile) |
void | visibleChanged(bool visible) |
Detaillierte Beschreibung
Ein benutzerdefiniertes Element hat ein benutzerdefiniertes Mesh, Position, Skalierung, Drehung und eine optionale Textur.
Siehe auch Q3DGraphsWidgetItem::addCustomItem().
Dokumentation der Eigenschaft
meshFile : QString
Diese Eigenschaft enthält den Dateinamen des Mesh-Elements.
Das Element in der Datei muss im Mesh-Format vorliegen. Die anderen Typen können mit dem Balsam-Asset-Import-Tool konvertiert werden. Es wird empfohlen, dass die Mesh-Dateien Scheitelpunkte, Normalen und UVs enthalten.
Zugriffsfunktionen:
QString | meshFile() const |
void | setMeshFile(const QString &meshFile) |
Benachrichtigungssignal:
void | meshFileChanged(const QString &meshFile) |
position : QVector3D
Diese Eigenschaft enthält die Position des Elements als QVector3D.
Die Standardeinstellung ist QVector3D(0.0, 0.0, 0.0)
.
Die Elementposition wird entweder in Datenkoordinaten oder in absoluten Koordinaten angegeben, abhängig von der Eigenschaft positionAbsolute. Bei Verwendung absoluter Koordinaten liegen Werte zwischen -1.0...1.0
innerhalb der Achsenbereiche.
Hinweis: Elemente, die außerhalb eines Achsenbereichs positioniert sind, werden nicht gerendert, wenn positionAbsolute false
ist, es sei denn, das Element ist ein QCustom3DVolume, das teilweise sichtbar wäre, und scalingAbsolute ist auch false
. In diesem Fall wird der sichtbare Teil des Volumens gerendert.
Zugriffsfunktionen:
QVector3D | position() const |
void | setPosition(QVector3D position) |
Benachrichtigungssignal:
void | positionChanged(QVector3D position) |
Siehe auch positionAbsolute.
positionAbsolute : bool
Diese Eigenschaft legt fest, ob die Position eines Elements in Datenkoordinaten oder in absoluten Koordinaten behandelt werden soll.
Der Standardwert ist false
. Elemente mit absoluten Koordinaten werden immer gerendert, während Elemente mit Datenkoordinaten nur gerendert werden, wenn sie sich innerhalb der Achsenbereiche befinden.
Zugriffsfunktionen:
bool | isPositionAbsolute() const |
void | setPositionAbsolute(bool positionAbsolute) |
Melder-Signal:
void | positionAbsoluteChanged(bool positionAbsolute) |
Siehe auch position.
rotation : QQuaternion
Diese Eigenschaft enthält die Artikeldrehung als QQuaternion.
Die Standardeinstellung ist QQuaternion(0.0, 0.0, 0.0, 0.0)
.
Zugriffsfunktionen:
QQuaternion | rotation() |
void | setRotation(const QQuaternion &rotation) |
Benachrichtigungssignal:
void | rotationChanged(const QQuaternion &rotation) |
scaling : QVector3D
Diese Eigenschaft enthält die Skalierung des Elements als QVector3D.
Die Standardeinstellung ist QVector3D(0.1, 0.1, 0.1)
.
Die Skalierung der Elemente erfolgt entweder in Datenwerten oder in absoluten Werten, abhängig von der Eigenschaft scalingAbsolute. Der Standardvektor, der als absolute Werte interpretiert wird, setzt das Element auf 10 % der Höhe des Diagramms, vorausgesetzt, das Elementnetz ist normalisiert und die Seitenverhältnisse des Diagramms wurden nicht gegenüber den Standardwerten geändert.
Zugriffsfunktionen:
QVector3D | scaling() const |
void | setScaling(QVector3D scaling) |
Benachrichtigungssignal:
void | scalingChanged(QVector3D scaling) |
Siehe auch scalingAbsolute.
scalingAbsolute : bool
Diese Eigenschaft legt fest, ob die Skalierung der Elemente in Datenwerten oder in absoluten Werten erfolgen soll.
Die Standardeinstellung ist true
.
Elemente mit absoluter Skalierung werden unabhängig von den Achsenbereichen in derselben Größe wiedergegeben. Elemente mit Datenskalierung ändern ihre sichtbare Größe entsprechend den Achsenbereichen. Wenn positionAbsolute gleich true
ist, wird diese Eigenschaft ignoriert und die Skalierung wird als absoluter Wert interpretiert. Wenn das Element eine Drehung aufweist, wird die Datenskalierung für das nicht gedrehte Element berechnet. Analog dazu wird bei QCustom3DVolume die Bereichsbeschneidung für das nicht gedrehte Element berechnet.
Hinweis: Für QCustom3DLabel Elemente oder für benutzerdefinierte Elemente, die in polar Diagrammen verwendet werden, wird nur die absolute Skalierung unterstützt.
Hinweis: Das Netz des benutzerdefinierten Elements muss auf den Bereich [-1 ,1]
normalisiert werden, sonst ist die Skalierung der Daten nicht genau.
Zugriffsfunktionen:
bool | isScalingAbsolute() const |
void | setScalingAbsolute(bool scalingAbsolute) |
Benachrichtigungssignal:
void | scalingAbsoluteChanged(bool scalingAbsolute) |
Siehe auch scaling und positionAbsolute.
shadowCasting : bool
Diese Eigenschaft gibt an, ob der Schattenwurf für das Element aktiviert ist.
Der Standardwert ist true
. Wenn false
, wirft das Element keine Schatten, unabhängig von Q3DGraphsWidgetItem::ShadowQuality.
Zugriffsfunktionen:
bool | isShadowCasting() const |
void | setShadowCasting(bool enabled) |
Benachrichtigungssignal:
void | shadowCastingChanged(bool shadowCasting) |
textureFile : QString
Diese Eigenschaft enthält den Namen der Texturdatei für das Objekt.
Wenn sowohl diese Eigenschaft als auch das Texturbild nicht gesetzt sind, wird eine einfarbig graue Textur verwendet.
Hinweis: Um Speicherplatz zu sparen, wird die aus der Datei geladene QImage gelöscht, nachdem eine Textur erstellt wurde.
Zugriffsfunktionen:
QString | textureFile() const |
void | setTextureFile(const QString &textureFile) |
Benachrichtigungssignal:
void | textureFileChanged(const QString &textureFile) |
visible : bool
Diese Eigenschaft enthält die Sichtbarkeit des Objekts.
Der Standardwert ist true
.
Zugriffsfunktionen:
bool | isVisible() const |
void | setVisible(bool visible) |
Benachrichtigungssignal:
void | visibleChanged(bool visible) |
Member Function Dokumentation
[explicit]
QCustom3DItem::QCustom3DItem(QObject *parent = nullptr)
Konstruiert ein benutzerdefiniertes 3D-Element mit dem angegebenen parent.
[explicit]
QCustom3DItem::QCustom3DItem(const QString &meshFile, QVector3D position, QVector3D scaling, const QQuaternion &rotation, const QImage &texture, QObject *parent = nullptr)
Konstruiert ein benutzerdefiniertes 3D-Element mit dem angegebenen meshFile, position, scaling, rotation, texture Bild und optional parent.
[override virtual noexcept]
QCustom3DItem::~QCustom3DItem()
Löscht das benutzerdefinierte 3D-Element.
[invokable]
void QCustom3DItem::setRotationAxisAndAngle(QVector3D axis, float angle)
Eine Komfortfunktion, um die Rotationsquaternion aus axis und angle zu konstruieren.
Hinweis: Diese Funktion kann über das Meta-Objektsystem und von QML aus aufgerufen werden. Siehe Q_INVOKABLE.
Siehe auch rotation.
void QCustom3DItem::setTextureImage(const QImage &textureImage)
Legt den Wert von textureImage als QImage für das Element fest. Die Textur ist standardmäßig einfarbig grau.
Hinweis: Um Speicher zu sparen, wird die angegebene QImage nach der Erstellung einer Textur gelöscht.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.