![]() |
Qt 6.x
The Qt SDK
|
#include "assimpimporter.h"
#include <assimputils.h>
#include <QtCore/qurl.h>
#include <QtCore/qbytearrayalgorithms.h>
#include <QtGui/QQuaternion>
#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>
Go to the source code of this file.
Classes | |
struct | NodeInfo |
struct | TextureInfo |
struct | TextureEntry |
struct | SceneInfo |
struct | SceneInfo::Options |
struct | SceneInfo::skinData |
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 34 of file assimpimporter_rt.cpp.
#define AI_GLTF_FILTER_LINEAR_MIPMAP_LINEAR 0x2703 |
Definition at line 38 of file assimpimporter_rt.cpp.
#define AI_GLTF_FILTER_LINEAR_MIPMAP_NEAREST 0x2701 |
Definition at line 36 of file assimpimporter_rt.cpp.
#define AI_GLTF_FILTER_NEAREST 0x2600 |
Definition at line 33 of file assimpimporter_rt.cpp.
#define AI_GLTF_FILTER_NEAREST_MIPMAP_LINEAR 0x2702 |
Definition at line 37 of file assimpimporter_rt.cpp.
#define AI_GLTF_FILTER_NEAREST_MIPMAP_NEAREST 0x2700 |
Definition at line 35 of file assimpimporter_rt.cpp.
#define demonPostProcessPresets |
Definition at line 1376 of file assimpimporter_rt.cpp.
using AnimationNodeMap = QHash<QByteArray, QSSGSceneDesc::Node *> |
Definition at line 67 of file assimpimporter_rt.cpp.
using MorphAttributes = QQuick3DMorphTarget::MorphTargetAttributes |
Definition at line 1056 of file assimpimporter_rt.cpp.
using MorphProperty = QPair<MorphAttributes, float> |
Definition at line 1057 of file assimpimporter_rt.cpp.
Definition at line 65 of file assimpimporter_rt.cpp.
|
inlinestatic |
Definition at line 40 of file assimpimporter_rt.cpp.
References QColor::fromRgbF().
Referenced by setMaterialProperties().
|
inlinestatic |
Definition at line 45 of file assimpimporter_rt.cpp.
References QColor::fromRgbF().
|
static |
Definition at line 1347 of file assimpimporter_rt.cpp.
References QJsonObject::constEnd(), QJsonObject::constFind(), and it.
Referenced by processOptions(), processSceneOptions(), and QSSGQmlUtilities::writeQml().
|
static |
Definition at line 1206 of file assimpimporter_rt.cpp.
References QSSGSceneDesc::addNode(), NodeInfo::index, parent, SceneInfo::scene, setCameraProperties(), QQuick3DJoint::setIndex(), setLightProperties(), setModelProperties(), setNodeProperties(), QSSGSceneDesc::setProperty(), and NodeInfo::type.
Referenced by processNode().
|
static |
Definition at line 50 of file assimpimporter_rt.cpp.
References QByteArray::length().
Referenced by importImp(), setMaterialProperties(), setModelProperties(), and setNodeProperties().
|
static |
Definition at line 1059 of file assimpimporter_rt.cpp.
References QQuick3DMorphTarget::Binormal, i, QQuick3DMorphTarget::Normal, QQuick3DMorphTarget::Position, QList< T >::push_back(), qMakePair(), qMin(), and QQuick3DMorphTarget::Tangent.
Referenced by processNode().
|
static |
Definition at line 1361 of file assimpimporter_rt.cpp.
References QJsonObject::constEnd(), QJsonObject::constFind(), and it.
Referenced by processSceneOptions().
|
static |
Definition at line 1535 of file assimpimporter_rt.cpp.
References QSSGSceneDesc::addNode(), QSSGSceneDesc::Scene::animations, QSSGQmlUtilities::applyEdit(), QHash< Key, T >::cend(), QSSGSceneDesc::Animation::channels, QHash< Key, T >::constFind(), QHash< Key, T >::contains(), QList< T >::count(), demonPostProcessPresets, QFileInfo::exists(), extension(), QSSGSceneDesc::Animation::framesPerSecond, fromAiString(), QString::fromLocal8Bit(), i, QSSGSceneDesc::Scene::id, QHash< Key, T >::insert(), QJsonObject::isEmpty(), QString::isEmpty(), QList< T >::isEmpty(), QUrl::isLocalFile(), j, QQuick3DSkin::joints, QSSGSceneDesc::Animation::Channel::keys, QSSGSceneDesc::Animation::length, QSSGSceneDesc::Animation::name, QString::number(), opt, QUrl::path(), pos, processNode(), processOptions(), processSceneOptions(), QVarLengthArray< T, Prealloc >::push_back(), QList< T >::push_back(), qDeleteAll(), qFuzzyCompare(), qFuzzyIsNull(), qMin(), qstrcmp(), QStringLiteral, QList< T >::reserve(), QVarLengthArray< T, Prealloc >::reserve(), QSSGSceneDesc::Scene::root, QUrl::scheme(), QQuick3DSkin::setInverseBindPoses(), QSSGSceneDesc::setProperty(), QQuick3DNode::setScale(), QVLABaseBase::size(), QSSGSceneDesc::Scene::sourceDir, QSSGSceneDesc::Animation::Channel::target, QSSGSceneDesc::Animation::Channel::targetProperty, toAnimationKey(), QUrl::toLocalFile(), QString::toUtf8(), url, QVariant::value(), QHash< Key, T >::const_iterator::value(), QHash< Key, T >::value(), and QList< T >::value().
Referenced by AssimpImporter::import(), and AssimpImporter::import().
|
inlinestatic |
Definition at line 69 of file assimpimporter_rt.cpp.
Referenced by QLineEdit::changeEvent(), QWidget::event(), operator==(), QCoreTextFontDatabase::populateFamilyAliases(), setTextureProperties(), and QCocoaMenuBar::syncMenu_helper().
bool operator== | ( | const TextureEntry & | a, |
const TextureEntry & | b | ||
) |
Definition at line 113 of file assimpimporter_rt.cpp.
bool operator== | ( | const TextureInfo & | a, |
const TextureInfo & | b | ||
) |
Definition at line 84 of file assimpimporter_rt.cpp.
References isEqual().
|
static |
Definition at line 1266 of file assimpimporter_rt.cpp.
References QSSGSceneDesc::addNode(), QList< T >::at(), QHash< Key, T >::constEnd(), QHash< Key, T >::constFind(), createSceneNode(), QHash< Key, T >::end(), QHash< Key, T >::find(), getMorphTargetProperties(), i, QHash< Key, T >::isEmpty(), QList< T >::isEmpty(), it, QQuick3DModel::morphTargets, QString::number(), parent, processNode(), QVarLengthArray< T, Prealloc >::push_back(), Q_ASSERT, QStringLiteral, QVarLengthArray< T, Prealloc >::reserve(), QSSGSceneDesc::Node::scene, SceneInfo::scene, QQuick3DMorphTarget::setAttributes(), QSSGSceneDesc::setProperty(), QQuick3DMorphTarget::setWeight(), QList< T >::size(), QString::toUtf8(), and QHash< Key, T >::iterator::value().
Referenced by importImp(), processNode(), QSSGQmlUtilities::writeQmlForNode(), and QSSGQmlUtilities::writeQmlForResourceNode().
|
static |
Definition at line 1390 of file assimpimporter_rt.cpp.
References checkBooleanOption(), QJsonObject::constEnd(), QJsonObject::constFind(), QJsonObject::isEmpty(), it, and QStringLiteral.
Referenced by importImp().
|
static |
Definition at line 1488 of file assimpimporter_rt.cpp.
References SceneInfo::Options::binaryKeyframes, checkBooleanOption(), QJsonObject::constEnd(), QJsonObject::constFind(), SceneInfo::Options::designStudioWorkarounds, SceneInfo::Options::forceMipMapGeneration, SceneInfo::Options::generateLightmapUV, SceneInfo::Options::generateMeshLODs, getRealOption(), SceneInfo::Options::globalScaleValue, QJsonObject::isEmpty(), it, SceneInfo::Options::lightmapBaseResolution, SceneInfo::Options::lodNormalMergeAngle, SceneInfo::Options::lodNormalSplitAngle, qBound(), QStringLiteral, and SceneInfo::Options::useFloatJointIndices.
Referenced by importImp().
Q_DECLARE_TYPEINFO | ( | NodeInfo | , |
Q_PRIMITIVE_TYPE | |||
) |
size_t qHash | ( | const TextureEntry & | key, |
size_t | seed | ||
) |
Definition at line 101 of file assimpimporter_rt.cpp.
References qHash(), qHashBits(), and seed.
Referenced by qHash().
|
static |
Definition at line 891 of file assimpimporter_rt.cpp.
References QQuick3DPerspectiveCamera::Horizontal, 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 956 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 321 of file assimpimporter_rt.cpp.
References QQuick3DMaterial::A, QDir::absoluteFilePath(), QSSGSceneDesc::addNode(), aiColorToQColor(), QQuick3DMaterial::B, QQuick3DPrincipledMaterial::Blend, QQuick3DSpecularGlossyMaterial::Blend, QSet< T >::cend(), QSet< T >::constFind(), QQuick3DPrincipledMaterial::Default, QQuick3DSpecularGlossyMaterial::Default, SceneInfo::embeddedTextureMap, fromAiString(), QString::fromUtf8(), QQuick3DMaterial::G, imageData, it, TextureInfo::magFilter, TextureInfo::mapping, QQuick3DPrincipledMaterial::Mask, QQuick3DSpecularGlossyMaterial::Mask, TextureInfo::minFilter, TextureInfo::modes, QQuick3DMaterial::NoCulling, QQuick3DDefaultMaterial::NoLighting, QQuick3DPrincipledMaterial::NoLighting, QQuick3DSpecularGlossyMaterial::NoLighting, QQuick3DPrincipledMaterial::Opaque, QQuick3DSpecularGlossyMaterial::Opaque, Q_ASSERT, QByteArrayLiteral, QQuick3DMaterial::R, SceneInfo::scene, 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(), 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(), SceneInfo::textureMap, TextureInfo::transform, TextureInfo::uvIndex, and SceneInfo::workingDir.
Referenced by setModelProperties().
|
static |
Definition at line 1080 of file assimpimporter_rt.cpp.
References QSSGSceneDesc::addNode(), QList< T >::first(), QString::first(), fromAiString(), QVariant::fromValue(), AssimpUtils::generateMeshData(), SceneInfo::Options::generateMeshLODs, i, QList< T >::isEmpty(), SceneInfo::Options::lodNormalMergeAngle, SceneInfo::Options::lodNormalSplitAngle, SceneInfo::materialMap, QQuick3DModel::materials, SceneInfo::mesh2skin, SceneInfo::meshMap, SceneInfo::opt, QVarLengthArray< T, Prealloc >::push_back(), QList< T >::push_back(), Q_ASSERT, QVarLengthArray< T, Prealloc >::reserve(), SceneInfo::scene, setMaterialProperties(), setNodeProperties(), QSSGSceneDesc::setProperty(), QQuick3DModel::setSource(), SceneInfo::skinMap, and SceneInfo::Options::useFloatJointIndices.
Referenced by createSceneNode().
|
static |
Definition at line 160 of file assimpimporter_rt.cpp.
References SceneInfo::Options::designStudioWorkarounds, fromAiString(), SceneInfo::opt, 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 205 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, SceneInfo::Options::forceMipMapGeneration, SceneInfo::Options::gltfMode, isEqual(), QQuick3DTexture::Linear, TextureInfo::magFilter, TextureInfo::mapping, TextureInfo::minFilter, QQuick3DTexture::MirroredRepeat, TextureInfo::modes, QQuick3DTexture::Nearest, QQuick3DTexture::None, SceneInfo::opt, 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(), TextureInfo::transform, QQuick3DTexture::UV, and TextureInfo::uvIndex.
Referenced by setMaterialProperties().
|
static |
Definition at line 1342 of file assimpimporter_rt.cpp.
References QSSGSceneDesc::Animation::KeyPosition::Number, and QSSGSceneDesc::Animation::KeyPosition::Time.
|
static |
Definition at line 1337 of file assimpimporter_rt.cpp.
References QSSGSceneDesc::Animation::KeyPosition::Quaternion, QSSGSceneDesc::Animation::KeyPosition::Time, and QVector4D::x().
|
static |
Definition at line 1332 of file assimpimporter_rt.cpp.
References QSSGSceneDesc::Animation::KeyPosition::Time, QSSGSceneDesc::Animation::KeyPosition::Vec3, and QVector4D::x().
Referenced by importImp().