提供加载现有场景的设施。 更多...
头: | #include <QSceneLoader> |
CMake: |
find_package(Qt6 REQUIRED COMPONENTS 3drender)
target_link_libraries(mytarget PRIVATE Qt6::3drender) |
qmake: | QT += 3drender |
实例化: | SceneLoader |
继承: | Qt3DCore::QComponent |
enum | ComponentType { UnknownComponent, GeometryRendererComponent, TransformComponent, MaterialComponent, LightComponent, CameraLensComponent } |
enum | Status { None, Loading, Ready, Error } |
QSceneLoader (Qt3DCore::QNode * parent = nullptr) | |
Qt3DCore::QComponent * | component (const QString & entityName , Qt3DRender::QSceneLoader::ComponentType componentType ) const |
Qt3DCore::QEntity * | entity (const QString & entityName ) const |
QStringList | entityNames () const |
QUrl | source () const |
Qt3DRender::QSceneLoader::Status | status () const |
void | setSource (const QUrl & arg ) |
void | sourceChanged (const QUrl & source ) |
void | statusChanged (Qt3DRender::QSceneLoader::Status status ) |
给定 3D 源文件, Qt3DRender::QSceneLoader 将试着剖析它并构建树为 Qt3DCore::QEntity 对象采用适当 Qt3DRender::QGeometryRenderer , Qt3DCore::QTransform and Qt3DRender::QMaterial components.
The loader will try to determine the best material to be used based on the properties of the model file. If you wish to use a custom material, you will have to traverse the tree and replace the default associated materials with yours.
顾名思义, Qt3DRender::QSceneLoader loads a complete scene subtree. If you wish to load a single piece of geometry, you should rather use the Qt3DRender::QMesh 代替。
Qt3DRender::QSceneLoader internally relies on the use of plugins to support a wide variety of 3D file formats. Here is a list of formats that are supported by Qt3D.
注意: this component shouldn't be shared among several Qt3DCore::QEntity instances. Undefined behavior will result.
另请参阅 Qt3DRender::QMesh and Qt3DRender::QGeometryRenderer .
This enum specifies a component type.
常量 | 值 | 描述 |
---|---|---|
Qt3DRender::QSceneLoader::UnknownComponent
|
0
|
Unknown component type |
Qt3DRender::QSceneLoader::GeometryRendererComponent
|
1
|
Qt3DRender::QGeometryRenderer component |
Qt3DRender::QSceneLoader::TransformComponent
|
2
|
Qt3DCore::QTransform component |
Qt3DRender::QSceneLoader::MaterialComponent
|
3
|
Qt3DRender::QMaterial component |
Qt3DRender::QSceneLoader::LightComponent
|
4
|
Qt3DRender::QAbstractLight component |
Qt3DRender::QSceneLoader::CameraLensComponent
|
5
|
Qt3DRender::QCameraLens component |
This enum identifies the state of loading
常量 | 值 | 描述 |
---|---|---|
Qt3DRender::QSceneLoader::None
|
0
|
The Qt3DRender::QSceneLoader hasn't been used yet. |
Qt3DRender::QSceneLoader::Loading
|
1
|
The Qt3DRender::QSceneLoader is currently loading the scene file. |
Qt3DRender::QSceneLoader::Ready
|
2
|
The Qt3DRender::QSceneLoader successfully loaded the scene file. |
Qt3DRender::QSceneLoader::Error
|
3
|
The Qt3DRender::QSceneLoader encountered an error while loading the scene file. |
Holds the url to the source to be loaded.
访问函数:
QUrl | source () const |
void | setSource (const QUrl & arg ) |
通知程序信号:
void | sourceChanged (const QUrl & source ) |
[read-only]
status
: const
Status
Holds the status of scene loading.
访问函数:
Qt3DRender::QSceneLoader::Status | status () const |
通知程序信号:
void | statusChanged (Qt3DRender::QSceneLoader::Status status ) |
另请参阅 Qt3DRender::QSceneLoader::Status .
[explicit]
QSceneLoader::
QSceneLoader
(
Qt3DCore::QNode
*
parent
= nullptr)
The constructor creates an instance with the specified parent .
[invokable]
Qt3DCore::QComponent
*QSceneLoader::
component
(const
QString
&
entityName
,
Qt3DRender::QSceneLoader::ComponentType
componentType
) const
Returns a component matching componentType of a loaded entity with an objectName matching the entityName . If the entity has multiple matching components, the first match in the component list of the entity is returned. If there is no match, a null pointer is returned.
注意: 此函数可以被援引,通过元对象系统和从 QML。见 Q_INVOKABLE .
[invokable]
Qt3DCore::QEntity
*QSceneLoader::
entity
(const
QString
&
entityName
) const
Returns a loaded entity with an
objectName
matching the
entityName
parameter. If multiple entities have the same name, it is undefined which one of them is returned, but it will always be the same one.
注意: 此函数可以被援引,通过元对象系统和从 QML。见 Q_INVOKABLE .
[invokable]
QStringList
QSceneLoader::
entityNames
() const
返回列表为
objectNames
of the loaded entities.
注意: 此函数可以被援引,通过元对象系统和从 QML。见 Q_INVOKABLE .