Spec-Zone.ru › Qt 5.9

Класс QLevelOfDetail

(Qt3DRender::QLevelOfDetail)

Класс QLevelOfDetail предоставляет способ управления сложностью отрисованных объектов на основе их размера на экране. Подробнее...

Заголовок: #include <QLevelOfDetail>
qmake: QT += 3drender
С момента: Qt 5.9
Инициализируется: LevelOfDetail
Наследует: Qt3DCore::QComponent
Наследуется:

Qt3DRender::QLevelOfDetailSwitch

  • Список всех членов, включая наследуемые

Типы

Перечисление ThresholdType { DistanceToCameraThreshold, ProjectedScreenPixelSizeThreshold }

Свойства

  • camera : Qt3DRender::QCamera *
  • currentIndex : int
  • thresholdType : ThresholdType
  • thresholds : QVector<qreal>
  • volumeOverride : Qt3DRender::QLevelOfDetailBoundingSphere
  • 1 свойство унаследовано от Qt3DCore::QComponent
  • 3 свойства унаследовано от Qt3DCore::QNode
  • 1 свойство унаследовано от QObject

Открытые функции

QLevelOfDetail(Qt3DCore::QNode *parent = nullptr)
QCamera * camera() const
QLevelOfDetailBoundingSphere createBoundingSphere(const QVector3D &center, float radius)
int currentIndex() const
ThresholdType thresholdType() const
QVector<qreal> thresholds() const
QLevelOfDetailBoundingSphere volumeOverride() const
  • 2 открытые функции унаследованы от Qt3DCore::QComponent
  • 11 открытых функций унаследовано от Qt3DCore::QNode
  • 32 открытых функций унаследовано от QObject

Открытые слоты

void setCamera(QCamera *camera)
void setCurrentIndex(int currentIndex)
void setThresholdType(ThresholdType thresholdType)
void setThresholds(const QVector<qreal> &thresholds)
void setVolumeOverride(const QLevelOfDetailBoundingSphere &volumeOverride)
  • 1 открытый слот унаследован от Qt3DCore::QComponent
  • 3 открытых слота унаследовано от Qt3DCore::QNode
  • 1 открытый слот унаследован от QObject

Сигналы

void cameraChanged(QCamera *camera)
void currentIndexChanged(int currentIndex)
void thresholdTypeChanged(ThresholdType thresholdType)
void thresholdsChanged(const QVector<qreal> &thresholds)
void volumeOverrideChanged(const QLevelOfDetailBoundingSphere &volumeOverride)
  • 3 сигнала унаследованы от Qt3DCore::QComponent
  • 4 сигнала унаследованы от Qt3DCore::QNode
  • 2 сигнала унаследованы от QObject

Защищенные функции

QLevelOfDetail(QLevelOfDetailPrivate &dd, Qt3DCore::QNode *parent = nullptr)
  • 2 защищенные функции унаследованы от Qt3DCore::QNode
  • 9 защищенных функций унаследовано от QObject

Дополнительные унаследованные члены

  • 11 статических публичных членов унаследованы от QObject

Подробное описание

Класс QLevelOfDetail предоставляет способ управления сложностью отрисованных объектов на основе их размера на экране.

QLevelOfDetail может использоваться для управления представлением объекта на основе расстояния от наблюдателя или размера на экране.

Для повышения производительности отрисовки объекты, которые очень маленькие, могут быть отрисованы с меньшим количеством деталей в геометрии или текстурах.

Компонент управляется путем указания пороговых значений, которые интерпретируются как расстояния от камеры или размера на экране.

При изменении точки зрения свойство currentIndex будет меняться, отражая соответствующее значение в массиве.

Свойство currentIndex может затем использоваться, например, для активации или отключения объектов, изменения материала и т.д.

Компонент LevelOfDetail не может быть совместно использован между несколькими объектами.

 #include <Qt3DCore/QEntity>
 #include <Qt3DRender/QGeometryRenderer>
 #include <Qt3DRender/QLevelOfDetail>

// Scene
Qt3DCore::QEntity *rootEntity = new Qt3DCore::Qt3DCore::QEntity;

Qt3DCore::QEntity *renderableEntity = new Qt3DCore::QEntity(rootEntity);
Qt3DRender::QGeometryRenderer *geometryRenderer = new Qt3DCore::QGeometryRenderer(renderableEntity);
renderableEntity->addComponent(geometryRenderer);
Qt3DRender::QLevelOfDetail* lod = new Qt3Render::QLevelOfDetail(renderableEntity);
QVector<qreal> thresholds = {20, 35, 50, 65};
lod->setThresholds(thresholds);
lod->setCamera(mainCamera);
renderableEntity->addComponent(lod);

// connect to QLevelOfDetail::currentIndexChanged to toggle rendering
...

Документация по типам членов

Перечисление QLevelOfDetail::ThresholdType

Определяет, как интерпретируются значения в массиве пороговых значений.

Постоянная Значение Описание
Qt3DRender::QLevelOfDetail::DistanceToCameraThreshold 0 Расстояние от объекта до выбранной камеры
Qt3DRender::QLevelOfDetail::ProjectedScreenPixelSizeThreshold 1 Размер объекта при проецировании на экран, как видно с выбранной камеры, выраженный в количестве пикселей по стороне ограничивающего квадрата в пространстве экрана.

Документация свойств

camera : Qt3DRender::QCamera *

Содержит идентификатор камеры, используемой для вычисления фактического расстояния или размера экрана.

Функции доступа:

QCamera * camera() const
void setCamera(QCamera *camera)

Сигнал уведомления:

void cameraChanged(QCamera *camera)

currentIndex : int

Индекс в массиве диапазонов, соответствующий текущему расстоянию до камеры или размеру экрана.

Функции доступа:

int currentIndex() const
void setCurrentIndex(int currentIndex)

Сигнал уведомления:

void currentIndexChanged(int currentIndex)

thresholdType : ThresholdType

Определяет способ интерпретации значений диапазона.

Функции доступа:

ThresholdType thresholdType() const
void setThresholdType(ThresholdType thresholdType)

Сигнал уведомления:

void thresholdTypeChanged(ThresholdType thresholdType)

См. также Qt3DRender::QLevelOfDetail::ThresholdType.

thresholds : QVector<qreal>

Массив значений диапазона в виде чисел с плавающей точкой. Значение для наиболее подробного представления должно быть указано первым.

Если Qt3DRender::QLevelOfDetail::thresholdType установлено в Qt3DRender::QLevelOfDetail::DistanceToCameraThreshold, значения должны быть указаны в возрастающем порядке в координатах пространства камеры.

Если Qt3DRender::QLevelOfDetail::thresholdType установлено в Qt3DRender::QLevelOfDetail::ProjectedScreenPixelSizeThreshold, значения должны быть указаны в убывающем порядке в пикселях пространства экрана.

Функции доступа:

QVector<qreal> thresholds() const
void setThresholds(const QVector<qreal> &thresholds)

Сигнал уведомления:

void thresholdsChanged(const QVector<qreal> &thresholds)

См. также Qt3DRender::QLevelOfDetail::ThresholdType.

volumeOverride : Qt3DRender::QLevelOfDetailBoundingSphere

По умолчанию — сфера радиусом 1, центрированная в локальном начале координат сущности. Этот объем-прокси используется для вычисления расстояния до камеры или размера проекции на экран.

Если это значение равно nullptr, используется объем ограничивающей области сущности. Следует позаботиться о том, чтобы этот объем ограничивающей области никогда не становился недействительным.

Функции доступа:

QLevelOfDetailBoundingSphere volumeOverride() const
void setVolumeOverride(const QLevelOfDetailBoundingSphere &volumeOverride)

Сигнал уведомления:

void volumeOverrideChanged(const QLevelOfDetailBoundingSphere &volumeOverride)

См. также Qt3DRender::QLevelOfDetailBoundingSphere.

Документация по членам-функциям

QLevelOfDetail::QLevelOfDetail(Qt3DCore::QNode *parent = nullptr)

Создаёт новый QLevelOfDetail со указанным parent.

[protected] QLevelOfDetail::QLevelOfDetail(QLevelOfDetailPrivate &dd, Qt3DCore::QNode *parent = nullptr)

Конструктор копирования.

QLevelOfDetailBoundingSphere QLevelOfDetail::createBoundingSphere(const QVector3D &center, float radius)

[slot] void QLevelOfDetail::setCamera(QCamera *camera)

Устанавливает camera, относительно которого вычисляются расстояние и размер.

Примечание: Функция установки для свойства camera.

См. также camera().

[slot] void QLevelOfDetail::setCurrentIndex(int currentIndex)

Устанавливает currentIndex.

Примечание: Обычно пользователь этого не должен устанавливать.

Однако, если компонент отключён, изменение текущего индекса является простым способом переключения между несколькими представлениями.

Примечание: Функция установки для свойства currentIndex.

См. также currentIndex().

[slot] void QLevelOfDetail::setThresholdType(ThresholdType thresholdType)

Устанавливает способ интерпретации значений порога с параметром thresholdType.

Примечание: Функция установки для свойства thresholdType.

См. также thresholdType() и Qt3DRender::QLevelOfDetail::ThresholdType.

[slot] void QLevelOfDetail::setThresholds(const QVector<qreal> &thresholds)

Устанавливает значения диапазона в thresholds.

Примечание: Функция установки для свойства thresholds.

См. также thresholds() и Qt3DRender::QLevelOfDetail::thresholdType.

© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qt3drender-qlevelofdetail.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API