Q3DScene Class

Q3DSceneクラスはビジュアライズされている3Dシーンの説明を提供します。詳細...

Header: #include <Q3DScene>
CMake: find_package(Qt6 REQUIRED COMPONENTS DataVisualization)
target_link_libraries(mytarget PRIVATE Qt6::DataVisualization)
qmake: QT += datavisualization
Since: QtDataVisualization 1.0
In QML: Scene3D
Inherits: QObject

プロパティ

パブリック関数

Q3DScene(QObject *parent = nullptr)
virtual ~Q3DScene()
Q3DCamera *activeCamera() const
Q3DLight *activeLight() const
float devicePixelRatio() const
QPoint graphPositionQuery() const
bool isPointInPrimarySubView(const QPoint &point)
bool isPointInSecondarySubView(const QPoint &point)
bool isSecondarySubviewOnTop() const
bool isSlicingActive() const
QRect primarySubViewport() const
QRect secondarySubViewport() const
QPoint selectionQueryPosition() const
void setActiveCamera(Q3DCamera *camera)
void setActiveLight(Q3DLight *light)
void setDevicePixelRatio(float pixelRatio)
void setGraphPositionQuery(const QPoint &point)
void setPrimarySubViewport(const QRect &primarySubViewport)
void setSecondarySubViewport(const QRect &secondarySubViewport)
void setSecondarySubviewOnTop(bool isSecondaryOnTop)
void setSelectionQueryPosition(const QPoint &point)
void setSlicingActive(bool isSlicing)
QRect viewport() const

シグナル

void activeCameraChanged(Q3DCamera *camera)
void activeLightChanged(Q3DLight *light)
void devicePixelRatioChanged(float pixelRatio)
void graphPositionQueryChanged(const QPoint &position)
void primarySubViewportChanged(const QRect &subViewport)
void secondarySubViewportChanged(const QRect &subViewport)
void secondarySubviewOnTopChanged(bool isSecondaryOnTop)
void selectionQueryPositionChanged(const QPoint &position)
void slicingActiveChanged(bool isSlicingActive)
void viewportChanged(const QRect &viewport)

静的パブリックメンバー

詳細説明

3Dシーンには、アクティブなカメラとアクティブな光源が1つずつあります。ビジュアライズされたデータは、固定された場所にあると仮定されます。

3Dシーンは、可視化レンダリングが行われるビューポート、メインの3Dデータ可視化ビューが存在するビューポート内のプライマリサブビューポート、データの2Dスライスビューが存在するセカンダリサブビューポートも追跡します。サブビューポートはデフォルトで、Q3DScene によってリサイズされます。リサイズ動作をオーバーライドするには、viewportChanged() とslicingActiveChanged() の両方のシグナルをリッスンし、それに応じてサブビューポートを再計算する必要があります。

また、シーンはセカンダリ2Dスライスビューが現在アクティブかどうかをトラッキングするフラグを持っています。

注意: 全てのビジュアライゼーションがセカンダリ2Dスライシングビューをサポートしているわけではありません。

プロパティの説明

activeCamera : Q3DCamera*

このプロパティは、3Dシーンで現在アクティブなカメラを保持します。

新しいQ3DCamera オブジェクトが設定されると、自動的にシーンの子として追加されます。

アクセス関数

Q3DCamera *activeCamera() const
void setActiveCamera(Q3DCamera *camera)

通知シグナル

void activeCameraChanged(Q3DCamera *camera)

activeLight : Q3DLight*

このプロパティは、3Dシーンで現在アクティブなライトを保持します。

新しいQ3DLight オブジェクトが設定されると、自動的にシーンの子として追加されます。

アクセス関数

Q3DLight *activeLight() const
void setActiveLight(Q3DLight *light)

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

void activeLightChanged(Q3DLight *light)

devicePixelRatio : float

このプロパティは、入力座標をピクセル座標にマッピングするときに使用されるデバイスピクセル比率を保持します。

アクセス関数

float devicePixelRatio() const
void setDevicePixelRatio(float pixelRatio)

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

void devicePixelRatioChanged(float pixelRatio)

graphPositionQuery : QPoint

このプロパティは、グラフ位置クエリとしてシーンによって処理されるべきユーザー入力の座標を保持する。

このプロパティがinvalidSelectionPoint() 以外の値に設定されている場合、グラフは、プライマリビューポート内の指定された座標にグラフ位置を一致させようとします。レンダリング パスの後、このプロパティはデフォルト状態のinvalidSelectionPoint() に戻されます。照会されたグラフ位置は、次のレンダリングパスの後にQAbstract3DGraph::queriedGraphPosition プロパティから読み取ることができます。

特定の画面位置に一致する単一の正しい3D座標は存在しないため、一貫性を保つために、クエリは常にグラフを囲む不可視ボックスの内側に対して行われます。

注: 棒グラフでは、グラフフロアレベルでのみグラフ位置のクエリーが可能です。

アクセス機能

QPoint graphPositionQuery() const
void setGraphPositionQuery(const QPoint &point)

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

void graphPositionQueryChanged(const QPoint &position)

QAbstract3DGraph::queriedGraphPositionも参照

primarySubViewport : QRect

このプロパティは、データ可視化のプライマリビューが対象とするビューポート内の現在のサブビューポート矩形を保持します。

isSlicingActive() がfalse の場合、プライマリサブビューポートはviewport() と等しくなります。isSlicingActive() がtrue で、プライマリ・サブ・ビューポートが明示的に設定されていない場合、viewport() の5分の1になります。

注: primarySubViewportをビューポートより大きく、またはビューポートの外側に設定すると、それに応じてビューポートのサイズが変更されます。

アクセス関数:

QRect primarySubViewport() const
void setPrimarySubViewport(const QRect &primarySubViewport)

通知シグナル:

void primarySubViewportChanged(const QRect &subViewport)

secondarySubViewport : QRect

このプロパティは、ビューポート内のセカンダリビューポート矩形を保持する。

セカンダリビューポートは、一部のビジュアライゼーションで2Dスライスビューを描画するために使用されます。明示的に設定されていない場合、QRect に等しくなります。isSlicingActive ()がtrue の場合、viewport に等しくなります。

注意: セカンダリサブビューポートがビューポートより大きいか、ビューポートの外にある場合、ビューポートはそれに応じてサイズ変更されます。

アクセス関数:

QRect secondarySubViewport() const
void setSecondarySubViewport(const QRect &secondarySubViewport)

通知シグナル:

void secondarySubViewportChanged(const QRect &subViewport)

secondarySubviewOnTop : bool

このプロパティは、2Dスライシングビューと3Dビューのどちらが上に描画されるかを保持します。

アクセス関数

bool isSecondarySubviewOnTop() const
void setSecondarySubviewOnTop(bool isSecondaryOnTop)

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

void secondarySubviewOnTopChanged(bool isSecondaryOnTop)

selectionQueryPosition : QPoint

このプロパティは、シーンによって選択として処理されるべきユーザー入力の座標を保持する。

このプロパティがinvalidSelectionPoint() 以外の値に設定されている場合、グラフは、プライマリビューポート内の指定された座標で、データアイテム、軸ラベル、またはカスタムアイテムの選択を試みます。レンダリングパスの後、このプロパティはデフォルト状態のinvalidSelectionPoint() に戻されます。

アクセス関数:

QPoint selectionQueryPosition() const
void setSelectionQueryPosition(const QPoint &point)

通知シグナル:

void selectionQueryPositionChanged(const QPoint &position)

QAbstract3DGraph::selectedElementも参照

slicingActive : bool

このプロパティは、2Dスライシングビューが現在アクティブであるかどうかを保持する。

true,QAbstract3DGraph::selectionMode の場合、QAbstract3DGraph::SelectionRow またはQAbstract3DGraph::SelectionColumn のいずれかが有効な選択に設定されている必要があります。

注: すべてのビジュアライゼーションが 2D スライシングビューをサポートしているわけではありません。

アクセス関数

bool isSlicingActive() const
void setSlicingActive(bool isSlicing)

Notifier シグナル:

void slicingActiveChanged(bool isSlicingActive)

[read-only] viewport : const QRect

このプロパティは、すべての 3D レンダリングがターゲットとする現在のビューポート矩形を含む読み取り専用プロパティを保持します。

アクセス関数

QRect viewport() const

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

void viewportChanged(const QRect &viewport)

メンバー関数ドキュメント

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

1つのライトと1つのカメラを含む基本的なシーンを構築します。オプションでparent パラメータを与えることができ、QObject コンストラクタに渡されます。

[virtual noexcept] Q3DScene::~Q3DScene()

3D シーンおよびその中に含まれるすべてのオブジェクトを破棄します。

[static] QPoint Q3DScene::invalidSelectionPoint()

無効な選択位置を示すQPoint を返します。

bool Q3DScene::isPointInPrimarySubView(const QPoint &point)

指定されたpoint がプライマリサブビュー内に存在するかどうかを返します。ポイントがプライマリサブビュー内にある場合、true を返します。

注意: サブビューが重なっていて、与えられたpoint が両方の内側にある場合、結果は、プライマリサブビューが上にあるときのみtrue になります。

bool Q3DScene::isPointInSecondarySubView(const QPoint &point)

与えられたpoint がセカンダリサブビューの内側にあるかどうかを返します。その点がセカンダリサブビューの内側にある場合はtrue を返します。

注意: サブビューが重なっていて、与えられたpoint が両方の中にある場合、セカンダリサブビューが上にあるときのみ、結果はtrue になります。

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