summaryrefslogtreecommitdiff
path: root/libs/assimp/test/models/glTF2
diff options
context:
space:
mode:
authorsanine <sanine.not@pm.me>2022-04-16 11:55:09 -0500
committersanine <sanine.not@pm.me>2022-04-16 11:55:09 -0500
commitdb81b925d776103326128bf629cbdda576a223e7 (patch)
tree58bea8155c686733310009f6bed7363f91fbeb9d /libs/assimp/test/models/glTF2
parent55860037b14fb3893ba21cf2654c83d349cc1082 (diff)
move 3rd-party librarys into libs/ and add built-in honeysuckle
Diffstat (limited to 'libs/assimp/test/models/glTF2')
-rw-r--r--libs/assimp/test/models/glTF2/2CylinderEngine-glTF-Binary/2CylinderEngine.glbbin0 -> 1838084 bytes
-rw-r--r--libs/assimp/test/models/glTF2/BoxBadNormals-glTF-Binary/BoxBadNormals.glbbin0 -> 1924 bytes
-rw-r--r--libs/assimp/test/models/glTF2/BoxTexcoords-glTF/boxTexcoords.binbin0 -> 1032 bytes
-rw-r--r--libs/assimp/test/models/glTF2/BoxTexcoords-glTF/boxTexcoords.gltf172
-rw-r--r--libs/assimp/test/models/glTF2/BoxTexcoords-glTF/texture.pngbin0 -> 41302 bytes
-rw-r--r--libs/assimp/test/models/glTF2/BoxTextured-glTF-Binary/BoxTextured.glbbin0 -> 4696 bytes
-rw-r--r--libs/assimp/test/models/glTF2/BoxTextured-glTF-Embedded/BoxTextured.gltf181
-rw-r--r--libs/assimp/test/models/glTF2/BoxTextured-glTF-pbrSpecularGlossiness/BoxTextured.gltf197
-rw-r--r--libs/assimp/test/models/glTF2/BoxTextured-glTF-pbrSpecularGlossiness/BoxTextured0.binbin0 -> 840 bytes
-rw-r--r--libs/assimp/test/models/glTF2/BoxTextured-glTF-pbrSpecularGlossiness/CesiumLogoFlat.pngbin0 -> 2433 bytes
-rw-r--r--libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/BoxTextured.gltf282
-rw-r--r--libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/BoxTextured0.binbin0 -> 840 bytes
-rw-r--r--libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/BoxTextured0.vert17
-rw-r--r--libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/BoxTextured1.frag29
-rw-r--r--libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/CesiumLogoFlat.pngbin0 -> 2433 bytes
-rw-r--r--libs/assimp/test/models/glTF2/BoxTextured-glTF/BoxTextured.gltf181
-rw-r--r--libs/assimp/test/models/glTF2/BoxTextured-glTF/BoxTextured0.binbin0 -> 840 bytes
-rw-r--r--libs/assimp/test/models/glTF2/BoxTextured-glTF/CesiumLogoFlat.pngbin0 -> 2433 bytes
-rw-r--r--libs/assimp/test/models/glTF2/BoxWithInfinites-glTF-Binary/BoxWithInfinites.glbbin0 -> 1900 bytes
-rw-r--r--libs/assimp/test/models/glTF2/ClearCoat-glTF/ClearCoatLabels.pngbin0 -> 10270 bytes
-rw-r--r--libs/assimp/test/models/glTF2/ClearCoat-glTF/ClearCoatTest.binbin0 -> 50328 bytes
-rw-r--r--libs/assimp/test/models/glTF2/ClearCoat-glTF/ClearCoatTest.gltf1669
-rw-r--r--libs/assimp/test/models/glTF2/ClearCoat-glTF/PartialCoating.pngbin0 -> 5077 bytes
-rw-r--r--libs/assimp/test/models/glTF2/ClearCoat-glTF/PartialCoating_Alpha.pngbin0 -> 5065 bytes
-rw-r--r--libs/assimp/test/models/glTF2/ClearCoat-glTF/PlasticWrap_normals.jpgbin0 -> 144210 bytes
-rw-r--r--libs/assimp/test/models/glTF2/ClearCoat-glTF/RibsNormal.pngbin0 -> 1605 bytes
-rw-r--r--libs/assimp/test/models/glTF2/ClearCoat-glTF/RoughnessStripes.pngbin0 -> 5033 bytes
-rw-r--r--libs/assimp/test/models/glTF2/IncorrectVertexArrays/Cube.binbin0 -> 514 bytes
-rw-r--r--libs/assimp/test/models/glTF2/IncorrectVertexArrays/Cube.gltf286
-rw-r--r--libs/assimp/test/models/glTF2/IndexOutOfRange/AllIndicesOutOfRange.binbin0 -> 648 bytes
-rw-r--r--libs/assimp/test/models/glTF2/IndexOutOfRange/AllIndicesOutOfRange.gltf142
-rw-r--r--libs/assimp/test/models/glTF2/IndexOutOfRange/IndexOutOfRange.binbin0 -> 648 bytes
-rw-r--r--libs/assimp/test/models/glTF2/IndexOutOfRange/IndexOutOfRange.gltf142
-rw-r--r--libs/assimp/test/models/glTF2/MissingBin/BoxTextured.gltf181
-rw-r--r--libs/assimp/test/models/glTF2/RecursiveNodes/RecursiveNodes.gltf25
-rw-r--r--libs/assimp/test/models/glTF2/SchemaFailures/CesiumLogoFlat.pngbin0 -> 2433 bytes
-rw-r--r--libs/assimp/test/models/glTF2/SchemaFailures/sceneWrongType.gltf181
-rw-r--r--libs/assimp/test/models/glTF2/TestNoRootNode/NoScene.gltf6
-rw-r--r--libs/assimp/test/models/glTF2/TestNoRootNode/SceneWithoutNodes.gltf10
-rw-r--r--libs/assimp/test/models/glTF2/cameras/Cameras.gltf98
-rw-r--r--libs/assimp/test/models/glTF2/cameras/simpleSquare.binbin0 -> 60 bytes
-rw-r--r--libs/assimp/test/models/glTF2/draco/2CylinderEngine.binbin0 -> 155392 bytes
-rw-r--r--libs/assimp/test/models/glTF2/draco/2CylinderEngine.gltf4758
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/LICENSE21
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_00.binbin0 -> 12288 bytes
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_00.gltf63
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_01.binbin0 -> 96 bytes
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_01.gltf63
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_02.binbin0 -> 48 bytes
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_02.gltf63
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_03.binbin0 -> 60 bytes
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_03.gltf63
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_04.binbin0 -> 48 bytes
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_04.gltf63
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_05.binbin0 -> 48 bytes
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_05.gltf63
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_06.binbin0 -> 72 bytes
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_06.gltf62
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_07.binbin0 -> 16384 bytes
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_07.gltf77
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_08.binbin0 -> 80 bytes
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_08.gltf77
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_09.binbin0 -> 64 bytes
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_09.gltf77
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_10.binbin0 -> 68 bytes
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_10.gltf77
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_11.binbin0 -> 64 bytes
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_11.gltf77
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_12.binbin0 -> 64 bytes
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_12.gltf77
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_13.binbin0 -> 72 bytes
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_13.gltf76
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_14.binbin0 -> 54 bytes
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_14.gltf76
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_15.binbin0 -> 60 bytes
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_15.gltf76
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/README.md33
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Sample-Models/AnimatedMorphCube-glTF/AnimatedMorphCube.binbin0 -> 4284 bytes
-rw-r--r--libs/assimp/test/models/glTF2/glTF-Sample-Models/AnimatedMorphCube-glTF/AnimatedMorphCube.gltf282
-rw-r--r--libs/assimp/test/models/glTF2/issue_3269/texcoord_crash.gltf610
-rw-r--r--libs/assimp/test/models/glTF2/simple_skin/simple_skin.gltf148
-rw-r--r--libs/assimp/test/models/glTF2/textureTransform/Arrow.pngbin0 -> 867 bytes
-rw-r--r--libs/assimp/test/models/glTF2/textureTransform/Correct.pngbin0 -> 2457 bytes
-rw-r--r--libs/assimp/test/models/glTF2/textureTransform/Error.pngbin0 -> 2273 bytes
-rw-r--r--libs/assimp/test/models/glTF2/textureTransform/License.txt0
-rw-r--r--libs/assimp/test/models/glTF2/textureTransform/NotSupported.pngbin0 -> 3291 bytes
-rw-r--r--libs/assimp/test/models/glTF2/textureTransform/TextureTransformTest.binbin0 -> 136 bytes
-rw-r--r--libs/assimp/test/models/glTF2/textureTransform/TextureTransformTest.gltf540
-rw-r--r--libs/assimp/test/models/glTF2/textureTransform/UV.pngbin0 -> 12345 bytes
-rw-r--r--libs/assimp/test/models/glTF2/wrongTypes/BoxTextured0.binbin0 -> 840 bytes
-rw-r--r--libs/assimp/test/models/glTF2/wrongTypes/CesiumLogoFlat.pngbin0 -> 2433 bytes
-rw-r--r--libs/assimp/test/models/glTF2/wrongTypes/badArray.gltf179
-rw-r--r--libs/assimp/test/models/glTF2/wrongTypes/badExtension.gltf185
-rw-r--r--libs/assimp/test/models/glTF2/wrongTypes/badNumber.gltf184
-rw-r--r--libs/assimp/test/models/glTF2/wrongTypes/badObject.gltf176
-rw-r--r--libs/assimp/test/models/glTF2/wrongTypes/badString.gltf182
-rw-r--r--libs/assimp/test/models/glTF2/wrongTypes/badUint.gltf182
97 files changed, 12409 insertions, 0 deletions
diff --git a/libs/assimp/test/models/glTF2/2CylinderEngine-glTF-Binary/2CylinderEngine.glb b/libs/assimp/test/models/glTF2/2CylinderEngine-glTF-Binary/2CylinderEngine.glb
new file mode 100644
index 0000000..0e9b105
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/2CylinderEngine-glTF-Binary/2CylinderEngine.glb
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/BoxBadNormals-glTF-Binary/BoxBadNormals.glb b/libs/assimp/test/models/glTF2/BoxBadNormals-glTF-Binary/BoxBadNormals.glb
new file mode 100644
index 0000000..c36727d
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/BoxBadNormals-glTF-Binary/BoxBadNormals.glb
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/BoxTexcoords-glTF/boxTexcoords.bin b/libs/assimp/test/models/glTF2/BoxTexcoords-glTF/boxTexcoords.bin
new file mode 100644
index 0000000..ae6a3f0
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/BoxTexcoords-glTF/boxTexcoords.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/BoxTexcoords-glTF/boxTexcoords.gltf b/libs/assimp/test/models/glTF2/BoxTexcoords-glTF/boxTexcoords.gltf
new file mode 100644
index 0000000..382127a
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/BoxTexcoords-glTF/boxTexcoords.gltf
@@ -0,0 +1,172 @@
+{
+ "asset" : {
+ "generator" : "Khronos glTF Blender I/O v1.0.5",
+ "version" : "2.0"
+ },
+ "scene" : 0,
+ "scenes" : [
+ {
+ "name" : "Scene",
+ "nodes" : [
+ 0,
+ 1,
+ 2
+ ]
+ }
+ ],
+ "nodes" : [
+ {
+ "mesh" : 0,
+ "name" : "Cube"
+ },
+ {
+ "name" : "Light",
+ "rotation" : [
+ 0.16907575726509094,
+ 0.7558803558349609,
+ -0.27217137813568115,
+ 0.570947527885437
+ ],
+ "translation" : [
+ 4.076245307922363,
+ 5.903861999511719,
+ -1.0054539442062378
+ ]
+ },
+ {
+ "name" : "Camera",
+ "rotation" : [
+ 0.483536034822464,
+ 0.33687159419059753,
+ -0.20870360732078552,
+ 0.7804827094078064
+ ],
+ "translation" : [
+ 7.358891487121582,
+ 4.958309173583984,
+ 6.925790786743164
+ ]
+ }
+ ],
+ "materials" : [
+ {
+ "doubleSided" : true,
+ "name" : "Material",
+ "pbrMetallicRoughness" : {
+ "baseColorTexture" : {
+ "index" : 0,
+ "texCoord" : 0
+ },
+ "metallicFactor" : 0,
+ "metallicRoughnessTexture" : {
+ "index" : 0,
+ "texCoord" : 1
+ }
+ }
+ }
+ ],
+ "meshes" : [
+ {
+ "name" : "Cube",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2,
+ "TEXCOORD_1" : 3
+ },
+ "indices" : 4,
+ "material" : 0
+ }
+ ]
+ }
+ ],
+ "textures" : [
+ {
+ "source" : 0
+ }
+ ],
+ "images" : [
+ {
+ "mimeType" : "image/png",
+ "name" : "Material Base Color",
+ "uri" : "texture.png"
+ }
+ ],
+ "accessors" : [
+ {
+ "bufferView" : 0,
+ "componentType" : 5126,
+ "count" : 24,
+ "max" : [
+ 1,
+ 1,
+ 1
+ ],
+ "min" : [
+ -1,
+ -1,
+ -1
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 1,
+ "componentType" : 5126,
+ "count" : 24,
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 2,
+ "componentType" : 5126,
+ "count" : 24,
+ "type" : "VEC2"
+ },
+ {
+ "bufferView" : 3,
+ "componentType" : 5126,
+ "count" : 24,
+ "type" : "VEC2"
+ },
+ {
+ "bufferView" : 4,
+ "componentType" : 5123,
+ "count" : 36,
+ "type" : "SCALAR"
+ }
+ ],
+ "bufferViews" : [
+ {
+ "buffer" : 0,
+ "byteLength" : 288,
+ "byteOffset" : 0
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 288,
+ "byteOffset" : 288
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 192,
+ "byteOffset" : 576
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 192,
+ "byteOffset" : 768
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 72,
+ "byteOffset" : 960
+ }
+ ],
+ "buffers" : [
+ {
+ "byteLength" : 1032,
+ "uri" : "boxTexcoords.bin"
+ }
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/BoxTexcoords-glTF/texture.png b/libs/assimp/test/models/glTF2/BoxTexcoords-glTF/texture.png
new file mode 100644
index 0000000..2350eb8
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/BoxTexcoords-glTF/texture.png
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/BoxTextured-glTF-Binary/BoxTextured.glb b/libs/assimp/test/models/glTF2/BoxTextured-glTF-Binary/BoxTextured.glb
new file mode 100644
index 0000000..03cd2ac
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/BoxTextured-glTF-Binary/BoxTextured.glb
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/BoxTextured-glTF-Embedded/BoxTextured.gltf b/libs/assimp/test/models/glTF2/BoxTextured-glTF-Embedded/BoxTextured.gltf
new file mode 100644
index 0000000..c9c4614
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/BoxTextured-glTF-Embedded/BoxTextured.gltf
@@ -0,0 +1,181 @@
+{
+ "asset": {
+ "generator": "COLLADA2GLTF",
+ "version": "2.0"
+ },
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "children": [
+ 1
+ ],
+ "matrix": [
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ -1.0,
+ 0.0,
+ 0.0,
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ {
+ "mesh": 0
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 1,
+ "POSITION": 2,
+ "TEXCOORD_0": 3
+ },
+ "indices": 0,
+ "mode": 4,
+ "material": 0
+ }
+ ],
+ "name": "Mesh"
+ }
+ ],
+ "accessors": [
+ {
+ "bufferView": 0,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 36,
+ "max": [
+ 23
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "min": [
+ -1.0,
+ -1.0,
+ -1.0
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 288,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 0.5,
+ 0.5,
+ 0.5
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ -0.5
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 2,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 6.0,
+ 1.0
+ ],
+ "min": [
+ 0.0,
+ 0.0
+ ],
+ "type": "VEC2"
+ }
+ ],
+ "materials": [
+ {
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 0
+ },
+ "metallicFactor": 0.0
+ },
+ "name": "Texture"
+ }
+ ],
+ "textures": [
+ {
+ "sampler": 0,
+ "source": 0
+ }
+ ],
+ "images": [
+ {
+ "uri": "data:image/png;base64,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"
+ }
+ ],
+ "samplers": [
+ {
+ "magFilter": 9729,
+ "minFilter": 9986,
+ "wrapS": 10497,
+ "wrapT": 10497
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteOffset": 768,
+ "byteLength": 72,
+ "target": 34963
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 0,
+ "byteLength": 576,
+ "byteStride": 12,
+ "target": 34962
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 576,
+ "byteLength": 192,
+ "byteStride": 8,
+ "target": 34962
+ }
+ ],
+ "buffers": [
+ {
+ "byteLength": 840,
+ "uri": "data:application/octet-stream;base64,AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAvwAAAL8AAAA/AAAAPwAAAL8AAAA/AAAAvwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAPwAAAL8AAAA/AAAAPwAAAD8AAAC/AAAAPwAAAL8AAAC/AAAAvwAAAD8AAAA/AAAAPwAAAD8AAAA/AAAAvwAAAD8AAAC/AAAAPwAAAD8AAAC/AAAAPwAAAL8AAAA/AAAAvwAAAL8AAAA/AAAAPwAAAL8AAAC/AAAAvwAAAL8AAAC/AAAAvwAAAL8AAAA/AAAAvwAAAD8AAAA/AAAAvwAAAL8AAAC/AAAAvwAAAD8AAAC/AAAAvwAAAL8AAAC/AAAAvwAAAD8AAAC/AAAAPwAAAL8AAAC/AAAAPwAAAD8AAAC/AADAQAAAAAAAAKBAAAAAAAAAwED+/38/AACgQP7/fz8AAIBAAAAAAAAAoEAAAAAAAACAQAAAgD8AAKBAAACAPwAAAEAAAAAAAACAPwAAAAAAAABAAACAPwAAgD8AAIA/AABAQAAAAAAAAIBAAAAAAAAAQEAAAIA/AACAQAAAgD8AAEBAAAAAAAAAAEAAAAAAAABAQAAAgD8AAABAAACAPwAAAAAAAAAAAAAAAP7/fz8AAIA/AAAAAAAAgD/+/38/AAABAAIAAwACAAEABAAFAAYABwAGAAUACAAJAAoACwAKAAkADAANAA4ADwAOAA0AEAARABIAEwASABEAFAAVABYAFwAWABUA"
+ }
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/BoxTextured-glTF-pbrSpecularGlossiness/BoxTextured.gltf b/libs/assimp/test/models/glTF2/BoxTextured-glTF-pbrSpecularGlossiness/BoxTextured.gltf
new file mode 100644
index 0000000..b286239
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/BoxTextured-glTF-pbrSpecularGlossiness/BoxTextured.gltf
@@ -0,0 +1,197 @@
+{
+ "asset": {
+ "generator": "COLLADA2GLTF",
+ "version": "2.0"
+ },
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "children": [
+ 1
+ ],
+ "matrix": [
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ -1.0,
+ 0.0,
+ 0.0,
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ {
+ "mesh": 0
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 1,
+ "POSITION": 2,
+ "TEXCOORD_0": 3
+ },
+ "indices": 0,
+ "mode": 4,
+ "material": 0
+ }
+ ],
+ "name": "Mesh"
+ }
+ ],
+ "accessors": [
+ {
+ "bufferView": 0,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 36,
+ "max": [
+ 23
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "min": [
+ -1.0,
+ -1.0,
+ -1.0
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 288,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 0.5,
+ 0.5,
+ 0.5
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ -0.5
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 2,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 6.0,
+ 1.0
+ ],
+ "min": [
+ 0.0,
+ 0.0
+ ],
+ "type": "VEC2"
+ }
+ ],
+ "materials": [
+ {
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 0
+ },
+ "metallicFactor": 0.0
+ },
+ "extensions": {
+ "KHR_materials_pbrSpecularGlossiness": {
+ "diffuseTexture": {
+ "index": 0
+ },
+ "specularFactor": [
+ 0.20000000298023225,
+ 0.20000000298023225,
+ 0.20000000298023225
+ ],
+ "glossinessFactor": 1.0
+ }
+ },
+ "name": "Texture"
+ }
+ ],
+ "textures": [
+ {
+ "sampler": 0,
+ "source": 0
+ }
+ ],
+ "images": [
+ {
+ "uri": "CesiumLogoFlat.png"
+ }
+ ],
+ "samplers": [
+ {
+ "magFilter": 9729,
+ "minFilter": 9986,
+ "wrapS": 10497,
+ "wrapT": 10497
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteOffset": 768,
+ "byteLength": 72,
+ "target": 34963
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 0,
+ "byteLength": 576,
+ "byteStride": 12,
+ "target": 34962
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 576,
+ "byteLength": 192,
+ "byteStride": 8,
+ "target": 34962
+ }
+ ],
+ "buffers": [
+ {
+ "byteLength": 840,
+ "uri": "BoxTextured0.bin"
+ }
+ ],
+ "extensionsUsed": [
+ "KHR_materials_pbrSpecularGlossiness"
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/BoxTextured-glTF-pbrSpecularGlossiness/BoxTextured0.bin b/libs/assimp/test/models/glTF2/BoxTextured-glTF-pbrSpecularGlossiness/BoxTextured0.bin
new file mode 100644
index 0000000..d2a7355
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/BoxTextured-glTF-pbrSpecularGlossiness/BoxTextured0.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/BoxTextured-glTF-pbrSpecularGlossiness/CesiumLogoFlat.png b/libs/assimp/test/models/glTF2/BoxTextured-glTF-pbrSpecularGlossiness/CesiumLogoFlat.png
new file mode 100644
index 0000000..45d502e
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/BoxTextured-glTF-pbrSpecularGlossiness/CesiumLogoFlat.png
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/BoxTextured.gltf b/libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/BoxTextured.gltf
new file mode 100644
index 0000000..7401dce
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/BoxTextured.gltf
@@ -0,0 +1,282 @@
+{
+ "asset": {
+ "generator": "COLLADA2GLTF",
+ "version": "2.0"
+ },
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "children": [
+ 1
+ ],
+ "matrix": [
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ -1.0,
+ 0.0,
+ 0.0,
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ {
+ "mesh": 0
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 1,
+ "POSITION": 2,
+ "TEXCOORD_0": 3
+ },
+ "indices": 0,
+ "mode": 4,
+ "material": 0
+ }
+ ],
+ "name": "Mesh"
+ }
+ ],
+ "accessors": [
+ {
+ "bufferView": 0,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 36,
+ "max": [
+ 23
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "min": [
+ -1.0,
+ -1.0,
+ -1.0
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 288,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 0.5,
+ 0.5,
+ 0.5
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ -0.5
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 2,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 6.0,
+ 1.0
+ ],
+ "min": [
+ 0.0,
+ 0.0
+ ],
+ "type": "VEC2"
+ }
+ ],
+ "materials": [
+ {
+ "values": {
+ "diffuse": [
+ 0
+ ],
+ "specular": [
+ 0.20000000298023225,
+ 0.20000000298023225,
+ 0.20000000298023225,
+ 1.0
+ ],
+ "shininess": [
+ 256.0
+ ],
+ "transparency": [
+ 1.0
+ ]
+ },
+ "technique": 0
+ }
+ ],
+ "textures": [
+ {
+ "sampler": 0,
+ "source": 0
+ }
+ ],
+ "images": [
+ {
+ "uri": "CesiumLogoFlat.png"
+ }
+ ],
+ "samplers": [
+ {
+ "magFilter": 9729,
+ "minFilter": 9986,
+ "wrapS": 10497,
+ "wrapT": 10497
+ }
+ ],
+ "techniques": [
+ {
+ "attributes": {
+ "a_normal": "normal",
+ "a_position": "position",
+ "a_texcoord0": "texcoord0"
+ },
+ "parameters": {
+ "diffuse": {
+ "type": 35678
+ },
+ "modelViewMatrix": {
+ "semantic": "MODELVIEW",
+ "type": 35676
+ },
+ "normal": {
+ "semantic": "NORMAL",
+ "type": 35665
+ },
+ "normalMatrix": {
+ "semantic": "MODELVIEWINVERSETRANSPOSE",
+ "type": 35675
+ },
+ "position": {
+ "semantic": "POSITION",
+ "type": 35665
+ },
+ "projectionMatrix": {
+ "semantic": "PROJECTION",
+ "type": 35676
+ },
+ "shininess": {
+ "type": 5126
+ },
+ "specular": {
+ "type": 35666
+ },
+ "texcoord0": {
+ "semantic": "TEXCOORD_0",
+ "type": 35665
+ },
+ "transparency": {
+ "type": 5126
+ }
+ },
+ "program": 0,
+ "states": {
+ "enable": [
+ 2884,
+ 2929
+ ]
+ },
+ "uniforms": {
+ "u_diffuse": "diffuse",
+ "u_modelViewMatrix": "modelViewMatrix",
+ "u_normalMatrix": "normalMatrix",
+ "u_projectionMatrix": "projectionMatrix",
+ "u_shininess": "shininess",
+ "u_specular": "specular",
+ "u_transparency": "transparency"
+ }
+ }
+ ],
+ "programs": [
+ {
+ "attributes": [
+ "a_normal",
+ "a_position",
+ "a_texcoord0"
+ ],
+ "fragmentShader": 1,
+ "vertexShader": 0
+ }
+ ],
+ "shaders": [
+ {
+ "type": 35633,
+ "uri": "BoxTextured0.vert"
+ },
+ {
+ "type": 35632,
+ "uri": "BoxTextured1.frag"
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteOffset": 768,
+ "byteLength": 72,
+ "target": 34963
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 0,
+ "byteLength": 576,
+ "byteStride": 12,
+ "target": 34962
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 576,
+ "byteLength": 192,
+ "byteStride": 8,
+ "target": 34962
+ }
+ ],
+ "buffers": [
+ {
+ "byteLength": 840,
+ "uri": "BoxTextured0.bin"
+ }
+ ],
+ "extensionsRequired": [
+ "KHR_technique_webgl"
+ ],
+ "extensionsUsed": [
+ "KHR_technique_webgl"
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/BoxTextured0.bin b/libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/BoxTextured0.bin
new file mode 100644
index 0000000..d2a7355
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/BoxTextured0.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/BoxTextured0.vert b/libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/BoxTextured0.vert
new file mode 100644
index 0000000..05d5e82
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/BoxTextured0.vert
@@ -0,0 +1,17 @@
+precision highp float;
+uniform mat4 u_modelViewMatrix;
+uniform mat4 u_projectionMatrix;
+uniform mat3 u_normalMatrix;
+attribute vec3 a_position;
+varying vec3 v_position;
+attribute vec3 a_normal;
+varying vec3 v_normal;
+attribute vec2 a_texcoord0;
+varying vec2 v_texcoord0;
+void main(void) {
+ vec4 pos = u_modelViewMatrix * vec4(a_position,1.0);
+ v_position = pos.xyz;
+ gl_Position = u_projectionMatrix * pos;
+ v_normal = u_normalMatrix * a_normal;
+ v_texcoord0 = a_texcoord0;
+}
diff --git a/libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/BoxTextured1.frag b/libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/BoxTextured1.frag
new file mode 100644
index 0000000..3850980
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/BoxTextured1.frag
@@ -0,0 +1,29 @@
+precision highp float;
+uniform sampler2D u_diffuse;
+uniform vec4 u_specular;
+uniform float u_shininess;
+uniform float u_transparency;
+varying vec3 v_position;
+varying vec3 v_normal;
+varying vec2 v_texcoord0;
+void main(void) {
+ vec3 normal = normalize(v_normal);
+ vec4 diffuse = texture2D(u_diffuse, v_texcoord0);
+ vec3 diffuseLight = vec3(0.0, 0.0, 0.0);
+ vec3 specular = u_specular.rgb;
+ vec3 specularLight = vec3(0.0, 0.0, 0.0);
+ vec3 ambient = diffuse.rgb;
+ vec3 viewDir = -normalize(v_position);
+ vec3 ambientLight = vec3(0.0, 0.0, 0.0);
+ ambientLight += vec3(0.2, 0.2, 0.2);
+ vec3 l = vec3(0.0, 0.0, 1.0);
+ diffuseLight += vec3(1.0, 1.0, 1.0) * max(dot(normal, l), 0.);
+ vec3 reflectDir = reflect(-l, normal);
+ float specularIntensity = max(0., pow(max(dot(reflectDir, viewDir), 0.), u_shininess));
+ specularLight += vec3(1.0, 1.0, 1.0) * specularIntensity;
+ vec3 color = vec3(0.0, 0.0, 0.0);
+ color += diffuse.rgb * diffuseLight;
+ color += specular * specularLight;
+ color += ambient * ambientLight;
+ gl_FragColor = vec4(color * diffuse.a * u_transparency, diffuse.a * u_transparency);
+}
diff --git a/libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/CesiumLogoFlat.png b/libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/CesiumLogoFlat.png
new file mode 100644
index 0000000..45d502e
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/BoxTextured-glTF-techniqueWebGL/CesiumLogoFlat.png
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/BoxTextured-glTF/BoxTextured.gltf b/libs/assimp/test/models/glTF2/BoxTextured-glTF/BoxTextured.gltf
new file mode 100644
index 0000000..88d6539
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/BoxTextured-glTF/BoxTextured.gltf
@@ -0,0 +1,181 @@
+{
+ "asset": {
+ "generator": "COLLADA2GLTF",
+ "version": "2.0"
+ },
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "children": [
+ 1
+ ],
+ "matrix": [
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ -1.0,
+ 0.0,
+ 0.0,
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ {
+ "mesh": 0
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 1,
+ "POSITION": 2,
+ "TEXCOORD_0": 3
+ },
+ "indices": 0,
+ "mode": 4,
+ "material": 0
+ }
+ ],
+ "name": "Mesh"
+ }
+ ],
+ "accessors": [
+ {
+ "bufferView": 0,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 36,
+ "max": [
+ 23
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "min": [
+ -1.0,
+ -1.0,
+ -1.0
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 288,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 0.5,
+ 0.5,
+ 0.5
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ -0.5
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 2,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 6.0,
+ 1.0
+ ],
+ "min": [
+ 0.0,
+ 0.0
+ ],
+ "type": "VEC2"
+ }
+ ],
+ "materials": [
+ {
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 0
+ },
+ "metallicFactor": 0.0
+ },
+ "name": "Texture"
+ }
+ ],
+ "textures": [
+ {
+ "sampler": 0,
+ "source": 0
+ }
+ ],
+ "images": [
+ {
+ "uri": "CesiumLogoFlat.png"
+ }
+ ],
+ "samplers": [
+ {
+ "magFilter": 9729,
+ "minFilter": 9986,
+ "wrapS": 33648,
+ "wrapT": 33071
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteOffset": 768,
+ "byteLength": 72,
+ "target": 34963
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 0,
+ "byteLength": 576,
+ "byteStride": 12,
+ "target": 34962
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 576,
+ "byteLength": 192,
+ "byteStride": 8,
+ "target": 34962
+ }
+ ],
+ "buffers": [
+ {
+ "byteLength": 840,
+ "uri": "BoxTextured0.bin"
+ }
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/BoxTextured-glTF/BoxTextured0.bin b/libs/assimp/test/models/glTF2/BoxTextured-glTF/BoxTextured0.bin
new file mode 100644
index 0000000..d2a7355
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/BoxTextured-glTF/BoxTextured0.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/BoxTextured-glTF/CesiumLogoFlat.png b/libs/assimp/test/models/glTF2/BoxTextured-glTF/CesiumLogoFlat.png
new file mode 100644
index 0000000..45d502e
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/BoxTextured-glTF/CesiumLogoFlat.png
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/BoxWithInfinites-glTF-Binary/BoxWithInfinites.glb b/libs/assimp/test/models/glTF2/BoxWithInfinites-glTF-Binary/BoxWithInfinites.glb
new file mode 100644
index 0000000..ae83f1f
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/BoxWithInfinites-glTF-Binary/BoxWithInfinites.glb
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/ClearCoat-glTF/ClearCoatLabels.png b/libs/assimp/test/models/glTF2/ClearCoat-glTF/ClearCoatLabels.png
new file mode 100644
index 0000000..d47f2f5
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/ClearCoat-glTF/ClearCoatLabels.png
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/ClearCoat-glTF/ClearCoatTest.bin b/libs/assimp/test/models/glTF2/ClearCoat-glTF/ClearCoatTest.bin
new file mode 100644
index 0000000..e7c6a93
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/ClearCoat-glTF/ClearCoatTest.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/ClearCoat-glTF/ClearCoatTest.gltf b/libs/assimp/test/models/glTF2/ClearCoat-glTF/ClearCoatTest.gltf
new file mode 100644
index 0000000..ae12bfc
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/ClearCoat-glTF/ClearCoatTest.gltf
@@ -0,0 +1,1669 @@
+{
+ "asset" : {
+ "generator" : "Khronos glTF Blender I/O v1.2.8 with hand-edits for clearcoat",
+ "version" : "2.0"
+ },
+ "extensionsUsed": [
+ "KHR_materials_clearcoat"
+ ],
+ "scene" : 0,
+ "scenes" : [
+ {
+ "name" : "Scene",
+ "nodes" : [
+ 3,
+ 7,
+ 11,
+ 15,
+ 19,
+ 23,
+ 24,
+ 25,
+ 26,
+ 27,
+ 28,
+ 29,
+ 30,
+ 31,
+ 32
+ ]
+ }
+ ],
+ "nodes" : [
+ {
+ "mesh" : 0,
+ "name" : "BaseLayerSample",
+ "translation" : [
+ -2.0999999046325684,
+ 0,
+ 0
+ ]
+ },
+ {
+ "mesh" : 1,
+ "name" : "ClearCoatSample"
+ },
+ {
+ "mesh" : 2,
+ "name" : "CoatOnlySample",
+ "translation" : [
+ 2.0999999046325684,
+ 0,
+ 0
+ ]
+ },
+ {
+ "children" : [
+ 0,
+ 1,
+ 2
+ ],
+ "name" : "R0_SimpleCoatTest",
+ "translation" : [
+ 0,
+ 5.25,
+ 0
+ ]
+ },
+ {
+ "mesh" : 3,
+ "name" : "R1_BaseLayerSample",
+ "translation" : [
+ -2.0999999046325684,
+ 0,
+ 0
+ ]
+ },
+ {
+ "mesh" : 4,
+ "name" : "R1_ClearCoatSample"
+ },
+ {
+ "mesh" : 5,
+ "name" : "R1_CoatOnlySample",
+ "translation" : [
+ 2.0999999046325684,
+ 0,
+ 0
+ ]
+ },
+ {
+ "children" : [
+ 4,
+ 5,
+ 6
+ ],
+ "name" : "R1_PartialCoatTest",
+ "translation" : [
+ 0,
+ 3.1500000953674316,
+ 0
+ ]
+ },
+ {
+ "mesh" : 6,
+ "name" : "R2_BaseLayerSample",
+ "translation" : [
+ -2.0999999046325684,
+ 0,
+ 0
+ ]
+ },
+ {
+ "mesh" : 7,
+ "name" : "R2_ClearCoatSample"
+ },
+ {
+ "mesh" : 8,
+ "name" : "R2_CoatOnlySample",
+ "translation" : [
+ 2.0999999046325684,
+ 0,
+ 0
+ ]
+ },
+ {
+ "children" : [
+ 8,
+ 9,
+ 10
+ ],
+ "name" : "R2_RoughnessVariations",
+ "translation" : [
+ 0,
+ 1.0499999523162842,
+ 0
+ ]
+ },
+ {
+ "mesh" : 9,
+ "name" : "R3_BaseLayerSample",
+ "translation" : [
+ -2.0999999046325684,
+ 0,
+ 0
+ ]
+ },
+ {
+ "mesh" : 10,
+ "name" : "R3_ClearCoatSample"
+ },
+ {
+ "mesh" : 11,
+ "name" : "R3_CoatOnlySample",
+ "translation" : [
+ 2.0999999046325684,
+ 0,
+ 0
+ ]
+ },
+ {
+ "children" : [
+ 12,
+ 13,
+ 14
+ ],
+ "name" : "R3_BaseNormals",
+ "translation" : [
+ 0,
+ -1.0499999523162842,
+ 0
+ ]
+ },
+ {
+ "mesh" : 12,
+ "name" : "R4_BaseLayerSample",
+ "translation" : [
+ -2.0999999046325684,
+ 0,
+ 0
+ ]
+ },
+ {
+ "mesh" : 13,
+ "name" : "R4_ClearCoatSample"
+ },
+ {
+ "mesh" : 14,
+ "name" : "R4_CoatOnlySample",
+ "translation" : [
+ 2.0999999046325684,
+ 0,
+ 0
+ ]
+ },
+ {
+ "children" : [
+ 16,
+ 17,
+ 18
+ ],
+ "name" : "R4_CoatNormals",
+ "translation" : [
+ 0,
+ -5.25,
+ 0
+ ]
+ },
+ {
+ "mesh" : 15,
+ "name" : "R5_BaseLayerSample",
+ "translation" : [
+ -2.0999999046325684,
+ 0,
+ 0
+ ]
+ },
+ {
+ "mesh" : 16,
+ "name" : "R5_ClearCoatSample"
+ },
+ {
+ "mesh" : 17,
+ "name" : "R5_CoatOnlySample",
+ "translation" : [
+ 2.0999999046325684,
+ 0,
+ 0
+ ]
+ },
+ {
+ "children" : [
+ 20,
+ 21,
+ 22
+ ],
+ "name" : "R5_SharedNormals",
+ "translation" : [
+ 0,
+ -3.1500000953674316,
+ 0
+ ]
+ },
+ {
+ "mesh" : 18,
+ "name" : "X2_Label_CoatingOnly",
+ "translation" : [
+ 2.0712804794311523,
+ 6.619500160217285,
+ 0
+ ]
+ },
+ {
+ "mesh" : 19,
+ "name" : "Y0_Label_SimpleCoating",
+ "translation" : [
+ -5.3578033447265625,
+ 5.25,
+ 0
+ ]
+ },
+ {
+ "mesh" : 20,
+ "name" : "Y1_Label_PartialCoating",
+ "translation" : [
+ -5.3578033447265625,
+ 3.1673200130462646,
+ 0
+ ]
+ },
+ {
+ "mesh" : 21,
+ "name" : "Y2_Label_Roughness",
+ "translation" : [
+ -5.3578033447265625,
+ 1.1383899450302124,
+ 0
+ ]
+ },
+ {
+ "mesh" : 22,
+ "name" : "Y3_Label_BaseNormals",
+ "translation" : [
+ -5.3578033447265625,
+ -1.099429965019226,
+ 0
+ ]
+ },
+ {
+ "mesh" : 23,
+ "name" : "Y4_Label_CoatNormals",
+ "translation" : [
+ -5.3578033447265625,
+ -5.252500057220459,
+ 0
+ ]
+ },
+ {
+ "mesh" : 24,
+ "name" : "Y5_Label_SharedNormals",
+ "translation" : [
+ -5.3578033447265625,
+ -3.1963000297546387,
+ 0
+ ]
+ },
+ {
+ "mesh" : 25,
+ "name" : "X0_Label_BaseLayer",
+ "translation" : [
+ -2.087031602859497,
+ 6.616230010986328,
+ 0
+ ]
+ },
+ {
+ "mesh" : 26,
+ "name" : "X1_Label_Coated",
+ "translation" : [
+ 0,
+ 6.614150047302246,
+ 0
+ ]
+ }
+ ],
+ "materials" : [
+ {
+ "emissiveFactor" : [
+ 0,
+ 0,
+ 0
+ ],
+ "name" : "Simple_Base",
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0.5,
+ 0.019999999552965164,
+ 0.009999999776482582,
+ 1
+ ],
+ "metallicFactor" : 0,
+ "roughnessFactor" : 0.4399999976158142
+ }
+ },
+ {
+ "emissiveFactor" : [
+ 0,
+ 0,
+ 0
+ ],
+ "name" : "Simple_Coated",
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0.5,
+ 0.019999999552965164,
+ 0.009999999776482582,
+ 1
+ ],
+ "metallicFactor" : 0,
+ "roughnessFactor" : 0.4399999976158142
+ },
+ "extensions": {
+ "KHR_materials_clearcoat": {
+ "clearcoatFactor": 1,
+ "clearcoatRoughnessFactor": 0.03
+ }
+ }
+ },
+ {
+ "emissiveFactor" : [
+ 0,
+ 0,
+ 0
+ ],
+ "name" : "Simple_Coating",
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0,
+ 0,
+ 0,
+ 1
+ ],
+ "metallicFactor" : 0,
+ "roughnessFactor" : 0.029999999329447746
+ }
+ },
+ {
+ "emissiveFactor" : [
+ 0,
+ 0,
+ 0
+ ],
+ "name" : "Partial_Base",
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0.012983020395040512,
+ 0.022173883393406868,
+ 0.10946174710988998,
+ 1
+ ],
+ "metallicFactor" : 0,
+ "roughnessFactor" : 0.4399999976158142
+ }
+ },
+ {
+ "emissiveFactor" : [
+ 0,
+ 0,
+ 0
+ ],
+ "name" : "Partial_Coated",
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0.012983020395040512,
+ 0.022173883393406868,
+ 0.10946174710988998,
+ 1
+ ],
+ "metallicFactor" : 0,
+ "roughnessFactor" : 0.4399999976158142
+ },
+ "extensions": {
+ "KHR_materials_clearcoat": {
+ "clearcoatFactor": 1,
+ "clearcoatRoughnessFactor": 0.03,
+ "clearcoatTexture": {
+ "index": 0,
+ "texCoord": 0
+ }
+ }
+ }
+ },
+ {
+ "alphaMode" : "BLEND",
+ "emissiveFactor" : [
+ 0,
+ 0,
+ 0
+ ],
+ "name" : "Partial_Coating",
+ "pbrMetallicRoughness" : {
+ "baseColorTexture" : {
+ "index" : 1,
+ "texCoord" : 0
+ },
+ "metallicFactor" : 0,
+ "roughnessFactor" : 0.029999999329447746
+ }
+ },
+ {
+ "emissiveFactor" : [
+ 0,
+ 0,
+ 0
+ ],
+ "name" : "RoughVariations_Base",
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0.012983020395040512,
+ 0.022173883393406868,
+ 0.10946174710988998,
+ 1
+ ],
+ "metallicFactor" : 0,
+ "roughnessFactor" : 0.6000000238418579
+ }
+ },
+ {
+ "emissiveFactor" : [
+ 0,
+ 0,
+ 0
+ ],
+ "name" : "RoughVariations_Coated",
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0.012983020395040512,
+ 0.022173883393406868,
+ 0.10946174710988998,
+ 1
+ ],
+ "metallicFactor" : 0,
+ "roughnessFactor" : 0.6000000238418579
+ },
+ "extensions": {
+ "KHR_materials_clearcoat": {
+ "clearcoatFactor": 1,
+ "clearcoatRoughnessFactor": 1,
+ "clearcoatRoughnessTexture": {
+ "index": 2,
+ "texCoord": 0
+ }
+ }
+ }
+ },
+ {
+ "emissiveFactor" : [
+ 0,
+ 0,
+ 0
+ ],
+ "name" : "RoughVariations_Coating",
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0,
+ 0,
+ 0,
+ 1
+ ],
+ "metallicFactor" : 0,
+ "metallicRoughnessTexture" : {
+ "index" : 2,
+ "texCoord" : 0
+ }
+ }
+ },
+ {
+ "emissiveFactor" : [
+ 0,
+ 0,
+ 0
+ ],
+ "name" : "BaseNorm_Base",
+ "normalTexture" : {
+ "index" : 3,
+ "texCoord" : 0
+ },
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0.012983020395040512,
+ 0.022173883393406868,
+ 0.10946174710988998,
+ 1
+ ],
+ "metallicFactor" : 0,
+ "roughnessFactor" : 0.4399999976158142
+ }
+ },
+ {
+ "emissiveFactor" : [
+ 0,
+ 0,
+ 0
+ ],
+ "name" : "BaseNorm_Coated",
+ "normalTexture" : {
+ "index" : 4,
+ "texCoord" : 0
+ },
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0.012848637998104095,
+ 0.021861059591174126,
+ 0.11068868637084961,
+ 1
+ ],
+ "metallicFactor" : 0,
+ "roughnessFactor" : 0.4399999976158142
+ },
+ "extensions": {
+ "KHR_materials_clearcoat": {
+ "clearcoatFactor": 1,
+ "clearcoatRoughnessFactor": 0.03
+ }
+ }
+ },
+ {
+ "emissiveFactor" : [
+ 0,
+ 0,
+ 0
+ ],
+ "name" : "BaseNorm_Coating",
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0,
+ 0,
+ 0,
+ 1
+ ],
+ "metallicFactor" : 0,
+ "roughnessFactor" : 0.029999999329447746
+ }
+ },
+ {
+ "emissiveFactor" : [
+ 0,
+ 0,
+ 0
+ ],
+ "name" : "CoatNorm_Base",
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0.012983020395040512,
+ 0.022173883393406868,
+ 0.10946174710988998,
+ 1
+ ],
+ "metallicFactor" : 0,
+ "roughnessFactor" : 0.4399999976158142
+ }
+ },
+ {
+ "emissiveFactor" : [
+ 0,
+ 0,
+ 0
+ ],
+ "name" : "CoatNorm_Coated",
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0.012983020395040512,
+ 0.022173883393406868,
+ 0.10946174710988998,
+ 1
+ ],
+ "metallicFactor" : 0,
+ "roughnessFactor" : 0.4399999976158142
+ },
+ "extensions": {
+ "KHR_materials_clearcoat": {
+ "clearcoatFactor": 1,
+ "clearcoatRoughnessFactor": 0.03,
+ "clearcoatNormalTexture": {
+ "index": 5,
+ "texCoord": 0,
+ "scale": 1
+ }
+ }
+ }
+ },
+ {
+ "emissiveFactor" : [
+ 0,
+ 0,
+ 0
+ ],
+ "name" : "CoatNorm_Coating",
+ "normalTexture" : {
+ "index" : 5,
+ "texCoord" : 0
+ },
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0,
+ 0,
+ 0,
+ 1
+ ],
+ "metallicFactor" : 0,
+ "roughnessFactor" : 0.029999999329447746
+ }
+ },
+ {
+ "emissiveFactor" : [
+ 0,
+ 0,
+ 0
+ ],
+ "name" : "SharedNorm_Base",
+ "normalTexture" : {
+ "index" : 6,
+ "texCoord" : 0
+ },
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0.012983020395040512,
+ 0.022173883393406868,
+ 0.10946174710988998,
+ 1
+ ],
+ "metallicFactor" : 0,
+ "roughnessFactor" : 0.4399999976158142
+ }
+ },
+ {
+ "emissiveFactor" : [
+ 0,
+ 0,
+ 0
+ ],
+ "name" : "SharedNorm_Coated",
+ "normalTexture" : {
+ "index" : 7,
+ "texCoord" : 0
+ },
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0.012983020395040512,
+ 0.022173883393406868,
+ 0.10946174710988998,
+ 1
+ ],
+ "metallicFactor" : 0,
+ "roughnessFactor" : 0.4399999976158142
+ },
+ "extensions": {
+ "KHR_materials_clearcoat": {
+ "clearcoatFactor": 1,
+ "clearcoatRoughnessFactor": 0.03,
+ "clearcoatNormalTexture": {
+ "index": 7,
+ "texCoord": 0
+ }
+ }
+ }
+ },
+ {
+ "emissiveFactor" : [
+ 0,
+ 0,
+ 0
+ ],
+ "name" : "SharedNorm_Coating",
+ "normalTexture" : {
+ "index" : 8,
+ "texCoord" : 0
+ },
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0,
+ 0,
+ 0,
+ 1
+ ],
+ "metallicFactor" : 0,
+ "roughnessFactor" : 0.029999999329447746
+ }
+ },
+ {
+ "emissiveFactor" : [
+ 1,
+ 1,
+ 1
+ ],
+ "emissiveTexture" : {
+ "index" : 9,
+ "texCoord" : 0
+ },
+ "name" : "LabelMaterial",
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0,
+ 0,
+ 0,
+ 1
+ ],
+ "metallicFactor" : 0,
+ "roughnessFactor" : 0.8999999761581421
+ }
+ }
+ ],
+ "meshes" : [
+ {
+ "name" : "ClearCoatSampleMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2
+ },
+ "indices" : 3,
+ "material" : 0
+ }
+ ]
+ },
+ {
+ "name" : "ClearCoatSampleMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2
+ },
+ "indices" : 3,
+ "material" : 1
+ }
+ ]
+ },
+ {
+ "name" : "ClearCoatSampleMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2
+ },
+ "indices" : 3,
+ "material" : 2
+ }
+ ]
+ },
+ {
+ "name" : "ClearCoatSampleMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2
+ },
+ "indices" : 3,
+ "material" : 3
+ }
+ ]
+ },
+ {
+ "name" : "ClearCoatSampleMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2
+ },
+ "indices" : 3,
+ "material" : 4
+ }
+ ]
+ },
+ {
+ "name" : "ClearCoatSampleMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2
+ },
+ "indices" : 3,
+ "material" : 5
+ }
+ ]
+ },
+ {
+ "name" : "ClearCoatSampleMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2
+ },
+ "indices" : 3,
+ "material" : 6
+ }
+ ]
+ },
+ {
+ "name" : "ClearCoatSampleMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2
+ },
+ "indices" : 3,
+ "material" : 7
+ }
+ ]
+ },
+ {
+ "name" : "ClearCoatSampleMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2
+ },
+ "indices" : 3,
+ "material" : 8
+ }
+ ]
+ },
+ {
+ "name" : "ClearCoatSampleMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2
+ },
+ "indices" : 3,
+ "material" : 9
+ }
+ ]
+ },
+ {
+ "name" : "ClearCoatSampleMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2
+ },
+ "indices" : 3,
+ "material" : 10
+ }
+ ]
+ },
+ {
+ "name" : "ClearCoatSampleMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2
+ },
+ "indices" : 3,
+ "material" : 11
+ }
+ ]
+ },
+ {
+ "name" : "ClearCoatSampleMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2
+ },
+ "indices" : 3,
+ "material" : 12
+ }
+ ]
+ },
+ {
+ "name" : "ClearCoatSampleMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2
+ },
+ "indices" : 3,
+ "material" : 13
+ }
+ ]
+ },
+ {
+ "name" : "ClearCoatSampleMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2
+ },
+ "indices" : 3,
+ "material" : 14
+ }
+ ]
+ },
+ {
+ "name" : "ClearCoatSampleMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2
+ },
+ "indices" : 3,
+ "material" : 15
+ }
+ ]
+ },
+ {
+ "name" : "ClearCoatSampleMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2
+ },
+ "indices" : 3,
+ "material" : 16
+ }
+ ]
+ },
+ {
+ "name" : "ClearCoatSampleMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 0,
+ "NORMAL" : 1,
+ "TEXCOORD_0" : 2
+ },
+ "indices" : 3,
+ "material" : 17
+ }
+ ]
+ },
+ {
+ "name" : "Labels_Mesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 4,
+ "NORMAL" : 5,
+ "TEXCOORD_0" : 6
+ },
+ "indices" : 7,
+ "material" : 18
+ }
+ ]
+ },
+ {
+ "name" : "Labels_Mesh.001",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 8,
+ "NORMAL" : 9,
+ "TEXCOORD_0" : 10
+ },
+ "indices" : 7,
+ "material" : 18
+ }
+ ]
+ },
+ {
+ "name" : "Labels_Mesh.002",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 11,
+ "NORMAL" : 12,
+ "TEXCOORD_0" : 13
+ },
+ "indices" : 14,
+ "material" : 18
+ }
+ ]
+ },
+ {
+ "name" : "Labels_Mesh.003",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 15,
+ "NORMAL" : 16,
+ "TEXCOORD_0" : 17
+ },
+ "indices" : 14,
+ "material" : 18
+ }
+ ]
+ },
+ {
+ "name" : "Labels_Mesh.004",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 18,
+ "NORMAL" : 19,
+ "TEXCOORD_0" : 20
+ },
+ "indices" : 14,
+ "material" : 18
+ }
+ ]
+ },
+ {
+ "name" : "Labels_Mesh.005",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 21,
+ "NORMAL" : 22,
+ "TEXCOORD_0" : 23
+ },
+ "indices" : 14,
+ "material" : 18
+ }
+ ]
+ },
+ {
+ "name" : "Labels_Mesh.006",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 24,
+ "NORMAL" : 25,
+ "TEXCOORD_0" : 26
+ },
+ "indices" : 14,
+ "material" : 18
+ }
+ ]
+ },
+ {
+ "name" : "Labels_Mesh.007",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 27,
+ "NORMAL" : 28,
+ "TEXCOORD_0" : 29
+ },
+ "indices" : 14,
+ "material" : 18
+ }
+ ]
+ },
+ {
+ "name" : "Labels_Mesh.008",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 30,
+ "NORMAL" : 31,
+ "TEXCOORD_0" : 32
+ },
+ "indices" : 7,
+ "material" : 18
+ }
+ ]
+ }
+ ],
+ "textures" : [
+ {
+ "source" : 0
+ },
+ {
+ "source" : 1
+ },
+ {
+ "source" : 2
+ },
+ {
+ "source" : 3
+ },
+ {
+ "source" : 3
+ },
+ {
+ "source" : 4
+ },
+ {
+ "source" : 3
+ },
+ {
+ "source" : 3
+ },
+ {
+ "source" : 3
+ },
+ {
+ "source" : 5
+ }
+ ],
+ "images" : [
+ {
+ "mimeType" : "image/png",
+ "name" : "PartialCoating",
+ "uri" : "PartialCoating.png"
+ },
+ {
+ "mimeType" : "image/png",
+ "name" : "PartialCoating_Alpha",
+ "uri" : "PartialCoating_Alpha.png"
+ },
+ {
+ "mimeType" : "image/png",
+ "name" : "RoughnessStripes",
+ "uri" : "RoughnessStripes.png"
+ },
+ {
+ "mimeType" : "image/png",
+ "name" : "RibsNormal",
+ "uri" : "RibsNormal.png"
+ },
+ {
+ "mimeType" : "image/jpeg",
+ "name" : "PlasticWrap_normals",
+ "uri" : "PlasticWrap_normals.jpg"
+ },
+ {
+ "mimeType" : "image/png",
+ "name" : "ClearCoatLabels",
+ "uri" : "ClearCoatLabels.png"
+ }
+ ],
+ "accessors" : [
+ {
+ "bufferView" : 0,
+ "componentType" : 5126,
+ "count" : 1113,
+ "max" : [
+ 1,
+ 1,
+ 1.0499999523162842
+ ],
+ "min" : [
+ -1,
+ -1,
+ -0.06000000983476639
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 1,
+ "componentType" : 5126,
+ "count" : 1113,
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 2,
+ "componentType" : 5126,
+ "count" : 1113,
+ "type" : "VEC2"
+ },
+ {
+ "bufferView" : 3,
+ "componentType" : 5123,
+ "count" : 6180,
+ "type" : "SCALAR"
+ },
+ {
+ "bufferView" : 4,
+ "componentType" : 5126,
+ "count" : 8,
+ "max" : [
+ 1.0280373096466064,
+ 0.23501670360565186,
+ 3.8289083903464416e-08
+ ],
+ "min" : [
+ -0.968224287033081,
+ -0.2350165843963623,
+ -0.010000125505030155
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 5,
+ "componentType" : 5126,
+ "count" : 8,
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 6,
+ "componentType" : 5126,
+ "count" : 8,
+ "type" : "VEC2"
+ },
+ {
+ "bufferView" : 7,
+ "componentType" : 5123,
+ "count" : 12,
+ "type" : "SCALAR"
+ },
+ {
+ "bufferView" : 8,
+ "componentType" : 5126,
+ "count" : 8,
+ "max" : [
+ 2,
+ 0.23026323318481445,
+ 3.751463495405005e-08
+ ],
+ "min" : [
+ -2,
+ -0.23026317358016968,
+ -0.010000579059123993
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 9,
+ "componentType" : 5126,
+ "count" : 8,
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 10,
+ "componentType" : 5126,
+ "count" : 8,
+ "type" : "VEC2"
+ },
+ {
+ "bufferView" : 11,
+ "componentType" : 5126,
+ "count" : 8,
+ "max" : [
+ 2,
+ 0.2302631139755249,
+ 3.7514624295909016e-08
+ ],
+ "min" : [
+ -2,
+ -0.23026323318481445,
+ -0.010000428184866905
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 12,
+ "componentType" : 5126,
+ "count" : 8,
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 13,
+ "componentType" : 5126,
+ "count" : 8,
+ "type" : "VEC2"
+ },
+ {
+ "bufferView" : 14,
+ "componentType" : 5123,
+ "count" : 12,
+ "type" : "SCALAR"
+ },
+ {
+ "bufferView" : 15,
+ "componentType" : 5126,
+ "count" : 8,
+ "max" : [
+ 2,
+ 0.22039484977722168,
+ 3.590687924770464e-08
+ ],
+ "min" : [
+ -2,
+ -0.22039473056793213,
+ -0.010000280104577541
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 16,
+ "componentType" : 5126,
+ "count" : 8,
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 17,
+ "componentType" : 5126,
+ "count" : 8,
+ "type" : "VEC2"
+ },
+ {
+ "bufferView" : 18,
+ "componentType" : 5126,
+ "count" : 8,
+ "max" : [
+ 2,
+ 0.21764808893203735,
+ 3.545937588000925e-08
+ ],
+ "min" : [
+ -2,
+ -0.21764802932739258,
+ -0.010000137612223625
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 19,
+ "componentType" : 5126,
+ "count" : 8,
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 20,
+ "componentType" : 5126,
+ "count" : 8,
+ "type" : "VEC2"
+ },
+ {
+ "bufferView" : 21,
+ "componentType" : 5126,
+ "count" : 8,
+ "max" : [
+ 2,
+ 0.20775499939918518,
+ 3.3847587843638394e-08
+ ],
+ "min" : [
+ -2,
+ -0.20775499939918518,
+ -0.009999996051192284
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 22,
+ "componentType" : 5126,
+ "count" : 8,
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 23,
+ "componentType" : 5126,
+ "count" : 8,
+ "type" : "VEC2"
+ },
+ {
+ "bufferView" : 24,
+ "componentType" : 5126,
+ "count" : 8,
+ "max" : [
+ 2,
+ 0.22341907024383545,
+ 3.6399587344249085e-08
+ ],
+ "min" : [
+ -2,
+ -0.22341907024383545,
+ -0.009999859146773815
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 25,
+ "componentType" : 5126,
+ "count" : 8,
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 26,
+ "componentType" : 5126,
+ "count" : 8,
+ "type" : "VEC2"
+ },
+ {
+ "bufferView" : 27,
+ "componentType" : 5126,
+ "count" : 8,
+ "max" : [
+ 0.9169960618019104,
+ 0.22670458257198334,
+ 3.69348676088066e-08
+ ],
+ "min" : [
+ -0.9199233651161194,
+ -0.22670456767082214,
+ -0.010000176727771759
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 28,
+ "componentType" : 5126,
+ "count" : 8,
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 29,
+ "componentType" : 5126,
+ "count" : 8,
+ "type" : "VEC2"
+ },
+ {
+ "bufferView" : 30,
+ "componentType" : 5126,
+ "count" : 8,
+ "max" : [
+ 0.8968609571456909,
+ 0.20853587985038757,
+ 3.397480696776256e-08
+ ],
+ "min" : [
+ -0.9147982001304626,
+ -0.2085357904434204,
+ -0.010000113397836685
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 31,
+ "componentType" : 5126,
+ "count" : 8,
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 32,
+ "componentType" : 5126,
+ "count" : 8,
+ "type" : "VEC2"
+ }
+ ],
+ "bufferViews" : [
+ {
+ "buffer" : 0,
+ "byteLength" : 13356,
+ "byteOffset" : 0
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 13356,
+ "byteOffset" : 13356
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 8904,
+ "byteOffset" : 26712
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 12360,
+ "byteOffset" : 35616
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 96,
+ "byteOffset" : 47976
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 96,
+ "byteOffset" : 48072
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 64,
+ "byteOffset" : 48168
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 24,
+ "byteOffset" : 48232
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 96,
+ "byteOffset" : 48256
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 96,
+ "byteOffset" : 48352
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 64,
+ "byteOffset" : 48448
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 96,
+ "byteOffset" : 48512
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 96,
+ "byteOffset" : 48608
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 64,
+ "byteOffset" : 48704
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 24,
+ "byteOffset" : 48768
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 96,
+ "byteOffset" : 48792
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 96,
+ "byteOffset" : 48888
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 64,
+ "byteOffset" : 48984
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 96,
+ "byteOffset" : 49048
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 96,
+ "byteOffset" : 49144
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 64,
+ "byteOffset" : 49240
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 96,
+ "byteOffset" : 49304
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 96,
+ "byteOffset" : 49400
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 64,
+ "byteOffset" : 49496
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 96,
+ "byteOffset" : 49560
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 96,
+ "byteOffset" : 49656
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 64,
+ "byteOffset" : 49752
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 96,
+ "byteOffset" : 49816
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 96,
+ "byteOffset" : 49912
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 64,
+ "byteOffset" : 50008
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 96,
+ "byteOffset" : 50072
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 96,
+ "byteOffset" : 50168
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 64,
+ "byteOffset" : 50264
+ }
+ ],
+ "buffers" : [
+ {
+ "byteLength" : 50328,
+ "uri" : "ClearCoatTest.bin"
+ }
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/ClearCoat-glTF/PartialCoating.png b/libs/assimp/test/models/glTF2/ClearCoat-glTF/PartialCoating.png
new file mode 100644
index 0000000..d579bbe
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/ClearCoat-glTF/PartialCoating.png
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/ClearCoat-glTF/PartialCoating_Alpha.png b/libs/assimp/test/models/glTF2/ClearCoat-glTF/PartialCoating_Alpha.png
new file mode 100644
index 0000000..b1911d9
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/ClearCoat-glTF/PartialCoating_Alpha.png
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/ClearCoat-glTF/PlasticWrap_normals.jpg b/libs/assimp/test/models/glTF2/ClearCoat-glTF/PlasticWrap_normals.jpg
new file mode 100644
index 0000000..73e6260
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/ClearCoat-glTF/PlasticWrap_normals.jpg
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/ClearCoat-glTF/RibsNormal.png b/libs/assimp/test/models/glTF2/ClearCoat-glTF/RibsNormal.png
new file mode 100644
index 0000000..30c393d
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/ClearCoat-glTF/RibsNormal.png
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/ClearCoat-glTF/RoughnessStripes.png b/libs/assimp/test/models/glTF2/ClearCoat-glTF/RoughnessStripes.png
new file mode 100644
index 0000000..f3ab357
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/ClearCoat-glTF/RoughnessStripes.png
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/IncorrectVertexArrays/Cube.bin b/libs/assimp/test/models/glTF2/IncorrectVertexArrays/Cube.bin
new file mode 100644
index 0000000..fa55b36
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/IncorrectVertexArrays/Cube.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/IncorrectVertexArrays/Cube.gltf b/libs/assimp/test/models/glTF2/IncorrectVertexArrays/Cube.gltf
new file mode 100644
index 0000000..0ca17e1
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/IncorrectVertexArrays/Cube.gltf
@@ -0,0 +1,286 @@
+{
+ "accessors" : [
+ {
+ "bufferView" : 0,
+ "byteOffset" : 0,
+ "componentType" : 5123,
+ "count" : 36,
+ "max" : [
+ 35
+ ],
+ "min" : [
+ 0
+ ],
+ "type" : "SCALAR"
+ },
+ {
+ "bufferView" : 1,
+ "byteOffset" : 0,
+ "componentType" : 5126,
+ "count" : 36,
+ "max" : [
+ 1.000000,
+ 1.000000,
+ 1.000001
+ ],
+ "min" : [
+ -1.000000,
+ -1.000000,
+ -1.000000
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 2,
+ "byteOffset" : 0,
+ "componentType" : 5126,
+ "count" : 36,
+ "max" : [
+ 1.000000,
+ 1.000000,
+ 1.000000
+ ],
+ "min" : [
+ -1.000000,
+ -1.000000,
+ -1.000000
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 3,
+ "byteOffset" : 0,
+ "componentType" : 5126,
+ "count" : 36,
+ "max" : [
+ 1.000000,
+ -0.000000,
+ -0.000000,
+ 1.000000
+ ],
+ "min" : [
+ 0.000000,
+ -0.000000,
+ -1.000000,
+ -1.000000
+ ],
+ "type" : "VEC4"
+ },
+ {
+ "bufferView" : 4,
+ "byteOffset" : 0,
+ "componentType" : 5126,
+ "count" : 36,
+ "max" : [
+ 1.000000,
+ 1.000000
+ ],
+ "min" : [
+ -1.000000,
+ -1.000000
+ ],
+ "type" : "VEC2"
+ },
+ {
+ "bufferView" : 1,
+ "byteOffset" : 0,
+ "componentType" : 5126,
+ "count" : 36,
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 1,
+ "byteOffset" : 0,
+ "componentType" : 5126,
+ "count" : 35,
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 0,
+ "byteOffset" : 0,
+ "componentType" : 5123,
+ "count" : 35,
+ "max" : [
+ 35
+ ],
+ "min" : [
+ 0
+ ],
+ "type" : "SCALAR"
+ }
+ ],
+ "asset" : {
+ "generator" : "VKTS glTF 2.0 exporter",
+ "version" : "2.0"
+ },
+ "bufferViews" : [
+ {
+ "buffer" : 0,
+ "byteLength" : 72,
+ "byteOffset" : 0,
+ "target" : 34963
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 432,
+ "byteOffset" : 72,
+ "target" : 34962
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 432,
+ "byteOffset" : 504,
+ "target" : 34962
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 576,
+ "byteOffset" : 936,
+ "target" : 34962
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 288,
+ "byteOffset" : 1512,
+ "target" : 34962
+ }
+ ],
+ "buffers" : [
+ {
+ "byteLength" : 514,
+ "uri" : "Cube.bin"
+ }
+ ],
+ "meshes" : [
+ {
+ "name" : "Cube",
+ "primitives" : [
+ {
+ "attributes" : {
+ "POSITION" : 1
+ },
+ "mode" : 4
+ }
+ ]
+ },
+ {
+ "name" : "TruncatedCube",
+ "primitives" : [ {
+ "attributes" : {
+ "POSITION" : 6
+ },
+ "mode" : 4
+ } ]
+ },
+ {
+ "name" : "Lines",
+ "primitives" : [ {
+ "attributes" : {
+ "POSITION" : 5
+ },
+ "mode" : 1
+ } ]
+ },
+ {
+ "name" : "TruncatedLines",
+ "primitives" : [ {
+ "attributes" : {
+ "POSITION" : 6
+ },
+ "mode" : 1
+ } ]
+ },
+ {
+ "name" : "IndexedCube",
+ "primitives" : [ {
+ "attributes" : {
+ "POSITION" : 1
+ },
+ "mode" : 4,
+ "indices" : 0
+ } ]
+ },
+ {
+ "name" : "TruncatedIndexedCube",
+ "primitives" : [ {
+ "attributes" : {
+ "POSITION" : 6
+ },
+ "mode" : 4,
+ "indices" : 7
+ } ]
+ },
+ {
+ "name" : "IndexedLines",
+ "primitives" : [ {
+ "attributes" : {
+ "POSITION" : 5
+ },
+ "mode" : 1,
+ "indices" : 0
+ } ]
+ },
+ {
+ "name" : "TruncatedIndexedLines",
+ "primitives" : [ {
+ "attributes" : {
+ "POSITION" : 6
+ },
+ "mode" : 1,
+ "indices" : 7
+ } ]
+ }
+ ],
+ "nodes" : [
+ {
+ "mesh" : 0,
+ "name" : "Cube"
+ },
+ {
+ "mesh" : 1,
+ "name" : "TruncatedCube",
+ "translation": [ 2.5, 0.0, 2.5 ]
+ },
+ {
+ "mesh" : 2,
+ "name" : "Lines",
+ "translation": [ 2.5, 0.0, 0.0 ]
+ },
+ {
+ "mesh" : 3,
+ "name" : "TruncatedLines",
+ "translation": [ 2.5, 0.0, -2.5 ]
+ },
+ {
+ "mesh" : 4,
+ "name" : "IndexedCube",
+ "translation": [ -2.5, 0.0, 2.5 ]
+ },
+ {
+ "mesh" : 5,
+ "name" : "TruncatedIndexedCube",
+ "translation": [ -2.5, 0.0, 0.0 ]
+ },
+ {
+ "mesh" : 6,
+ "name" : "IndexedLines",
+ "translation": [ -2.5, 0.0, -2.5 ]
+ },
+ {
+ "mesh" : 7,
+ "name" : "TruncatedIndexedLines",
+ "translation": [ 0.0, 0.0, -2.5 ]
+ }
+ ],
+ "samplers" : [
+ {}
+ ],
+ "scene" : 0,
+ "scenes" : [
+ {
+ "nodes" : [
+ 0, 1, 2, 3, 4, 5, 6, 7
+ ]
+ }
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/IndexOutOfRange/AllIndicesOutOfRange.bin b/libs/assimp/test/models/glTF2/IndexOutOfRange/AllIndicesOutOfRange.bin
new file mode 100644
index 0000000..8fef5c7
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/IndexOutOfRange/AllIndicesOutOfRange.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/IndexOutOfRange/AllIndicesOutOfRange.gltf b/libs/assimp/test/models/glTF2/IndexOutOfRange/AllIndicesOutOfRange.gltf
new file mode 100644
index 0000000..3dbb6ef
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/IndexOutOfRange/AllIndicesOutOfRange.gltf
@@ -0,0 +1,142 @@
+{
+ "asset": {
+ "generator": "COLLADA2GLTF",
+ "version": "2.0"
+ },
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "children": [
+ 1
+ ],
+ "matrix": [
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ -1.0,
+ 0.0,
+ 0.0,
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ {
+ "mesh": 0
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 1,
+ "POSITION": 2
+ },
+ "indices": 0,
+ "mode": 4,
+ "material": 0
+ }
+ ],
+ "name": "Mesh"
+ }
+ ],
+ "accessors": [
+ {
+ "bufferView": 0,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 36,
+ "max": [
+ 255
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "min": [
+ -1.0,
+ -1.0,
+ -1.0
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 288,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 0.5,
+ 0.5,
+ 0.5
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ -0.5
+ ],
+ "type": "VEC3"
+ }
+ ],
+ "materials": [
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.800000011920929,
+ 0.0,
+ 0.0,
+ 1.0
+ ],
+ "metallicFactor": 0.0
+ },
+ "name": "Red"
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteOffset": 576,
+ "byteLength": 72,
+ "target": 34963
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 0,
+ "byteLength": 576,
+ "byteStride": 12,
+ "target": 34962
+ }
+ ],
+ "buffers": [
+ {
+ "byteLength": 648,
+ "uri": "AllIndicesOutOfRange.bin"
+ }
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/IndexOutOfRange/IndexOutOfRange.bin b/libs/assimp/test/models/glTF2/IndexOutOfRange/IndexOutOfRange.bin
new file mode 100644
index 0000000..b7cfe37
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/IndexOutOfRange/IndexOutOfRange.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/IndexOutOfRange/IndexOutOfRange.gltf b/libs/assimp/test/models/glTF2/IndexOutOfRange/IndexOutOfRange.gltf
new file mode 100644
index 0000000..67561c5
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/IndexOutOfRange/IndexOutOfRange.gltf
@@ -0,0 +1,142 @@
+{
+ "asset": {
+ "generator": "COLLADA2GLTF",
+ "version": "2.0"
+ },
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "children": [
+ 1
+ ],
+ "matrix": [
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ -1.0,
+ 0.0,
+ 0.0,
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ {
+ "mesh": 0
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 1,
+ "POSITION": 2
+ },
+ "indices": 0,
+ "mode": 4,
+ "material": 0
+ }
+ ],
+ "name": "Mesh"
+ }
+ ],
+ "accessors": [
+ {
+ "bufferView": 0,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 36,
+ "max": [
+ 255
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "min": [
+ -1.0,
+ -1.0,
+ -1.0
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 288,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 0.5,
+ 0.5,
+ 0.5
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ -0.5
+ ],
+ "type": "VEC3"
+ }
+ ],
+ "materials": [
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.800000011920929,
+ 0.0,
+ 0.0,
+ 1.0
+ ],
+ "metallicFactor": 0.0
+ },
+ "name": "Red"
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteOffset": 576,
+ "byteLength": 72,
+ "target": 34963
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 0,
+ "byteLength": 576,
+ "byteStride": 12,
+ "target": 34962
+ }
+ ],
+ "buffers": [
+ {
+ "byteLength": 648,
+ "uri": "IndexOutOfRange.bin"
+ }
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/MissingBin/BoxTextured.gltf b/libs/assimp/test/models/glTF2/MissingBin/BoxTextured.gltf
new file mode 100644
index 0000000..88d6539
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/MissingBin/BoxTextured.gltf
@@ -0,0 +1,181 @@
+{
+ "asset": {
+ "generator": "COLLADA2GLTF",
+ "version": "2.0"
+ },
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "children": [
+ 1
+ ],
+ "matrix": [
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ -1.0,
+ 0.0,
+ 0.0,
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ {
+ "mesh": 0
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 1,
+ "POSITION": 2,
+ "TEXCOORD_0": 3
+ },
+ "indices": 0,
+ "mode": 4,
+ "material": 0
+ }
+ ],
+ "name": "Mesh"
+ }
+ ],
+ "accessors": [
+ {
+ "bufferView": 0,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 36,
+ "max": [
+ 23
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "min": [
+ -1.0,
+ -1.0,
+ -1.0
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 288,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 0.5,
+ 0.5,
+ 0.5
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ -0.5
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 2,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 6.0,
+ 1.0
+ ],
+ "min": [
+ 0.0,
+ 0.0
+ ],
+ "type": "VEC2"
+ }
+ ],
+ "materials": [
+ {
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 0
+ },
+ "metallicFactor": 0.0
+ },
+ "name": "Texture"
+ }
+ ],
+ "textures": [
+ {
+ "sampler": 0,
+ "source": 0
+ }
+ ],
+ "images": [
+ {
+ "uri": "CesiumLogoFlat.png"
+ }
+ ],
+ "samplers": [
+ {
+ "magFilter": 9729,
+ "minFilter": 9986,
+ "wrapS": 33648,
+ "wrapT": 33071
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteOffset": 768,
+ "byteLength": 72,
+ "target": 34963
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 0,
+ "byteLength": 576,
+ "byteStride": 12,
+ "target": 34962
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 576,
+ "byteLength": 192,
+ "byteStride": 8,
+ "target": 34962
+ }
+ ],
+ "buffers": [
+ {
+ "byteLength": 840,
+ "uri": "BoxTextured0.bin"
+ }
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/RecursiveNodes/RecursiveNodes.gltf b/libs/assimp/test/models/glTF2/RecursiveNodes/RecursiveNodes.gltf
new file mode 100644
index 0000000..11cf041
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/RecursiveNodes/RecursiveNodes.gltf
@@ -0,0 +1,25 @@
+{
+ "asset": {
+ "version": "2.0"
+ },
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "children": [
+ 1
+ ]
+ },
+ {
+ "children": [
+ 0
+ ]
+ }
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/SchemaFailures/CesiumLogoFlat.png b/libs/assimp/test/models/glTF2/SchemaFailures/CesiumLogoFlat.png
new file mode 100644
index 0000000..45d502e
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/SchemaFailures/CesiumLogoFlat.png
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/SchemaFailures/sceneWrongType.gltf b/libs/assimp/test/models/glTF2/SchemaFailures/sceneWrongType.gltf
new file mode 100644
index 0000000..9a97c2b
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/SchemaFailures/sceneWrongType.gltf
@@ -0,0 +1,181 @@
+{
+ "asset": {
+ "generator": "COLLADA2GLTF",
+ "version": "2.0"
+ },
+ "scene": "hello",
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "children": [
+ 1
+ ],
+ "matrix": [
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ -1.0,
+ 0.0,
+ 0.0,
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ {
+ "mesh": 0
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 1,
+ "POSITION": 2,
+ "TEXCOORD_0": 3
+ },
+ "indices": 0,
+ "mode": 4,
+ "material": 0
+ }
+ ],
+ "name": "Mesh"
+ }
+ ],
+ "accessors": [
+ {
+ "bufferView": 0,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 36,
+ "max": [
+ 23
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "min": [
+ -1.0,
+ -1.0,
+ -1.0
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 288,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 0.5,
+ 0.5,
+ 0.5
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ -0.5
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 2,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 6.0,
+ 1.0
+ ],
+ "min": [
+ 0.0,
+ 0.0
+ ],
+ "type": "VEC2"
+ }
+ ],
+ "materials": [
+ {
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 0
+ },
+ "metallicFactor": 0.0
+ },
+ "name": "Texture"
+ }
+ ],
+ "textures": [
+ {
+ "sampler": 0,
+ "source": 0
+ }
+ ],
+ "images": [
+ {
+ "uri": "CesiumLogoFlat.png"
+ }
+ ],
+ "samplers": [
+ {
+ "magFilter": 9729,
+ "minFilter": 9986,
+ "wrapS": 33648,
+ "wrapT": 33071
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteOffset": 768,
+ "byteLength": 72,
+ "target": 34963
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 0,
+ "byteLength": 576,
+ "byteStride": 12,
+ "target": 34962
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 576,
+ "byteLength": 192,
+ "byteStride": 8,
+ "target": 34962
+ }
+ ],
+ "buffers": [
+ {
+ "byteLength": 840,
+ "uri": "BoxTextured0.bin"
+ }
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/TestNoRootNode/NoScene.gltf b/libs/assimp/test/models/glTF2/TestNoRootNode/NoScene.gltf
new file mode 100644
index 0000000..6cad71e
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/TestNoRootNode/NoScene.gltf
@@ -0,0 +1,6 @@
+{
+ "asset": {
+ "version": "2.0"
+ },
+ "scene": 0
+}
diff --git a/libs/assimp/test/models/glTF2/TestNoRootNode/SceneWithoutNodes.gltf b/libs/assimp/test/models/glTF2/TestNoRootNode/SceneWithoutNodes.gltf
new file mode 100644
index 0000000..d426ca5
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/TestNoRootNode/SceneWithoutNodes.gltf
@@ -0,0 +1,10 @@
+{
+ "asset": {
+ "version": "2.0"
+ },
+ "scene": 0,
+ "scenes": [
+ {
+ }
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/cameras/Cameras.gltf b/libs/assimp/test/models/glTF2/cameras/Cameras.gltf
new file mode 100644
index 0000000..25e9e24
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/cameras/Cameras.gltf
@@ -0,0 +1,98 @@
+{
+ "scenes" : [
+ {
+ "nodes" : [ 0, 1, 2 ]
+ }
+ ],
+ "nodes" : [
+ {
+ "rotation" : [ -0.383, 0.0, 0.0, 0.92375 ],
+ "mesh" : 0
+ },
+ {
+ "translation" : [ 0.5, 0.5, 3.0 ],
+ "camera" : 0
+ },
+ {
+ "translation" : [ 0.5, 0.5, 3.0 ],
+ "camera" : 1
+ }
+ ],
+
+ "cameras" : [
+ {
+ "type": "perspective",
+ "perspective": {
+ "aspectRatio": 1.0,
+ "yfov": 0.7,
+ "zfar": 100,
+ "znear": 0.01
+ }
+ },
+ {
+ "type": "orthographic",
+ "orthographic": {
+ "xmag": 1.0,
+ "ymag": 1.0,
+ "zfar": 100,
+ "znear": 0.01
+ }
+ }
+ ],
+
+ "meshes" : [
+ {
+ "primitives" : [ {
+ "attributes" : {
+ "POSITION" : 1
+ },
+ "indices" : 0
+ } ]
+ }
+ ],
+
+ "buffers" : [
+ {
+ "uri" : "simpleSquare.bin",
+ "byteLength" : 60
+ }
+ ],
+ "bufferViews" : [
+ {
+ "buffer" : 0,
+ "byteOffset" : 0,
+ "byteLength" : 12,
+ "target" : 34963
+ },
+ {
+ "buffer" : 0,
+ "byteOffset" : 12,
+ "byteLength" : 48,
+ "target" : 34962
+ }
+ ],
+ "accessors" : [
+ {
+ "bufferView" : 0,
+ "byteOffset" : 0,
+ "componentType" : 5123,
+ "count" : 6,
+ "type" : "SCALAR",
+ "max" : [ 3 ],
+ "min" : [ 0 ]
+ },
+ {
+ "bufferView" : 1,
+ "byteOffset" : 0,
+ "componentType" : 5126,
+ "count" : 4,
+ "type" : "VEC3",
+ "max" : [ 1.0, 1.0, 0.0 ],
+ "min" : [ 0.0, 0.0, 0.0 ]
+ }
+ ],
+
+ "asset" : {
+ "version" : "2.0"
+ }
+}
diff --git a/libs/assimp/test/models/glTF2/cameras/simpleSquare.bin b/libs/assimp/test/models/glTF2/cameras/simpleSquare.bin
new file mode 100644
index 0000000..a6edb3b
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/cameras/simpleSquare.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/draco/2CylinderEngine.bin b/libs/assimp/test/models/glTF2/draco/2CylinderEngine.bin
new file mode 100644
index 0000000..8ea9b32
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/draco/2CylinderEngine.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/draco/2CylinderEngine.gltf b/libs/assimp/test/models/glTF2/draco/2CylinderEngine.gltf
new file mode 100644
index 0000000..6cd2932
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/draco/2CylinderEngine.gltf
@@ -0,0 +1,4758 @@
+{
+ "asset": {
+ "generator": "COLLADA2GLTF",
+ "version": "2.0"
+ },
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 81,
+ 0
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "children": [
+ 80,
+ 79,
+ 78,
+ 77,
+ 76,
+ 75,
+ 74,
+ 73,
+ 13,
+ 10,
+ 7,
+ 4,
+ 1
+ ]
+ },
+ {
+ "children": [
+ 3,
+ 2
+ ],
+ "matrix": [
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ 136.860107421875,
+ -64.45372009277344,
+ -36.179630279541016,
+ 1
+ ]
+ },
+ {
+ "mesh": 0,
+ "matrix": [
+ -1,
+ 8.979318677493353e-11,
+ 0,
+ 0,
+ -8.979318677493353e-11,
+ -1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ -294.67718505859375,
+ 73.97987365722656,
+ 16.17963218688965,
+ 1
+ ]
+ },
+ {
+ "mesh": 1,
+ "matrix": [
+ 0.9995650053024292,
+ 0.029493184760212895,
+ 0,
+ 0,
+ -0.029493184760212895,
+ 0.9995650053024292,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ -45.315460205078125,
+ -24.617263793945316,
+ -26.320369720458984,
+ 1
+ ]
+ },
+ {
+ "children": [
+ 6,
+ 5
+ ],
+ "matrix": [
+ -1,
+ 8.979318677493353e-11,
+ 0,
+ 0,
+ -8.979318677493353e-11,
+ -1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ -136.860107421875,
+ 64.45372009277344,
+ 3.8203670978546143,
+ 1
+ ]
+ },
+ {
+ "mesh": 0,
+ "matrix": [
+ -1,
+ 8.979318677493353e-11,
+ 0,
+ 0,
+ -8.979318677493353e-11,
+ -1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ -294.67718505859375,
+ 73.97987365722656,
+ 16.17963218688965,
+ 1
+ ]
+ },
+ {
+ "mesh": 1,
+ "matrix": [
+ 0.9995650053024292,
+ 0.029493184760212895,
+ 0,
+ 0,
+ -0.029493184760212895,
+ 0.9995650053024292,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ -45.315460205078125,
+ -24.617263793945316,
+ -26.32036781311035,
+ 1
+ ]
+ },
+ {
+ "children": [
+ 9,
+ 8
+ ],
+ "matrix": [
+ -0.5,
+ -0.8660253882408142,
+ 0,
+ 0,
+ 0.8660253882408142,
+ -0.5,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ 18.09818458557129,
+ -69.69783782958984,
+ -105.559814453125,
+ 1
+ ]
+ },
+ {
+ "mesh": 2,
+ "matrix": [
+ -0.9390941858291626,
+ 0.3436597883701325,
+ 0,
+ 0,
+ -0.3436597883701325,
+ -0.9390941858291626,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ -51.311012268066406,
+ -50.52240753173828,
+ -18.440185546875,
+ 1
+ ]
+ },
+ {
+ "mesh": 3,
+ "matrix": [
+ -0.9390941858291626,
+ 0.3436597883701325,
+ 0,
+ 0,
+ -0.3436597883701325,
+ -0.9390941858291626,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ -51.311012268066406,
+ -50.52240753173828,
+ 107.559814453125,
+ 1
+ ]
+ },
+ {
+ "children": [
+ 12,
+ 11
+ ],
+ "matrix": [
+ 0.7071067690849304,
+ -0.7071067690849304,
+ 0,
+ 0,
+ 0.7071067690849304,
+ 0.7071067690849304,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ 47.17867660522461,
+ -52.821327209472656,
+ -88.94477081298828,
+ 1
+ ]
+ },
+ {
+ "mesh": 4,
+ "matrix": [
+ -0.4234085381031037,
+ -0.9059388637542723,
+ -7.575183536001616e-11,
+ 0,
+ -0.9059388637542723,
+ 0.4234085381031037,
+ -4.821281221478735e-11,
+ 0,
+ 7.575183536001616e-11,
+ 4.821281221478735e-11,
+ -1,
+ 0,
+ -90.59386444091795,
+ -24.379817962646488,
+ -40.05522918701172,
+ 1
+ ]
+ },
+ {
+ "mesh": 5,
+ "matrix": [
+ -1.877404400829619e-7,
+ -1.194886607436274e-7,
+ 1,
+ 0,
+ -0.905938446521759,
+ 0.42340943217277527,
+ -1.194886607436274e-7,
+ 0,
+ -0.42340943217277527,
+ -0.905938446521759,
+ -1.877404400829619e-7,
+ 0,
+ -30.2958984375,
+ -52.56131362915039,
+ 25.05522727966309,
+ 1
+ ]
+ },
+ {
+ "children": [
+ 72,
+ 71,
+ 70,
+ 69,
+ 68,
+ 67,
+ 66,
+ 65,
+ 14
+ ]
+ },
+ {
+ "children": [
+ 64,
+ 63,
+ 62,
+ 61,
+ 60,
+ 59,
+ 58,
+ 57,
+ 56,
+ 43,
+ 29,
+ 15
+ ],
+ "matrix": [
+ -2.430540746445331e-7,
+ 0.0000014087579529586949,
+ -1,
+ 0,
+ -1,
+ -2.430540746445331e-7,
+ 2.4305373358402004e-7,
+ 0,
+ -2.4305373358402004e-7,
+ 1,
+ 0.0000014087580666455324,
+ 0,
+ -48.26182556152344,
+ -59.11042404174805,
+ 34.595985412597656,
+ 1
+ ]
+ },
+ {
+ "children": [
+ 28,
+ 27,
+ 16
+ ],
+ "matrix": [
+ -0.4546820223331452,
+ 0.6541662216186523,
+ -0.6044260263442993,
+ 0,
+ 0.8696397542953491,
+ 0.4726206660270691,
+ -0.1426759660243988,
+ 0,
+ 0.19233042001724243,
+ -0.590505063533783,
+ -0.7837810516357422,
+ 0,
+ 14.898193359375,
+ 85.82951354980469,
+ -48.034645080566406,
+ 1
+ ]
+ },
+ {
+ "children": [
+ 26,
+ 25,
+ 24,
+ 23,
+ 22,
+ 21,
+ 20,
+ 19,
+ 18,
+ 17
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ 0.8450329899787903,
+ 0.005398945417255163,
+ -0.5346869230270386,
+ 0,
+ -0.4710906744003296,
+ 0.4805830717086792,
+ -0.7396712303161621,
+ 0,
+ 0.25296804308891296,
+ 0.8769326210021973,
+ 0.4086519181728363,
+ 0,
+ -74.0894775390625,
+ 71.41646575927734,
+ -157.91323852539065,
+ 1
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ -0.7145451903343201,
+ -0.1154177337884903,
+ 0.6900028586387634,
+ 0,
+ -0.6522517800331116,
+ 0.4665486216545105,
+ -0.5974110960960388,
+ 0,
+ -0.25296807289123535,
+ -0.8769327998161316,
+ -0.4086515009403229,
+ 0,
+ 122.53109741210938,
+ 86.64814758300781,
+ -312.3133850097656,
+ 1
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ 0.8450329899787903,
+ 0.005398945417255163,
+ -0.5346869230270386,
+ 0,
+ -0.4710906744003296,
+ 0.4805830717086792,
+ -0.7396712303161621,
+ 0,
+ 0.25296804308891296,
+ 0.8769326210021973,
+ 0.4086519181728363,
+ 0,
+ -69.3792953491211,
+ 71.78133392333984,
+ -161.61203002929688,
+ 1
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ -0.7145451903343201,
+ -0.1154177337884903,
+ 0.6900028586387634,
+ 0,
+ -0.6522517800331116,
+ 0.4665486216545105,
+ -0.5974110960960388,
+ 0,
+ -0.25296807289123535,
+ -0.8769327998161316,
+ -0.4086515009403229,
+ 0,
+ 127.24127197265624,
+ 87.01302337646484,
+ -316.0121765136719,
+ 1
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ 0.8450329899787903,
+ 0.005398945417255163,
+ -0.5346869230270386,
+ 0,
+ -0.4710906744003296,
+ 0.4805830717086792,
+ -0.7396712303161621,
+ 0,
+ 0.25296804308891296,
+ 0.8769326210021973,
+ 0.4086519181728363,
+ 0,
+ -64.66907501220703,
+ 72.14624786376953,
+ -165.310791015625,
+ 1
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ -0.7145451903343201,
+ -0.1154177337884903,
+ 0.6900028586387634,
+ 0,
+ -0.6522517800331116,
+ 0.4665486216545105,
+ -0.5974110960960388,
+ 0,
+ -0.25296807289123535,
+ -0.8769327998161316,
+ -0.4086515009403229,
+ 0,
+ 131.9515380859375,
+ 87.37792205810547,
+ -319.7109680175781,
+ 1
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ 0.8450329899787903,
+ 0.005398945417255163,
+ -0.5346869230270386,
+ 0,
+ -0.4710906744003296,
+ 0.4805830717086792,
+ -0.7396712303161621,
+ 0,
+ 0.25296804308891296,
+ 0.8769326210021973,
+ 0.4086519181728363,
+ 0,
+ -59.958885192871094,
+ 72.5111312866211,
+ -169.00955200195312,
+ 1
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ -0.7145451903343201,
+ -0.1154177337884903,
+ 0.6900028586387634,
+ 0,
+ -0.6522517800331116,
+ 0.4665486216545105,
+ -0.5974110960960388,
+ 0,
+ -0.25296807289123535,
+ -0.8769327998161316,
+ -0.4086515009403229,
+ 0,
+ 136.66165161132812,
+ 87.74280548095703,
+ -323.4097595214844,
+ 1
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ 0.8450329899787903,
+ 0.005398945417255163,
+ -0.5346869230270386,
+ 0,
+ -0.4710906744003296,
+ 0.4805830717086792,
+ -0.7396712303161621,
+ 0,
+ 0.25296804308891296,
+ 0.8769326210021973,
+ 0.4086519181728363,
+ 0,
+ -55.24869537353516,
+ 72.87601470947266,
+ -172.70831298828125,
+ 1
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ -0.7145451903343201,
+ -0.1154177337884903,
+ 0.6900028586387634,
+ 0,
+ -0.6522517800331116,
+ 0.4665486216545105,
+ -0.5974110960960388,
+ 0,
+ -0.25296807289123535,
+ -0.8769327998161316,
+ -0.4086515009403229,
+ 0,
+ 141.37188720703125,
+ 88.10767364501953,
+ -327.1084899902344,
+ 1
+ ]
+ },
+ {
+ "mesh": 7,
+ "matrix": [
+ 0.7850325703620911,
+ 0.06081420928239823,
+ -0.6164620518684387,
+ 0,
+ -0.13561886548995972,
+ 0.9878994822502136,
+ -0.07524696737527847,
+ 0,
+ 0.6044265031814575,
+ 0.14267520606517792,
+ 0.7837808728218079,
+ 0,
+ -5.746735095977783,
+ -250.409912109375,
+ -86.68790435791016,
+ 1
+ ]
+ },
+ {
+ "mesh": 8,
+ "matrix": [
+ 0.785033106803894,
+ 0.06081344559788704,
+ -0.616461455821991,
+ 0,
+ -0.3681585192680359,
+ -0.7545340061187744,
+ -0.5432658195495605,
+ 0,
+ -0.4981790184974671,
+ 0.6534371972084045,
+ -0.569945216178894,
+ 0,
+ 34.187137603759766,
+ 252.666015625,
+ 65.06369018554688,
+ 1
+ ]
+ },
+ {
+ "children": [
+ 42,
+ 41,
+ 30
+ ],
+ "matrix": [
+ 0.4546822011470794,
+ 0.6541662216186523,
+ 0.604425847530365,
+ 0,
+ -0.8696396350860596,
+ 0.4726209044456482,
+ 0.14267593622207642,
+ 0,
+ -0.1923305094242096,
+ -0.5905048847198486,
+ 0.7837811708450317,
+ 0,
+ 91.87051391601564,
+ 80.63255310058594,
+ 166.26089477539065,
+ 1
+ ]
+ },
+ {
+ "children": [
+ 40,
+ 39,
+ 38,
+ 37,
+ 36,
+ 35,
+ 34,
+ 33,
+ 32,
+ 31
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ 0.8620702028274536,
+ -0.015319700352847576,
+ -0.506557285785675,
+ 0,
+ -0.4340354502201081,
+ 0.4936883449554444,
+ -0.7535814642906189,
+ 0,
+ 0.26162606477737427,
+ 0.8695039749145508,
+ 0.41894471645355225,
+ 0,
+ -77.39921569824219,
+ 74.49835205078125,
+ -159.90199279785156,
+ 1
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ -0.6893031001091003,
+ -0.13550062477588654,
+ 0.7116886973381042,
+ 0,
+ -0.6755834221839905,
+ 0.47497618198394775,
+ -0.5639013051986694,
+ 0,
+ -0.2616262137889862,
+ -0.8695039749145508,
+ -0.4189445376396179,
+ 0,
+ 115.9541015625,
+ 89.47693634033203,
+ -311.7364501953125,
+ 1
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ 0.8620702028274536,
+ -0.015319700352847576,
+ -0.506557285785675,
+ 0,
+ -0.4340354502201081,
+ 0.4936883449554444,
+ -0.7535814642906189,
+ 0,
+ 0.26162606477737427,
+ 0.8695039749145508,
+ 0.41894471645355225,
+ 0,
+ -71.11894989013672,
+ 74.98487091064453,
+ -164.83367919921875,
+ 1
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ -0.6893031001091003,
+ -0.13550062477588654,
+ 0.7116886973381042,
+ 0,
+ -0.6755834221839905,
+ 0.47497618198394775,
+ -0.5639013051986694,
+ 0,
+ -0.2616262137889862,
+ -0.8695039749145508,
+ -0.4189445376396179,
+ 0,
+ 122.234375,
+ 89.96346282958984,
+ -316.668212890625,
+ 1
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ 0.8620702028274536,
+ -0.015319700352847576,
+ -0.506557285785675,
+ 0,
+ -0.4340354502201081,
+ 0.4936883449554444,
+ -0.7535814642906189,
+ 0,
+ 0.26162606477737427,
+ 0.8695039749145508,
+ 0.41894471645355225,
+ 0,
+ -64.83870697021484,
+ 75.47139739990234,
+ -169.76536560058597,
+ 1
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ -0.6893031001091003,
+ -0.13550062477588654,
+ 0.7116886973381042,
+ 0,
+ -0.6755834221839905,
+ 0.47497618198394775,
+ -0.5639013051986694,
+ 0,
+ -0.2616262137889862,
+ -0.8695039749145508,
+ -0.4189445376396179,
+ 0,
+ 128.51461791992188,
+ 90.44998931884766,
+ -321.5999145507813,
+ 1
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ 0.8620702028274536,
+ -0.015319700352847576,
+ -0.506557285785675,
+ 0,
+ -0.4340354502201081,
+ 0.4936883449554444,
+ -0.7535814642906189,
+ 0,
+ 0.26162606477737427,
+ 0.8695039749145508,
+ 0.41894471645355225,
+ 0,
+ -58.558441162109375,
+ 75.9579086303711,
+ -174.6970672607422,
+ 1
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ -0.6893031001091003,
+ -0.13550062477588654,
+ 0.7116886973381042,
+ 0,
+ -0.6755834221839905,
+ 0.47497618198394775,
+ -0.5639013051986694,
+ 0,
+ -0.2616262137889862,
+ -0.8695039749145508,
+ -0.4189445376396179,
+ 0,
+ 134.79489135742188,
+ 90.9365005493164,
+ -326.5315856933594,
+ 1
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ 0.8620702028274536,
+ -0.015319700352847576,
+ -0.506557285785675,
+ 0,
+ -0.4340354502201081,
+ 0.4936883449554444,
+ -0.7535814642906189,
+ 0,
+ 0.26162606477737427,
+ 0.8695039749145508,
+ 0.41894471645355225,
+ 0,
+ -52.27817535400391,
+ 76.44441223144531,
+ -179.62875366210938,
+ 1
+ ]
+ },
+ {
+ "mesh": 6,
+ "matrix": [
+ -0.6893031001091003,
+ -0.13550062477588654,
+ 0.7116886973381042,
+ 0,
+ -0.6755834221839905,
+ 0.47497618198394775,
+ -0.5639013051986694,
+ 0,
+ -0.2616262137889862,
+ -0.8695039749145508,
+ -0.4189445376396179,
+ 0,
+ 141.07516479492188,
+ 91.42301940917967,
+ -331.4632263183594,
+ 1
+ ]
+ },
+ {
+ "mesh": 7,
+ "matrix": [
+ 0.7850325703620911,
+ 0.06081420928239823,
+ -0.6164620518684387,
+ 0,
+ -0.13561886548995972,
+ 0.9878994822502136,
+ -0.07524696737527847,
+ 0,
+ 0.6044265031814575,
+ 0.14267520606517792,
+ 0.7837808728218079,
+ 0,
+ -1.248520016670227,
+ -250.06192016601565,
+ -90.22713470458984,
+ 1
+ ]
+ },
+ {
+ "mesh": 8,
+ "matrix": [
+ 0.7850322723388672,
+ 0.06081392988562584,
+ -0.6164625287055969,
+ 0,
+ -0.3924780488014221,
+ -0.7211048007011414,
+ -0.5709367990493774,
+ 0,
+ -0.4792549908161164,
+ 0.6901518106460571,
+ -0.5422223806381226,
+ 0,
+ 45.59693908691406,
+ 243.51312255859375,
+ 69.38878631591797,
+ 1
+ ]
+ },
+ {
+ "children": [
+ 55,
+ 54,
+ 49,
+ 44
+ ],
+ "matrix": [
+ 0.9999974370002748,
+ 0,
+ -0.0022710729390382767,
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ 0.0022710729390382767,
+ 0,
+ 0.9999974370002748,
+ 0,
+ -0.13409000635147095,
+ -12.999988555908203,
+ 0.12365700304508208,
+ 1
+ ]
+ },
+ {
+ "children": [
+ 48,
+ 47,
+ 46,
+ 45
+ ],
+ "matrix": [
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ -0.000007999999979801942,
+ -0.000011000000085914508,
+ -99.9995346069336,
+ 1
+ ]
+ },
+ {
+ "mesh": 9,
+ "matrix": [
+ 0.9999974370002748,
+ 0,
+ 0.002270043129101396,
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ -0.002270043129101396,
+ 0,
+ 0.9999974370002748,
+ 0,
+ 49.7321662902832,
+ 344.3533630371094,
+ 79.59915161132812,
+ 1
+ ]
+ },
+ {
+ "mesh": 10,
+ "matrix": [
+ 0.9999974370002748,
+ 1.0191530236923485e-13,
+ 0.0022699993569403887,
+ 0,
+ -1.0191530236923485e-13,
+ -1,
+ 8.97931243248884e-11,
+ 0,
+ 0.0022699993569403887,
+ -8.97931243248884e-11,
+ -0.9999974370002748,
+ 0,
+ 49.69811248779297,
+ 257.12298583984375,
+ 94.59911346435548,
+ 1
+ ]
+ },
+ {
+ "mesh": 11,
+ "matrix": [
+ 0.9986716508865356,
+ -4.959933574966158e-10,
+ -0.051525991410017014,
+ 0,
+ -0.051525991410017014,
+ -1.9239376314317272e-8,
+ -0.9986716508865356,
+ 0,
+ -4.959933574966158e-10,
+ 1,
+ -1.9239376314317272e-8,
+ 0,
+ 67.53964233398438,
+ 326.7381286621094,
+ 297.74066162109375,
+ 1
+ ]
+ },
+ {
+ "mesh": 11,
+ "matrix": [
+ 0.9986629486083984,
+ -1.884843170429917e-9,
+ -0.05169397220015526,
+ 0,
+ -0.05169397220015526,
+ -7.287438563707839e-8,
+ -0.9986629486083984,
+ 0,
+ -1.884843170429917e-9,
+ 1,
+ -7.287438563707839e-8,
+ 0,
+ 17.574960708618164,
+ 326.7381286621094,
+ 297.6291809082031,
+ 1
+ ]
+ },
+ {
+ "children": [
+ 53,
+ 52,
+ 51,
+ 50
+ ]
+ },
+ {
+ "mesh": 9,
+ "matrix": [
+ 0.9999974370002748,
+ 0,
+ 0.002270043129101396,
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ -0.002270043129101396,
+ 0,
+ 0.9999974370002748,
+ 0,
+ 49.50515365600586,
+ 344.3533630371094,
+ 79.59934997558594,
+ 1
+ ]
+ },
+ {
+ "mesh": 10,
+ "matrix": [
+ 0.9999974370002748,
+ 1.0191530236923485e-13,
+ 0.0022699993569403887,
+ 0,
+ -1.0191530236923485e-13,
+ -1,
+ 8.97931243248884e-11,
+ 0,
+ 0.0022699993569403887,
+ -8.97931243248884e-11,
+ -0.9999974370002748,
+ 0,
+ 49.47110366821289,
+ 257.1229553222656,
+ 94.59931182861328,
+ 1
+ ]
+ },
+ {
+ "mesh": 11,
+ "matrix": [
+ 0.9984543323516846,
+ -6.428584886641885e-10,
+ -0.05557801201939583,
+ 0,
+ -0.05557801201939583,
+ -2.311567648405344e-8,
+ -0.9984543323516846,
+ 0,
+ -6.428584886641885e-10,
+ 1,
+ -2.311567648405344e-8,
+ 0,
+ 68.16710662841797,
+ 326.7381286621094,
+ 297.7886657714844,
+ 1
+ ]
+ },
+ {
+ "mesh": 11,
+ "matrix": [
+ 0.998445212841034,
+ 5.507552747197052e-10,
+ -0.05574197694659233,
+ 0,
+ -0.05574197694659233,
+ 1.97455189976381e-8,
+ -0.998445212841034,
+ 0,
+ 5.507552747197052e-10,
+ 1,
+ 1.97455189976381e-8,
+ 0,
+ 18.201759338378906,
+ 326.7381286621094,
+ 297.6770324707031,
+ 1
+ ]
+ },
+ {
+ "mesh": 12,
+ "matrix": [
+ -0.9999873638153076,
+ -0.004487415309995413,
+ -0.0022699744440615177,
+ 0,
+ 0.004487401805818081,
+ -0.999989926815033,
+ 0.000011093182365584651,
+ 0,
+ -0.0022700014524161816,
+ 9.06754564766743e-7,
+ 0.9999974370002748,
+ 0,
+ -29.98022842407227,
+ 768.69921875,
+ -20.581327438354492,
+ 1
+ ]
+ },
+ {
+ "mesh": 12,
+ "matrix": [
+ -0.9999850392341614,
+ -0.004973169881850481,
+ -0.002269970485940576,
+ 0,
+ 0.004973156377673149,
+ -0.9999876618385316,
+ 0.00001164450713986298,
+ 0,
+ -0.0022700002882629637,
+ 3.554153522600245e-7,
+ 0.9999974370002748,
+ 0,
+ 48.794708251953125,
+ 768.6771850585938,
+ -20.40250396728516,
+ 1
+ ]
+ },
+ {
+ "mesh": 13,
+ "matrix": [
+ -0.8213930726051331,
+ 0.3830228745937348,
+ 0.4226191341876984,
+ 0,
+ -0.3830228745937348,
+ 0.17860689759254456,
+ -0.9063073992729188,
+ 0,
+ -0.4226191341876984,
+ -0.9063073992729188,
+ 4.807415265872805e-8,
+ 0,
+ -141.64085388183597,
+ 388.6727600097656,
+ 122.00779724121094,
+ 1
+ ]
+ },
+ {
+ "mesh": 13,
+ "matrix": [
+ -0.8213450312614441,
+ -0.38299909234046936,
+ 0.42273396253585815,
+ 0,
+ -0.38312679529190075,
+ -0.1786557286977768,
+ -0.9062538146972656,
+ 0,
+ 0.4226182401180268,
+ -0.906307816505432,
+ 7.823305168130901e-7,
+ 0,
+ -270.7940673828125,
+ 145.4340057373047,
+ 122.04411315917967,
+ 1
+ ]
+ },
+ {
+ "mesh": 14,
+ "matrix": [
+ 1,
+ -0.000060999998822808266,
+ -0.000001000000338535756,
+ 0,
+ 0.000001000000338535756,
+ 9.44896494381453e-10,
+ 1,
+ 0,
+ -0.000060999998822808266,
+ -1,
+ 1.0058964772241552e-9,
+ 0,
+ 51.087928771972656,
+ 325.7384033203125,
+ 91.09835815429688,
+ 1
+ ]
+ },
+ {
+ "mesh": 15,
+ "matrix": [
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 4.4896641959724086e-11,
+ -1,
+ 0,
+ 0,
+ 1,
+ 4.4896641959724086e-11,
+ 0,
+ 24.52630043029785,
+ 213.73817443847656,
+ 283.0735778808594,
+ 1
+ ]
+ },
+ {
+ "mesh": 16,
+ "matrix": [
+ 0.9026297926902772,
+ -0.4304177761077881,
+ 0,
+ 0,
+ 0.4304177761077881,
+ 0.9026297926902772,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ 353.9793395996094,
+ 330.9040222167969,
+ -5.389931201934815,
+ 1
+ ]
+ },
+ {
+ "mesh": 17,
+ "matrix": [
+ 0.9026297330856324,
+ 0.4304178953170777,
+ 0,
+ 0,
+ -0.4304178953170777,
+ 0.9026297330856324,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ 277.7611083984375,
+ 580.0806274414062,
+ -5.3898539543151855,
+ 1
+ ]
+ },
+ {
+ "mesh": 18,
+ "matrix": [
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 4.4896641959724086e-11,
+ 1,
+ 0,
+ 0,
+ -1,
+ 4.4896641959724086e-11,
+ 0,
+ 49.58733749389649,
+ 175.73818969726565,
+ 89.59835815429688,
+ 1
+ ]
+ },
+ {
+ "mesh": 19,
+ "matrix": [
+ 0.9999933242797852,
+ -1.649976856532565e-11,
+ 0.003653998486697674,
+ 0,
+ 0.003653998486697674,
+ 9.031045244967117e-9,
+ -0.9999933242797852,
+ 0,
+ -1.649976856532565e-11,
+ 1,
+ 9.031045244967117e-9,
+ 0,
+ 81.19497680664062,
+ 247.73817443847656,
+ 220.1460723876953,
+ 1
+ ]
+ },
+ {
+ "mesh": 19,
+ "matrix": [
+ 0.9999898672103882,
+ -4.353116391658807e-12,
+ -0.004497999791055918,
+ 0,
+ -0.004497999791055918,
+ -1.9355692604250407e-9,
+ -0.9999898672103882,
+ 0,
+ -4.353116391658807e-12,
+ 1,
+ -1.9355692604250407e-9,
+ 0,
+ -23.12494468688965,
+ 247.73817443847656,
+ 220.35459899902344,
+ 1
+ ]
+ },
+ {
+ "mesh": 20,
+ "matrix": [
+ -2.907086411596538e-7,
+ 0.7071071863174438,
+ -0.7071064114570618,
+ 0,
+ 7.018321639407077e-7,
+ -0.7071064114570618,
+ -0.7071071863174438,
+ 0,
+ -1,
+ -7.018321639407077e-7,
+ -2.907086411596538e-7,
+ 0,
+ 65,
+ 128.71702575683597,
+ -3.270524024963379,
+ 1
+ ]
+ },
+ {
+ "mesh": 21,
+ "matrix": [
+ 4.4896641959724086e-11,
+ 0,
+ -1,
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ 1,
+ 0,
+ 4.4896641959724086e-11,
+ 0,
+ 223.9999847412109,
+ 31.98792839050293,
+ 23.50873374938965,
+ 1
+ ]
+ },
+ {
+ "mesh": 22,
+ "matrix": [
+ 4.4896641959724086e-11,
+ 0,
+ -1,
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ 1,
+ 0,
+ 4.4896641959724086e-11,
+ 0,
+ 223.9999847412109,
+ 30.487924575805664,
+ 25.008731842041016,
+ 1
+ ]
+ },
+ {
+ "mesh": 23,
+ "matrix": [
+ 1.1084333451094608e-10,
+ -0.0009251347510144116,
+ -0.9999995827674866,
+ 0,
+ 2.396268712345773e-7,
+ -0.9999995827674866,
+ 0.0009251347510144116,
+ 0,
+ -1,
+ -2.396268712345773e-7,
+ 1.1084333451094608e-10,
+ 0,
+ -295,
+ 21.498876571655277,
+ 0.49255698919296265,
+ 1
+ ]
+ },
+ {
+ "mesh": 23,
+ "matrix": [
+ 5.062397168131838e-10,
+ 0.002356505487114191,
+ -0.9999971985816956,
+ 0,
+ -4.2965237412317947e-7,
+ -0.9999971985816956,
+ -0.002356505487114191,
+ 0,
+ -1,
+ 4.2965237412317947e-7,
+ 5.062397168131838e-10,
+ 0,
+ -295,
+ 21.60527801513672,
+ -105.32867431640624,
+ 1
+ ]
+ },
+ {
+ "mesh": 24,
+ "matrix": [
+ -1,
+ 6.349337028366264e-11,
+ 6.349337028366264e-11,
+ 0,
+ -6.349337028366264e-11,
+ -2.220446049250313e-16,
+ -1,
+ 0,
+ -6.349337028366264e-11,
+ -1,
+ -2.220446049250313e-16,
+ 0,
+ -126.93566131591795,
+ 0.000003000000106112566,
+ 36.558841705322266,
+ 1
+ ]
+ },
+ {
+ "mesh": 25,
+ "matrix": [
+ 1,
+ 0,
+ 0,
+ 0,
+ 0,
+ 4.4896641959724086e-11,
+ 1,
+ 0,
+ 0,
+ -1,
+ 4.4896641959724086e-11,
+ 0,
+ 126.93566131591795,
+ -0.00005299999975250103,
+ -36.5588493347168,
+ 1
+ ]
+ },
+ {
+ "mesh": 26
+ },
+ {
+ "mesh": 27,
+ "matrix": [
+ -0.9861037135124208,
+ 0.16613073647022247,
+ 0,
+ 0,
+ -0.16613073647022247,
+ -0.9861037135124208,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ -71.01806640625,
+ -22.193012237548828,
+ -20,
+ 1
+ ]
+ },
+ {
+ "mesh": 27,
+ "matrix": [
+ 0.9861037135124208,
+ -0.16613082587718964,
+ 0,
+ 0,
+ 0.16613082587718964,
+ 0.9861037135124208,
+ 0,
+ 0,
+ 0,
+ 0,
+ 1,
+ 0,
+ 71.01806640625,
+ 22.19301414489746,
+ 22,
+ 1
+ ]
+ },
+ {
+ "mesh": 28,
+ "matrix": [
+ 4.4896641959724086e-11,
+ 0,
+ 1,
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ -1,
+ 0,
+ 4.4896641959724086e-11,
+ 0,
+ -100,
+ -66.15117645263672,
+ -5.627896785736084,
+ 1
+ ]
+ },
+ {
+ "mesh": 28,
+ "matrix": [
+ 4.4896641959724086e-11,
+ 0,
+ 1,
+ 0,
+ 0,
+ 1,
+ 0,
+ 0,
+ -1,
+ 0,
+ 4.4896641959724086e-11,
+ 0,
+ -100,
+ -66.15116882324219,
+ 14.372098922729492,
+ 1
+ ]
+ },
+ {
+ "mesh": 28,
+ "matrix": [
+ -2.220446049250313e-16,
+ 6.349337028366264e-11,
+ 1,
+ 0,
+ -6.349337028366264e-11,
+ -1,
+ 6.349337028366264e-11,
+ 0,
+ 1,
+ -6.349337028366264e-11,
+ -2.220446049250313e-16,
+ 0,
+ 100,
+ -133.8488311767578,
+ 34.37212753295899,
+ 1
+ ]
+ },
+ {
+ "mesh": 28,
+ "matrix": [
+ -2.220446049250313e-16,
+ 6.349337028366264e-11,
+ 1,
+ 0,
+ -6.349337028366264e-11,
+ -1,
+ 6.349337028366264e-11,
+ 0,
+ 1,
+ -6.349337028366264e-11,
+ -2.220446049250313e-16,
+ 0,
+ 100,
+ -133.8488311767578,
+ 54.37212371826172,
+ 1
+ ]
+ },
+ {
+ "mesh": 23,
+ "matrix": [
+ 5.062397168131838e-10,
+ 0.002356505487114191,
+ -0.9999971985816956,
+ 0,
+ -4.2965237412317947e-7,
+ -0.9999971985816956,
+ -0.002356505487114191,
+ 0,
+ -1,
+ 4.2965237412317947e-7,
+ 5.062397168131838e-10,
+ 0,
+ -295,
+ 123.80779266357422,
+ -100.10150146484376,
+ 1
+ ]
+ },
+ {
+ "mesh": 23,
+ "matrix": [
+ 5.062397168131838e-10,
+ 0.002356505487114191,
+ -0.9999971985816956,
+ 0,
+ -4.2965237412317947e-7,
+ -0.9999971985816956,
+ -0.002356505487114191,
+ 0,
+ -1,
+ 4.2965237412317947e-7,
+ 5.062397168131838e-10,
+ 0,
+ -295,
+ 132.1395263671875,
+ -3.9833459854125977,
+ 1
+ ]
+ },
+ {
+ "matrix": [
+ 0.7071067690849304,
+ -2.1563657526257887e-7,
+ -0.7071068286895752,
+ 0,
+ -0.3312943577766419,
+ 0.883452296257019,
+ -0.33129459619522095,
+ 0,
+ 0.6246951818466187,
+ 0.4685211479663849,
+ 0.6246950030326843,
+ 0,
+ 1005.9874267578124,
+ 766.3170776367188,
+ 953.3455810546876,
+ 1
+ ],
+ "camera": 0
+ }
+ ],
+ "cameras": [
+ {
+ "perspective": {
+ "aspectRatio": 1,
+ "yfov": 0.3143463730812073,
+ "zfar": 1000000,
+ "znear": 0.04999999701976776
+ },
+ "type": "perspective"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 1,
+ "POSITION": 2
+ },
+ "indices": 0,
+ "mode": 4,
+ "material": 0,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 0,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ },
+ {
+ "attributes": {
+ "NORMAL": 4,
+ "POSITION": 5
+ },
+ "indices": 3,
+ "mode": 4,
+ "material": 1,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 1,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "Piston_123-844_0_Parts_1"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 7,
+ "POSITION": 8
+ },
+ "indices": 6,
+ "mode": 4,
+ "material": 2,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 2,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_24"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 10,
+ "POSITION": 11
+ },
+ "indices": 9,
+ "mode": 4,
+ "material": 3,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 3,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_23"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 13,
+ "POSITION": 14
+ },
+ "indices": 12,
+ "mode": 4,
+ "material": 4,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 4,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_22"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 16,
+ "POSITION": 17
+ },
+ "indices": 15,
+ "mode": 4,
+ "material": 5,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 5,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_21"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 19,
+ "POSITION": 20
+ },
+ "indices": 18,
+ "mode": 4,
+ "material": 6,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 6,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_20"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 22,
+ "POSITION": 23
+ },
+ "indices": 21,
+ "mode": 4,
+ "material": 7,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 7,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ },
+ {
+ "attributes": {
+ "NORMAL": 25,
+ "POSITION": 26
+ },
+ "indices": 24,
+ "mode": 4,
+ "material": 8,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 8,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ },
+ {
+ "attributes": {
+ "NORMAL": 28,
+ "POSITION": 29
+ },
+ "indices": 27,
+ "mode": 4,
+ "material": 9,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 9,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "Spring_Link__0_Parts_1"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 31,
+ "POSITION": 32
+ },
+ "indices": 30,
+ "mode": 4,
+ "material": 10,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 10,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_19"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 34,
+ "POSITION": 35
+ },
+ "indices": 33,
+ "mode": 4,
+ "material": 11,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 11,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_18"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 37,
+ "POSITION": 38
+ },
+ "indices": 36,
+ "mode": 4,
+ "material": 12,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 12,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_17"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 40,
+ "POSITION": 41
+ },
+ "indices": 39,
+ "mode": 4,
+ "material": 13,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 13,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_16"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 43,
+ "POSITION": 44
+ },
+ "indices": 42,
+ "mode": 4,
+ "material": 14,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 14,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_15"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 46,
+ "POSITION": 47
+ },
+ "indices": 45,
+ "mode": 4,
+ "material": 15,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 15,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_14"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 49,
+ "POSITION": 50
+ },
+ "indices": 48,
+ "mode": 4,
+ "material": 16,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 16,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_13"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 52,
+ "POSITION": 53
+ },
+ "indices": 51,
+ "mode": 4,
+ "material": 17,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 17,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_12"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 55,
+ "POSITION": 56
+ },
+ "indices": 54,
+ "mode": 4,
+ "material": 18,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 18,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_11"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 58,
+ "POSITION": 59
+ },
+ "indices": 57,
+ "mode": 4,
+ "material": 19,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 19,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_10"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 61,
+ "POSITION": 62
+ },
+ "indices": 60,
+ "mode": 4,
+ "material": 20,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 20,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_9"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 64,
+ "POSITION": 65
+ },
+ "indices": 63,
+ "mode": 4,
+ "material": 21,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 21,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_8"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 67,
+ "POSITION": 68
+ },
+ "indices": 66,
+ "mode": 4,
+ "material": 22,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 22,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_7"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 70,
+ "POSITION": 71
+ },
+ "indices": 69,
+ "mode": 4,
+ "material": 23,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 23,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_6"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 73,
+ "POSITION": 74
+ },
+ "indices": 72,
+ "mode": 4,
+ "material": 24,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 24,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_5"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 76,
+ "POSITION": 77
+ },
+ "indices": 75,
+ "mode": 4,
+ "material": 25,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 25,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_4"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 79,
+ "POSITION": 80
+ },
+ "indices": 78,
+ "mode": 4,
+ "material": 26,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 26,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 82,
+ "POSITION": 83
+ },
+ "indices": 81,
+ "mode": 4,
+ "material": 27,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 27,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_3"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 85,
+ "POSITION": 86
+ },
+ "indices": 84,
+ "mode": 4,
+ "material": 28,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 28,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_2"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 88,
+ "POSITION": 89
+ },
+ "indices": 87,
+ "mode": 4,
+ "material": 29,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 29,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "body_1"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 91,
+ "POSITION": 92
+ },
+ "indices": 90,
+ "mode": 4,
+ "material": 30,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 30,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ },
+ {
+ "attributes": {
+ "NORMAL": 94,
+ "POSITION": 95
+ },
+ "indices": 93,
+ "mode": 4,
+ "material": 31,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 31,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "rod_123-699_0_Parts_1"
+ },
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 97,
+ "POSITION": 98
+ },
+ "indices": 96,
+ "mode": 4,
+ "material": 32,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 32,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ },
+ {
+ "attributes": {
+ "NORMAL": 100,
+ "POSITION": 101
+ },
+ "indices": 99,
+ "mode": 4,
+ "material": 33,
+ "extensions": {
+ "KHR_draco_mesh_compression": {
+ "bufferView": 33,
+ "attributes": {
+ "NORMAL": 0,
+ "POSITION": 1
+ }
+ }
+ }
+ }
+ ],
+ "name": "Lifter_123-923_0_Parts_1"
+ }
+ ],
+ "accessors": [
+ {
+ "componentType": 5123,
+ "count": 8250,
+ "max": [
+ 2011
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 2019,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 2019,
+ "max": [
+ 63.40448572208197,
+ 56.08839293136558,
+ 46.562239366912465
+ ],
+ "min": [
+ -43.18272974063667,
+ -37.02586557437691,
+ -46.552019138830026
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 5034,
+ "max": [
+ 1295
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 1296,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.0085841421987496
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.0071021323110545
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 1296,
+ "max": [
+ 53.40421474812726,
+ 56.071585904462886,
+ 46.48897622932617
+ ],
+ "min": [
+ 31.823853243486322,
+ -37.01927877555665,
+ -46.51102377067383
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 792,
+ "max": [
+ 263
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 264,
+ "max": [
+ 1.007843137254902,
+ 1.0085841421987496,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.0071021323110545,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 264,
+ "max": [
+ -242.44321321264732,
+ 107.60525894351395,
+ 85.04152418172936
+ ],
+ "min": [
+ -264.53407789266686,
+ 85.55591844522377,
+ -0.04152418172936004
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 1530,
+ "max": [
+ 669
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 670,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 670,
+ "max": [
+ 36.0150846938826,
+ 35.77556925980009,
+ 10.029517132302988
+ ],
+ "min": [
+ -36.0150846938826,
+ -36.008523414585724,
+ -15.035153816197054
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 5640,
+ "max": [
+ 1552
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 1553,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 1553,
+ "max": [
+ 63.07857825014145,
+ 35.09330727894479,
+ 113.6238397655105
+ ],
+ "min": [
+ -63.114142805061284,
+ -35.1238397655105,
+ -140.1238397655105
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 7716,
+ "max": [
+ 2469
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 2470,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 2470,
+ "max": [
+ 69.04801049765925,
+ -31.053647338091963,
+ 10.071605568696185
+ ],
+ "min": [
+ -69.04801049765925,
+ -168.94747796592097,
+ -15.067396789163162
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 4098,
+ "max": [
+ 1381
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 1382,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 1382,
+ "max": [
+ 177.51338138775995,
+ -14.20547458143659,
+ 19.069568473767465
+ ],
+ "min": [
+ -76.2342905064123,
+ -55.691794778873245,
+ -19.19691791730097
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 123,
+ "max": [
+ 42
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 43,
+ "max": [
+ 0.9906806646608843,
+ 1.0070963205075736,
+ 0.01101498323328376
+ ],
+ "min": [
+ -1.0078373254514208,
+ -1.0070963205075734,
+ -1.0078373254514208
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 43,
+ "max": [
+ 131.15477841018057,
+ -35.545531343237386,
+ 5.002442598925256
+ ],
+ "min": [
+ 129.4474017614263,
+ -37.25290799199166,
+ -0.002442598925256473
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 123,
+ "max": [
+ 42
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 43,
+ "max": [
+ 1.0070963205075736,
+ 1.0088496505045428,
+ 0.01101498323328376
+ ],
+ "min": [
+ -1.0070963205075734,
+ -0.9896683396077623,
+ -1.0078373254514208
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 43,
+ "max": [
+ 131.1979414917052,
+ -61.503653814691305,
+ 5.002442598925256
+ ],
+ "min": [
+ 129.40507388056693,
+ -63.29652142582955,
+ -0.002442598925256473
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 4842,
+ "max": [
+ 869
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 870,
+ "max": [
+ 1.007843137254902,
+ 1.0085841421987496,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.0071021323110545,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 870,
+ "max": [
+ 132.31635282932984,
+ -34.386640562682715,
+ 15.020499208466157
+ ],
+ "min": [
+ 128.28646279779014,
+ -64.4129848340458,
+ -0.014654145569235276
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 870,
+ "max": [
+ 293
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 294,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.0085841421987496
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.0071021323110545
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 294,
+ "max": [
+ 181.61274291738744,
+ 312.1717225425583,
+ 18.017225856249894
+ ],
+ "min": [
+ 71.50526092782741,
+ 276.06033752694856,
+ -18.040421979277088
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 1860,
+ "max": [
+ 623
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 624,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.0085841421987496
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.0071021323110545
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 624,
+ "max": [
+ 211.18447328091366,
+ 300.2211685217935,
+ 15.996206279842227
+ ],
+ "min": [
+ 202.14881133660492,
+ 268.18990325555023,
+ -16.003793720157773
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 1140,
+ "max": [
+ 407
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 408,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 408,
+ "max": [
+ 54.5927169438275,
+ -38.58734297088489,
+ 15.041035661944308
+ ],
+ "min": [
+ -44.50400997361265,
+ -80.66355205735289,
+ -0.04836345872007816
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 972,
+ "max": [
+ 339
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 340,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 340,
+ "max": [
+ 54.5927169438275,
+ -48.557050929514446,
+ 15.041035661944308
+ ],
+ "min": [
+ -44.50400997361265,
+ -61.66354824265562,
+ -0.04836345872007816
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 924,
+ "max": [
+ 323
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 324,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 324,
+ "max": [
+ 30.590223082694763,
+ 217.20610309520697,
+ 0.03957010258915261
+ ],
+ "min": [
+ 15.514013996226764,
+ 202.12989400873897,
+ -81.03957010258915
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 276,
+ "max": [
+ 95
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 96,
+ "max": [
+ 1.007843137254902,
+ 1.0085841421987496,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.0071021323110545,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 96,
+ "max": [
+ -36.645295939331355,
+ 469.697984852905,
+ 115.05618740840252
+ ],
+ "min": [
+ -49.735184448197465,
+ 456.60809634403887,
+ -0.056179779008009044
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 1044,
+ "max": [
+ 347
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 348,
+ "max": [
+ 1.007843137254902,
+ 1.0085841421987496,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.0071021323110545,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 348,
+ "max": [
+ -278.36243962379683,
+ -55.606046437168914,
+ 65.03175378602833
+ ],
+ "min": [
+ -296.43034387391896,
+ -73.64219690126271,
+ -0.03175378602833415
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 4956,
+ "max": [
+ 1408
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 1413,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 1413,
+ "max": [
+ 105.10791280622533,
+ 60.12821201982295,
+ 75.09822780246203
+ ],
+ "min": [
+ -98.09043386335424,
+ -124.12875631208472,
+ 2.208630534457648
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 8016,
+ "max": [
+ 1939
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 1942,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 1942,
+ "max": [
+ 40.90842442589384,
+ 233.18429666620733,
+ 70.04825886669074
+ ],
+ "min": [
+ 19.24019328174675,
+ 214.74940959034052,
+ -28.834158982657552
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 9060,
+ "max": [
+ 1753
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 1755,
+ "max": [
+ 1.007843137254902,
+ 1.0078551177885018,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007831156721302,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 1755,
+ "max": [
+ -252.50384356000683,
+ -164.048902242313,
+ 85.04152418172936
+ ],
+ "min": [
+ -330.486256847745,
+ -199.21988416708095,
+ -0.04152418172936004
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 9036,
+ "max": [
+ 1748
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 1750,
+ "max": [
+ 1.007843137254902,
+ 1.0078551177885018,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007831156721302,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 1750,
+ "max": [
+ -248.42355181196,
+ -164.048902242313,
+ 85.04152418172936
+ ],
+ "min": [
+ -326.40596509969816,
+ -199.21988416708095,
+ -0.04152418172936004
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 17556,
+ "max": [
+ 5473
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 5481,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 5481,
+ "max": [
+ 113.11425593030935,
+ 59.855536590859444,
+ 0.1265035907873937
+ ],
+ "min": [
+ -103.09678461683279,
+ -120.79517176282887,
+ -82.49587061536795
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 1080,
+ "max": [
+ 371
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 372,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 372,
+ "max": [
+ 37.66338539496246,
+ 226.16108321770844,
+ 0.01221434663549914
+ ],
+ "min": [
+ 13.639934536067813,
+ 202.1610813103598,
+ -17.011724475773008
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 672,
+ "max": [
+ 239
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 240,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 240,
+ "max": [
+ -25.825387825194838,
+ 156.20804847317555,
+ 0.11235955801600994
+ ],
+ "min": [
+ -189.08382562246916,
+ -7.050389324098782,
+ -230.1123748168051
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 4974,
+ "max": [
+ 1413
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 1417,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 1417,
+ "max": [
+ 105.10791280622533,
+ 60.12821201982295,
+ 147.79042774791185
+ ],
+ "min": [
+ -98.09043386335424,
+ -124.12875631208472,
+ 74.90083047990748
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 17094,
+ "max": [
+ 5363
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 5370,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 5370,
+ "max": [
+ 113.11425593030935,
+ 59.855536590859444,
+ 82.51410393259917
+ ],
+ "min": [
+ -103.09678461683279,
+ -120.79517176282887,
+ -0.10827027355617846
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 564,
+ "max": [
+ 191
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 192,
+ "max": [
+ 1.007843137254902,
+ 1.0085841421987496,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.0071021323110545,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 192,
+ "max": [
+ -25.82539396188174,
+ 81.21283311941708,
+ 0.11235955801600994
+ ],
+ "min": [
+ -39.083821807771876,
+ 67.95440527352694,
+ -230.1123748168051
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 27684,
+ "max": [
+ 8617
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 8618,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 8618,
+ "max": [
+ 99.19769106530887,
+ 151.65165664419408,
+ 80.1123499066642
+ ],
+ "min": [
+ -62.028483884184325,
+ -38.53396941885229,
+ -80.09281875356908
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 27684,
+ "max": [
+ 8617
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 8618,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 8618,
+ "max": [
+ 99.19769106530887,
+ 151.65165664419408,
+ 80.1123499066642
+ ],
+ "min": [
+ -62.028483884184325,
+ -38.53396941885229,
+ -80.09281875356908
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 14874,
+ "max": [
+ 3671
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 3677,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 3677,
+ "max": [
+ 95.09045272998597,
+ 90.13237496708217,
+ 113.11231703168892
+ ],
+ "min": [
+ -95.13237496708216,
+ -181.10393258426967,
+ -120.13237496708216
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 3903,
+ "max": [
+ 1280
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 1289,
+ "max": [
+ 1.007843137254902,
+ 1.007843137254902,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.007843137254902,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 1289,
+ "max": [
+ 111.14250709746136,
+ 30.73910905421507,
+ 10.093795798729847
+ ],
+ "min": [
+ -71.0353141042973,
+ -43.41233207915083,
+ -10.088910600879336
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 960,
+ "max": [
+ 179
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 180,
+ "max": [
+ 1.007843137254902,
+ 1.0085841421987496,
+ 1.007843137254902
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.0071021323110545,
+ -1.007843137254902
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 180,
+ "max": [
+ 76.1074352818812,
+ 2.5916090654523174,
+ 7.037701616068263
+ ],
+ "min": [
+ -11.853575761922698,
+ -15.223822649129728,
+ -7.042928751119475
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 423,
+ "max": [
+ 142
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 143,
+ "max": [
+ 1.007843137254902,
+ 1.0085841421987496,
+ 1.011764705882353
+ ],
+ "min": [
+ -1.007843137254902,
+ -1.0071021323110545,
+ -0.00784313725490196
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 143,
+ "max": [
+ -16.588934008994798,
+ -26.062883441367845,
+ 0.03972677911964695
+ ],
+ "min": [
+ -32.16183142389504,
+ -41.635780856268084,
+ -81.3604436370298
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5123,
+ "count": 2163,
+ "max": [
+ 385
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "componentType": 5126,
+ "count": 386,
+ "max": [
+ 0.782551365740159,
+ 0.7822283681701212,
+ -0.6225824215832878
+ ],
+ "min": [
+ -0.7819053706000832,
+ -0.7822283681701211,
+ -1.0060873802970438
+ ],
+ "type": "VEC3"
+ },
+ {
+ "componentType": 5126,
+ "count": 386,
+ "max": [
+ -16.616233825683587,
+ -26.091251526102532,
+ -81.31242564601553
+ ],
+ "min": [
+ -32.123733367696296,
+ -41.60632308937599,
+ -85.00757202126074
+ ],
+ "type": "VEC3"
+ }
+ ],
+ "materials": [
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_20",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0,
+ 0,
+ 0,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_21",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.5609999895095825,
+ 0,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_17",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.5609999895095825,
+ 0,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_17",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0,
+ 0.42500001192092896,
+ 0.42500001192092896,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_22",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.5609999895095825,
+ 0,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_17",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0,
+ 0.42500001192092896,
+ 0.42500001192092896,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_22",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.5609999895095825,
+ 0,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_17",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0,
+ 0,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_18",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0,
+ 0.5609999895095825,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_23",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0,
+ 0,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_16",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0,
+ 0,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_16",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_20",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_20",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0,
+ 0,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_16",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0,
+ 0,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_16",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.5609999895095825,
+ 0,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_17",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0,
+ 0.5609999895095825,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_23",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_20",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.5609999895095825,
+ 0,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_17",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.5609999895095825,
+ 0,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_17",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_20",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0,
+ 0,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_16",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0,
+ 0.42500001192092896,
+ 0.42500001192092896,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_22",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0,
+ 0.5609999895095825,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_23",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_20",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0,
+ 0,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_16",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_20",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_20",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_20",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_19",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 0.8500000238418579,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_20",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0.5609999895095825,
+ 0,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_17",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ },
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.8500000238418579,
+ 0,
+ 0,
+ 1
+ ],
+ "metallicFactor": 0,
+ "roughnessFactor": 1
+ },
+ "emissiveFactor": [
+ 0,
+ 0,
+ 0
+ ],
+ "name": "Material_18",
+ "alphaMode": "OPAQUE",
+ "doubleSided": false
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteOffset": 0,
+ "byteLength": 7048
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 7048,
+ "byteLength": 3418
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 10468,
+ "byteLength": 749
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 11220,
+ "byteLength": 1576
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 12796,
+ "byteLength": 4477
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 17276,
+ "byteLength": 6111
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 23388,
+ "byteLength": 3514
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 26904,
+ "byteLength": 296
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 27200,
+ "byteLength": 298
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 27500,
+ "byteLength": 2063
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 29564,
+ "byteLength": 879
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 30444,
+ "byteLength": 1716
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 32160,
+ "byteLength": 1119
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 33280,
+ "byteLength": 936
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 34216,
+ "byteLength": 839
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 35056,
+ "byteLength": 352
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 35408,
+ "byteLength": 984
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 36392,
+ "byteLength": 4746
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 41140,
+ "byteLength": 4936
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 46076,
+ "byteLength": 6002
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 52080,
+ "byteLength": 5976
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 58056,
+ "byteLength": 14759
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 72816,
+ "byteLength": 1052
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 73868,
+ "byteLength": 690
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 74560,
+ "byteLength": 4754
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 79316,
+ "byteLength": 14406
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 93724,
+ "byteLength": 494
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 94220,
+ "byteLength": 21649
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 115872,
+ "byteLength": 21709
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 137584,
+ "byteLength": 11596
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 149180,
+ "byteLength": 3313
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 152496,
+ "byteLength": 936
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 153432,
+ "byteLength": 419
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 153852,
+ "byteLength": 1540
+ }
+ ],
+ "buffers": [
+ {
+ "name": "2CylinderEngine",
+ "byteLength": 155392,
+ "uri": "2CylinderEngine.bin"
+ }
+ ],
+ "extensionsRequired": [
+ "KHR_draco_mesh_compression"
+ ],
+ "extensionsUsed": [
+ "KHR_draco_mesh_compression"
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/LICENSE b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/LICENSE
new file mode 100644
index 0000000..7b7a04a
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2017 Gary Hsu
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_00.bin b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_00.bin
new file mode 100644
index 0000000..29c7c4b
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_00.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_00.gltf b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_00.gltf
new file mode 100644
index 0000000..9057ee6
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_00.gltf
@@ -0,0 +1,63 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 1024,
+ "type": "VEC3",
+ "max": [
+ 0.5,
+ 0.5,
+ 0.0
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ 0.0
+ ],
+ "name": "Positions Accessor"
+ }
+ ],
+ "asset": {
+ "generator": "glTF Asset Generator",
+ "version": "2.0"
+ },
+ "buffers": [
+ {
+ "uri": "Mesh_PrimitiveMode_00.bin",
+ "byteLength": 12288
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 12288,
+ "name": "Positions"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0
+ },
+ "mode": 0
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_01.bin b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_01.bin
new file mode 100644
index 0000000..6e4a705
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_01.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_01.gltf b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_01.gltf
new file mode 100644
index 0000000..67de045
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_01.gltf
@@ -0,0 +1,63 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 8,
+ "type": "VEC3",
+ "max": [
+ 0.5,
+ 0.5,
+ 0.0
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ 0.0
+ ],
+ "name": "Positions Accessor"
+ }
+ ],
+ "asset": {
+ "generator": "glTF Asset Generator",
+ "version": "2.0"
+ },
+ "buffers": [
+ {
+ "uri": "Mesh_PrimitiveMode_01.bin",
+ "byteLength": 96
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 96,
+ "name": "Positions"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0
+ },
+ "mode": 1
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_02.bin b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_02.bin
new file mode 100644
index 0000000..6394c88
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_02.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_02.gltf b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_02.gltf
new file mode 100644
index 0000000..c97d415
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_02.gltf
@@ -0,0 +1,63 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 4,
+ "type": "VEC3",
+ "max": [
+ 0.5,
+ 0.5,
+ 0.0
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ 0.0
+ ],
+ "name": "Positions Accessor"
+ }
+ ],
+ "asset": {
+ "generator": "glTF Asset Generator",
+ "version": "2.0"
+ },
+ "buffers": [
+ {
+ "uri": "Mesh_PrimitiveMode_02.bin",
+ "byteLength": 48
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 48,
+ "name": "Positions"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0
+ },
+ "mode": 2
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_03.bin b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_03.bin
new file mode 100644
index 0000000..d2ae892
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_03.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_03.gltf b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_03.gltf
new file mode 100644
index 0000000..ec8f336
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_03.gltf
@@ -0,0 +1,63 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 5,
+ "type": "VEC3",
+ "max": [
+ 0.5,
+ 0.5,
+ 0.0
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ 0.0
+ ],
+ "name": "Positions Accessor"
+ }
+ ],
+ "asset": {
+ "generator": "glTF Asset Generator",
+ "version": "2.0"
+ },
+ "buffers": [
+ {
+ "uri": "Mesh_PrimitiveMode_03.bin",
+ "byteLength": 60
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 60,
+ "name": "Positions"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0
+ },
+ "mode": 3
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_04.bin b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_04.bin
new file mode 100644
index 0000000..a2e5d56
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_04.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_04.gltf b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_04.gltf
new file mode 100644
index 0000000..917f0a9
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_04.gltf
@@ -0,0 +1,63 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 4,
+ "type": "VEC3",
+ "max": [
+ 0.5,
+ 0.5,
+ 0.0
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ 0.0
+ ],
+ "name": "Positions Accessor"
+ }
+ ],
+ "asset": {
+ "generator": "glTF Asset Generator",
+ "version": "2.0"
+ },
+ "buffers": [
+ {
+ "uri": "Mesh_PrimitiveMode_04.bin",
+ "byteLength": 48
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 48,
+ "name": "Positions"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0
+ },
+ "mode": 5
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_05.bin b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_05.bin
new file mode 100644
index 0000000..c16679d
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_05.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_05.gltf b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_05.gltf
new file mode 100644
index 0000000..b4f6546
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_05.gltf
@@ -0,0 +1,63 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 4,
+ "type": "VEC3",
+ "max": [
+ 0.5,
+ 0.5,
+ 0.0
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ 0.0
+ ],
+ "name": "Positions Accessor"
+ }
+ ],
+ "asset": {
+ "generator": "glTF Asset Generator",
+ "version": "2.0"
+ },
+ "buffers": [
+ {
+ "uri": "Mesh_PrimitiveMode_05.bin",
+ "byteLength": 48
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 48,
+ "name": "Positions"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0
+ },
+ "mode": 6
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_06.bin b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_06.bin
new file mode 100644
index 0000000..867693d
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_06.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_06.gltf b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_06.gltf
new file mode 100644
index 0000000..42bd319
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_06.gltf
@@ -0,0 +1,62 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 6,
+ "type": "VEC3",
+ "max": [
+ 0.5,
+ 0.5,
+ 0.0
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ 0.0
+ ],
+ "name": "Positions Accessor"
+ }
+ ],
+ "asset": {
+ "generator": "glTF Asset Generator",
+ "version": "2.0"
+ },
+ "buffers": [
+ {
+ "uri": "Mesh_PrimitiveMode_06.bin",
+ "byteLength": 72
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 72,
+ "name": "Positions"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0
+ }
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_07.bin b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_07.bin
new file mode 100644
index 0000000..cfc7d5d
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_07.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_07.gltf b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_07.gltf
new file mode 100644
index 0000000..8007422
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_07.gltf
@@ -0,0 +1,77 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 1024,
+ "type": "VEC3",
+ "max": [
+ 0.5,
+ 0.5,
+ 0.0
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ 0.0
+ ],
+ "name": "Positions Accessor"
+ },
+ {
+ "bufferView": 1,
+ "componentType": 5125,
+ "count": 1024,
+ "type": "SCALAR",
+ "name": "Indices Accessor"
+ }
+ ],
+ "asset": {
+ "generator": "glTF Asset Generator",
+ "version": "2.0"
+ },
+ "buffers": [
+ {
+ "uri": "Mesh_PrimitiveMode_07.bin",
+ "byteLength": 16384
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 12288,
+ "name": "Positions"
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 12288,
+ "byteLength": 4096,
+ "name": "Indices"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0
+ },
+ "indices": 1,
+ "mode": 0
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_08.bin b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_08.bin
new file mode 100644
index 0000000..77d730d
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_08.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_08.gltf b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_08.gltf
new file mode 100644
index 0000000..2a951b1
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_08.gltf
@@ -0,0 +1,77 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 4,
+ "type": "VEC3",
+ "max": [
+ 0.5,
+ 0.5,
+ 0.0
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ 0.0
+ ],
+ "name": "Positions Accessor"
+ },
+ {
+ "bufferView": 1,
+ "componentType": 5125,
+ "count": 8,
+ "type": "SCALAR",
+ "name": "Indices Accessor"
+ }
+ ],
+ "asset": {
+ "generator": "glTF Asset Generator",
+ "version": "2.0"
+ },
+ "buffers": [
+ {
+ "uri": "Mesh_PrimitiveMode_08.bin",
+ "byteLength": 80
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 48,
+ "name": "Positions"
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 48,
+ "byteLength": 32,
+ "name": "Indices"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0
+ },
+ "indices": 1,
+ "mode": 1
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_09.bin b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_09.bin
new file mode 100644
index 0000000..b828a7a
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_09.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_09.gltf b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_09.gltf
new file mode 100644
index 0000000..12cec56
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_09.gltf
@@ -0,0 +1,77 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 4,
+ "type": "VEC3",
+ "max": [
+ 0.5,
+ 0.5,
+ 0.0
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ 0.0
+ ],
+ "name": "Positions Accessor"
+ },
+ {
+ "bufferView": 1,
+ "componentType": 5125,
+ "count": 4,
+ "type": "SCALAR",
+ "name": "Indices Accessor"
+ }
+ ],
+ "asset": {
+ "generator": "glTF Asset Generator",
+ "version": "2.0"
+ },
+ "buffers": [
+ {
+ "uri": "Mesh_PrimitiveMode_09.bin",
+ "byteLength": 64
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 48,
+ "name": "Positions"
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 48,
+ "byteLength": 16,
+ "name": "Indices"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0
+ },
+ "indices": 1,
+ "mode": 2
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_10.bin b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_10.bin
new file mode 100644
index 0000000..eb4e3f8
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_10.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_10.gltf b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_10.gltf
new file mode 100644
index 0000000..1ca4afb
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_10.gltf
@@ -0,0 +1,77 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 4,
+ "type": "VEC3",
+ "max": [
+ 0.5,
+ 0.5,
+ 0.0
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ 0.0
+ ],
+ "name": "Positions Accessor"
+ },
+ {
+ "bufferView": 1,
+ "componentType": 5125,
+ "count": 5,
+ "type": "SCALAR",
+ "name": "Indices Accessor"
+ }
+ ],
+ "asset": {
+ "generator": "glTF Asset Generator",
+ "version": "2.0"
+ },
+ "buffers": [
+ {
+ "uri": "Mesh_PrimitiveMode_10.bin",
+ "byteLength": 68
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 48,
+ "name": "Positions"
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 48,
+ "byteLength": 20,
+ "name": "Indices"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0
+ },
+ "indices": 1,
+ "mode": 3
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_11.bin b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_11.bin
new file mode 100644
index 0000000..cf641b2
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_11.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_11.gltf b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_11.gltf
new file mode 100644
index 0000000..43c87da
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_11.gltf
@@ -0,0 +1,77 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 4,
+ "type": "VEC3",
+ "max": [
+ 0.5,
+ 0.5,
+ 0.0
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ 0.0
+ ],
+ "name": "Positions Accessor"
+ },
+ {
+ "bufferView": 1,
+ "componentType": 5125,
+ "count": 4,
+ "type": "SCALAR",
+ "name": "Indices Accessor"
+ }
+ ],
+ "asset": {
+ "generator": "glTF Asset Generator",
+ "version": "2.0"
+ },
+ "buffers": [
+ {
+ "uri": "Mesh_PrimitiveMode_11.bin",
+ "byteLength": 64
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 48,
+ "name": "Positions"
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 48,
+ "byteLength": 16,
+ "name": "Indices"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0
+ },
+ "indices": 1,
+ "mode": 5
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_12.bin b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_12.bin
new file mode 100644
index 0000000..f0a45dc
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_12.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_12.gltf b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_12.gltf
new file mode 100644
index 0000000..3e8ca50
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_12.gltf
@@ -0,0 +1,77 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 4,
+ "type": "VEC3",
+ "max": [
+ 0.5,
+ 0.5,
+ 0.0
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ 0.0
+ ],
+ "name": "Positions Accessor"
+ },
+ {
+ "bufferView": 1,
+ "componentType": 5125,
+ "count": 4,
+ "type": "SCALAR",
+ "name": "Indices Accessor"
+ }
+ ],
+ "asset": {
+ "generator": "glTF Asset Generator",
+ "version": "2.0"
+ },
+ "buffers": [
+ {
+ "uri": "Mesh_PrimitiveMode_12.bin",
+ "byteLength": 64
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 48,
+ "name": "Positions"
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 48,
+ "byteLength": 16,
+ "name": "Indices"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0
+ },
+ "indices": 1,
+ "mode": 6
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_13.bin b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_13.bin
new file mode 100644
index 0000000..c3bea4f
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_13.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_13.gltf b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_13.gltf
new file mode 100644
index 0000000..4408895
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_13.gltf
@@ -0,0 +1,76 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 4,
+ "type": "VEC3",
+ "max": [
+ 0.5,
+ 0.5,
+ 0.0
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ 0.0
+ ],
+ "name": "Positions Accessor"
+ },
+ {
+ "bufferView": 1,
+ "componentType": 5125,
+ "count": 6,
+ "type": "SCALAR",
+ "name": "Indices Accessor"
+ }
+ ],
+ "asset": {
+ "generator": "glTF Asset Generator",
+ "version": "2.0"
+ },
+ "buffers": [
+ {
+ "uri": "Mesh_PrimitiveMode_13.bin",
+ "byteLength": 72
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 48,
+ "name": "Positions"
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 48,
+ "byteLength": 24,
+ "name": "Indices"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0
+ },
+ "indices": 1
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_14.bin b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_14.bin
new file mode 100644
index 0000000..e25c8cd
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_14.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_14.gltf b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_14.gltf
new file mode 100644
index 0000000..7994e64
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_14.gltf
@@ -0,0 +1,76 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 4,
+ "type": "VEC3",
+ "max": [
+ 0.5,
+ 0.5,
+ 0.0
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ 0.0
+ ],
+ "name": "Positions Accessor"
+ },
+ {
+ "bufferView": 1,
+ "componentType": 5121,
+ "count": 6,
+ "type": "SCALAR",
+ "name": "Indices Accessor"
+ }
+ ],
+ "asset": {
+ "generator": "glTF Asset Generator",
+ "version": "2.0"
+ },
+ "buffers": [
+ {
+ "uri": "Mesh_PrimitiveMode_14.bin",
+ "byteLength": 54
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 48,
+ "name": "Positions"
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 48,
+ "byteLength": 6,
+ "name": "Indices"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0
+ },
+ "indices": 1
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_15.bin b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_15.bin
new file mode 100644
index 0000000..9968347
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_15.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_15.gltf b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_15.gltf
new file mode 100644
index 0000000..ff2df27
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/Mesh_PrimitiveMode_15.gltf
@@ -0,0 +1,76 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 4,
+ "type": "VEC3",
+ "max": [
+ 0.5,
+ 0.5,
+ 0.0
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ 0.0
+ ],
+ "name": "Positions Accessor"
+ },
+ {
+ "bufferView": 1,
+ "componentType": 5123,
+ "count": 6,
+ "type": "SCALAR",
+ "name": "Indices Accessor"
+ }
+ ],
+ "asset": {
+ "generator": "glTF Asset Generator",
+ "version": "2.0"
+ },
+ "buffers": [
+ {
+ "uri": "Mesh_PrimitiveMode_15.bin",
+ "byteLength": 60
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 48,
+ "name": "Positions"
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 48,
+ "byteLength": 12,
+ "name": "Indices"
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0
+ },
+ "indices": 1
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/README.md b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/README.md
new file mode 100644
index 0000000..0e4707e
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Asset-Generator/Mesh_PrimitiveMode/README.md
@@ -0,0 +1,33 @@
+These models are intended to test indices, vertexes without indices, and using mode to render different primitive types.
+
+All values of Byte, Short, and Int are unsigned.
+
+All model indices relate to vertices as shown by the Indices figure below, except for models using Points Mode:
+
+| Indices | Indices (For Points Mode) |
+| :---: | :---: |
+| <img src="Figures/Indices.png" height="144" width="144" align="middle"> | <img src="Figures/Indices_Points.png" height="144" width="144" align="middle"> |
+
+<br>
+
+The following table shows the properties that are set for a given model.
+
+| | Sample Image | Mode | Indices Values | Indices Component Type |
+| :---: | :---: | :---: | :---: | :---: |
+| [00](Mesh_PrimitiveMode_00.gltf)<br>[View](https://bghgary.github.io/glTF-Assets-Viewer/?folder=12&model=0) | [<img src="Figures/Thumbnails/Mesh_PrimitiveMode_00.png" align="middle">](Figures/SampleImages/Mesh_PrimitiveMode_00.png) | Points | | |
+| [01](Mesh_PrimitiveMode_01.gltf)<br>[View](https://bghgary.github.io/glTF-Assets-Viewer/?folder=12&model=1) | [<img src="Figures/Thumbnails/Mesh_PrimitiveMode_01.png" align="middle">](Figures/SampleImages/Mesh_PrimitiveMode_01.png) | Lines | | |
+| [02](Mesh_PrimitiveMode_02.gltf)<br>[View](https://bghgary.github.io/glTF-Assets-Viewer/?folder=12&model=2) | [<img src="Figures/Thumbnails/Mesh_PrimitiveMode_02.png" align="middle">](Figures/SampleImages/Mesh_PrimitiveMode_02.png) | Line Loop | | |
+| [03](Mesh_PrimitiveMode_03.gltf)<br>[View](https://bghgary.github.io/glTF-Assets-Viewer/?folder=12&model=3) | [<img src="Figures/Thumbnails/Mesh_PrimitiveMode_03.png" align="middle">](Figures/SampleImages/Mesh_PrimitiveMode_03.png) | Line Strip | | |
+| [04](Mesh_PrimitiveMode_04.gltf)<br>[View](https://bghgary.github.io/glTF-Assets-Viewer/?folder=12&model=4) | [<img src="Figures/Thumbnails/Mesh_PrimitiveMode_04.png" align="middle">](Figures/SampleImages/Mesh_PrimitiveMode_04.png) | Triangle Strip | | |
+| [05](Mesh_PrimitiveMode_05.gltf)<br>[View](https://bghgary.github.io/glTF-Assets-Viewer/?folder=12&model=5) | [<img src="Figures/Thumbnails/Mesh_PrimitiveMode_05.png" align="middle">](Figures/SampleImages/Mesh_PrimitiveMode_05.png) | Triangle Fan | | |
+| [06](Mesh_PrimitiveMode_06.gltf)<br>[View](https://bghgary.github.io/glTF-Assets-Viewer/?folder=12&model=6) | [<img src="Figures/Thumbnails/Mesh_PrimitiveMode_06.png" align="middle">](Figures/SampleImages/Mesh_PrimitiveMode_06.png) | Triangles | | |
+| [07](Mesh_PrimitiveMode_07.gltf)<br>[View](https://bghgary.github.io/glTF-Assets-Viewer/?folder=12&model=7) | [<img src="Figures/Thumbnails/Mesh_PrimitiveMode_07.png" align="middle">](Figures/SampleImages/Mesh_PrimitiveMode_07.png) | Points | [0 - 1023] | Int |
+| [08](Mesh_PrimitiveMode_08.gltf)<br>[View](https://bghgary.github.io/glTF-Assets-Viewer/?folder=12&model=8) | [<img src="Figures/Thumbnails/Mesh_PrimitiveMode_08.png" align="middle">](Figures/SampleImages/Mesh_PrimitiveMode_08.png) | Lines | [0, 3, 3, 2, 2, 1, 1, 0] | Int |
+| [09](Mesh_PrimitiveMode_09.gltf)<br>[View](https://bghgary.github.io/glTF-Assets-Viewer/?folder=12&model=9) | [<img src="Figures/Thumbnails/Mesh_PrimitiveMode_09.png" align="middle">](Figures/SampleImages/Mesh_PrimitiveMode_09.png) | Line Loop | [0, 3, 2, 1] | Int |
+| [10](Mesh_PrimitiveMode_10.gltf)<br>[View](https://bghgary.github.io/glTF-Assets-Viewer/?folder=12&model=10) | [<img src="Figures/Thumbnails/Mesh_PrimitiveMode_10.png" align="middle">](Figures/SampleImages/Mesh_PrimitiveMode_10.png) | Line Strip | [0, 3, 2, 1, 0] | Int |
+| [11](Mesh_PrimitiveMode_11.gltf)<br>[View](https://bghgary.github.io/glTF-Assets-Viewer/?folder=12&model=11) | [<img src="Figures/Thumbnails/Mesh_PrimitiveMode_11.png" align="middle">](Figures/SampleImages/Mesh_PrimitiveMode_11.png) | Triangle Strip | [0, 3, 1, 2] | Int |
+| [12](Mesh_PrimitiveMode_12.gltf)<br>[View](https://bghgary.github.io/glTF-Assets-Viewer/?folder=12&model=12) | [<img src="Figures/Thumbnails/Mesh_PrimitiveMode_12.png" align="middle">](Figures/SampleImages/Mesh_PrimitiveMode_12.png) | Triangle Fan | [0, 3, 2, 1] | Int |
+| [13](Mesh_PrimitiveMode_13.gltf)<br>[View](https://bghgary.github.io/glTF-Assets-Viewer/?folder=12&model=13) | [<img src="Figures/Thumbnails/Mesh_PrimitiveMode_13.png" align="middle">](Figures/SampleImages/Mesh_PrimitiveMode_13.png) | Triangles | [1, 0, 3, 1, 3, 2] | Int |
+| [14](Mesh_PrimitiveMode_14.gltf)<br>[View](https://bghgary.github.io/glTF-Assets-Viewer/?folder=12&model=14) | [<img src="Figures/Thumbnails/Mesh_PrimitiveMode_14.png" align="middle">](Figures/SampleImages/Mesh_PrimitiveMode_14.png) | Triangles | [1, 0, 3, 1, 3, 2] | Byte |
+| [15](Mesh_PrimitiveMode_15.gltf)<br>[View](https://bghgary.github.io/glTF-Assets-Viewer/?folder=12&model=15) | [<img src="Figures/Thumbnails/Mesh_PrimitiveMode_15.png" align="middle">](Figures/SampleImages/Mesh_PrimitiveMode_15.png) | Triangles | [1, 0, 3, 1, 3, 2] | Short |
+
diff --git a/libs/assimp/test/models/glTF2/glTF-Sample-Models/AnimatedMorphCube-glTF/AnimatedMorphCube.bin b/libs/assimp/test/models/glTF2/glTF-Sample-Models/AnimatedMorphCube-glTF/AnimatedMorphCube.bin
new file mode 100644
index 0000000..7b14a17
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Sample-Models/AnimatedMorphCube-glTF/AnimatedMorphCube.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/glTF-Sample-Models/AnimatedMorphCube-glTF/AnimatedMorphCube.gltf b/libs/assimp/test/models/glTF2/glTF-Sample-Models/AnimatedMorphCube-glTF/AnimatedMorphCube.gltf
new file mode 100644
index 0000000..b1b7201
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/glTF-Sample-Models/AnimatedMorphCube-glTF/AnimatedMorphCube.gltf
@@ -0,0 +1,282 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 24,
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 1,
+ "componentType": 5126,
+ "count": 24,
+ "type": "VEC4"
+ },
+ {
+ "bufferView": 2,
+ "componentType": 5126,
+ "count": 24,
+ "type": "VEC3",
+ "max": [
+ 0.0100000035,
+ 0.0100000035,
+ 0.01
+ ],
+ "min": [
+ -0.0100000044,
+ -0.0100000054,
+ -0.01
+ ]
+ },
+ {
+ "bufferView": 3,
+ "componentType": 5126,
+ "count": 24,
+ "type": "VEC3",
+ "name": "thin"
+ },
+ {
+ "bufferView": 4,
+ "componentType": 5126,
+ "count": 24,
+ "type": "VEC3",
+ "max": [
+ 0.0,
+ 0.01893253,
+ 0.0
+ ],
+ "min": [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "name": "thin"
+ },
+ {
+ "bufferView": 5,
+ "componentType": 5126,
+ "count": 24,
+ "type": "VEC3",
+ "name": "thin"
+ },
+ {
+ "bufferView": 6,
+ "componentType": 5126,
+ "count": 24,
+ "type": "VEC3",
+ "name": "angle"
+ },
+ {
+ "bufferView": 7,
+ "componentType": 5126,
+ "count": 24,
+ "type": "VEC3",
+ "max": [
+ 0.0,
+ 0.0198908355,
+ 0.0
+ ],
+ "min": [
+ 0.0,
+ 0.0,
+ 0.0
+ ],
+ "name": "angle"
+ },
+ {
+ "bufferView": 8,
+ "componentType": 5126,
+ "count": 24,
+ "type": "VEC3",
+ "name": "angle"
+ },
+ {
+ "bufferView": 9,
+ "componentType": 5123,
+ "count": 36,
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 10,
+ "componentType": 5126,
+ "count": 127,
+ "type": "SCALAR",
+ "max": [
+ 4.19999743
+ ],
+ "min": [
+ 0.0
+ ]
+ },
+ {
+ "bufferView": 11,
+ "componentType": 5126,
+ "count": 254,
+ "type": "SCALAR"
+ }
+ ],
+ "animations": [
+ {
+ "channels": [
+ {
+ "sampler": 0,
+ "target": {
+ "node": 0,
+ "path": "weights"
+ }
+ }
+ ],
+ "samplers": [
+ {
+ "input": 10,
+ "interpolation": "LINEAR",
+ "output": 11
+ }
+ ],
+ "name": "Square"
+ }
+ ],
+ "asset": {
+ "generator": "glTF Tools for Unity",
+ "version": "2.0"
+ },
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 288
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 288,
+ "byteLength": 384
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 672,
+ "byteLength": 288
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 960,
+ "byteLength": 288
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 1248,
+ "byteLength": 288
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 1536,
+ "byteLength": 288
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 1824,
+ "byteLength": 288
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 2112,
+ "byteLength": 288
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 2400,
+ "byteLength": 288
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 2688,
+ "byteLength": 72
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 2760,
+ "byteLength": 508
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 3268,
+ "byteLength": 1016
+ }
+ ],
+ "buffers": [
+ {
+ "uri": "AnimatedMorphCube.bin",
+ "byteLength": 4284
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 0,
+ "TANGENT": 1,
+ "POSITION": 2
+ },
+ "indices": 9,
+ "material": 0,
+ "targets": [
+ {
+ "NORMAL": 3,
+ "POSITION": 4,
+ "TANGENT": 5
+ },
+ {
+ "NORMAL": 6,
+ "POSITION": 7,
+ "TANGENT": 8
+ }
+ ]
+ }
+ ],
+ "weights": [
+ 0.0,
+ 0.0
+ ],
+ "name": "Cube"
+ }
+ ],
+ "materials": [
+ {
+ "pbrMetallicRoughness": {
+ "baseColorFactor": [
+ 0.6038274,
+ 0.6038274,
+ 0.6038274,
+ 1.0
+ ],
+ "metallicFactor": 0.0,
+ "roughnessFactor": 0.5
+ },
+ "name": "Material"
+ }
+ ],
+ "nodes": [
+ {
+ "mesh": 0,
+ "rotation": [
+ 0.0,
+ 0.7071067,
+ -0.7071068,
+ 0.0
+ ],
+ "scale": [
+ 100.0,
+ 100.0,
+ 100.0
+ ],
+ "name": "AnimatedMorphCube"
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/issue_3269/texcoord_crash.gltf b/libs/assimp/test/models/glTF2/issue_3269/texcoord_crash.gltf
new file mode 100644
index 0000000..bc5d13f
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/issue_3269/texcoord_crash.gltf
@@ -0,0 +1,610 @@
+{
+ "accessors" : [
+ {
+ "bufferView" : 0,
+ "componentType" : 5121,
+ "count" : 6,
+ "max" : [
+ 3
+ ],
+ "min" : [
+ 0
+ ],
+ "type" : "SCALAR"
+ },
+ {
+ "bufferView" : 1,
+ "componentType" : 5126,
+ "count" : 4,
+ "max" : [
+ 1.2000000476837158,
+ 1.2000001668930054,
+ -5.205485820169997e-08
+ ],
+ "min" : [
+ 0.19999980926513672,
+ 0.20000004768371582,
+ -1.5933926533762133e-07
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 2,
+ "componentType" : 5126,
+ "count" : 4,
+ "max" : [
+ -2.1316282072803006e-14,
+ 1.0728441424134871e-07,
+ 1.0
+ ],
+ "min" : [
+ -2.1316282072803006e-14,
+ 1.0728441424134871e-07,
+ 1.0
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "name": "TopRight_TEXCOORD_0",
+ "bufferView" : 3,
+ "componentType" : 5126,
+ "count" : 4,
+ "max" : [
+ 1.0,
+ 0.3999999761581421
+ ],
+ "min" : [
+ 0.6000000238418579,
+ 0.0
+ ],
+ "type" : "VEC2"
+ },
+ {
+ "bufferView" : 4,
+ "componentType" : 5121,
+ "count" : 6,
+ "max" : [
+ 3
+ ],
+ "min" : [
+ 0
+ ],
+ "type" : "SCALAR"
+ },
+ {
+ "bufferView" : 5,
+ "componentType" : 5126,
+ "count" : 4,
+ "max" : [
+ -0.20000006258487701,
+ 1.2000000476837158,
+ 1.2601539367551595e-07
+ ],
+ "min" : [
+ -1.2000001668930054,
+ 0.19999974966049194,
+ -3.3740951721483725e-07
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 6,
+ "componentType" : 5126,
+ "count" : 4,
+ "max" : [
+ 1.7807019503379706e-07,
+ 2.853547016457014e-07,
+ 1.0
+ ],
+ "min" : [
+ 1.7807019503379706e-07,
+ 2.853547016457014e-07,
+ 1.0
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "name": "TopLeft_TEXCOORD_0",
+ "bufferView" : 7,
+ "componentType" : 5126,
+ "count" : 4,
+ "max" : [
+ 0.3999999463558197,
+ 0.3999999761581421
+ ],
+ "min" : [
+ 7.915305388905836e-08,
+ 0.0
+ ],
+ "type" : "VEC2"
+ },
+ {
+ "bufferView" : 8,
+ "componentType" : 5121,
+ "count" : 6,
+ "max" : [
+ 3
+ ],
+ "min" : [
+ 0
+ ],
+ "type" : "SCALAR"
+ },
+ {
+ "bufferView" : 9,
+ "componentType" : 5126,
+ "count" : 4,
+ "max" : [
+ 1.2000001668930054,
+ -0.1999996304512024,
+ 5.255118367131217e-07
+ ],
+ "min" : [
+ 0.2000000923871994,
+ -1.2000000476837158,
+ 6.20869826661874e-08
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 10,
+ "componentType" : 5126,
+ "count" : 4,
+ "max" : [
+ -1.7807025187721592e-07,
+ 2.853545879588637e-07,
+ 1.0
+ ],
+ "min" : [
+ -1.7807025187721592e-07,
+ 2.853545879588637e-07,
+ 1.0
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "name": "BottomRight_TEXCOORD_0",
+ "bufferView" : 11,
+ "componentType" : 5126,
+ "count" : 4,
+ "max" : [
+ 0.9999998807907104,
+ 1.0
+ ],
+ "min" : [
+ 0.6000000834465027,
+ 0.599999874830246
+ ],
+ "type" : "VEC2"
+ },
+ {
+ "bufferView" : 12,
+ "componentType" : 5121,
+ "count" : 6,
+ "max" : [
+ 3
+ ],
+ "min" : [
+ 0
+ ],
+ "type" : "SCALAR"
+ },
+ {
+ "bufferView" : 13,
+ "componentType" : 5126,
+ "count" : 4,
+ "max" : [
+ 1.0000001192092896,
+ 1.0000001192092896,
+ -0.052591003477573395
+ ],
+ "min" : [
+ -1.0000001192092896,
+ -1.0000001192092896,
+ -0.05259115248918533
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 14,
+ "componentType" : 5126,
+ "count" : 4,
+ "max" : [
+ 1.0658142730467397e-14,
+ -7.450581307466564e-08,
+ -1.0
+ ],
+ "min" : [
+ 1.0658142730467397e-14,
+ -7.450581307466564e-08,
+ -1.0
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 15,
+ "componentType" : 5121,
+ "count" : 6,
+ "max" : [
+ 3
+ ],
+ "min" : [
+ 0
+ ],
+ "type" : "SCALAR"
+ },
+ {
+ "bufferView" : 16,
+ "componentType" : 5126,
+ "count" : 4,
+ "max" : [
+ -0.19999969005584717,
+ -0.2000000774860382,
+ 5.255118367131217e-07
+ ],
+ "min" : [
+ -1.2000000476837158,
+ -1.2000001668930054,
+ 6.208701108789683e-08
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "bufferView" : 17,
+ "componentType" : 5126,
+ "count" : 4,
+ "max" : [
+ -8.526512829121202e-14,
+ 4.6342486825778906e-07,
+ 1.0
+ ],
+ "min" : [
+ -8.526512829121202e-14,
+ 4.6342486825778906e-07,
+ 1.0
+ ],
+ "type" : "VEC3"
+ },
+ {
+ "name": "BottomLeft_TEXCOORD_0",
+ "bufferView" : 18,
+ "componentType" : 5126,
+ "count" : 4,
+ "max" : [
+ 0.40000009536743164,
+ 0.9999999208469248
+ ],
+ "min" : [
+ 0.0,
+ 0.6000000536441803
+ ],
+ "type" : "VEC2"
+ }
+ ],
+ "asset" : {
+ "copyright" : "Copyright 2017-2018 Analytical Graphics, Inc., CC-BY 4.0 https://creativecommons.org/licenses/by/4.0/ - Mesh and textures by Ed Mackey.",
+ "generator" : "Khronos Blender glTF 2.0 exporter, plus hand-edits",
+ "version" : "2.0"
+ },
+ "bufferViews" : [
+ {
+ "buffer" : 0,
+ "byteLength" : 6,
+ "byteOffset" : 0,
+ "target" : 34963
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 48,
+ "byteOffset" : 8,
+ "target" : 34962
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 48,
+ "byteOffset" : 56,
+ "target" : 34962
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 32,
+ "byteOffset" : 104,
+ "target" : 34962
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 6,
+ "byteOffset" : 136,
+ "target" : 34963
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 48,
+ "byteOffset" : 144,
+ "target" : 34962
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 48,
+ "byteOffset" : 192,
+ "target" : 34962
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 32,
+ "byteOffset" : 240,
+ "target" : 34962
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 6,
+ "byteOffset" : 272,
+ "target" : 34963
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 48,
+ "byteOffset" : 280,
+ "target" : 34962
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 48,
+ "byteOffset" : 328,
+ "target" : 34962
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 32,
+ "byteOffset" : 376,
+ "target" : 34962
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 6,
+ "byteOffset" : 408,
+ "target" : 34963
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 48,
+ "byteOffset" : 416,
+ "target" : 34962
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 48,
+ "byteOffset" : 464,
+ "target" : 34962
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 6,
+ "byteOffset" : 512,
+ "target" : 34963
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 48,
+ "byteOffset" : 520,
+ "target" : 34962
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 48,
+ "byteOffset" : 568,
+ "target" : 34962
+ },
+ {
+ "buffer" : 0,
+ "byteLength" : 32,
+ "byteOffset" : 616,
+ "target" : 34962
+ }
+ ],
+ "buffers" : [
+ {
+ "byteLength" : 648,
+ "uri" : "data:application/octet-stream;base64,AAECAwEAAACamZk/2sxMPuySX7PAzEw+mZmZP9gWK7TKzEw+0MxMPuySX7OYmZk/m5mZP9gWK7QAAMCoO2TmMwAAgD8AAMCoO2TmMwAAgD8AAMCoO2TmMwAAgD8AAMCoO2TmMwAAgD8AAIA/zMzMPpqZGT8AAAAAmpkZP8zMzD4AAIA/AAAAAAABAgMBAAAA0cxMvsnMTD7okl+zm5mZv5iZmT/aFiu0mZmZv7zMTD7ZTgc03sxMvpqZmT82JbW0kDM/NNoymTQAAIA/kDM/NNoymTQAAIA/kDM/NNoymTQAAIA/kDM/NNoymTQAAIA/y8zMPszMzD7a+qkzAAAAANr6qTPMzMw+y8zMPgAAAAAAAQIDAQAAAJuZmT+YmZm/5hANNdPMTD7HzEy+rlSFM+bMTD6amZm/Boi6NJmZmT+0zEy+8u6ANJQzP7TWMpk0AACAP5QzP7TWMpk0AACAP5QzP7TWMpk0AACAP5QzP7TWMpk0AACAP/3/fz8AAIA/m5kZP5iZGT+cmRk/AACAP/7/fz+YmRk/AAECAAMBAAABAIC//f9/P9JpV70BAIA//f9/v6ppV739/3+/AQCAv6ppV739/38/AQCAP9JpV70CAEAoAQCgswAAgL8CAEAoAQCgswAAgL8CAEAoAQCgswAAgL8CAEAoAQCgswAAgL8AAQIDAQAAALjMTL6ZmZm/5hANNZqZmb/izEy+uFSFM5iZmb+bmZm/5hANNcjMTL7SzEy+slSFMwAAwKmhzPg0AACAPwAAwKmhzPg0AACAPwAAwKmhzPg0AACAPwAAwKmhzPg0AACAP9DMzD7//38/AACAM5qZGT8AAAAA//9/P83MzD6amRk/"
+ }
+ ],
+ "images" : [
+ {
+ "uri" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4QYcDhkW4QlOQwAAHBNJREFUeNrt3XuMlNX9P/DP4u7OLkshVEGkgKyVWzTNsloTbYtGaIgmRGM1tRq1TbVSaqm2qdREwbSJoQlQGm9NiNSmCSyRRhNtm0YTTUyq1jWhtFDF2lKrqcKuCsJegfP74/vbDbC3mZ2Zvcy8Xslkk5lnn3l2zjPn8z7nuWxFSikFAFBWJvgIAEAAAAAEAABAAAAABAAAQAAAAAQAAEAAAAAEAABg9FRmu2BFRUVWy7mxIAAUXqHrcOVY/kOECQBKvWiPVq2rLPUPV4gAQH0pwQBQzAYWHgD08aWq0u5R2J1KaADQ7woADLrj2mkBfaO+UQCg3y+DLwKgP0MA4JQvlC8ToE9iuNwIqIS+hNleIwqgn0EAKPFU7ssK6EPot41TgedsCnmnokLcQCGf6ziHc/lILmepZnPyy2DH0Pqbeut5LqUUFRUVpuSAvPrznr6kv35msD4pm/4sl75xOP1uPn18IepLIWtdtusyA0BRdhZAH0LpcBKgLyyAfkUAwJcSQN8jAOCLBqC/EgDwZQHQ5wkA2MEB9KMCgJ0QAH21AGDHAEB9EAA0DgACxDgNAIW66xEAkFvdLHQNdidAAChDAgAACAAAgAAAAAgAAIAAAAAIAACAAAAAjFk53QgomxsMuFkQAORmNGqnGQAAKEMCAAAIAACAAAAACAAAgAAAAAgAAIAAAACMWZW5/sJQNytwkx8AyE0hbrSXa/01AwAAZUgAAAABAAAQAAAAAQAASklFRUVW/4lPAGDEHTt2LNatWxf19fWRyWRizpw5PhQg74KX7WO0ty+TycTnPve5uP7666O5uXlUC3iphYWKlON1A6N9GWCuH/5IX5bYs32Fet/169fHfffd1+dvKvT7AOUTAMZDH9qfqqqqeOaZZ+Lqq68uWJ+by++Pdr876pcBppQGfYy1NDnePfnkkxERsXXr1ujo6FDwgbz0129n89pobWdHR0f8/e9/j69//evR3d3d74CoVPrFoernUPU3VxPsvGPb/v37o6qqKr75zW9GJpPRewEjpru7OzZt2hSNjY1RV1cXdXV10djYGJs3b45jx471W7w+/PDDWLlyZcyYMSNqa2vjS1/6Urz22mvD3oZMJhMXXHBBPPLIIxERsW/fvn7f92Tt7e2xdu3aqK+vj6qqqpg7d2488MADMWnSpAEHou+++27ceuutMXXq1JgxY0bcdddd0dHR0e/ou2QGtqnAImLQRzEMtO6urq60cePGtHjx4jRx4sQ0ceLEtHjx4vSLX/widXd397uODz74IN15553p7LPPTjU1Nemyyy5Lr776at7bcrqdO3emZcuWpalTp6aqqqp07rnnptWrV6eWlpZBP8uhPmOAQvShXV1dadmyZQP2NcuXLz+lH+15fsqUKX2WraurS2+//XZefeg//vGPFBGpvr5+0OW7urrSV77ylaz7yZ7nzjzzzD7LrVu3LqvaNl7rZ8kGgLG2857sjjvuGHC75s+fnz755BMBABjVALBhw4YUEWn69OmpqakptbS0pJaWlrRt27Y0bdq0FBFp06ZNfdZx/fXXp1dffTW1t7en3bt3p8bGxhQR6dvf/vawtuXQoUPpxRdf7F3P2rVrB13+l7/8Ze92P/300+nw4cPp4MGDaefOnYMGgMsvvzzt2rUrHTp0KK1ZsyZFRJo3b96wBngCwCgHgLGy857uySefTBGRZs2alXbs2JEOHDiQ2traUnNzc7riiitSRKT77rtvyPUp+EAx+9CGhoYUEempp57qs3xTU1OKiLR48eIh+6SXX36535H7cGrIddddlzo6Ogbd9osvvjhFRNq+fXtWf2fPc8ePH+997sMPP0wRkTKZjAAwHgPAaO+8A7n00ktTRKTm5uY+r/33v/9NEZEWLVokAACjGgBqa2tTRKTW1tY+y7e0tKSISBMnThyyT/r0009TRKTq6uq8asj69euz2va6uroUEengwYM5BYCTdXd3Z73seK6fJXsfgLfeeisiIq688so+ry1btuyUZQbT0NAQERHvv/9+QbZr9+7dERFx8cUX9zmRZPbs2RER8e9//9vZR8CYOfE6m+cG0nMiXVVV1bBO+H700UcjImLz5s2xf//+IX+vq6srIiJqa2uH/TdXVlaWRdtOsPMWZ+cdyIkTJ7J+T4DRMn/+/IiIeP755/u89sILL0RExIIFC4Zcz0svvRQREYsWLRrWdqxatSruueee+OCDD+Kqq66Kjz76aNDlZ86cecpgqxg6OzvLNwCM5HWK433nPd3ChQsjIuKdd94pyOdUKjsiMLbccsst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"
+ }
+ ],
+ "materials" : [
+ {
+ "name" : "BackPlaneMat",
+ "doubleSided": true,
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0.16000001668930075,
+ 0.16000001668930075,
+ 0.16000001668930075,
+ 1.0
+ ],
+ "metallicFactor" : 0.0
+ }
+ },
+ {
+ "name" : "BottomLeftMat",
+ "doubleSided": true,
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0.0,
+ 0.16000000476837162,
+ 0.800000011920929,
+ 1.0
+ ],
+ "baseColorTexture" : {
+ "index" : 0
+ },
+ "metallicFactor" : 0.0
+ }
+ },
+ {
+ "name" : "BottomRightMat",
+ "doubleSided": true,
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0.0,
+ 0.800000011920929,
+ 0.0,
+ 1.0
+ ],
+ "baseColorTexture" : {
+ "index" : 0
+ },
+ "metallicFactor" : 0.0
+ }
+ },
+ {
+ "name" : "TopLeftMat",
+ "doubleSided": true,
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0.800000011920929,
+ 0.800000011920929,
+ 0.0,
+ 1.0
+ ],
+ "baseColorTexture" : {
+ "index" : 0
+ },
+ "metallicFactor" : 0.0
+ }
+ },
+ {
+ "name" : "TopRightMat",
+ "doubleSided": true,
+ "pbrMetallicRoughness" : {
+ "baseColorFactor" : [
+ 0.800000011920929,
+ 0.08000000238418581,
+ 0.0,
+ 1.0
+ ],
+ "baseColorTexture" : {
+ "index" : 0
+ },
+ "metallicFactor" : 0.0
+ }
+ }
+ ],
+ "meshes" : [
+ {
+ "name" : "TopRightMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "NORMAL" : 2,
+ "POSITION" : 1,
+ "TEXCOORD_1" : 3
+ },
+ "indices" : 0,
+ "material" : 4
+ }
+ ]
+ },
+ {
+ "name" : "TopLeftMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "NORMAL" : 6,
+ "POSITION" : 5,
+ "TEXCOORD_0" : 7
+ },
+ "indices" : 4,
+ "material" : 3
+ }
+ ]
+ },
+ {
+ "name" : "BottomRightMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "NORMAL" : 10,
+ "POSITION" : 9,
+ "TEXCOORD_0" : 11
+ },
+ "indices" : 8,
+ "material" : 2
+ }
+ ]
+ },
+ {
+ "name" : "BackPlaneMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "NORMAL" : 14,
+ "POSITION" : 13
+ },
+ "indices" : 12,
+ "material" : 0
+ }
+ ]
+ },
+ {
+ "name" : "BottomLeftMesh",
+ "primitives" : [
+ {
+ "attributes" : {
+ "NORMAL" : 17,
+ "POSITION" : 16,
+ "TEXCOORD_0" : 18
+ },
+ "indices" : 15,
+ "material" : 1
+ }
+ ]
+ }
+ ],
+ "nodes" : [
+ {
+ "mesh" : 3,
+ "name" : "BackPlane"
+ },
+ {
+ "mesh" : 4,
+ "name" : "BottomLeftObj"
+ },
+ {
+ "mesh" : 2,
+ "name" : "BottomRightObj"
+ },
+ {
+ "mesh" : 1,
+ "name" : "TopLeftObj"
+ },
+ {
+ "mesh" : 0,
+ "name" : "TopRightObj"
+ }
+ ],
+ "samplers" : [
+ {}
+ ],
+ "scene" : 0,
+ "scenes" : [
+ {
+ "name" : "Scene",
+ "nodes" : [
+ 0,
+ 2,
+ 1,
+ 4,
+ 3
+ ]
+ }
+ ],
+ "textures" : [
+ {
+ "sampler" : 0,
+ "source" : 0
+ }
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/simple_skin/simple_skin.gltf b/libs/assimp/test/models/glTF2/simple_skin/simple_skin.gltf
new file mode 100644
index 0000000..e075bb3
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/simple_skin/simple_skin.gltf
@@ -0,0 +1,148 @@
+{
+ "scenes" : [ {
+ "nodes" : [ 0 ]
+ } ],
+
+ "nodes" : [ {
+ "skin" : 0,
+ "mesh" : 0,
+ "children" : [ 1 ]
+ }, {
+ "children" : [ 2 ],
+ "translation" : [ 0.0, 1.0, 0.0 ]
+ }, {
+ "rotation" : [ 0.0, 0.0, 0.0, 1.0 ]
+ } ],
+
+ "meshes" : [ {
+ "primitives" : [ {
+ "attributes" : {
+ "POSITION" : 1,
+ "JOINTS_0" : 2,
+ "WEIGHTS_0" : 3
+ },
+ "indices" : 0
+ } ]
+ } ],
+
+ "skins" : [ {
+ "inverseBindMatrices" : 4,
+ "joints" : [ 1, 2 ]
+ } ],
+
+ "animations" : [ {
+ "channels" : [ {
+ "sampler" : 0,
+ "target" : {
+ "node" : 2,
+ "path" : "rotation"
+ }
+ } ],
+ "samplers" : [ {
+ "input" : 5,
+ "interpolation" : "LINEAR",
+ "output" : 6
+ } ]
+ } ],
+
+ "buffers" : [ {
+ "uri" : "data:application/gltf-buffer;base64,AAABAAMAAAADAAIAAgADAAUAAgAFAAQABAAFAAcABAAHAAYABgAHAAkABgAJAAgAAAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAAD8AAAAAAACAPwAAAD8AAAAAAAAAAAAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAwD8AAAAAAACAPwAAwD8AAAAAAAAAAAAAAEAAAAAAAACAPwAAAEAAAAAA",
+ "byteLength" : 168
+ }, {
+ "uri" : "data:application/gltf-buffer;base64,AAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAABAPwAAgD4AAAAAAAAAAAAAQD8AAIA+AAAAAAAAAAAAAAA/AAAAPwAAAAAAAAAAAAAAPwAAAD8AAAAAAAAAAAAAgD4AAEA/AAAAAAAAAAAAAIA+AABAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAA=",
+ "byteLength" : 320
+ }, {
+ "uri" : "data:application/gltf-buffer;base64,AACAPwAAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAvwAAgL8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAL8AAIC/AAAAAAAAgD8=",
+ "byteLength" : 128
+ }, {
+ "uri" : "data:application/gltf-buffer;base64,AAAAAAAAAD8AAIA/AADAPwAAAEAAACBAAABAQAAAYEAAAIBAAACQQAAAoEAAALBAAAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAkxjEPkSLbD8AAAAAAAAAAPT9ND/0/TQ/AAAAAAAAAAD0/TQ/9P00PwAAAAAAAAAAkxjEPkSLbD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAkxjEvkSLbD8AAAAAAAAAAPT9NL/0/TQ/AAAAAAAAAAD0/TS/9P00PwAAAAAAAAAAkxjEvkSLbD8AAAAAAAAAAAAAAAAAAIA/",
+ "byteLength" : 240
+ } ],
+
+ "bufferViews" : [ {
+ "buffer" : 0,
+ "byteOffset" : 0,
+ "byteLength" : 48,
+ "target" : 34963
+ }, {
+ "buffer" : 0,
+ "byteOffset" : 48,
+ "byteLength" : 120,
+ "target" : 34962
+ }, {
+ "buffer" : 1,
+ "byteOffset" : 0,
+ "byteLength" : 320,
+ "byteStride" : 16
+ }, {
+ "buffer" : 2,
+ "byteOffset" : 0,
+ "byteLength" : 128
+ }, {
+ "buffer" : 3,
+ "byteOffset" : 0,
+ "byteLength" : 240
+ } ],
+
+ "accessors" : [ {
+ "bufferView" : 0,
+ "byteOffset" : 0,
+ "componentType" : 5123,
+ "count" : 24,
+ "type" : "SCALAR",
+ "max" : [ 9 ],
+ "min" : [ 0 ]
+ }, {
+ "bufferView" : 1,
+ "byteOffset" : 0,
+ "componentType" : 5126,
+ "count" : 10,
+ "type" : "VEC3",
+ "max" : [ 1.0, 2.0, 0.0 ],
+ "min" : [ 0.0, 0.0, 0.0 ]
+ }, {
+ "bufferView" : 2,
+ "byteOffset" : 0,
+ "componentType" : 5123,
+ "count" : 10,
+ "type" : "VEC4",
+ "max" : [ 0, 1, 0, 0 ],
+ "min" : [ 0, 1, 0, 0 ]
+ }, {
+ "bufferView" : 2,
+ "byteOffset" : 160,
+ "componentType" : 5126,
+ "count" : 10,
+ "type" : "VEC4",
+ "max" : [ 1.0, 1.0, 0.0, 0.0 ],
+ "min" : [ 0.0, 0.0, 0.0, 0.0 ]
+ }, {
+ "bufferView" : 3,
+ "byteOffset" : 0,
+ "componentType" : 5126,
+ "count" : 2,
+ "type" : "MAT4",
+ "max" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -0.5, -1.0, 0.0, 1.0 ],
+ "min" : [ 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, -0.5, -1.0, 0.0, 1.0 ]
+ }, {
+ "bufferView" : 4,
+ "byteOffset" : 0,
+ "componentType" : 5126,
+ "count" : 12,
+ "type" : "SCALAR",
+ "max" : [ 5.5 ],
+ "min" : [ 0.0 ]
+ }, {
+ "bufferView" : 4,
+ "byteOffset" : 48,
+ "componentType" : 5126,
+ "count" : 12,
+ "type" : "VEC4",
+ "max" : [ 0.0, 0.0, 0.707, 1.0 ],
+ "min" : [ 0.0, 0.0, -0.707, 0.707 ]
+ } ],
+
+ "asset" : {
+ "version" : "2.0"
+ }
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/textureTransform/Arrow.png b/libs/assimp/test/models/glTF2/textureTransform/Arrow.png
new file mode 100644
index 0000000..fe3405b
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/textureTransform/Arrow.png
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/textureTransform/Correct.png b/libs/assimp/test/models/glTF2/textureTransform/Correct.png
new file mode 100644
index 0000000..e332824
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/textureTransform/Correct.png
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/textureTransform/Error.png b/libs/assimp/test/models/glTF2/textureTransform/Error.png
new file mode 100644
index 0000000..35acf6e
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/textureTransform/Error.png
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/textureTransform/License.txt b/libs/assimp/test/models/glTF2/textureTransform/License.txt
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/textureTransform/License.txt
diff --git a/libs/assimp/test/models/glTF2/textureTransform/NotSupported.png b/libs/assimp/test/models/glTF2/textureTransform/NotSupported.png
new file mode 100644
index 0000000..721e7fd
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/textureTransform/NotSupported.png
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/textureTransform/TextureTransformTest.bin b/libs/assimp/test/models/glTF2/textureTransform/TextureTransformTest.bin
new file mode 100644
index 0000000..6765a13
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/textureTransform/TextureTransformTest.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/textureTransform/TextureTransformTest.gltf b/libs/assimp/test/models/glTF2/textureTransform/TextureTransformTest.gltf
new file mode 100644
index 0000000..6dde51d
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/textureTransform/TextureTransformTest.gltf
@@ -0,0 +1,540 @@
+{
+ "accessors": [
+ {
+ "bufferView": 0,
+ "componentType": 5126,
+ "count": 4,
+ "type": "VEC3",
+ "max": [
+ 0.5,
+ 0.5,
+ 0.0
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ 0.0
+ ],
+ "name": "Positions"
+ },
+ {
+ "bufferView": 1,
+ "componentType": 5126,
+ "count": 4,
+ "type": "VEC2",
+ "name": "UV0"
+ },
+ {
+ "bufferView": 2,
+ "componentType": 5126,
+ "count": 4,
+ "type": "VEC2",
+ "name": "UV1"
+ },
+ {
+ "bufferView": 3,
+ "componentType": 5125,
+ "count": 6,
+ "type": "SCALAR",
+ "name": "Indices"
+ }
+ ],
+ "asset": {
+ "version": "2.0"
+ },
+ "buffers": [
+ {
+ "uri": "TextureTransformTest.bin",
+ "byteLength": 136
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteLength": 48,
+ "name": "Positions"
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 48,
+ "byteLength": 32,
+ "name": "UV0"
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 80,
+ "byteLength": 32,
+ "name": "UV1"
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 112,
+ "byteLength": 24,
+ "name": "Indices"
+ }
+ ],
+ "extensionsUsed": [
+ "KHR_texture_transform"
+ ],
+ "images": [
+ {
+ "uri": "UV.png"
+ },
+ {
+ "uri": "Arrow.png"
+ },
+ {
+ "uri": "Correct.png"
+ },
+ {
+ "uri": "NotSupported.png"
+ },
+ {
+ "uri": "Error.png"
+ }
+ ],
+ "materials": [
+ {
+ "name": "Offset U",
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 0,
+ "extensions": {
+ "KHR_texture_transform": {
+ "offset": [
+ 0.5,
+ 0.0
+ ]
+ }
+ }
+ },
+ "metallicFactor": 0
+ }
+ },
+ {
+ "name": "Offset V",
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 0,
+ "extensions": {
+ "KHR_texture_transform": {
+ "offset": [
+ 0.0,
+ 0.5
+ ]
+ }
+ }
+ },
+ "metallicFactor": 0
+ }
+ },
+ {
+ "name": "Offset UV",
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 0,
+ "extensions": {
+ "KHR_texture_transform": {
+ "offset": [
+ 0.5,
+ 0.5
+ ]
+ }
+ }
+ },
+ "metallicFactor": 0
+ }
+ },
+ {
+ "name": "Rotation",
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 1,
+ "extensions": {
+ "KHR_texture_transform": {
+ "rotation": 0.39269908169872415480783042290994
+ }
+ }
+ },
+ "metallicFactor": 0
+ }
+ },
+ {
+ "name": "Scale",
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 1,
+ "extensions": {
+ "KHR_texture_transform": {
+ "scale": [
+ 1.5,
+ 1.5
+ ]
+ }
+ }
+ },
+ "metallicFactor": 0
+ }
+ },
+ {
+ "name": "All",
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 1,
+ "extensions": {
+ "KHR_texture_transform": {
+ "offset": [
+ -0.2,
+ -0.1
+ ],
+ "rotation": 0.3,
+ "scale": [
+ 1.5,
+ 1.5
+ ]
+ }
+ }
+ },
+ "metallicFactor": 0
+ }
+ },
+ {
+ "name": "Correct",
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 2
+ },
+ "metallicFactor": 0
+ }
+ },
+ {
+ "name": "NotSupported",
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 3
+ },
+ "metallicFactor": 0
+ }
+ },
+ {
+ "name": "Error",
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 4
+ },
+ "metallicFactor": 0
+ }
+ }
+ ],
+ "meshes": [
+ {
+ "name": "Offset U",
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0,
+ "TEXCOORD_0": 2
+ },
+ "indices": 3,
+ "material": 0
+ }
+ ]
+ },
+ {
+ "name": "Offset V",
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0,
+ "TEXCOORD_0": 2
+ },
+ "indices": 3,
+ "material": 1
+ }
+ ]
+ },
+ {
+ "name": "Offset UV",
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0,
+ "TEXCOORD_0": 2
+ },
+ "indices": 3,
+ "material": 2
+ }
+ ]
+ },
+ {
+ "name": "Rotation",
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0,
+ "TEXCOORD_0": 1
+ },
+ "indices": 3,
+ "material": 3
+ }
+ ]
+ },
+ {
+ "name": "Scale",
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0,
+ "TEXCOORD_0": 1
+ },
+ "indices": 3,
+ "material": 4
+ }
+ ]
+ },
+ {
+ "name": "All",
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0,
+ "TEXCOORD_0": 1
+ },
+ "indices": 3,
+ "material": 5
+ }
+ ]
+ },
+ {
+ "name": "Correct Marker",
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0,
+ "TEXCOORD_0": 1
+ },
+ "indices": 3,
+ "material": 6
+ }
+ ]
+ },
+ {
+ "name": "Not Supported Marker",
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0,
+ "TEXCOORD_0": 1
+ },
+ "indices": 3,
+ "material": 7
+ }
+ ]
+ },
+ {
+ "name": "Error Marker",
+ "primitives": [
+ {
+ "attributes": {
+ "POSITION": 0,
+ "TEXCOORD_0": 1
+ },
+ "indices": 3,
+ "material": 8
+ }
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "name": "Offset U",
+ "mesh": 0,
+ "translation": [
+ -1.1,
+ 0.55,
+ 0
+ ]
+ },
+ {
+ "name": "Offset V",
+ "mesh": 1,
+ "translation": [
+ 0,
+ 0.55,
+ 0
+ ]
+ },
+ {
+ "name": "Offset UV",
+ "mesh": 2,
+ "translation": [
+ 1.1,
+ 0.55,
+ 0
+ ]
+ },
+ {
+ "name": "Rotation",
+ "mesh": 3,
+ "translation": [
+ -1.1,
+ -0.55,
+ 0
+ ],
+ "children": [
+ 4,
+ 5,
+ 6
+ ]
+ },
+ {
+ "name": "Rotation - Correct",
+ "mesh": 6,
+ "translation": [
+ -0.07904822439840125109869401756656,
+ -0.51626748576241543174100150833647,
+ 0.01
+ ],
+ "scale": [
+ 0.15,
+ 0.15,
+ 0.15
+ ]
+ },
+ {
+ "name": "Rotation - Not Supported",
+ "mesh": 7,
+ "translation": [
+ 0.27781745930520227684092879831533,
+ -0.27781745930520227684092879831533,
+ 0.01
+ ],
+ "scale": [
+ 0.15,
+ 0.15,
+ 0.15
+ ]
+ },
+ {
+ "name": "Rotation - Error",
+ "mesh": 8,
+ "translation": [
+ 0.51626748576241543174100150833647,
+ 0.07904822439840125109869401756656,
+ 0.01
+ ],
+ "scale": [
+ 0.15,
+ 0.15,
+ 0.15
+ ]
+ },
+ {
+ "name": "Scale",
+ "mesh": 4,
+ "translation": [
+ 0,
+ -0.55,
+ 0
+ ],
+ "children": [
+ 8,
+ 9
+ ]
+ },
+ {
+ "name": "Scale - Correct",
+ "mesh": 6,
+ "translation": [
+ 0.01854497287013485122728586554355,
+ -0.01854497287013485122728586554355,
+ 0.01
+ ],
+ "scale": [
+ 0.1,
+ 0.1,
+ 0.1
+ ]
+ },
+ {
+ "name": "Scale - Not Supported",
+ "mesh": 7,
+ "translation": [
+ 0.27781745930520227684092879831533,
+ -0.27781745930520227684092879831533,
+ 0.01
+ ],
+ "scale": [
+ 0.15,
+ 0.15,
+ 0.15
+ ]
+ },
+ {
+ "name": "All",
+ "mesh": 5,
+ "translation": [
+ 1.1,
+ -0.55,
+ 0
+ ],
+ "children": [
+ 11
+ ]
+ },
+ {
+ "name": "All - Correct",
+ "mesh": 6,
+ "translation": [
+ -0.07,
+ -0.25,
+ 0.01
+ ],
+ "scale": [
+ 0.1,
+ 0.1,
+ 0.1
+ ]
+ }
+ ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0,
+ 1,
+ 2,
+ 3,
+ 7,
+ 10
+ ]
+ }
+ ],
+ "textures": [
+ {
+ "source": 0,
+ "sampler": 0
+ },
+ {
+ "source": 1,
+ "sampler": 0
+ },
+ {
+ "source": 2
+ },
+ {
+ "source": 3
+ },
+ {
+ "source": 4
+ }
+ ],
+ "samplers": [
+ {
+ "wrapS": 33071,
+ "wrapT": 33071,
+ "magFilter": 9729,
+ "minFilter": 9729
+ }
+ ]
+} \ No newline at end of file
diff --git a/libs/assimp/test/models/glTF2/textureTransform/UV.png b/libs/assimp/test/models/glTF2/textureTransform/UV.png
new file mode 100644
index 0000000..c1a6d4d
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/textureTransform/UV.png
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/wrongTypes/BoxTextured0.bin b/libs/assimp/test/models/glTF2/wrongTypes/BoxTextured0.bin
new file mode 100644
index 0000000..d2a7355
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/wrongTypes/BoxTextured0.bin
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/wrongTypes/CesiumLogoFlat.png b/libs/assimp/test/models/glTF2/wrongTypes/CesiumLogoFlat.png
new file mode 100644
index 0000000..45d502e
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/wrongTypes/CesiumLogoFlat.png
Binary files differ
diff --git a/libs/assimp/test/models/glTF2/wrongTypes/badArray.gltf b/libs/assimp/test/models/glTF2/wrongTypes/badArray.gltf
new file mode 100644
index 0000000..2d12819
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/wrongTypes/badArray.gltf
@@ -0,0 +1,179 @@
+{
+ "asset": {
+ "generator": "COLLADA2GLTF",
+ "version": "2.0"
+ },
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "children": [
+ 1
+ ],
+ "matrix": [
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ -1.0,
+ 0.0,
+ 0.0,
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ {
+ "mesh": 0
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": {
+ "not an array": {
+ "NORMAL": 1,
+ "POSITION": 2,
+ "TEXCOORD_0": 3
+ },
+ "indices": 0,
+ "mode": 4,
+ "material": 0
+ },
+ "name": "Mesh"
+ }
+ ],
+ "accessors": [
+ {
+ "bufferView": 0,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 36,
+ "max": [
+ 23
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "min": [
+ -1.0,
+ -1.0,
+ -1.0
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 288,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 0.5,
+ 0.5,
+ 0.5
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ -0.5
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 2,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 6.0,
+ 1.0
+ ],
+ "min": [
+ 0.0,
+ 0.0
+ ],
+ "type": "VEC2"
+ }
+ ],
+ "materials": [
+ {
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 0
+ },
+ "metallicFactor": 0.0
+ },
+ "name": "Texture"
+ }
+ ],
+ "textures": [
+ {
+ "sampler": 0,
+ "source": 0
+ }
+ ],
+ "images": [
+ {
+ "uri": "CesiumLogoFlat.png"
+ }
+ ],
+ "samplers": [
+ {
+ "magFilter": 9729,
+ "minFilter": 9986,
+ "wrapS": 33648,
+ "wrapT": 33071
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteOffset": 768,
+ "byteLength": 72,
+ "target": 34963
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 0,
+ "byteLength": 576,
+ "byteStride": 12,
+ "target": 34962
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 576,
+ "byteLength": 192,
+ "byteStride": 8,
+ "target": 34962
+ }
+ ],
+ "buffers": [
+ {
+ "byteLength": 840,
+ "uri": "BoxTextured0.bin"
+ }
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/wrongTypes/badExtension.gltf b/libs/assimp/test/models/glTF2/wrongTypes/badExtension.gltf
new file mode 100644
index 0000000..0116421
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/wrongTypes/badExtension.gltf
@@ -0,0 +1,185 @@
+{
+ "asset": {
+ "generator": "COLLADA2GLTF",
+ "version": "2.0"
+ },
+ "extensionsUsed": [ "KHR_texture_transform" ],
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "children": [
+ 1
+ ],
+ "matrix": [
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ -1.0,
+ 0.0,
+ 0.0,
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ {
+ "mesh": 0
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 1,
+ "POSITION": 2,
+ "TEXCOORD_0": 3
+ },
+ "indices": 0,
+ "mode": 4,
+ "material": 0
+ }
+ ],
+ "name": "Mesh"
+ }
+ ],
+ "accessors": [
+ {
+ "bufferView": 0,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 36,
+ "max": [
+ 23
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "min": [
+ -1.0,
+ -1.0,
+ -1.0
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 288,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 0.5,
+ 0.5,
+ 0.5
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ -0.5
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 2,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 6.0,
+ 1.0
+ ],
+ "min": [
+ 0.0,
+ 0.0
+ ],
+ "type": "VEC2"
+ }
+ ],
+ "materials": [
+ {
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 0,
+ "extensions": {
+ "KHR_texture_transform": "Not an object"
+ }
+ },
+ "metallicFactor": 0.0
+ },
+ "name": "Texture"
+ }
+ ],
+ "textures": [
+ {
+ "sampler": 0,
+ "source": 0
+ }
+ ],
+ "images": [
+ {
+ "uri": "CesiumLogoFlat.png"
+ }
+ ],
+ "samplers": [
+ {
+ "magFilter": 9729,
+ "minFilter": 9986,
+ "wrapS": 33648,
+ "wrapT": 33071
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteOffset": 768,
+ "byteLength": 72,
+ "target": 34963
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 0,
+ "byteLength": 576,
+ "byteStride": 12,
+ "target": 34962
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 576,
+ "byteLength": 192,
+ "byteStride": 8,
+ "target": 34962
+ }
+ ],
+ "buffers": [
+ {
+ "byteLength": 840,
+ "uri": "BoxTextured0.bin"
+ }
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/wrongTypes/badNumber.gltf b/libs/assimp/test/models/glTF2/wrongTypes/badNumber.gltf
new file mode 100644
index 0000000..aa0719e
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/wrongTypes/badNumber.gltf
@@ -0,0 +1,184 @@
+{
+ "asset": {
+ "generator": "COLLADA2GLTF",
+ "version": "2.0"
+ },
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "children": [
+ 1
+ ],
+ "matrix": [
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ -1.0,
+ 0.0,
+ 0.0,
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ {
+ "mesh": 0
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 1,
+ "POSITION": 2,
+ "TEXCOORD_0": 3
+ },
+ "indices": 0,
+ "mode": 4,
+ "material": 0
+ }
+ ],
+ "name": "Mesh"
+ }
+ ],
+ "accessors": [
+ {
+ "bufferView": 0,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 36,
+ "max": [
+ 23
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "min": [
+ -1.0,
+ -1.0,
+ -1.0
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 288,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 0.5,
+ 0.5,
+ 0.5
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ -0.5
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 2,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 6.0,
+ 1.0
+ ],
+ "min": [
+ 0.0,
+ 0.0
+ ],
+ "type": "VEC2"
+ }
+ ],
+ "materials": [
+ {
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 0
+ },
+ "metallicFactor": 0.0
+ },
+ "normalTexture": {
+ "scale": "not a number"
+ },
+ "name": "Texture"
+ }
+ ],
+ "textures": [
+ {
+ "sampler": 0,
+ "source": 0
+ }
+ ],
+ "images": [
+ {
+ "uri": "CesiumLogoFlat.png"
+ }
+ ],
+ "samplers": [
+ {
+ "magFilter": 9729,
+ "minFilter": 9986,
+ "wrapS": 33648,
+ "wrapT": 33071
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteOffset": 768,
+ "byteLength": 72,
+ "target": 34963
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 0,
+ "byteLength": 576,
+ "byteStride": 12,
+ "target": 34962
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 576,
+ "byteLength": 192,
+ "byteStride": 8,
+ "target": 34962
+ }
+ ],
+ "buffers": [
+ {
+ "byteLength": 840,
+ "uri": "BoxTextured0.bin"
+ }
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/wrongTypes/badObject.gltf b/libs/assimp/test/models/glTF2/wrongTypes/badObject.gltf
new file mode 100644
index 0000000..98c72f0
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/wrongTypes/badObject.gltf
@@ -0,0 +1,176 @@
+{
+ "asset": {
+ "generator": "COLLADA2GLTF",
+ "version": "2.0"
+ },
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ]
+ }
+ ],
+ "nodes": [
+ {
+ "children": [
+ 1
+ ],
+ "matrix": [
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ -1.0,
+ 0.0,
+ 0.0,
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ {
+ "mesh": 0
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 1,
+ "POSITION": 2,
+ "TEXCOORD_0": 3
+ },
+ "indices": 0,
+ "mode": 4,
+ "material": 0
+ }
+ ],
+ "name": "Mesh"
+ }
+ ],
+ "accessors": [
+ {
+ "bufferView": 0,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 36,
+ "max": [
+ 23
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "min": [
+ -1.0,
+ -1.0,
+ -1.0
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 288,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 0.5,
+ 0.5,
+ 0.5
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ -0.5
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 2,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 6.0,
+ 1.0
+ ],
+ "min": [
+ 0.0,
+ 0.0
+ ],
+ "type": "VEC2"
+ }
+ ],
+ "materials": [
+ {
+ "pbrMetallicRoughness": ["not an object"],
+ "name": "Texture"
+ }
+ ],
+ "textures": [
+ {
+ "sampler": 0,
+ "source": 0
+ }
+ ],
+ "images": [
+ {
+ "uri": "CesiumLogoFlat.png"
+ }
+ ],
+ "samplers": [
+ {
+ "magFilter": 9729,
+ "minFilter": 9986,
+ "wrapS": 33648,
+ "wrapT": 33071
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteOffset": 768,
+ "byteLength": 72,
+ "target": 34963
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 0,
+ "byteLength": 576,
+ "byteStride": 12,
+ "target": 34962
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 576,
+ "byteLength": 192,
+ "byteStride": 8,
+ "target": 34962
+ }
+ ],
+ "buffers": [
+ {
+ "byteLength": 840,
+ "uri": "BoxTextured0.bin"
+ }
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/wrongTypes/badString.gltf b/libs/assimp/test/models/glTF2/wrongTypes/badString.gltf
new file mode 100644
index 0000000..7923fcc
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/wrongTypes/badString.gltf
@@ -0,0 +1,182 @@
+{
+ "asset": {
+ "generator": "COLLADA2GLTF",
+ "version": "2.0"
+ },
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ],
+ "name" : 42
+ }
+ ],
+ "nodes": [
+ {
+ "children": [
+ 1
+ ],
+ "matrix": [
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ -1.0,
+ 0.0,
+ 0.0,
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ {
+ "mesh": 0
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 1,
+ "POSITION": 2,
+ "TEXCOORD_0": 3
+ },
+ "indices": 0,
+ "mode": 4,
+ "material": 0
+ }
+ ],
+ "name": "Mesh"
+ }
+ ],
+ "accessors": [
+ {
+ "bufferView": 0,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 36,
+ "max": [
+ 23
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "min": [
+ -1.0,
+ -1.0,
+ -1.0
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 288,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 0.5,
+ 0.5,
+ 0.5
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ -0.5
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 2,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 6.0,
+ 1.0
+ ],
+ "min": [
+ 0.0,
+ 0.0
+ ],
+ "type": "VEC2"
+ }
+ ],
+ "materials": [
+ {
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": 0
+ },
+ "metallicFactor": 0.0
+ },
+ "name": "Texture"
+ }
+ ],
+ "textures": [
+ {
+ "sampler": 0,
+ "source": 0
+ }
+ ],
+ "images": [
+ {
+ "uri": "CesiumLogoFlat.png"
+ }
+ ],
+ "samplers": [
+ {
+ "magFilter": 9729,
+ "minFilter": 9986,
+ "wrapS": 33648,
+ "wrapT": 33071
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteOffset": 768,
+ "byteLength": 72,
+ "target": 34963
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 0,
+ "byteLength": 576,
+ "byteStride": 12,
+ "target": 34962
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 576,
+ "byteLength": 192,
+ "byteStride": 8,
+ "target": 34962
+ }
+ ],
+ "buffers": [
+ {
+ "byteLength": 840,
+ "uri": "BoxTextured0.bin"
+ }
+ ]
+}
diff --git a/libs/assimp/test/models/glTF2/wrongTypes/badUint.gltf b/libs/assimp/test/models/glTF2/wrongTypes/badUint.gltf
new file mode 100644
index 0000000..63ec983
--- /dev/null
+++ b/libs/assimp/test/models/glTF2/wrongTypes/badUint.gltf
@@ -0,0 +1,182 @@
+{
+ "asset": {
+ "generator": "COLLADA2GLTF",
+ "version": "2.0"
+ },
+ "scene": 0,
+ "scenes": [
+ {
+ "nodes": [
+ 0
+ ],
+ "name" : "hello"
+ }
+ ],
+ "nodes": [
+ {
+ "children": [
+ 1
+ ],
+ "matrix": [
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ -1.0,
+ 0.0,
+ 0.0,
+ 1.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 0.0,
+ 1.0
+ ]
+ },
+ {
+ "mesh": 0
+ }
+ ],
+ "meshes": [
+ {
+ "primitives": [
+ {
+ "attributes": {
+ "NORMAL": 1,
+ "POSITION": 2,
+ "TEXCOORD_0": 3
+ },
+ "indices": 0,
+ "mode": 4,
+ "material": 0
+ }
+ ],
+ "name": "Mesh"
+ }
+ ],
+ "accessors": [
+ {
+ "bufferView": 0,
+ "byteOffset": 0,
+ "componentType": 5123,
+ "count": 36,
+ "max": [
+ 23
+ ],
+ "min": [
+ 0
+ ],
+ "type": "SCALAR"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 1.0,
+ 1.0,
+ 1.0
+ ],
+ "min": [
+ -1.0,
+ -1.0,
+ -1.0
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 1,
+ "byteOffset": 288,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 0.5,
+ 0.5,
+ 0.5
+ ],
+ "min": [
+ -0.5,
+ -0.5,
+ -0.5
+ ],
+ "type": "VEC3"
+ },
+ {
+ "bufferView": 2,
+ "byteOffset": 0,
+ "componentType": 5126,
+ "count": 24,
+ "max": [
+ 6.0,
+ 1.0
+ ],
+ "min": [
+ 0.0,
+ 0.0
+ ],
+ "type": "VEC2"
+ }
+ ],
+ "materials": [
+ {
+ "pbrMetallicRoughness": {
+ "baseColorTexture": {
+ "index": -1
+ },
+ "metallicFactor": 0.0
+ },
+ "name": "Texture"
+ }
+ ],
+ "textures": [
+ {
+ "sampler": 0,
+ "source": 0
+ }
+ ],
+ "images": [
+ {
+ "uri": "CesiumLogoFlat.png"
+ }
+ ],
+ "samplers": [
+ {
+ "magFilter": 9729,
+ "minFilter": 9986,
+ "wrapS": 33648,
+ "wrapT": 33071
+ }
+ ],
+ "bufferViews": [
+ {
+ "buffer": 0,
+ "byteOffset": 768,
+ "byteLength": 72,
+ "target": 34963
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 0,
+ "byteLength": 576,
+ "byteStride": 12,
+ "target": 34962
+ },
+ {
+ "buffer": 0,
+ "byteOffset": 576,
+ "byteLength": 192,
+ "byteStride": 8,
+ "target": 34962
+ }
+ ],
+ "buffers": [
+ {
+ "byteLength": 840,
+ "uri": "BoxTextured0.bin"
+ }
+ ]
+}