| 117 | }; |
| 118 | |
| 119 | inline std::vector<uint8_t> get_attribute_data(const tinygltf::Model *model, uint32_t accessorId) |
| 120 | { |
| 121 | assert(accessorId < model->accessors.size()); |
| 122 | auto &accessor = model->accessors[accessorId]; |
| 123 | assert(accessor.bufferView < model->bufferViews.size()); |
| 124 | auto &bufferView = model->bufferViews[accessor.bufferView]; |
| 125 | assert(bufferView.buffer < model->buffers.size()); |
| 126 | auto &buffer = model->buffers[bufferView.buffer]; |
| 127 | |
| 128 | size_t stride = accessor.ByteStride(bufferView); |
| 129 | size_t startByte = accessor.byteOffset + bufferView.byteOffset; |
| 130 | size_t endByte = startByte + accessor.count * stride; |
| 131 | |
| 132 | return {buffer.data.begin() + startByte, buffer.data.begin() + endByte}; |
| 133 | }; |
| 134 | |
| 135 | inline size_t get_attribute_size(const tinygltf::Model *model, uint32_t accessorId) |
| 136 | { |
no test coverage detected