QCustom3DItem Class

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

Header: #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
Inherits: QObject
Inherited By:

QCustom3DLabel and QCustom3DVolume

プロパティ

パブリック関数

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

シグナル

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)

詳細説明

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

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

プロパティ ドキュメント

meshFile : QString

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

ファイル内のアイテムは、Wavefront OBJ フォーマットで、頂点、法線、UV を含む必要があります。また、三角形である必要があります。ファイルに法線または 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(const QVector3D &position)

通知シグナル:

void positionChanged(const 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(const QVector3D &scaling)

通知シグナル:

void scalingChanged(const QVector3D &scaling)

scalingAbsoluteも参照してください

[since QtDataVisualization 1.2] scalingAbsolute : bool

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

デフォルトはtrue です。

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

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

: カスタム項目のメッシュは、範囲[-1 ,1] に正規化されていなければなりません。

このプロパティは QtDataVisualization 1.2 で導入されました。

アクセス関数

bool isScalingAbsolute() const
void setScalingAbsolute(bool scalingAbsolute)

Notifier シグナル:

void scalingAbsoluteChanged(bool scalingAbsolute)

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

shadowCasting : bool

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

デフォルトはtrue です。false の場合、アイテムはQAbstract3DGraph::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, const QVector3D &position, const QVector3D &scaling, const QQuaternion &rotation, const QImage &texture, QObject *parent = nullptr)

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

[virtual noexcept] QCustom3DItem::~QCustom3DItem()

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

[invokable] void QCustom3DItem::setRotationAxisAndAngle(const 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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。