63class CORE_EXPORT QgsGltfUtils
81 static bool accessorToMapCoordinates(
const tinygltf::Model &model,
83 const QgsMatrix4x4 &tileTransform,
84 const QgsCoordinateTransform *ecefToTargetCrs,
85 const QgsVector3D &tileTranslationEcef,
86 const QMatrix4x4 *nodeTransform,
88 QVector<double> &vx, QVector<double> &vy, QVector<double> &vz );
93 enum class ResourceType
105 static ResourceType imageResourceType(
const tinygltf::Model &model,
int index );
115 static QImage extractEmbeddedImage(
const tinygltf::Model &model,
int index );
125 static QString linkedImagePath(
const tinygltf::Model &model,
int index );
132 static std::unique_ptr<QMatrix4x4> parseNodeTransform(
const tinygltf::Node &node );
144 static bool loadImageDataWithQImage(
145 tinygltf::Image *image,
const int image_idx, std::string *err,
146 std::string *warn,
int req_width,
int req_height,
147 const unsigned char *bytes,
int size,
void *user_data );
152 static bool extractTextureCoordinates(
const tinygltf::Model &model,
int accessorIndex,
153 QVector<float> &x, QVector<float> &y );
160 static bool loadGltfModel(
const QByteArray &data, tinygltf::Model &model, QString *errors, QString *warnings );
170 static std::size_t sourceSceneForModel(
const tinygltf::Model &model,
bool &ok );
177 struct CORE_EXPORT I3SNodeContext
180 void initFromTile(
const QgsTiledSceneTile &tile,
181 const QgsCoordinateReferenceSystem &layerCrs,
182 const QgsCoordinateReferenceSystem &sceneCrs,
183 const QgsCoordinateTransformContext &transformContext );
189 QVariantMap materialInfo;
196 bool isGlobalMode =
false;
202 QgsCoordinateTransform datasetToSceneTransform;
208 QgsVector3D nodeCenterEcef;
225 static bool loadDracoModel(
const QByteArray &data,
const I3SNodeContext &context, tinygltf::Model &model, QString *errors =
nullptr );
238 static int loadMaterialFromMetadata(
const QVariantMap &materialInfo, tinygltf::Model &model );
244 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...