66class CORE_EXPORT QgsGltfUtils
83 static bool accessorToMapCoordinates(
84 const tinygltf::Model &model,
86 const QgsMatrix4x4 &tileTransform,
87 const QgsCoordinateTransform *ecefToTargetCrs,
88 const QgsVector3D &tileTranslationEcef,
89 const QMatrix4x4 *nodeTransform,
99 enum class ResourceType
111 static ResourceType imageResourceType(
const tinygltf::Model &model,
int index );
121 static QImage extractEmbeddedImage(
const tinygltf::Model &model,
int index );
131 static QString linkedImagePath(
const tinygltf::Model &model,
int index );
138 static std::unique_ptr<QMatrix4x4> parseNodeTransform(
const tinygltf::Node &node );
150 static bool loadImageDataWithQImage(
151 tinygltf::Image *image,
const int image_idx, std::string *err, std::string *warn,
int req_width,
int req_height,
const unsigned char *bytes,
int size,
void *user_data
157 static bool extractTextureCoordinates(
const tinygltf::Model &model,
int accessorIndex, QVector<float> &x, QVector<float> &y );
164 static bool loadGltfModel(
const QByteArray &data, tinygltf::Model &model, QString *errors, QString *warnings,
const QString &baseDir = QString() );
174 static std::size_t sourceSceneForModel(
const tinygltf::Model &model,
bool &ok );
181 struct CORE_EXPORT I3SNodeContext
184 void initFromTile(
const QgsTiledSceneTile &tile,
const QgsCoordinateReferenceSystem &layerCrs,
const QgsCoordinateReferenceSystem &sceneCrs,
const QgsCoordinateTransformContext &transformContext );
190 QVariantMap materialInfo;
197 bool isGlobalMode =
false;
203 QgsCoordinateTransform datasetToSceneTransform;
209 QgsVector3D nodeCenterEcef;
226 static bool loadDracoModel(
const QByteArray &data,
const I3SNodeContext &context, tinygltf::Model &model, QString *errors =
nullptr );
239 static int loadMaterialFromMetadata(
const QVariantMap &materialInfo, tinygltf::Model &model );
245 static bool writeGltfModel(
const tinygltf::Model &model,
const QString &outputFilename );
252 struct InstancedPrimitive
255 int primitiveIndex = -1;
256 int materialIndex = -1;
262 QVector<QMatrix4x4> instanceTransforms;
A simple 4x4 matrix implementation useful for transformation in 3D space.
Represents an individual tile from a tiled scene data source.
A 3D vector (similar to QVector3D) with the difference that it uses double precision instead of singl...