Qt
Internal/Contributor docs for the Qt SDK. <b>Note:</b> These are NOT official API docs; those are found <a href='https://doc.qt.io/'>here</a>.
|
#include "assimpimporter.h"
#include <assimputils.h>
#include <QtCore/qurl.h>
#include <QtCore/qbytearrayalgorithms.h>
#include <QtGui/QQuaternion>
#include <QtQml/QQmlFile>
#include <QtQuick3DAssetImport/private/qssgassetimporterfactory_p.h>
#include <QtQuick3DAssetImport/private/qssgassetimporter_p.h>
#include <QtQuick3DAssetUtils/private/qssgscenedesc_p.h>
#include <QtQuick3DAssetUtils/private/qssgsceneedit_p.h>
#include <assimp/Importer.hpp>
#include <assimp/scene.h>
#include <assimp/Logger.hpp>
#include <assimp/DefaultLogger.hpp>
#include <assimp/postprocess.h>
#include <assimp/material.h>
#include <assimp/GltfMaterial.h>
#include <assimp/importerdesc.h>
#include <assimp/IOSystem.hpp>
#include <assimp/IOStream.hpp>
Go to the source code of this file.
Classes | |
struct | NodeInfo |
struct | TextureInfo |
struct | TextureEntry |
struct | SceneInfo |
struct | SceneInfo::Options |
struct | SceneInfo::skinData |
class | ResourceIOStream |
class | ResourceIOSystem |
Macros | |
#define | AI_GLTF_FILTER_NEAREST 0x2600 |
#define | AI_GLTF_FILTER_LINEAR 0x2601 |
#define | AI_GLTF_FILTER_NEAREST_MIPMAP_NEAREST 0x2700 |
#define | AI_GLTF_FILTER_LINEAR_MIPMAP_NEAREST 0x2701 |
#define | AI_GLTF_FILTER_NEAREST_MIPMAP_LINEAR 0x2702 |
#define | AI_GLTF_FILTER_LINEAR_MIPMAP_LINEAR 0x2703 |
#define | demonPostProcessPresets |
Typedefs | |
using | NodeMap = QHash<const aiNode *, NodeInfo> |
using | AnimationNodeMap = QHash<QByteArray, QSSGSceneDesc::Node *> |
using | MorphAttributes = QQuick3DMorphTarget::MorphTargetAttributes |
using | MorphProperty = QPair<MorphAttributes, float> |
#define AI_GLTF_FILTER_LINEAR 0x2601 |
Definition at line 37 of file assimpimporter_rt.cpp.
Referenced by setTextureProperties().
#define AI_GLTF_FILTER_LINEAR_MIPMAP_LINEAR 0x2703 |
Definition at line 41 of file assimpimporter_rt.cpp.
Referenced by setTextureProperties().
#define AI_GLTF_FILTER_LINEAR_MIPMAP_NEAREST 0x2701 |
Definition at line 39 of file assimpimporter_rt.cpp.
Referenced by setTextureProperties().
#define AI_GLTF_FILTER_NEAREST 0x2600 |
Definition at line 36 of file assimpimporter_rt.cpp.
Referenced by setTextureProperties().
#define AI_GLTF_FILTER_NEAREST_MIPMAP_LINEAR 0x2702 |
Definition at line 40 of file assimpimporter_rt.cpp.
Referenced by setTextureProperties().
#define AI_GLTF_FILTER_NEAREST_MIPMAP_NEAREST 0x2700 |
Definition at line 38 of file assimpimporter_rt.cpp.
Referenced by setTextureProperties().
#define demonPostProcessPresets |
Definition at line 1517 of file assimpimporter_rt.cpp.
Referenced by importImp().
using AnimationNodeMap = QHash<QByteArray, QSSGSceneDesc::Node *> |
Definition at line 70 of file assimpimporter_rt.cpp.
using MorphAttributes = QQuick3DMorphTarget::MorphTargetAttributes |
Definition at line 1197 of file assimpimporter_rt.cpp.
using MorphProperty = QPair<MorphAttributes, float> |
Definition at line 1198 of file assimpimporter_rt.cpp.
Definition at line 68 of file assimpimporter_rt.cpp.
|
inlinestatic |
Definition at line 43 of file assimpimporter_rt.cpp.
References QColor::fromRgbF().
Referenced by setMaterialProperties().
|
inlinestatic |
Definition at line 48 of file assimpimporter_rt.cpp.
References QColor::fromRgbF().
|
static |
Definition at line 1488 of file assimpimporter_rt.cpp.
References QJsonObject::constEnd(), QJsonObject::constFind(), and it.
Referenced by processOptions(), processSceneOptions(), and QSSGQmlUtilities::writeQml().
|
static |
Definition at line 1347 of file assimpimporter_rt.cpp.
References QSSGSceneDesc::addNode(), QSSGSceneDesc::Node::scene, setCameraProperties(), QQuick3DJoint::setIndex(), setLightProperties(), setModelProperties(), setNodeProperties(), and QSSGSceneDesc::setProperty().
Referenced by processNode().
|
static |
Definition at line 53 of file assimpimporter_rt.cpp.
References QByteArray().
Referenced by importImp(), setMaterialProperties(), setModelProperties(), and setNodeProperties().
|
static |
Definition at line 1200 of file assimpimporter_rt.cpp.
References QQuick3DMorphTarget::Binormal, i, QQuick3DMorphTarget::Normal, QQuick3DMorphTarget::Position, qMakePair(), qMin(), and QQuick3DMorphTarget::Tangent.
Referenced by processNode().
|
static |
Definition at line 1502 of file assimpimporter_rt.cpp.
References QJsonObject::constEnd(), QJsonObject::constFind(), and it.
Referenced by processSceneOptions().
|
static |
Definition at line 1676 of file assimpimporter_rt.cpp.
References QSSGSceneDesc::addNode(), QSSGQmlUtilities::applyEdit(), demonPostProcessPresets, QFileInfo::exists(), extension(), fromAiString(), QString::fromLocal8Bit(), i, QJsonObject::isEmpty(), QQmlFile::isLocalFile(), j, QQuick3DSkin::joints, QString::number(), opt, QUrl::path(), pos, processNode(), processOptions(), processSceneOptions(), qDeleteAll(), qFuzzyCompare(), qFuzzyIsNull(), qMin(), qstrcmp(), QStringLiteral, QQuick3DSkin::setInverseBindPoses(), QSSGSceneDesc::setProperty(), QQuick3DNode::setScale(), QSSGSceneDesc::Animation::Channel::targetProperty, toAnimationKey(), url, QQmlFile::urlToLocalFileOrQrc(), and QVariant::value().
Referenced by AssimpImporter::import(), and AssimpImporter::import().
|
inlinestatic |
Definition at line 72 of file assimpimporter_rt.cpp.
Referenced by QLineEdit::changeEvent(), QWidget::event(), operator==(), QCocoaFileDialogHelper::panelDirectoryDidChange(), QCoreTextFontDatabase::populateFamilyAliases(), setTextureProperties(), and QCocoaMenuBar::syncMenu_helper().
bool operator== | ( | const TextureEntry & | a, |
const TextureEntry & | b ) |
Definition at line 116 of file assimpimporter_rt.cpp.
bool operator== | ( | const TextureInfo & | a, |
const TextureInfo & | b ) |
Definition at line 87 of file assimpimporter_rt.cpp.
References isEqual().
|
static |
Definition at line 1407 of file assimpimporter_rt.cpp.
References QSSGSceneDesc::addNode(), QSet< T >::constEnd(), QSet< T >::constFind(), createSceneNode(), getMorphTargetProperties(), i, it, QQuick3DModel::morphTargets, QString::number(), processNode(), Q_ASSERT, QStringLiteral, QSSGSceneDesc::Node::scene, QQuick3DMorphTarget::setAttributes(), QSSGSceneDesc::setProperty(), and QQuick3DMorphTarget::setWeight().
Referenced by importImp(), processNode(), QSSGQmlUtilities::writeQmlForNode(), and QSSGQmlUtilities::writeQmlForResourceNode().
|
static |
Definition at line 1531 of file assimpimporter_rt.cpp.
References checkBooleanOption(), QJsonObject::constEnd(), QJsonObject::constFind(), QJsonObject::isEmpty(), it, and QStringLiteral.
Referenced by importImp().
|
static |
Definition at line 1629 of file assimpimporter_rt.cpp.
References checkBooleanOption(), QJsonObject::constEnd(), QJsonObject::constFind(), getRealOption(), QJsonObject::isEmpty(), it, qBound(), and QStringLiteral.
Referenced by importImp().
Q_DECLARE_TYPEINFO | ( | NodeInfo | , |
Q_PRIMITIVE_TYPE | ) |
size_t qHash | ( | const TextureEntry & | key, |
size_t | seed ) |
Definition at line 104 of file assimpimporter_rt.cpp.
References qHash(), qHashBits(), and seed.
Referenced by qHash().
|
static |
Definition at line 1021 of file assimpimporter_rt.cpp.
References QQuick3DPerspectiveCamera::Horizontal, M_PI, qRadiansToDegrees(), QQuick3DOrthographicCamera::setClipFar(), QQuick3DPerspectiveCamera::setClipFar(), QQuick3DOrthographicCamera::setClipNear(), QQuick3DPerspectiveCamera::setClipNear(), QQuick3DPerspectiveCamera::setFieldOfView(), QQuick3DPerspectiveCamera::setFieldOfViewOrientation(), QQuick3DOrthographicCamera::setHorizontalMagnification(), setNodeProperties(), setProperty, and QQuick3DOrthographicCamera::setVerticalMagnification().
Referenced by createSceneNode().
|
static |
Definition at line 1097 of file assimpimporter_rt.cpp.
References QColor::fromRgbF(), Q_FALLTHROUGH, qFuzzyIsNull(), qMax(), qRadiansToDegrees(), QQuick3DAbstractLight::setAmbientColor(), QQuick3DAbstractLight::setBrightness(), QQuick3DAbstractLight::setColor(), QQuick3DSpotLight::setConeAngle(), QQuick3DPointLight::setConstantFade(), QQuick3DSpotLight::setConstantFade(), QQuick3DSpotLight::setInnerConeAngle(), QQuick3DPointLight::setLinearFade(), QQuick3DSpotLight::setLinearFade(), setNodeProperties(), QSSGSceneDesc::setProperty(), QQuick3DPointLight::setQuadraticFade(), and QQuick3DSpotLight::setQuadraticFade().
Referenced by createSceneNode().
|
static |
Definition at line 443 of file assimpimporter_rt.cpp.
References QQuick3DMaterial::A, QSSGSceneDesc::addNode(), aiColorToQColor(), QQuick3DMaterial::B, QQuick3DPrincipledMaterial::Blend, QQuick3DSpecularGlossyMaterial::Blend, QSet< T >::cend(), QSet< T >::constFind(), QQuick3DPrincipledMaterial::Default, QQuick3DSpecularGlossyMaterial::Default, fromAiString(), QString::fromUtf8(), QQuick3DMaterial::G, imageData, it, QQuick3DPrincipledMaterial::Mask, QQuick3DSpecularGlossyMaterial::Mask, QQuick3DMaterial::NoCulling, QQuick3DDefaultMaterial::NoLighting, QQuick3DPrincipledMaterial::NoLighting, QQuick3DSpecularGlossyMaterial::NoLighting, QQuick3DPrincipledMaterial::Opaque, QQuick3DSpecularGlossyMaterial::Opaque, QQuick3DMaterial::OpaquePrePassDepthDraw, Q_ASSERT, QByteArray(), QByteArrayLiteral, QQuick3DMaterial::R, QQuick3DSpecularGlossyMaterial::setAlbedoColor(), QQuick3DSpecularGlossyMaterial::setAlbedoMap(), QQuick3DPrincipledMaterial::setAlphaCutoff(), QQuick3DSpecularGlossyMaterial::setAlphaCutoff(), QQuick3DPrincipledMaterial::setAlphaMode(), QQuick3DSpecularGlossyMaterial::setAlphaMode(), QQuick3DSpecularGlossyMaterial::setAttenuationColor(), QQuick3DSpecularGlossyMaterial::setAttenuationDistance(), QQuick3DPrincipledMaterial::setBaseColor(), QQuick3DPrincipledMaterial::setBaseColorMap(), QQuick3DDefaultMaterial::setBumpAmount(), QQuick3DDefaultMaterial::setBumpMap(), QQuick3DSpecularGlossyMaterial::setClearcoatAmount(), QQuick3DSpecularGlossyMaterial::setClearcoatMap(), QQuick3DSpecularGlossyMaterial::setClearcoatNormalMap(), QQuick3DSpecularGlossyMaterial::setClearcoatRoughnessAmount(), QQuick3DSpecularGlossyMaterial::setClearcoatRoughnessMap(), QQuick3DMaterial::setCullMode(), QQuick3DMaterial::setDepthDrawMode(), QQuick3DDefaultMaterial::setDiffuseColor(), QQuick3DDefaultMaterial::setDiffuseMap(), QQuick3DSpecularGlossyMaterial::setEmissiveFactor(), QQuick3DPrincipledMaterial::setEmissiveFactor(), QQuick3DDefaultMaterial::setEmissiveMap(), QQuick3DPrincipledMaterial::setEmissiveMap(), QQuick3DSpecularGlossyMaterial::setEmissiveMap(), QQuick3DSpecularGlossyMaterial::setGlossiness(), QQuick3DSpecularGlossyMaterial::setGlossinessChannel(), QQuick3DSpecularGlossyMaterial::setGlossinessMap(), QQuick3DDefaultMaterial::setLighting(), QQuick3DPrincipledMaterial::setLighting(), QQuick3DSpecularGlossyMaterial::setLighting(), QQuick3DPrincipledMaterial::setMetalness(), QQuick3DPrincipledMaterial::setMetalnessChannel(), QQuick3DPrincipledMaterial::setMetalnessMap(), QQuick3DDefaultMaterial::setNormalMap(), QQuick3DPrincipledMaterial::setNormalMap(), QQuick3DSpecularGlossyMaterial::setNormalMap(), QQuick3DPrincipledMaterial::setNormalStrength(), QQuick3DSpecularGlossyMaterial::setNormalStrength(), QQuick3DPrincipledMaterial::setOcclusionAmount(), QQuick3DSpecularGlossyMaterial::setOcclusionAmount(), QQuick3DPrincipledMaterial::setOcclusionChannel(), QQuick3DSpecularGlossyMaterial::setOcclusionChannel(), QQuick3DPrincipledMaterial::setOcclusionMap(), QQuick3DSpecularGlossyMaterial::setOcclusionMap(), QQuick3DDefaultMaterial::setOpacity(), QQuick3DPrincipledMaterial::setOpacityChannel(), QQuick3DSpecularGlossyMaterial::setOpacityChannel(), QQuick3DDefaultMaterial::setOpacityMap(), QSSGSceneDesc::setProperty(), QQuick3DPrincipledMaterial::setRoughness(), QQuick3DPrincipledMaterial::setRoughnessChannel(), QQuick3DPrincipledMaterial::setRoughnessMap(), QQuick3DTexture::setSource(), QQuick3DSpecularGlossyMaterial::setSpecularColor(), QQuick3DDefaultMaterial::setSpecularMap(), QQuick3DSpecularGlossyMaterial::setSpecularMap(), QQuick3DTexture::setTextureData(), setTextureProperties(), QQuick3DSpecularGlossyMaterial::setThicknessFactor(), QQuick3DSpecularGlossyMaterial::setThicknessMap(), QQuick3DSpecularGlossyMaterial::setTransmissionFactor(), QQuick3DSpecularGlossyMaterial::setTransmissionMap(), and TextureInfo::transform.
Referenced by setModelProperties().
|
static |
Definition at line 1221 of file assimpimporter_rt.cpp.
References QSSGSceneDesc::addNode(), QList< T >::first(), fromAiString(), QVariant::fromValue(), AssimpUtils::generateMeshData(), i, QList< T >::isEmpty(), QQuick3DModel::materials, QList< T >::push_back(), Q_ASSERT, setMaterialProperties(), setNodeProperties(), QSSGSceneDesc::setProperty(), and QQuick3DModel::setSource().
Referenced by createSceneNode().
|
static |
Definition at line 282 of file assimpimporter_rt.cpp.
References fromAiString(), QQuick3DNode::setPosition(), QSSGSceneDesc::setProperty(), QQuick3DNode::setRotation(), QQuick3DNode::setScale(), QQuick3DNode::setX(), QQuick3DNode::setY(), QQuick3DNode::setZ(), and QVector3D::x().
Referenced by createSceneNode(), setCameraProperties(), setLightProperties(), and setModelProperties().
|
static |
Definition at line 327 of file assimpimporter_rt.cpp.
References AI_GLTF_FILTER_LINEAR, AI_GLTF_FILTER_LINEAR_MIPMAP_LINEAR, AI_GLTF_FILTER_LINEAR_MIPMAP_NEAREST, AI_GLTF_FILTER_NEAREST, AI_GLTF_FILTER_NEAREST_MIPMAP_LINEAR, AI_GLTF_FILTER_NEAREST_MIPMAP_NEAREST, QQuick3DTexture::ClampToEdge, isEqual(), QQuick3DTexture::Linear, QQuick3DTexture::MirroredRepeat, QQuick3DTexture::Nearest, QQuick3DTexture::None, qRadiansToDegrees(), QQuick3DTexture::Repeat, QQuick3DTexture::setGenerateMipmaps(), QQuick3DTexture::setHorizontalTiling(), QQuick3DTexture::setIndexUV(), QQuick3DTexture::setMagFilter(), QQuick3DTexture::setMappingMode(), QQuick3DTexture::setMinFilter(), QQuick3DTexture::setMipFilter(), QQuick3DTexture::setPivotV(), QQuick3DTexture::setPositionU(), QQuick3DTexture::setPositionV(), QSSGSceneDesc::setProperty(), QQuick3DTexture::setRotationUV(), QQuick3DTexture::setScaleU(), QQuick3DTexture::setScaleV(), QQuick3DTexture::setVerticalTiling(), and QQuick3DTexture::UV.
Referenced by setMaterialProperties().
|
static |
Definition at line 1483 of file assimpimporter_rt.cpp.
References QSSGSceneDesc::Animation::KeyPosition::Number, and QSSGSceneDesc::Animation::KeyPosition::Time.
|
static |
Definition at line 1478 of file assimpimporter_rt.cpp.
References QSSGSceneDesc::Animation::KeyPosition::Quaternion, QSSGSceneDesc::Animation::KeyPosition::Time, and QVector4D::x().
|
static |
Definition at line 1473 of file assimpimporter_rt.cpp.
References QSSGSceneDesc::Animation::KeyPosition::Time, QSSGSceneDesc::Animation::KeyPosition::Vec3, and QVector4D::x().
Referenced by importImp().