QCustom3DItem Class

QCustom3DItem クラスは、グラフにカスタム項目を追加します。詳細...

Header: #include <QCustom3DItem>
CMake: find_package(Qt6 REQUIRED COMPONENTS Graphs)
target_link_libraries(mytarget PRIVATE Qt6::Graphs)
qmake: QT += graphs
In QML: Custom3DItem
Inherits: QObject
Inherited By:

QCustom3DLabel and QCustom3DVolume

プロパティ

パブリック関数

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

シグナル

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)

詳細説明

カスタムアイテムは、カスタムメッシュ、位置、スケーリング、回転、およびオプションのテクスチャを持ちます。

Q3DGraphsWidgetItem::addCustomItem()も参照してください

プロパティ ドキュメント

meshFile : QString

このプロパティは、アイテムのメッシュファイル名を保持します。

ファイル内のアイテムはメッシュ形式でなければなりません。他の形式はバルサムアセットインポートツールで変換できます。メッシュファイルには、頂点、法線、UVを含めることを推奨します。

アクセス機能

QString meshFile() const
void setMeshFile(const QString &meshFile)

通知シグナル

void meshFileChanged(const QString &meshFile)

position : QVector3D

このプロパティは、アイテムの位置をQVector3D として保持します。

デフォルトはQVector3D(0.0, 0.0, 0.0) です。

アイテム位置は、positionAbsolute プロパティに応じて、データ座標または絶対座標で指定されます。絶対座標を使用する と 、-1.0...1.0 間の値は軸範囲内にな り ます。

注: positionAbsolutefalse の場合、軸の範囲外に配置されたアイテムはレンダリングされません。ただし、アイテムが部分的に表示されるQCustom3DVolume であり、scalingAbsolutefalse でもある場合を除きます。その場合、ボリュームの可視部分がレンダリングされる。

アクセス関数:

QVector3D position() const
void setPosition(QVector3D position)

通知シグナル:

void positionChanged(QVector3D position)

positionAbsoluteも参照

positionAbsolute : bool

このプロパティは、アイテムの位置をデータ座標で扱うか、絶対座標で扱うかを保持します。

デフォルトはfalse です。 絶対座標を持つアイテムは常にレンダリングされますが、データ座標を持つアイテムは軸の範囲内にある場合のみレンダリングされます。

アクセス関数:

bool isPositionAbsolute() const
void setPositionAbsolute(bool positionAbsolute)

Notifier シグナル:

void positionAbsoluteChanged(bool positionAbsolute)

positionも参照。

rotation : QQuaternion

このプロパティは、アイテムの回転をQQuaternion として保持します。

デフォルトはQQuaternion(0.0, 0.0, 0.0, 0.0)

アクセス関数:

QQuaternion rotation()
void setRotation(const QQuaternion &rotation)

ノーティファイアシグナル:

void rotationChanged(const QQuaternion &rotation)

scaling : QVector3D

このプロパティは、アイテムのスケーリングをQVector3D として保持します。

デフォルトはQVector3D(0.1, 0.1, 0.1) です。

アイテムのスケーリングは、scalingAbsolute プロパティによって、データ値か絶対値のいずれかになります。絶対値として解釈されるデフォルトのベクトルは、アイテムのメッシュが正規化され、グラフのアスペクト比がデフォルトから変更されていない場合、アイテムをグラフの高さの10%に設定します。

アクセス関数:

QVector3D scaling() const
void setScaling(QVector3D scaling)

通知シグナル:

void scalingChanged(QVector3D scaling)

scalingAbsoluteも参照してください

scalingAbsolute : bool

このプロパティは、アイテムのスケーリングをデータ値で扱うか、絶対値で扱うかを保持します。

デフォルトはtrue です。

絶対値スケーリングを持つアイテムは、軸の範囲に関係なく、同じサイズでレンダリングされます。デー タ ス ケー リ ン グ を持つ項目は、 軸の範囲に従っ て見かけ上のサ イ ズが変わ り ます。positionAbsolutetrue の場合、 こ のプ ロ パテ ィ は無視 さ れ、 拡縮は絶対値 と し て解釈 さ れます。アイテムに回転がある場合、データ スケーリングは回転していないアイテムで計算されます。同様に、QCustom3DVolume 項目の場合、範囲のクリッピングは回転していない項目で計算されます。

注: QCustom3DLabel アイテムまたはpolar グラフで使用されるカスタム アイテムでは、絶対スケーリングのみがサポートされます。

注: カスタム項目のメッシュは、[-1 ,1] の範囲に正規化する必要があります。そうしないと、データのスケーリングが正確に行われません。

アクセス関数:

bool isScalingAbsolute() const
void setScalingAbsolute(bool scalingAbsolute)

通知シグナル:

void scalingAbsoluteChanged(bool scalingAbsolute)

scaling およびpositionAbsoluteも参照してください

shadowCasting : bool

このプロパティは、アイテムのシャドウキャストが有効かどうかを保持します。

デフォルトはtrue です。false の場合、アイテムはQ3DGraphsWidgetItem::ShadowQualityに関係なく影を落としません。

アクセス関数

bool isShadowCasting() const
void setShadowCasting(bool enabled)

Notifier シグナル:

void shadowCastingChanged(bool shadowCasting)

textureFile : QString

このプロパティは、アイテムのテクスチャファイル名を保持します。

このプロパティとテクスチャイメージの両方が設定されていない場合、ソリッドグレーのテクスチャが使用されます。

注意: メモリを節約するために、ファイルからロードされたQImage は、テクスチャが作成されるとクリアされます。

アクセス関数

QString textureFile() const
void setTextureFile(const QString &textureFile)

Notifier シグナル:

void textureFileChanged(const QString &textureFile)

visible : bool

このプロパティは、アイテムの可視性を保持します。

デフォルトはtrue です。

アクセス関数

bool isVisible() const
void setVisible(bool visible)

通知シグナル:

void visibleChanged(bool visible)

メンバ関数ドキュメント

[explicit] QCustom3DItem::QCustom3DItem(QObject *parent = nullptr)

指定されたparent でカスタム 3D アイテムを構築します。

[explicit] QCustom3DItem::QCustom3DItem(const QString &meshFile, QVector3D position, QVector3D scaling, const QQuaternion &rotation, const QImage &texture, QObject *parent = nullptr)

指定されたmeshFile,position,scaling,rotation,texture 画像、およびオプションのparent を持つカスタム 3D アイテムを構築します。

[override virtual noexcept] QCustom3DItem::~QCustom3DItem()

カスタム 3D アイテムを削除します。

[invokable] void QCustom3DItem::setRotationAxisAndAngle(QVector3D axis, float angle)

axisangle から回転四元数を作成する便利な関数です。

注意: この関数はメタオブジェクトシステムやQMLから呼び出すことができます。Q_INVOKABLE を参照してください。

rotationも参照して ください。

void QCustom3DItem::setTextureImage(const QImage &textureImage)

アイテムのQImage としてtextureImage の値を設定します。テクスチャのデフォルトは灰色無地です。

注意: メモリを節約するため、テクスチャが作成されると、指定されたQImage はクリアされます。

本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。