QCustom3DItem Class
Die Klasse QCustom3DItem fügt ein benutzerdefiniertes Element zu einem Diagramm hinzu. Mehr...
Kopfzeile: | #include <QCustom3DItem> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS DataVisualization) target_link_libraries(mytarget PRIVATE Qt6::DataVisualization) |
qmake: | QT += datavisualization |
Since: | QtDataVisualization 1.1 |
In QML: | Custom3DItem |
Vererbt: | QObject |
Geerbt von: |
Eigenschaften
|
|
Öffentliche Funktionen
QCustom3DItem(QObject *parent = nullptr) | |
QCustom3DItem(const QString &meshFile, const QVector3D &position, const QVector3D &scaling, const QQuaternion &rotation, const QImage &texture, QObject *parent = nullptr) | |
virtual | ~QCustom3DItem() |
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(const QVector3D &position) |
void | setPositionAbsolute(bool positionAbsolute) |
void | setRotation(const QQuaternion &rotation) |
void | setRotationAxisAndAngle(const QVector3D &axis, float angle) |
void | setScaling(const 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(const QVector3D &position) |
void | rotationChanged(const QQuaternion &rotation) |
void | scalingAbsoluteChanged(bool scalingAbsolute) |
void | scalingChanged(const 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 QAbstract3DGraph::addCustomItem().
Dokumentation der Eigenschaft
meshFile : QString
Diese Eigenschaft enthält den Dateinamen des Objektmeshs.
Das Element in der Datei muss im Wavefront OBJ-Format vorliegen und Eckpunkte, Normalen und UVs enthalten. Es muss auch Dreiecke enthalten. Wenn in der Datei entweder Normalen oder UVs fehlen, schlägt das Laden mit einer Fehlermeldung in der Konsolenausgabe fehl und das Element wird nicht gerendert.
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, je nach 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(const QVector3D &position) |
Benachrichtigungssignal:
void | positionChanged(const 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(const QVector3D &scaling) |
Benachrichtigungssignal:
void | scalingChanged(const QVector3D &scaling) |
Siehe auch scalingAbsolute.
[since QtDataVisualization 1.2]
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.
Diese Eigenschaft wurde in QtDataVisualization 1.2 eingeführt.
Zugriffsfunktionen:
bool | isScalingAbsolute() const |
void | setScalingAbsolute(bool scalingAbsolute) |
Notifier-Signal:
void | scalingAbsoluteChanged(bool scalingAbsolute) |
Siehe auch scaling und positionAbsolute.
shadowCasting : bool
Diese Eigenschaft gibt an, ob der Schattenwurf für den Gegenstand aktiviert ist.
Der Standardwert ist true
. Wenn false
, wirft der Artikel keine Schatten, unabhängig von QAbstract3DGraph::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, const QVector3D &position, const 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.
[virtual noexcept]
QCustom3DItem::~QCustom3DItem()
Löscht das benutzerdefinierte 3D-Element.
[invokable]
void QCustom3DItem::setRotationAxisAndAngle(const 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.