diff options
| author | Andrey Lihatskiy <alihatskiy@productengine.com> | 2025-06-09 16:10:55 +0300 | 
|---|---|---|
| committer | Andrey Lihatskiy <alihatskiy@productengine.com> | 2025-06-09 17:04:49 +0300 | 
| commit | 689b829b67204c3097d1ac6abf69916c45526b43 (patch) | |
| tree | ce08e6256d0751772c452276408b86f5157f437f /indra/newview/gltf/llgltfloader.h | |
| parent | 35398524e560f2c89e59672cefd5c9ff60c9aa37 (diff) | |
#4170 Fix GLTF import missing mesh parts from transform tools
Process entire node hierarchy instead of only nodes with meshes.
GLTF transform tools often create intermediate transform nodes
without meshes that were being skipped, causing child meshes
to be omitted from import.
Diffstat (limited to 'indra/newview/gltf/llgltfloader.h')
| -rw-r--r-- | indra/newview/gltf/llgltfloader.h | 8 | 
1 files changed, 2 insertions, 6 deletions
| diff --git a/indra/newview/gltf/llgltfloader.h b/indra/newview/gltf/llgltfloader.h index 5b9eb78c63..4802c8e093 100644 --- a/indra/newview/gltf/llgltfloader.h +++ b/indra/newview/gltf/llgltfloader.h @@ -175,14 +175,10 @@ private:      bool parseMaterials();      void uploadMaterials();      void computeCombinedNodeTransform(const LL::GLTF::Asset& asset, S32 node_index, glm::mat4& combined_transform) const; +    void processNodeHierarchy(S32 node_idx, std::map<std::string, S32>& mesh_name_counts, U32 submodel_limit, const LLVolumeParams& volume_params, std::vector<bool>& node_processed);      bool populateModelFromMesh(LLModel* pModel, const LL::GLTF::Mesh &mesh, const LL::GLTF::Node &node, material_map& mats, S32 instance_count);      void populateJointFromSkin(S32 skin_idx); -    void addModelToScene( -        LLModel* pModel, -        U32 submodel_limit, -        const LLMatrix4& transformation, -        const LLVolumeParams& volume_params, -        const material_map& mats); +    void addModelToScene(LLModel* pModel, U32 submodel_limit, const LLMatrix4& transformation, const LLVolumeParams& volume_params, const material_map& mats);      S32 findClosestValidJoint(S32 source_joint, const LL::GLTF::Skin& gltf_skin) const;      S32 findValidRootJointNode(S32 source_joint_node, const LL::GLTF::Skin& gltf_skin) const;      S32 findGLTFRootJointNode(const LL::GLTF::Skin& gltf_skin) const; // if there are multiple roots, gltf stores them under one commor joint | 
