64class CORE_EXPORT QgsGltfUtils
82 static bool accessorToMapCoordinates(
const tinygltf::Model &model,
84 const QgsMatrix4x4 &tileTransform,
85 const QgsCoordinateTransform *ecefToTargetCrs,
86 const QgsVector3D &tileTranslationEcef,
87 const QMatrix4x4 *nodeTransform,
89 QVector<double> &vx, QVector<double> &vy, QVector<double> &vz );
94 enum class ResourceType
106 static ResourceType imageResourceType(
const tinygltf::Model &model,
int index );
116 static QImage extractEmbeddedImage(
const tinygltf::Model &model,
int index );
126 static QString linkedImagePath(
const tinygltf::Model &model,
int index );
133 static std::unique_ptr<QMatrix4x4> parseNodeTransform(
const tinygltf::Node &node );
145 static bool loadImageDataWithQImage(
146 tinygltf::Image *image,
const int image_idx, std::string *err,
147 std::string *warn,
int req_width,
int req_height,
148 const unsigned char *bytes,
int size,
void *user_data );
153 static bool extractTextureCoordinates(
const tinygltf::Model &model,
int accessorIndex,
154 QVector<float> &x, QVector<float> &y );
161 static bool loadGltfModel(
const QByteArray &data, tinygltf::Model &model, QString *errors, QString *warnings );
171 static std::size_t sourceSceneForModel(
const tinygltf::Model &model,
bool &ok );
178 struct CORE_EXPORT I3SNodeContext
181 void initFromTile(
const QgsTiledSceneTile &tile,
182 const QgsCoordinateReferenceSystem &layerCrs,
183 const QgsCoordinateReferenceSystem &sceneCrs,
184 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 );
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...