Merge pull request #366 from fynv/master

Adding serialization code for sparse accessors.
This commit is contained in:
Syoyo Fujita 2022-08-13 18:34:24 +09:00 committed by GitHub
commit 666ab8661c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -6693,6 +6693,27 @@ static void SerializeGltfAccessor(Accessor &accessor, json &o) {
if (accessor.extras.Type() != NULL_TYPE) { if (accessor.extras.Type() != NULL_TYPE) {
SerializeValue("extras", accessor.extras, o); SerializeValue("extras", accessor.extras, o);
} }
// sparse
if (accessor.sparse.isSparse)
{
json sparse;
SerializeNumberProperty<int>("count", accessor.sparse.count, sparse);
{
json indices;
SerializeNumberProperty<int>("bufferView", accessor.sparse.indices.bufferView, indices);
SerializeNumberProperty<int>("byteOffset", accessor.sparse.indices.byteOffset, indices);
SerializeNumberProperty<int>("componentType", accessor.sparse.indices.componentType, indices);
JsonAddMember(sparse, "indices", std::move(indices));
}
{
json values;
SerializeNumberProperty<int>("bufferView", accessor.sparse.values.bufferView, values);
SerializeNumberProperty<int>("byteOffset", accessor.sparse.values.bufferView, values);
JsonAddMember(sparse, "values", std::move(values));
}
JsonAddMember(o, "sparse", std::move(sparse));
}
} }
static void SerializeGltfAnimationChannel(AnimationChannel &channel, json &o) { static void SerializeGltfAnimationChannel(AnimationChannel &channel, json &o) {