Pārlūkot izejas kodu

Delete tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures directory

Vicente Penades 2 gadi atpakaļ
vecāks
revīzija
dc102d43e1
87 mainītis faili ar 0 papildinājumiem un 12829 dzēšanām
  1. 0 141
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/FeatureIdAttributeAndPropertyTableFeatureIdNotInRange.gltf
  2. 0 141
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/FeatureIdAttributePropertyTableInvalidValue.gltf
  3. 0 131
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/FeatureIdAttributePropertyTableWithoutPropertyTables.gltf
  4. 0 110
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/FeatureIdAttributePropertyTableWithoutStructuralMetadata.gltf
  5. 0 117
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/FeatureIdTextureAndPropertyTableFeatureIdNotInRange.gltf
  6. 0 14
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/README.md
  7. 0 141
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/ValidFeatureIdAttributeAndPropertyTable.gltf
  8. 0 117
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/ValidFeatureIdTextureAndPropertyTable.gltf
  9. 0 179
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/instanceFeatures/InstanceFeaturesFeatureIdAttributeInvalidValue.gltf
  10. 0 171
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/instanceFeatures/InstanceFeaturesWithoutMeshGpuInstancing.gltf
  11. 0 179
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/instanceFeatures/ValidInstanceFeatures.gltf
  12. 0 103
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeAccessorNormalized.gltf
  13. 0 102
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeAccessorNotScalar.gltf
  14. 0 102
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeAttributeInvalidType.gltf
  15. 0 102
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeAttributeInvalidValue.gltf
  16. 0 102
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeFeatureCountInvalidType.gltf
  17. 0 102
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeFeatureCountInvalidValue.gltf
  18. 0 102
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeFeatureCountMismatch.gltf
  19. 0 103
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeFeatureCountMismatchForNullFeatureId.gltf
  20. 0 101
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeFeatureCountMissing.gltf
  21. 0 103
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeLabelInvalidType.gltf
  22. 0 103
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeLabelInvalidValue.gltf
  23. 0 103
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeNullFeatureIdInvalidType.gltf
  24. 0 103
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeNullFeatureIdInvalidValue.gltf
  25. 0 65
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureFeatureCountMismatch.gltf
  26. 0 65
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureSamplerInvalidFilterMode.gltf
  27. 0 65
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureChannelsInvalidElementType.gltf
  28. 0 65
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureChannelsInvalidType.gltf
  29. 0 65
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureChannelsTooManyChannels.gltf
  30. 0 65
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureChannelsTooManyElements.gltf
  31. 0 65
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureImageDataInvalid.gltf
  32. 0 65
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureIndexInvalidType.gltf
  33. 0 65
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureIndexInvalidValue.gltf
  34. 0 65
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureInvalidType.gltf
  35. 0 65
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureTexCoordInvalidType.gltf
  36. 0 65
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureTexCoordInvalidValue.gltf
  37. 0 19
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/README.md
  38. 0 102
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/ValidFeatureIdAttribute.gltf
  39. 0 159
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/ValidFeatureIdAttributeDefault/ValidFeatureIdAttributeDefault.gltf
  40. BIN
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/ValidFeatureIdAttributeDefault/ValidFeatureIdAttributeDefault_data.bin
  41. BIN
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/ValidFeatureIdAttributeWithByteStride.glb
  42. 0 102
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/ValidFeatureIdAttributeWithLargerFeatureCount.gltf
  43. 0 103
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/ValidFeatureIdAttributeWithNullFeatureId.gltf
  44. BIN
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/ValidFeatureIdTexture.glb
  45. 0 65
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/ValidFeatureIdTexture.gltf
  46. 0 65
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/ValidFeatureIdTextureUsingDefaultChannels.gltf
  47. 0 275
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/ExtensionInMeshPrimitiveWithoutTopLevelObject.gltf
  48. 0 328
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesClassPropertyArray.gltf
  49. 0 327
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesClassPropertyInvalidComponentType.gltf
  50. 0 328
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesClassPropertyInvalidEnumValueType.gltf
  51. 0 339
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesClassPropertyMaxNotInRange.gltf
  52. 0 339
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesClassPropertyMinNotInRange.gltf
  53. 0 326
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesClassPropertyString.gltf
  54. 0 327
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesMeshPrimitivePropertyAttributesInvalidElementType.gltf
  55. 0 327
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesMeshPrimitivePropertyAttributesInvalidElementValue.gltf
  56. 0 327
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesMeshPrimitivePropertyAttributesInvalidLength.gltf
  57. 0 327
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesMeshPrimitivePropertyAttributesInvalidType.gltf
  58. 0 327
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesPropertyAttributePropertyInvalidAttribute.gltf
  59. 0 339
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesPropertyAttributePropertyMaxMismatch.gltf
  60. 0 339
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesPropertyAttributePropertyMaxNotInRange.gltf
  61. 0 339
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesPropertyAttributePropertyMinMismatch.gltf
  62. 0 339
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesPropertyAttributePropertyMinNotInRange.gltf
  63. 0 116
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureClassPropertyMaxNotInRange.gltf
  64. 0 116
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureClassPropertyMinNotInRange.gltf
  65. 0 118
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureClassPropertyWithOffsetScaleMinNotInRange.gltf
  66. 0 176
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureEnumsInvalidEnumValue.gltf
  67. 0 114
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureInvalidPropertyTypeA.gltf
  68. 0 116
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureInvalidPropertyTypeB.gltf
  69. 0 115
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureMeshPrimitivePropertyTextureTexCoordInvalidValue.gltf
  70. 0 115
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureMeshPrimitivePropertyTexturesInvalidElementType.gltf
  71. 0 115
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureMeshPrimitivePropertyTexturesInvalidElementValue.gltf
  72. 0 115
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureMeshPrimitivePropertyTexturesInvalidLength.gltf
  73. 0 115
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureMeshPrimitivePropertyTexturesInvalidType.gltf
  74. 0 115
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTexturePropertyChannelsSizeMismatch.gltf
  75. 0 115
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTexturePropertyIndexInvalidType.gltf
  76. 0 115
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTexturePropertyIndexInvalidValue.gltf
  77. 0 116
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTexturePropertyTexturePropertyMaxMismatch.gltf
  78. 0 116
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTexturePropertyTexturePropertyMaxNotInRange.gltf
  79. 0 116
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTexturePropertyTexturePropertyMinMismatch.gltf
  80. 0 116
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTexturePropertyTexturePropertyMinNotInRange.gltf
  81. 0 21
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/README.md
  82. 0 173
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/StructuralMetadataMissingSchema.gltf
  83. 0 229
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/StructuralMetadataSchemaAndSchemaUri.gltf
  84. 0 228
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/ValidMultipleClasses.gltf
  85. 0 327
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/ValidPropertyAttributes.gltf
  86. 0 115
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/ValidPropertyTexture.gltf
  87. 0 176
      tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/ValidPropertyTextureEnums.gltf

+ 0 - 141
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/FeatureIdAttributeAndPropertyTableFeatureIdNotInRange.gltf

@@ -1,141 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "FeatureIdAttributeAndPropertyTableSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class",
-            "properties" : {
-              "example_VEC3_FLOAT32" : {
-                "name" : "Example VEC3 FLOAT32 property",
-                "description" : "An example property, with type VEC3, with component type FLOAT32",
-                "type" : "VEC3",
-                "componentType" : "FLOAT32"
-              }
-            }
-          }
-        }
-      },
-      "propertyTables" : [ {
-        "name" : "Example property table",
-        "class" : "exampleMetadataClass",
-        "count" : 4,
-        "properties" : {
-          "example_VEC3_FLOAT32" : {
-            "values" : 4
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_mesh_features", "EXT_structural_metadata" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5120,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 123 ],
-    "min" : [ -123 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/hQAAAIUAAACFAAAAhQAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAewAAAHsAAAB7AAAAewAAAA==",
-    "byteLength" : 496
-  }, {
-    "uri" : "data:application/gltf-buffer;base64,AAAAAM3MzD3NzEw+AACAP83MjD+amZk/AAAAQGZmBkDNzAxAAABAQGZmRkDNzExA",
-    "byteLength" : 48
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 0,
-    "byteLength" : 48
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : 4,
-            "attribute" : 0,
-            "propertyTable" : 0
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 141
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/FeatureIdAttributePropertyTableInvalidValue.gltf

@@ -1,141 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "FeatureIdAttributeAndPropertyTableSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class",
-            "properties" : {
-              "example_VEC3_FLOAT32" : {
-                "name" : "Example VEC3 FLOAT32 property",
-                "description" : "An example property, with type VEC3, with component type FLOAT32",
-                "type" : "VEC3",
-                "componentType" : "FLOAT32"
-              }
-            }
-          }
-        }
-      },
-      "propertyTables" : [ {
-        "name" : "Example property table",
-        "class" : "exampleMetadataClass",
-        "count" : 4,
-        "properties" : {
-          "example_VEC3_FLOAT32" : {
-            "values" : 4
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_mesh_features", "EXT_structural_metadata" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  }, {
-    "uri" : "data:application/gltf-buffer;base64,AAAAAM3MzD3NzEw+AACAP83MjD+amZk/AAAAQGZmBkDNzAxAAABAQGZmRkDNzExA",
-    "byteLength" : 48
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 0,
-    "byteLength" : 48
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : 4,
-            "attribute" : 0,
-            "propertyTable" : 12345
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 131
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/FeatureIdAttributePropertyTableWithoutPropertyTables.gltf

@@ -1,131 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "FeatureIdAttributeAndPropertyTableSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class",
-            "properties" : {
-              "example_VEC3_FLOAT32" : {
-                "name" : "Example VEC3 FLOAT32 property",
-                "description" : "An example property, with type VEC3, with component type FLOAT32",
-                "type" : "VEC3",
-                "componentType" : "FLOAT32"
-              }
-            }
-          }
-        }
-      } 
-    }
-  },
-  "extensionsUsed" : [ "EXT_mesh_features", "EXT_structural_metadata" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  }, {
-    "uri" : "data:application/gltf-buffer;base64,AAAAAM3MzD3NzEw+AACAP83MjD+amZk/AAAAQGZmBkDNzAxAAABAQGZmRkDNzExA",
-    "byteLength" : 48
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 0,
-    "byteLength" : 48
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : 4,
-            "attribute" : 0,
-            "propertyTable" : 0
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 110
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/FeatureIdAttributePropertyTableWithoutStructuralMetadata.gltf

@@ -1,110 +0,0 @@
-{
-  "extensionsUsed" : [ "EXT_mesh_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  }, {
-    "uri" : "data:application/gltf-buffer;base64,AAAAAM3MzD3NzEw+AACAP83MjD+amZk/AAAAQGZmBkDNzAxAAABAQGZmRkDNzExA",
-    "byteLength" : 48
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 0,
-    "byteLength" : 48
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : 4,
-            "attribute" : 0,
-            "propertyTable" : 12345
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 117
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/FeatureIdTextureAndPropertyTableFeatureIdNotInRange.gltf


+ 0 - 14
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/README.md

@@ -1,14 +0,0 @@
-# Test fixtures
-
-This directory contains glTF files used for testing 3D Tiles functionality.
-
-3D Tiles Test fixtures are obtained from https://github.com/CesiumGS/3d-tiles-validator/tree/main/specs/data/gltfExtensions
-
-## Validating
-
-The files can be validated using the 3D Tiles Validator:
-
-```
-$ git clone https://github.com/CesiumGS/3d-tiles-validator
-$ npx ts-node  ./3d-tiles-validator/src/main.ts --tileContentFile test.gltf
-```

+ 0 - 141
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/ValidFeatureIdAttributeAndPropertyTable.gltf

@@ -1,141 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "FeatureIdAttributeAndPropertyTableSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class",
-            "properties" : {
-              "example_VEC3_FLOAT32" : {
-                "name" : "Example VEC3 FLOAT32 property",
-                "description" : "An example property, with type VEC3, with component type FLOAT32",
-                "type" : "VEC3",
-                "componentType" : "FLOAT32"
-              }
-            }
-          }
-        }
-      },
-      "propertyTables" : [ {
-        "name" : "Example property table",
-        "class" : "exampleMetadataClass",
-        "count" : 4,
-        "properties" : {
-          "example_VEC3_FLOAT32" : {
-            "values" : 4
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_mesh_features", "EXT_structural_metadata" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  }, {
-    "uri" : "data:application/gltf-buffer;base64,AAAAAM3MzD3NzEw+AACAP83MjD+amZk/AAAAQGZmBkDNzAxAAABAQGZmRkDNzExA",
-    "byteLength" : 48
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 0,
-    "byteLength" : 48
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : 4,
-            "attribute" : 0,
-            "propertyTable" : 0
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 117
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/ValidFeatureIdTextureAndPropertyTable.gltf


+ 0 - 179
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/instanceFeatures/InstanceFeaturesFeatureIdAttributeInvalidValue.gltf

@@ -1,179 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "GpuInstancesMetadataSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class",
-            "properties" : {
-              "example_STRING" : {
-                "name" : "Example STRING property",
-                "description" : "An example property, with component type STRING",
-                "type" : "STRING"
-              }
-            }
-          }
-        }
-      },
-      "propertyTables" : [ {
-        "name" : "Example property table",
-        "class" : "exampleMetadataClass",
-        "count" : 10,
-        "properties" : {
-          "example_STRING" : {
-            "values" : 7,
-            "stringOffsets" : 8
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata", "EXT_mesh_gpu_instancing", "EXT_instance_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5125,
-    "count" : 36,
-    "type" : "SCALAR",
-    "max" : [ 23 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 24,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 24,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 1.0 ],
-    "min" : [ -1.0, -1.0, -1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 10,
-    "type" : "VEC3",
-    "max" : [ 10.0, 10.0, 10.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 10,
-    "type" : "VEC4",
-    "max" : [ 0.733, 0.462, 0.191, 1.0 ],
-    "min" : [ 0.0, 0.0, 0.0, 0.462 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 10,
-    "type" : "VEC3",
-    "max" : [ 2.0, 2.0, 2.0 ],
-    "min" : [ 1.0, 1.0, 1.0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 10,
-    "type" : "SCALAR",
-    "max" : [ 9 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAAAAAIAAAABAAAAAAAAAAMAAAACAAAABAAAAAYAAAAFAAAABAAAAAcAAAAGAAAACAAAAAoAAAAJAAAACAAAAAsAAAAKAAAADAAAAA4AAAANAAAADAAAAA8AAAAOAAAAEAAAABIAAAARAAAAEAAAABMAAAASAAAAFAAAABYAAAAVAAAAFAAAABcAAAAWAAAAAAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AAAAAAAAgD8AAAAAAACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AAAAAAAAAAAAAIA/AACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAA",
-    "byteLength" : 720
-  }, {
-    "uri" : "data:application/gltf-buffer;base64,AAAAAAAAAAAAAAAA5DiOP+Q4jj/kOI4/5DgOQOQ4DkDkOA5AVlVVQFZVVUBWVVVA5DiOQOQ4jkDkOI5AHcexQB3HsUAdx7FAVlXVQFZV1UBWVdVAjuP4QI7j+ECO4/hA5DgOQeQ4DkHkOA5BAAAgQQAAIEEAACBBAAAAAAAAAAAAAAAAAACAP92ZzD0Q9YA9B0HVPHcffj/QGUs+AAMAPrywUz3rhHg/HXaWPuWqPT4f05w9Y0VvP3UqxT6+ing+IIHNPZiDYj+d+vA+w+KXPqEr+z1ub1I/DaEMP/RFsT6bkxI+REU/P9m0Hj+hD8g+H2slPgpNKT/WdC4/P+rbPqHVNT462RA/46U7P0SL7D6BlUM+RIvsPgAAgD8AAIA/AACAP+Q4jj/kOI4/5DiOP8dxnD/HcZw/x3GcP6uqqj+rqqo/q6qqP47juD+O47g/juO4P3Icxz9yHMc/chzHP1ZV1T9WVdU/VlXVPzmO4z85juM/OY7jPxzH8T8cx/E/HMfxPwAAAEAAAABAAAAAQAkACAAHAAYABQAEAAMAAgABAAAA",
-    "byteLength" : 420
-  }, {
-    "uri" : "data:application/gltf-buffer;base64,emVyb29uZXR3b3RocmVlZm91cmZpdmVzaXhzZXZlbmVpZ2h0bmluZQAAAAAEAAAABwAAAAoAAAAPAAAAEwAAABcAAAAaAAAAHwAAACQAAAAoAAAA",
-    "byteLength" : 84
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 144,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 144,
-    "byteLength" : 288,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 288,
-    "target" : 34962
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 0,
-    "byteLength" : 120
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 120,
-    "byteLength" : 160
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 280,
-    "byteLength" : 120
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 400,
-    "byteLength" : 20
-  }, {
-    "buffer" : 2,
-    "byteOffset" : 0,
-    "byteLength" : 40
-  }, {
-    "buffer" : 2,
-    "byteOffset" : 40,
-    "byteLength" : 44
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2
-      },
-      "indices" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "extensions" : {
-      "EXT_mesh_gpu_instancing" : {
-        "attributes" : {
-          "TRANSLATION" : 3,
-          "ROTATION" : 4,
-          "SCALE" : 5,
-          "_FEATURE_ID_0" : 6
-        }
-      },
-      "EXT_instance_features" : {
-        "featureIds" : [ {
-          "featureCount" : 10,
-          "attribute" : 12345,
-          "propertyTable" : 0
-        } ]
-      }
-    },
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 171
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/instanceFeatures/InstanceFeaturesWithoutMeshGpuInstancing.gltf

@@ -1,171 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "GpuInstancesMetadataSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class",
-            "properties" : {
-              "example_STRING" : {
-                "name" : "Example STRING property",
-                "description" : "An example property, with component type STRING",
-                "type" : "STRING"
-              }
-            }
-          }
-        }
-      },
-      "propertyTables" : [ {
-        "name" : "Example property table",
-        "class" : "exampleMetadataClass",
-        "count" : 10,
-        "properties" : {
-          "example_STRING" : {
-            "values" : 7,
-            "stringOffsets" : 8
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata", "EXT_mesh_gpu_instancing", "EXT_instance_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5125,
-    "count" : 36,
-    "type" : "SCALAR",
-    "max" : [ 23 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 24,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 24,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 1.0 ],
-    "min" : [ -1.0, -1.0, -1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 10,
-    "type" : "VEC3",
-    "max" : [ 10.0, 10.0, 10.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 10,
-    "type" : "VEC4",
-    "max" : [ 0.733, 0.462, 0.191, 1.0 ],
-    "min" : [ 0.0, 0.0, 0.0, 0.462 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 10,
-    "type" : "VEC3",
-    "max" : [ 2.0, 2.0, 2.0 ],
-    "min" : [ 1.0, 1.0, 1.0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 10,
-    "type" : "SCALAR",
-    "max" : [ 9 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAAAAAIAAAABAAAAAAAAAAMAAAACAAAABAAAAAYAAAAFAAAABAAAAAcAAAAGAAAACAAAAAoAAAAJAAAACAAAAAsAAAAKAAAADAAAAA4AAAANAAAADAAAAA8AAAAOAAAAEAAAABIAAAARAAAAEAAAABMAAAASAAAAFAAAABYAAAAVAAAAFAAAABcAAAAWAAAAAAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AAAAAAAAgD8AAAAAAACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AAAAAAAAAAAAAIA/AACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAA",
-    "byteLength" : 720
-  }, {
-    "uri" : "data:application/gltf-buffer;base64,AAAAAAAAAAAAAAAA5DiOP+Q4jj/kOI4/5DgOQOQ4DkDkOA5AVlVVQFZVVUBWVVVA5DiOQOQ4jkDkOI5AHcexQB3HsUAdx7FAVlXVQFZV1UBWVdVAjuP4QI7j+ECO4/hA5DgOQeQ4DkHkOA5BAAAgQQAAIEEAACBBAAAAAAAAAAAAAAAAAACAP92ZzD0Q9YA9B0HVPHcffj/QGUs+AAMAPrywUz3rhHg/HXaWPuWqPT4f05w9Y0VvP3UqxT6+ing+IIHNPZiDYj+d+vA+w+KXPqEr+z1ub1I/DaEMP/RFsT6bkxI+REU/P9m0Hj+hD8g+H2slPgpNKT/WdC4/P+rbPqHVNT462RA/46U7P0SL7D6BlUM+RIvsPgAAgD8AAIA/AACAP+Q4jj/kOI4/5DiOP8dxnD/HcZw/x3GcP6uqqj+rqqo/q6qqP47juD+O47g/juO4P3Icxz9yHMc/chzHP1ZV1T9WVdU/VlXVPzmO4z85juM/OY7jPxzH8T8cx/E/HMfxPwAAAEAAAABAAAAAQAkACAAHAAYABQAEAAMAAgABAAAA",
-    "byteLength" : 420
-  }, {
-    "uri" : "data:application/gltf-buffer;base64,emVyb29uZXR3b3RocmVlZm91cmZpdmVzaXhzZXZlbmVpZ2h0bmluZQAAAAAEAAAABwAAAAoAAAAPAAAAEwAAABcAAAAaAAAAHwAAACQAAAAoAAAA",
-    "byteLength" : 84
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 144,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 144,
-    "byteLength" : 288,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 288,
-    "target" : 34962
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 0,
-    "byteLength" : 120
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 120,
-    "byteLength" : 160
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 280,
-    "byteLength" : 120
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 400,
-    "byteLength" : 20
-  }, {
-    "buffer" : 2,
-    "byteOffset" : 0,
-    "byteLength" : 40
-  }, {
-    "buffer" : 2,
-    "byteOffset" : 40,
-    "byteLength" : 44
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2
-      },
-      "indices" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "extensions" : {
-      "EXT_instance_features" : {
-        "featureIds" : [ {
-          "featureCount" : 10,
-          "attribute" : 0,
-          "propertyTable" : 0
-        } ]
-      }
-    },
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 179
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/instanceFeatures/ValidInstanceFeatures.gltf

@@ -1,179 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "GpuInstancesMetadataSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class",
-            "properties" : {
-              "example_STRING" : {
-                "name" : "Example STRING property",
-                "description" : "An example property, with component type STRING",
-                "type" : "STRING"
-              }
-            }
-          }
-        }
-      },
-      "propertyTables" : [ {
-        "name" : "Example property table",
-        "class" : "exampleMetadataClass",
-        "count" : 10,
-        "properties" : {
-          "example_STRING" : {
-            "values" : 7,
-            "stringOffsets" : 8
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata", "EXT_mesh_gpu_instancing", "EXT_instance_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5125,
-    "count" : 36,
-    "type" : "SCALAR",
-    "max" : [ 23 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 24,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 24,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 1.0 ],
-    "min" : [ -1.0, -1.0, -1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 10,
-    "type" : "VEC3",
-    "max" : [ 10.0, 10.0, 10.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 10,
-    "type" : "VEC4",
-    "max" : [ 0.733, 0.462, 0.191, 1.0 ],
-    "min" : [ 0.0, 0.0, 0.0, 0.462 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 10,
-    "type" : "VEC3",
-    "max" : [ 2.0, 2.0, 2.0 ],
-    "min" : [ 1.0, 1.0, 1.0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 10,
-    "type" : "SCALAR",
-    "max" : [ 9 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAAAAAIAAAABAAAAAAAAAAMAAAACAAAABAAAAAYAAAAFAAAABAAAAAcAAAAGAAAACAAAAAoAAAAJAAAACAAAAAsAAAAKAAAADAAAAA4AAAANAAAADAAAAA8AAAAOAAAAEAAAABIAAAARAAAAEAAAABMAAAASAAAAFAAAABYAAAAVAAAAFAAAABcAAAAWAAAAAAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAgD8AAAAAAAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAgD8AAIA/AACAPwAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAgD8AAIA/AACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAIA/AAAAAAAAgD8AAAAAAACAPwAAgD8AAAAAAACAPwAAgD8AAIA/AAAAAAAAgD8AAIA/AAAAAAAAAAAAAIA/AACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIC/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAACAvwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAAAAAAAAAAgL8AAAAA",
-    "byteLength" : 720
-  }, {
-    "uri" : "data:application/gltf-buffer;base64,AAAAAAAAAAAAAAAA5DiOP+Q4jj/kOI4/5DgOQOQ4DkDkOA5AVlVVQFZVVUBWVVVA5DiOQOQ4jkDkOI5AHcexQB3HsUAdx7FAVlXVQFZV1UBWVdVAjuP4QI7j+ECO4/hA5DgOQeQ4DkHkOA5BAAAgQQAAIEEAACBBAAAAAAAAAAAAAAAAAACAP92ZzD0Q9YA9B0HVPHcffj/QGUs+AAMAPrywUz3rhHg/HXaWPuWqPT4f05w9Y0VvP3UqxT6+ing+IIHNPZiDYj+d+vA+w+KXPqEr+z1ub1I/DaEMP/RFsT6bkxI+REU/P9m0Hj+hD8g+H2slPgpNKT/WdC4/P+rbPqHVNT462RA/46U7P0SL7D6BlUM+RIvsPgAAgD8AAIA/AACAP+Q4jj/kOI4/5DiOP8dxnD/HcZw/x3GcP6uqqj+rqqo/q6qqP47juD+O47g/juO4P3Icxz9yHMc/chzHP1ZV1T9WVdU/VlXVPzmO4z85juM/OY7jPxzH8T8cx/E/HMfxPwAAAEAAAABAAAAAQAkACAAHAAYABQAEAAMAAgABAAAA",
-    "byteLength" : 420
-  }, {
-    "uri" : "data:application/gltf-buffer;base64,emVyb29uZXR3b3RocmVlZm91cmZpdmVzaXhzZXZlbmVpZ2h0bmluZQAAAAAEAAAABwAAAAoAAAAPAAAAEwAAABcAAAAaAAAAHwAAACQAAAAoAAAA",
-    "byteLength" : 84
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 144,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 144,
-    "byteLength" : 288,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 288,
-    "target" : 34962
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 0,
-    "byteLength" : 120
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 120,
-    "byteLength" : 160
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 280,
-    "byteLength" : 120
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 400,
-    "byteLength" : 20
-  }, {
-    "buffer" : 2,
-    "byteOffset" : 0,
-    "byteLength" : 40
-  }, {
-    "buffer" : 2,
-    "byteOffset" : 40,
-    "byteLength" : 44
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2
-      },
-      "indices" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "extensions" : {
-      "EXT_mesh_gpu_instancing" : {
-        "attributes" : {
-          "TRANSLATION" : 3,
-          "ROTATION" : 4,
-          "SCALE" : 5,
-          "_FEATURE_ID_0" : 6
-        }
-      },
-      "EXT_instance_features" : {
-        "featureIds" : [ {
-          "featureCount" : 10,
-          "attribute" : 0,
-          "propertyTable" : 0
-        } ]
-      }
-    },
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 103
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeAccessorNormalized.gltf

@@ -1,103 +0,0 @@
-{
-  "extensionsUsed" : [ "EXT_mesh_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ],
-    "normalized": true
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : 4,
-            "attribute" : 0
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 102
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeAccessorNotScalar.gltf

@@ -1,102 +0,0 @@
-{
-  "extensionsUsed" : [ "EXT_mesh_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : 4,
-            "attribute" : 0
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 2
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 102
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeAttributeInvalidType.gltf

@@ -1,102 +0,0 @@
-{
-  "extensionsUsed" : [ "EXT_mesh_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : 4,
-            "attribute" : "NOT_A_NUMBER"
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 102
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeAttributeInvalidValue.gltf

@@ -1,102 +0,0 @@
-{
-  "extensionsUsed" : [ "EXT_mesh_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : 4,
-            "attribute" : 12345
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 102
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeFeatureCountInvalidType.gltf

@@ -1,102 +0,0 @@
-{
-  "extensionsUsed" : [ "EXT_mesh_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : "NOT_AN_INTEGER",
-            "attribute" : 0
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 102
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeFeatureCountInvalidValue.gltf

@@ -1,102 +0,0 @@
-{
-  "extensionsUsed" : [ "EXT_mesh_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : -12345,
-            "attribute" : 0
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 102
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeFeatureCountMismatch.gltf

@@ -1,102 +0,0 @@
-{
-  "extensionsUsed" : [ "EXT_mesh_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : 1,
-            "attribute" : 0
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 103
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeFeatureCountMismatchForNullFeatureId.gltf

@@ -1,103 +0,0 @@
-{
-  "extensionsUsed" : [ "EXT_mesh_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : 2,
-            "attribute" : 0,
-            "nullFeatureId": 1
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 101
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeFeatureCountMissing.gltf

@@ -1,101 +0,0 @@
-{
-  "extensionsUsed" : [ "EXT_mesh_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "attribute" : 0
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 103
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeLabelInvalidType.gltf

@@ -1,103 +0,0 @@
-{
-  "extensionsUsed" : [ "EXT_mesh_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "label": 12345,
-            "featureCount" : 4,
-            "attribute" : 0
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 103
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeLabelInvalidValue.gltf

@@ -1,103 +0,0 @@
-{
-  "extensionsUsed" : [ "EXT_mesh_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "label": "NOT:A:VALID/IDENTIFIER",
-            "featureCount" : 4,
-            "attribute" : 0
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 103
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeNullFeatureIdInvalidType.gltf

@@ -1,103 +0,0 @@
-{
-  "extensionsUsed" : [ "EXT_mesh_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "nullFeatureId": "NOT_A_NUMBER",
-            "featureCount" : 4,
-            "attribute" : 0
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 103
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdAttributeNullFeatureIdInvalidValue.gltf

@@ -1,103 +0,0 @@
-{
-  "extensionsUsed" : [ "EXT_mesh_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "nullFeatureId": -12345,
-            "featureCount" : 4,
-            "attribute" : 0
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 65
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureFeatureCountMismatch.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 65
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureSamplerInvalidFilterMode.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 65
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureChannelsInvalidElementType.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 65
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureChannelsInvalidType.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 65
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureChannelsTooManyChannels.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 65
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureChannelsTooManyElements.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 65
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureImageDataInvalid.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 65
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureIndexInvalidType.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 65
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureIndexInvalidValue.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 65
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureInvalidType.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 65
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureTexCoordInvalidType.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 65
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/FeatureIdTextureTextureTexCoordInvalidValue.gltf


+ 0 - 19
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/README.md

@@ -1,19 +0,0 @@
-
-
-The files in this directory are used for the specs for the `EXT_mesh_features`
-validation.
-
-The valid files have been taken from
-https://github.com/CesiumGS/3d-tiles-samples/tree/a256d9f68df15bbfc75ea3891f52c72a36d04202/glTF/EXT_mesh_features
-
-The `ValidFeatureIdTexture.glb` and `ValidFeatureIdAttributeDefault/` are 
-intended for basic tests of binary- and default (non-embedded) glTF assets. 
-
-The `ValidFeatureIdAttributeWithByteStride.glb` was created from the original
-`ValidFeatureIdTexture.gltf` by passing it through https://gltf.report/ , which 
-happens to write all attributes in an interleaved way, causing a byte stride 
-to be inserted. 
-
-The other files (starting with `FeatureIdTexture*` or `FeatureIdAttribute*`)
-have been edited to cause validation errors (with the error indicated by 
-their file name, as far as reasonably possible). 

+ 0 - 102
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/ValidFeatureIdAttribute.gltf

@@ -1,102 +0,0 @@
-{
-  "extensionsUsed" : [ "EXT_mesh_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : 4,
-            "attribute" : 0
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 159
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/ValidFeatureIdAttributeDefault/ValidFeatureIdAttributeDefault.gltf

@@ -1,159 +0,0 @@
-{
-  "extensionsUsed": [
-    "EXT_mesh_features"
-  ],
-  "accessors": [
-    {
-      "bufferView": 0,
-      "byteOffset": 0,
-      "componentType": 5123,
-      "count": 24,
-      "type": "SCALAR",
-      "max": [
-        15
-      ],
-      "min": [
-        0
-      ]
-    },
-    {
-      "bufferView": 1,
-      "byteOffset": 0,
-      "componentType": 5126,
-      "count": 16,
-      "type": "VEC3",
-      "max": [
-        1,
-        1,
-        0
-      ],
-      "min": [
-        0,
-        0,
-        0
-      ]
-    },
-    {
-      "bufferView": 2,
-      "byteOffset": 0,
-      "componentType": 5126,
-      "count": 16,
-      "type": "VEC3",
-      "max": [
-        0,
-        0,
-        1
-      ],
-      "min": [
-        0,
-        0,
-        1
-      ]
-    },
-    {
-      "bufferView": 3,
-      "byteOffset": 0,
-      "componentType": 5121,
-      "count": 16,
-      "type": "SCALAR",
-      "max": [
-        3
-      ],
-      "min": [
-        0
-      ]
-    }
-  ],
-  "asset": {
-    "generator": "JglTF from https://github.com/javagl/JglTF",
-    "version": "2.0"
-  },
-  "buffers": [
-    {
-      "uri": "ValidFeatureIdAttributeDefault_data.bin",
-      "byteLength": 496
-    }
-  ],
-  "bufferViews": [
-    {
-      "buffer": 0,
-      "byteOffset": 0,
-      "byteLength": 48,
-      "target": 34963
-    },
-    {
-      "buffer": 0,
-      "byteOffset": 48,
-      "byteLength": 192,
-      "target": 34962
-    },
-    {
-      "buffer": 0,
-      "byteOffset": 240,
-      "byteLength": 192,
-      "target": 34962
-    },
-    {
-      "buffer": 0,
-      "byteOffset": 432,
-      "byteLength": 64,
-      "byteStride": 4,
-      "target": 34962
-    }
-  ],
-  "materials": [
-    {
-      "pbrMetallicRoughness": {
-        "baseColorFactor": [
-          0.5,
-          1,
-          0.5,
-          1
-        ],
-        "metallicFactor": 0,
-        "roughnessFactor": 1
-      },
-      "alphaMode": "OPAQUE",
-      "doubleSided": true
-    }
-  ],
-  "meshes": [
-    {
-      "primitives": [
-        {
-          "extensions": {
-            "EXT_mesh_features": {
-              "featureIds": [
-                {
-                  "featureCount": 4,
-                  "attribute": 0
-                }
-              ]
-            }
-          },
-          "attributes": {
-            "POSITION": 1,
-            "NORMAL": 2,
-            "_FEATURE_ID_0": 3
-          },
-          "indices": 0,
-          "material": 0,
-          "mode": 4
-        }
-      ]
-    }
-  ],
-  "nodes": [
-    {
-      "mesh": 0
-    }
-  ],
-  "scene": 0,
-  "scenes": [
-    {
-      "nodes": [
-        0
-      ]
-    }
-  ]
-}

BIN
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/ValidFeatureIdAttributeDefault/ValidFeatureIdAttributeDefault_data.bin


BIN
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/ValidFeatureIdAttributeWithByteStride.glb


+ 0 - 102
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/ValidFeatureIdAttributeWithLargerFeatureCount.gltf

@@ -1,102 +0,0 @@
-{
-  "extensionsUsed" : [ "EXT_mesh_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : 123,
-            "attribute" : 0
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 103
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/ValidFeatureIdAttributeWithNullFeatureId.gltf

@@ -1,103 +0,0 @@
-{
-  "extensionsUsed" : [ "EXT_mesh_features" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAEAAAACAAAAAgAAAAIAAAACAAAAAwAAAAMAAAADAAAAAwAAAA==",
-    "byteLength" : 496
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : 3,
-            "attribute" : 0,
-            "nullFeatureId": 2
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

BIN
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/ValidFeatureIdTexture.glb


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 65
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/ValidFeatureIdTexture.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 65
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/meshFeatures/ValidFeatureIdTextureUsingDefaultChannels.gltf


+ 0 - 275
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/ExtensionInMeshPrimitiveWithoutTopLevelObject.gltf

@@ -1,275 +0,0 @@
-{
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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" : [ 0.0, 1.0, 0.0 ],
-    "min" : [ -1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.25 ],
-    "min" : [ 0.25 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 7,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 8,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.5 ],
-    "min" : [ 0.5 ]
-  }, {
-    "bufferView" : 9,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 1 ],
-    "min" : [ 1 ]
-  }, {
-    "bufferView" : 10,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 11,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 2.0, 1.0, 0.0 ],
-    "min" : [ 1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 12,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 13,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.75 ],
-    "min" : [ 0.75 ]
-  }, {
-    "bufferView" : 14,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 2 ],
-    "min" : [ 2 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAACAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPgAAgD4AAIA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAEAAgABAAMAAgAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAA/AAAAPwAAAD8AAAA/AQAAAAEAAAABAAAAAQAAAAAAAQACAAEAAwACAAAAgD8AAAAAAAAAAAAAAEAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAAEAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAQD8AAEA/AABAPwAAQD8CAAAAAgAAAAIAAAACAAAA",
-    "byteLength" : 420
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 124,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 140,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 152,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 200,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 248,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 264,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 280,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 292,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 340,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 388,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 404,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 1.0, 1.0, 1.0, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_INTENSITY" : 3,
-        "_CLASSIFICATION" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 6,
-        "NORMAL" : 7,
-        "_INTENSITY" : 8,
-        "_CLASSIFICATION" : 9
-      },
-      "indices" : 5,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 11,
-        "NORMAL" : 12,
-        "_INTENSITY" : 13,
-        "_CLASSIFICATION" : 14
-      },
-      "indices" : 10,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 328
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesClassPropertyArray.gltf

@@ -1,328 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "SimplePropertyAttributeSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class for property attributes",
-            "properties" : {
-              "intensity" : {
-                "name" : "Example intensity property",
-                "description" : "An example property for the intensity, with component type FLOAT32",
-                "type" : "SCALAR",
-                "componentType" : "FLOAT32",
-                "array": true
-              },
-              "classification" : {
-                "name" : "Example classification property",
-                "description" : "An example property for the classification, with the classificationEnumType",
-                "type" : "ENUM",
-                "enumType" : "classificationEnumType"
-              }
-            }
-          }
-        },
-        "enums" : {
-          "classificationEnumType" : {
-            "values" : [ {
-              "name" : "ExampleClassificationA",
-              "value" : 0
-            }, {
-              "name" : "ExampleClassificationB",
-              "value" : 1
-            }, {
-              "name" : "ExampleClassificationC",
-              "value" : 2
-            } ]
-          }
-        }
-      },
-      "propertyAttributes" : [ {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY"
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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" : [ 0.0, 1.0, 0.0 ],
-    "min" : [ -1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.25 ],
-    "min" : [ 0.25 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 7,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 8,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.5 ],
-    "min" : [ 0.5 ]
-  }, {
-    "bufferView" : 9,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 1 ],
-    "min" : [ 1 ]
-  }, {
-    "bufferView" : 10,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 11,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 2.0, 1.0, 0.0 ],
-    "min" : [ 1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 12,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 13,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.75 ],
-    "min" : [ 0.75 ]
-  }, {
-    "bufferView" : 14,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 2 ],
-    "min" : [ 2 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAACAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPgAAgD4AAIA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAEAAgABAAMAAgAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAA/AAAAPwAAAD8AAAA/AQAAAAEAAAABAAAAAQAAAAAAAQACAAEAAwACAAAAgD8AAAAAAAAAAAAAAEAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAAEAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAQD8AAEA/AABAPwAAQD8CAAAAAgAAAAIAAAACAAAA",
-    "byteLength" : 420
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 124,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 140,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 152,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 200,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 248,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 264,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 280,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 292,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 340,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 388,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 404,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 1.0, 1.0, 1.0, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_INTENSITY" : 3,
-        "_CLASSIFICATION" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 6,
-        "NORMAL" : 7,
-        "_INTENSITY" : 8,
-        "_CLASSIFICATION" : 9
-      },
-      "indices" : 5,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 11,
-        "NORMAL" : 12,
-        "_INTENSITY" : 13,
-        "_CLASSIFICATION" : 14
-      },
-      "indices" : 10,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 327
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesClassPropertyInvalidComponentType.gltf

@@ -1,327 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "SimplePropertyAttributeSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class for property attributes",
-            "properties" : {
-              "intensity" : {
-                "name" : "Example intensity property",
-                "description" : "An example property for the intensity, with component type FLOAT32",
-                "type" : "SCALAR",
-                "componentType": "FLOAT64"
-              },
-              "classification" : {
-                "name" : "Example classification property",
-                "description" : "An example property for the classification, with the classificationEnumType",
-                "type" : "ENUM",
-                "enumType" : "classificationEnumType"
-              }
-            }
-          }
-        },
-        "enums" : {
-          "classificationEnumType" : {
-            "values" : [ {
-              "name" : "ExampleClassificationA",
-              "value" : 0
-            }, {
-              "name" : "ExampleClassificationB",
-              "value" : 1
-            }, {
-              "name" : "ExampleClassificationC",
-              "value" : 2
-            } ]
-          }
-        }
-      },
-      "propertyAttributes" : [ {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY"
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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" : [ 0.0, 1.0, 0.0 ],
-    "min" : [ -1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.25 ],
-    "min" : [ 0.25 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 7,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 8,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.5 ],
-    "min" : [ 0.5 ]
-  }, {
-    "bufferView" : 9,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 1 ],
-    "min" : [ 1 ]
-  }, {
-    "bufferView" : 10,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 11,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 2.0, 1.0, 0.0 ],
-    "min" : [ 1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 12,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 13,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.75 ],
-    "min" : [ 0.75 ]
-  }, {
-    "bufferView" : 14,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 2 ],
-    "min" : [ 2 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAACAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPgAAgD4AAIA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAEAAgABAAMAAgAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAA/AAAAPwAAAD8AAAA/AQAAAAEAAAABAAAAAQAAAAAAAQACAAEAAwACAAAAgD8AAAAAAAAAAAAAAEAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAAEAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAQD8AAEA/AABAPwAAQD8CAAAAAgAAAAIAAAACAAAA",
-    "byteLength" : 420
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 124,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 140,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 152,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 200,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 248,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 264,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 280,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 292,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 340,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 388,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 404,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 1.0, 1.0, 1.0, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_INTENSITY" : 3,
-        "_CLASSIFICATION" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 6,
-        "NORMAL" : 7,
-        "_INTENSITY" : 8,
-        "_CLASSIFICATION" : 9
-      },
-      "indices" : 5,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 11,
-        "NORMAL" : 12,
-        "_INTENSITY" : 13,
-        "_CLASSIFICATION" : 14
-      },
-      "indices" : 10,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 328
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesClassPropertyInvalidEnumValueType.gltf

@@ -1,328 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "SimplePropertyAttributeSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class for property attributes",
-            "properties" : {
-              "intensity" : {
-                "name" : "Example intensity property",
-                "description" : "An example property for the intensity, with component type FLOAT32",
-                "type" : "SCALAR",
-                "componentType": "FLOAT32"
-              },
-              "classification" : {
-                "name" : "Example classification property",
-                "description" : "An example property for the classification, with the classificationEnumType",
-                "type" : "ENUM",
-                "enumType" : "classificationEnumType"
-              }
-            }
-          }
-        },
-        "enums" : {
-          "classificationEnumType" : {
-            "valueType": "INT64",
-            "values" : [ {
-              "name" : "ExampleClassificationA",
-              "value" : 0
-            }, {
-              "name" : "ExampleClassificationB",
-              "value" : 1
-            }, {
-              "name" : "ExampleClassificationC",
-              "value" : 2
-            } ]
-          }
-        }
-      },
-      "propertyAttributes" : [ {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY"
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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" : [ 0.0, 1.0, 0.0 ],
-    "min" : [ -1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.25 ],
-    "min" : [ 0.25 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 7,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 8,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.5 ],
-    "min" : [ 0.5 ]
-  }, {
-    "bufferView" : 9,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 1 ],
-    "min" : [ 1 ]
-  }, {
-    "bufferView" : 10,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 11,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 2.0, 1.0, 0.0 ],
-    "min" : [ 1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 12,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 13,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.75 ],
-    "min" : [ 0.75 ]
-  }, {
-    "bufferView" : 14,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 2 ],
-    "min" : [ 2 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAACAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPgAAgD4AAIA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAEAAgABAAMAAgAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAA/AAAAPwAAAD8AAAA/AQAAAAEAAAABAAAAAQAAAAAAAQACAAEAAwACAAAAgD8AAAAAAAAAAAAAAEAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAAEAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAQD8AAEA/AABAPwAAQD8CAAAAAgAAAAIAAAACAAAA",
-    "byteLength" : 420
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 124,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 140,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 152,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 200,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 248,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 264,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 280,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 292,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 340,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 388,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 404,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 1.0, 1.0, 1.0, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_INTENSITY" : 3,
-        "_CLASSIFICATION" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 6,
-        "NORMAL" : 7,
-        "_INTENSITY" : 8,
-        "_CLASSIFICATION" : 9
-      },
-      "indices" : 5,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 11,
-        "NORMAL" : 12,
-        "_INTENSITY" : 13,
-        "_CLASSIFICATION" : 14
-      },
-      "indices" : 10,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 339
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesClassPropertyMaxNotInRange.gltf

@@ -1,339 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "SimplePropertyAttributeSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class for property attributes",
-            "properties" : {
-              "intensity" : {
-                "name" : "Example intensity property",
-                "description" : "An example property for the intensity, with component type FLOAT32",
-                "type" : "SCALAR",
-                "componentType" : "FLOAT32",
-                "max": 0.7
-              },
-              "classification" : {
-                "name" : "Example classification property",
-                "description" : "An example property for the classification, with the classificationEnumType",
-                "type" : "ENUM",
-                "enumType" : "classificationEnumType"
-              }
-            }
-          }
-        },
-        "enums" : {
-          "classificationEnumType" : {
-            "values" : [ {
-              "name" : "ExampleClassificationA",
-              "value" : 0
-            }, {
-              "name" : "ExampleClassificationB",
-              "value" : 1
-            }, {
-              "name" : "ExampleClassificationC",
-              "value" : 2
-            } ]
-          }
-        }
-      },
-      "propertyAttributes" : [ {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY"
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      }, {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY"
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      }
-      ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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" : [ 0.0, 1.0, 0.0 ],
-    "min" : [ -1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.25 ],
-    "min" : [ 0.25 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 7,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 8,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.5 ],
-    "min" : [ 0.5 ]
-  }, {
-    "bufferView" : 9,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 1 ],
-    "min" : [ 1 ]
-  }, {
-    "bufferView" : 10,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 11,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 2.0, 1.0, 0.0 ],
-    "min" : [ 1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 12,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 13,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.75 ],
-    "min" : [ 0.75 ]
-  }, {
-    "bufferView" : 14,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 2 ],
-    "min" : [ 2 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAACAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPgAAgD4AAIA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAEAAgABAAMAAgAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAA/AAAAPwAAAD8AAAA/AQAAAAEAAAABAAAAAQAAAAAAAQACAAEAAwACAAAAgD8AAAAAAAAAAAAAAEAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAAEAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAQD8AAEA/AABAPwAAQD8CAAAAAgAAAAIAAAACAAAA",
-    "byteLength" : 420
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 124,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 140,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 152,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 200,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 248,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 264,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 280,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 292,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 340,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 388,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 404,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 1.0, 1.0, 1.0, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_INTENSITY" : 3,
-        "_CLASSIFICATION" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 1 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 6,
-        "NORMAL" : 7,
-        "_INTENSITY" : 8,
-        "_CLASSIFICATION" : 9
-      },
-      "indices" : 5,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 1 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 11,
-        "NORMAL" : 12,
-        "_INTENSITY" : 13,
-        "_CLASSIFICATION" : 14
-      },
-      "indices" : 10,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 339
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesClassPropertyMinNotInRange.gltf

@@ -1,339 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "SimplePropertyAttributeSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class for property attributes",
-            "properties" : {
-              "intensity" : {
-                "name" : "Example intensity property",
-                "description" : "An example property for the intensity, with component type FLOAT32",
-                "type" : "SCALAR",
-                "componentType" : "FLOAT32",
-                "min": 0.3
-              },
-              "classification" : {
-                "name" : "Example classification property",
-                "description" : "An example property for the classification, with the classificationEnumType",
-                "type" : "ENUM",
-                "enumType" : "classificationEnumType"
-              }
-            }
-          }
-        },
-        "enums" : {
-          "classificationEnumType" : {
-            "values" : [ {
-              "name" : "ExampleClassificationA",
-              "value" : 0
-            }, {
-              "name" : "ExampleClassificationB",
-              "value" : 1
-            }, {
-              "name" : "ExampleClassificationC",
-              "value" : 2
-            } ]
-          }
-        }
-      },
-      "propertyAttributes" : [ {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY"
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      }, {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY"
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      }
-      ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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" : [ 0.0, 1.0, 0.0 ],
-    "min" : [ -1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.25 ],
-    "min" : [ 0.25 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 7,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 8,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.5 ],
-    "min" : [ 0.5 ]
-  }, {
-    "bufferView" : 9,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 1 ],
-    "min" : [ 1 ]
-  }, {
-    "bufferView" : 10,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 11,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 2.0, 1.0, 0.0 ],
-    "min" : [ 1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 12,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 13,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.75 ],
-    "min" : [ 0.75 ]
-  }, {
-    "bufferView" : 14,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 2 ],
-    "min" : [ 2 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAACAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPgAAgD4AAIA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAEAAgABAAMAAgAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAA/AAAAPwAAAD8AAAA/AQAAAAEAAAABAAAAAQAAAAAAAQACAAEAAwACAAAAgD8AAAAAAAAAAAAAAEAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAAEAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAQD8AAEA/AABAPwAAQD8CAAAAAgAAAAIAAAACAAAA",
-    "byteLength" : 420
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 124,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 140,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 152,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 200,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 248,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 264,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 280,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 292,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 340,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 388,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 404,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 1.0, 1.0, 1.0, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_INTENSITY" : 3,
-        "_CLASSIFICATION" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 1 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 6,
-        "NORMAL" : 7,
-        "_INTENSITY" : 8,
-        "_CLASSIFICATION" : 9
-      },
-      "indices" : 5,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 1 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 11,
-        "NORMAL" : 12,
-        "_INTENSITY" : 13,
-        "_CLASSIFICATION" : 14
-      },
-      "indices" : 10,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 326
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesClassPropertyString.gltf

@@ -1,326 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "SimplePropertyAttributeSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class for property attributes",
-            "properties" : {
-              "intensity" : {
-                "name" : "Example intensity property",
-                "description" : "An example property for the intensity, with component type FLOAT32",
-                "type" : "STRING"
-              },
-              "classification" : {
-                "name" : "Example classification property",
-                "description" : "An example property for the classification, with the classificationEnumType",
-                "type" : "ENUM",
-                "enumType" : "classificationEnumType"
-              }
-            }
-          }
-        },
-        "enums" : {
-          "classificationEnumType" : {
-            "values" : [ {
-              "name" : "ExampleClassificationA",
-              "value" : 0
-            }, {
-              "name" : "ExampleClassificationB",
-              "value" : 1
-            }, {
-              "name" : "ExampleClassificationC",
-              "value" : 2
-            } ]
-          }
-        }
-      },
-      "propertyAttributes" : [ {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY"
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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" : [ 0.0, 1.0, 0.0 ],
-    "min" : [ -1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.25 ],
-    "min" : [ 0.25 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 7,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 8,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.5 ],
-    "min" : [ 0.5 ]
-  }, {
-    "bufferView" : 9,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 1 ],
-    "min" : [ 1 ]
-  }, {
-    "bufferView" : 10,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 11,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 2.0, 1.0, 0.0 ],
-    "min" : [ 1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 12,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 13,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.75 ],
-    "min" : [ 0.75 ]
-  }, {
-    "bufferView" : 14,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 2 ],
-    "min" : [ 2 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAACAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPgAAgD4AAIA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAEAAgABAAMAAgAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAA/AAAAPwAAAD8AAAA/AQAAAAEAAAABAAAAAQAAAAAAAQACAAEAAwACAAAAgD8AAAAAAAAAAAAAAEAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAAEAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAQD8AAEA/AABAPwAAQD8CAAAAAgAAAAIAAAACAAAA",
-    "byteLength" : 420
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 124,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 140,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 152,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 200,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 248,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 264,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 280,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 292,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 340,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 388,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 404,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 1.0, 1.0, 1.0, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_INTENSITY" : 3,
-        "_CLASSIFICATION" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 6,
-        "NORMAL" : 7,
-        "_INTENSITY" : 8,
-        "_CLASSIFICATION" : 9
-      },
-      "indices" : 5,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 11,
-        "NORMAL" : 12,
-        "_INTENSITY" : 13,
-        "_CLASSIFICATION" : 14
-      },
-      "indices" : 10,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 327
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesMeshPrimitivePropertyAttributesInvalidElementType.gltf

@@ -1,327 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "SimplePropertyAttributeSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class for property attributes",
-            "properties" : {
-              "intensity" : {
-                "name" : "Example intensity property",
-                "description" : "An example property for the intensity, with component type FLOAT32",
-                "type" : "SCALAR",
-                "componentType" : "FLOAT32"
-              },
-              "classification" : {
-                "name" : "Example classification property",
-                "description" : "An example property for the classification, with the classificationEnumType",
-                "type" : "ENUM",
-                "enumType" : "classificationEnumType"
-              }
-            }
-          }
-        },
-        "enums" : {
-          "classificationEnumType" : {
-            "values" : [ {
-              "name" : "ExampleClassificationA",
-              "value" : 0
-            }, {
-              "name" : "ExampleClassificationB",
-              "value" : 1
-            }, {
-              "name" : "ExampleClassificationC",
-              "value" : 2
-            } ]
-          }
-        }
-      },
-      "propertyAttributes" : [ {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY"
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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" : [ 0.0, 1.0, 0.0 ],
-    "min" : [ -1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.25 ],
-    "min" : [ 0.25 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 7,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 8,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.5 ],
-    "min" : [ 0.5 ]
-  }, {
-    "bufferView" : 9,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 1 ],
-    "min" : [ 1 ]
-  }, {
-    "bufferView" : 10,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 11,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 2.0, 1.0, 0.0 ],
-    "min" : [ 1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 12,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 13,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.75 ],
-    "min" : [ 0.75 ]
-  }, {
-    "bufferView" : 14,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 2 ],
-    "min" : [ 2 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAACAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPgAAgD4AAIA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAEAAgABAAMAAgAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAA/AAAAPwAAAD8AAAA/AQAAAAEAAAABAAAAAQAAAAAAAQACAAEAAwACAAAAgD8AAAAAAAAAAAAAAEAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAAEAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAQD8AAEA/AABAPwAAQD8CAAAAAgAAAAIAAAACAAAA",
-    "byteLength" : 420
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 124,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 140,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 152,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 200,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 248,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 264,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 280,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 292,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 340,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 388,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 404,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 1.0, 1.0, 1.0, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0, "NOT_A_NUMBER" ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_INTENSITY" : 3,
-        "_CLASSIFICATION" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 6,
-        "NORMAL" : 7,
-        "_INTENSITY" : 8,
-        "_CLASSIFICATION" : 9
-      },
-      "indices" : 5,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 11,
-        "NORMAL" : 12,
-        "_INTENSITY" : 13,
-        "_CLASSIFICATION" : 14
-      },
-      "indices" : 10,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 327
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesMeshPrimitivePropertyAttributesInvalidElementValue.gltf

@@ -1,327 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "SimplePropertyAttributeSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class for property attributes",
-            "properties" : {
-              "intensity" : {
-                "name" : "Example intensity property",
-                "description" : "An example property for the intensity, with component type FLOAT32",
-                "type" : "SCALAR",
-                "componentType" : "FLOAT32"
-              },
-              "classification" : {
-                "name" : "Example classification property",
-                "description" : "An example property for the classification, with the classificationEnumType",
-                "type" : "ENUM",
-                "enumType" : "classificationEnumType"
-              }
-            }
-          }
-        },
-        "enums" : {
-          "classificationEnumType" : {
-            "values" : [ {
-              "name" : "ExampleClassificationA",
-              "value" : 0
-            }, {
-              "name" : "ExampleClassificationB",
-              "value" : 1
-            }, {
-              "name" : "ExampleClassificationC",
-              "value" : 2
-            } ]
-          }
-        }
-      },
-      "propertyAttributes" : [ {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY"
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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" : [ 0.0, 1.0, 0.0 ],
-    "min" : [ -1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.25 ],
-    "min" : [ 0.25 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 7,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 8,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.5 ],
-    "min" : [ 0.5 ]
-  }, {
-    "bufferView" : 9,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 1 ],
-    "min" : [ 1 ]
-  }, {
-    "bufferView" : 10,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 11,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 2.0, 1.0, 0.0 ],
-    "min" : [ 1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 12,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 13,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.75 ],
-    "min" : [ 0.75 ]
-  }, {
-    "bufferView" : 14,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 2 ],
-    "min" : [ 2 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAACAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPgAAgD4AAIA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAEAAgABAAMAAgAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAA/AAAAPwAAAD8AAAA/AQAAAAEAAAABAAAAAQAAAAAAAQACAAEAAwACAAAAgD8AAAAAAAAAAAAAAEAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAAEAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAQD8AAEA/AABAPwAAQD8CAAAAAgAAAAIAAAACAAAA",
-    "byteLength" : 420
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 124,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 140,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 152,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 200,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 248,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 264,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 280,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 292,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 340,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 388,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 404,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 1.0, 1.0, 1.0, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0, 12345 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_INTENSITY" : 3,
-        "_CLASSIFICATION" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 6,
-        "NORMAL" : 7,
-        "_INTENSITY" : 8,
-        "_CLASSIFICATION" : 9
-      },
-      "indices" : 5,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 11,
-        "NORMAL" : 12,
-        "_INTENSITY" : 13,
-        "_CLASSIFICATION" : 14
-      },
-      "indices" : 10,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 327
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesMeshPrimitivePropertyAttributesInvalidLength.gltf

@@ -1,327 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "SimplePropertyAttributeSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class for property attributes",
-            "properties" : {
-              "intensity" : {
-                "name" : "Example intensity property",
-                "description" : "An example property for the intensity, with component type FLOAT32",
-                "type" : "SCALAR",
-                "componentType" : "FLOAT32"
-              },
-              "classification" : {
-                "name" : "Example classification property",
-                "description" : "An example property for the classification, with the classificationEnumType",
-                "type" : "ENUM",
-                "enumType" : "classificationEnumType"
-              }
-            }
-          }
-        },
-        "enums" : {
-          "classificationEnumType" : {
-            "values" : [ {
-              "name" : "ExampleClassificationA",
-              "value" : 0
-            }, {
-              "name" : "ExampleClassificationB",
-              "value" : 1
-            }, {
-              "name" : "ExampleClassificationC",
-              "value" : 2
-            } ]
-          }
-        }
-      },
-      "propertyAttributes" : [ {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY"
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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" : [ 0.0, 1.0, 0.0 ],
-    "min" : [ -1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.25 ],
-    "min" : [ 0.25 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 7,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 8,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.5 ],
-    "min" : [ 0.5 ]
-  }, {
-    "bufferView" : 9,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 1 ],
-    "min" : [ 1 ]
-  }, {
-    "bufferView" : 10,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 11,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 2.0, 1.0, 0.0 ],
-    "min" : [ 1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 12,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 13,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.75 ],
-    "min" : [ 0.75 ]
-  }, {
-    "bufferView" : 14,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 2 ],
-    "min" : [ 2 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAACAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPgAAgD4AAIA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAEAAgABAAMAAgAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAA/AAAAPwAAAD8AAAA/AQAAAAEAAAABAAAAAQAAAAAAAQACAAEAAwACAAAAgD8AAAAAAAAAAAAAAEAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAAEAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAQD8AAEA/AABAPwAAQD8CAAAAAgAAAAIAAAACAAAA",
-    "byteLength" : 420
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 124,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 140,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 152,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 200,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 248,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 264,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 280,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 292,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 340,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 388,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 404,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 1.0, 1.0, 1.0, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : []
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_INTENSITY" : 3,
-        "_CLASSIFICATION" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 6,
-        "NORMAL" : 7,
-        "_INTENSITY" : 8,
-        "_CLASSIFICATION" : 9
-      },
-      "indices" : 5,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 11,
-        "NORMAL" : 12,
-        "_INTENSITY" : 13,
-        "_CLASSIFICATION" : 14
-      },
-      "indices" : 10,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 327
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesMeshPrimitivePropertyAttributesInvalidType.gltf

@@ -1,327 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "SimplePropertyAttributeSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class for property attributes",
-            "properties" : {
-              "intensity" : {
-                "name" : "Example intensity property",
-                "description" : "An example property for the intensity, with component type FLOAT32",
-                "type" : "SCALAR",
-                "componentType" : "FLOAT32"
-              },
-              "classification" : {
-                "name" : "Example classification property",
-                "description" : "An example property for the classification, with the classificationEnumType",
-                "type" : "ENUM",
-                "enumType" : "classificationEnumType"
-              }
-            }
-          }
-        },
-        "enums" : {
-          "classificationEnumType" : {
-            "values" : [ {
-              "name" : "ExampleClassificationA",
-              "value" : 0
-            }, {
-              "name" : "ExampleClassificationB",
-              "value" : 1
-            }, {
-              "name" : "ExampleClassificationC",
-              "value" : 2
-            } ]
-          }
-        }
-      },
-      "propertyAttributes" : [ {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY"
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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" : [ 0.0, 1.0, 0.0 ],
-    "min" : [ -1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.25 ],
-    "min" : [ 0.25 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 7,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 8,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.5 ],
-    "min" : [ 0.5 ]
-  }, {
-    "bufferView" : 9,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 1 ],
-    "min" : [ 1 ]
-  }, {
-    "bufferView" : 10,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 11,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 2.0, 1.0, 0.0 ],
-    "min" : [ 1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 12,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 13,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.75 ],
-    "min" : [ 0.75 ]
-  }, {
-    "bufferView" : 14,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 2 ],
-    "min" : [ 2 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAACAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPgAAgD4AAIA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAEAAgABAAMAAgAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAA/AAAAPwAAAD8AAAA/AQAAAAEAAAABAAAAAQAAAAAAAQACAAEAAwACAAAAgD8AAAAAAAAAAAAAAEAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAAEAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAQD8AAEA/AABAPwAAQD8CAAAAAgAAAAIAAAACAAAA",
-    "byteLength" : 420
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 124,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 140,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 152,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 200,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 248,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 264,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 280,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 292,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 340,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 388,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 404,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 1.0, 1.0, 1.0, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : "NOT_A_NUMBER"
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_INTENSITY" : 3,
-        "_CLASSIFICATION" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 6,
-        "NORMAL" : 7,
-        "_INTENSITY" : 8,
-        "_CLASSIFICATION" : 9
-      },
-      "indices" : 5,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 11,
-        "NORMAL" : 12,
-        "_INTENSITY" : 13,
-        "_CLASSIFICATION" : 14
-      },
-      "indices" : 10,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 327
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesPropertyAttributePropertyInvalidAttribute.gltf

@@ -1,327 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "SimplePropertyAttributeSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class for property attributes",
-            "properties" : {
-              "intensity" : {
-                "name" : "Example intensity property",
-                "description" : "An example property for the intensity, with component type FLOAT32",
-                "type" : "SCALAR",
-                "componentType" : "FLOAT32"
-              },
-              "classification" : {
-                "name" : "Example classification property",
-                "description" : "An example property for the classification, with the classificationEnumType",
-                "type" : "ENUM",
-                "enumType" : "classificationEnumType"
-              }
-            }
-          }
-        },
-        "enums" : {
-          "classificationEnumType" : {
-            "values" : [ {
-              "name" : "ExampleClassificationA",
-              "value" : 0
-            }, {
-              "name" : "ExampleClassificationB",
-              "value" : 1
-            }, {
-              "name" : "ExampleClassificationC",
-              "value" : 2
-            } ]
-          }
-        }
-      },
-      "propertyAttributes" : [ {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "THIS_ATTRIBUTE_DOES_NOT_EXIST"
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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" : [ 0.0, 1.0, 0.0 ],
-    "min" : [ -1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.25 ],
-    "min" : [ 0.25 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 7,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 8,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.5 ],
-    "min" : [ 0.5 ]
-  }, {
-    "bufferView" : 9,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 1 ],
-    "min" : [ 1 ]
-  }, {
-    "bufferView" : 10,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 11,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 2.0, 1.0, 0.0 ],
-    "min" : [ 1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 12,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 13,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.75 ],
-    "min" : [ 0.75 ]
-  }, {
-    "bufferView" : 14,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 2 ],
-    "min" : [ 2 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAACAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPgAAgD4AAIA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAEAAgABAAMAAgAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAA/AAAAPwAAAD8AAAA/AQAAAAEAAAABAAAAAQAAAAAAAQACAAEAAwACAAAAgD8AAAAAAAAAAAAAAEAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAAEAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAQD8AAEA/AABAPwAAQD8CAAAAAgAAAAIAAAACAAAA",
-    "byteLength" : 420
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 124,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 140,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 152,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 200,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 248,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 264,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 280,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 292,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 340,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 388,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 404,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 1.0, 1.0, 1.0, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_INTENSITY" : 3,
-        "_CLASSIFICATION" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 6,
-        "NORMAL" : 7,
-        "_INTENSITY" : 8,
-        "_CLASSIFICATION" : 9
-      },
-      "indices" : 5,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 11,
-        "NORMAL" : 12,
-        "_INTENSITY" : 13,
-        "_CLASSIFICATION" : 14
-      },
-      "indices" : 10,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 339
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesPropertyAttributePropertyMaxMismatch.gltf

@@ -1,339 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "SimplePropertyAttributeSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class for property attributes",
-            "properties" : {
-              "intensity" : {
-                "name" : "Example intensity property",
-                "description" : "An example property for the intensity, with component type FLOAT32",
-                "type" : "SCALAR",
-                "componentType" : "FLOAT32"
-              },
-              "classification" : {
-                "name" : "Example classification property",
-                "description" : "An example property for the classification, with the classificationEnumType",
-                "type" : "ENUM",
-                "enumType" : "classificationEnumType"
-              }
-            }
-          }
-        },
-        "enums" : {
-          "classificationEnumType" : {
-            "values" : [ {
-              "name" : "ExampleClassificationA",
-              "value" : 0
-            }, {
-              "name" : "ExampleClassificationB",
-              "value" : 1
-            }, {
-              "name" : "ExampleClassificationC",
-              "value" : 2
-            } ]
-          }
-        }
-      },
-      "propertyAttributes" : [ {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY",
-            "max": 0.3
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      }, {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY"
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      }
-      ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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" : [ 0.0, 1.0, 0.0 ],
-    "min" : [ -1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.25 ],
-    "min" : [ 0.25 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 7,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 8,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.5 ],
-    "min" : [ 0.5 ]
-  }, {
-    "bufferView" : 9,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 1 ],
-    "min" : [ 1 ]
-  }, {
-    "bufferView" : 10,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 11,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 2.0, 1.0, 0.0 ],
-    "min" : [ 1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 12,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 13,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.75 ],
-    "min" : [ 0.75 ]
-  }, {
-    "bufferView" : 14,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 2 ],
-    "min" : [ 2 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAACAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPgAAgD4AAIA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAEAAgABAAMAAgAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAA/AAAAPwAAAD8AAAA/AQAAAAEAAAABAAAAAQAAAAAAAQACAAEAAwACAAAAgD8AAAAAAAAAAAAAAEAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAAEAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAQD8AAEA/AABAPwAAQD8CAAAAAgAAAAIAAAACAAAA",
-    "byteLength" : 420
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 124,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 140,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 152,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 200,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 248,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 264,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 280,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 292,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 340,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 388,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 404,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 1.0, 1.0, 1.0, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_INTENSITY" : 3,
-        "_CLASSIFICATION" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 1 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 6,
-        "NORMAL" : 7,
-        "_INTENSITY" : 8,
-        "_CLASSIFICATION" : 9
-      },
-      "indices" : 5,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 1 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 11,
-        "NORMAL" : 12,
-        "_INTENSITY" : 13,
-        "_CLASSIFICATION" : 14
-      },
-      "indices" : 10,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 339
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesPropertyAttributePropertyMaxNotInRange.gltf

@@ -1,339 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "SimplePropertyAttributeSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class for property attributes",
-            "properties" : {
-              "intensity" : {
-                "name" : "Example intensity property",
-                "description" : "An example property for the intensity, with component type FLOAT32",
-                "type" : "SCALAR",
-                "componentType" : "FLOAT32"
-              },
-              "classification" : {
-                "name" : "Example classification property",
-                "description" : "An example property for the classification, with the classificationEnumType",
-                "type" : "ENUM",
-                "enumType" : "classificationEnumType"
-              }
-            }
-          }
-        },
-        "enums" : {
-          "classificationEnumType" : {
-            "values" : [ {
-              "name" : "ExampleClassificationA",
-              "value" : 0
-            }, {
-              "name" : "ExampleClassificationB",
-              "value" : 1
-            }, {
-              "name" : "ExampleClassificationC",
-              "value" : 2
-            } ]
-          }
-        }
-      },
-      "propertyAttributes" : [ {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY",
-            "max": 0.2
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      }, {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY"
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      }
-      ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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" : [ 0.0, 1.0, 0.0 ],
-    "min" : [ -1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.25 ],
-    "min" : [ 0.25 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 7,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 8,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.5 ],
-    "min" : [ 0.5 ]
-  }, {
-    "bufferView" : 9,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 1 ],
-    "min" : [ 1 ]
-  }, {
-    "bufferView" : 10,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 11,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 2.0, 1.0, 0.0 ],
-    "min" : [ 1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 12,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 13,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.75 ],
-    "min" : [ 0.75 ]
-  }, {
-    "bufferView" : 14,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 2 ],
-    "min" : [ 2 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAACAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPgAAgD4AAIA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAEAAgABAAMAAgAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAA/AAAAPwAAAD8AAAA/AQAAAAEAAAABAAAAAQAAAAAAAQACAAEAAwACAAAAgD8AAAAAAAAAAAAAAEAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAAEAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAQD8AAEA/AABAPwAAQD8CAAAAAgAAAAIAAAACAAAA",
-    "byteLength" : 420
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 124,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 140,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 152,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 200,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 248,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 264,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 280,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 292,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 340,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 388,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 404,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 1.0, 1.0, 1.0, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_INTENSITY" : 3,
-        "_CLASSIFICATION" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 1 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 6,
-        "NORMAL" : 7,
-        "_INTENSITY" : 8,
-        "_CLASSIFICATION" : 9
-      },
-      "indices" : 5,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 1 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 11,
-        "NORMAL" : 12,
-        "_INTENSITY" : 13,
-        "_CLASSIFICATION" : 14
-      },
-      "indices" : 10,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 339
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesPropertyAttributePropertyMinMismatch.gltf

@@ -1,339 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "SimplePropertyAttributeSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class for property attributes",
-            "properties" : {
-              "intensity" : {
-                "name" : "Example intensity property",
-                "description" : "An example property for the intensity, with component type FLOAT32",
-                "type" : "SCALAR",
-                "componentType" : "FLOAT32"
-              },
-              "classification" : {
-                "name" : "Example classification property",
-                "description" : "An example property for the classification, with the classificationEnumType",
-                "type" : "ENUM",
-                "enumType" : "classificationEnumType"
-              }
-            }
-          }
-        },
-        "enums" : {
-          "classificationEnumType" : {
-            "values" : [ {
-              "name" : "ExampleClassificationA",
-              "value" : 0
-            }, {
-              "name" : "ExampleClassificationB",
-              "value" : 1
-            }, {
-              "name" : "ExampleClassificationC",
-              "value" : 2
-            } ]
-          }
-        }
-      },
-      "propertyAttributes" : [ {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY",
-            "min": 0.2
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      }, {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY"
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      }
-      ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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" : [ 0.0, 1.0, 0.0 ],
-    "min" : [ -1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.25 ],
-    "min" : [ 0.25 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 7,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 8,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.5 ],
-    "min" : [ 0.5 ]
-  }, {
-    "bufferView" : 9,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 1 ],
-    "min" : [ 1 ]
-  }, {
-    "bufferView" : 10,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 11,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 2.0, 1.0, 0.0 ],
-    "min" : [ 1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 12,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 13,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.75 ],
-    "min" : [ 0.75 ]
-  }, {
-    "bufferView" : 14,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 2 ],
-    "min" : [ 2 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAACAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPgAAgD4AAIA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAEAAgABAAMAAgAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAA/AAAAPwAAAD8AAAA/AQAAAAEAAAABAAAAAQAAAAAAAQACAAEAAwACAAAAgD8AAAAAAAAAAAAAAEAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAAEAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAQD8AAEA/AABAPwAAQD8CAAAAAgAAAAIAAAACAAAA",
-    "byteLength" : 420
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 124,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 140,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 152,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 200,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 248,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 264,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 280,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 292,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 340,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 388,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 404,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 1.0, 1.0, 1.0, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_INTENSITY" : 3,
-        "_CLASSIFICATION" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 1 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 6,
-        "NORMAL" : 7,
-        "_INTENSITY" : 8,
-        "_CLASSIFICATION" : 9
-      },
-      "indices" : 5,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 1 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 11,
-        "NORMAL" : 12,
-        "_INTENSITY" : 13,
-        "_CLASSIFICATION" : 14
-      },
-      "indices" : 10,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 339
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyAttributesPropertyAttributePropertyMinNotInRange.gltf

@@ -1,339 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "SimplePropertyAttributeSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class for property attributes",
-            "properties" : {
-              "intensity" : {
-                "name" : "Example intensity property",
-                "description" : "An example property for the intensity, with component type FLOAT32",
-                "type" : "SCALAR",
-                "componentType" : "FLOAT32"
-              },
-              "classification" : {
-                "name" : "Example classification property",
-                "description" : "An example property for the classification, with the classificationEnumType",
-                "type" : "ENUM",
-                "enumType" : "classificationEnumType"
-              }
-            }
-          }
-        },
-        "enums" : {
-          "classificationEnumType" : {
-            "values" : [ {
-              "name" : "ExampleClassificationA",
-              "value" : 0
-            }, {
-              "name" : "ExampleClassificationB",
-              "value" : 1
-            }, {
-              "name" : "ExampleClassificationC",
-              "value" : 2
-            } ]
-          }
-        }
-      },
-      "propertyAttributes" : [ {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY",
-            "min": 0.3
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      }, {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY"
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      }
-      ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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" : [ 0.0, 1.0, 0.0 ],
-    "min" : [ -1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.25 ],
-    "min" : [ 0.25 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 7,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 8,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.5 ],
-    "min" : [ 0.5 ]
-  }, {
-    "bufferView" : 9,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 1 ],
-    "min" : [ 1 ]
-  }, {
-    "bufferView" : 10,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 11,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 2.0, 1.0, 0.0 ],
-    "min" : [ 1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 12,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 13,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.75 ],
-    "min" : [ 0.75 ]
-  }, {
-    "bufferView" : 14,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 2 ],
-    "min" : [ 2 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAACAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPgAAgD4AAIA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAEAAgABAAMAAgAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAA/AAAAPwAAAD8AAAA/AQAAAAEAAAABAAAAAQAAAAAAAQACAAEAAwACAAAAgD8AAAAAAAAAAAAAAEAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAAEAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAQD8AAEA/AABAPwAAQD8CAAAAAgAAAAIAAAACAAAA",
-    "byteLength" : 420
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 124,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 140,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 152,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 200,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 248,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 264,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 280,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 292,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 340,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 388,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 404,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 1.0, 1.0, 1.0, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_INTENSITY" : 3,
-        "_CLASSIFICATION" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 1 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 6,
-        "NORMAL" : 7,
-        "_INTENSITY" : 8,
-        "_CLASSIFICATION" : 9
-      },
-      "indices" : 5,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 1 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 11,
-        "NORMAL" : 12,
-        "_INTENSITY" : 13,
-        "_CLASSIFICATION" : 14
-      },
-      "indices" : 10,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 116
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureClassPropertyMaxNotInRange.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 116
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureClassPropertyMinNotInRange.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 118
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureClassPropertyWithOffsetScaleMinNotInRange.gltf


+ 0 - 176
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureEnumsInvalidEnumValue.gltf

@@ -1,176 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "PropertyTextureEnumsSchemaId",
-        "classes" : {
-          "propertyTextureEnumsClass" : {
-            "name" : "Property texture example enum properties",
-            "properties" : {
-              "enumProperty" : {
-                "name" : "Example enum property",
-                "type" : "ENUM",
-                "enumType" : "exampleEnum",
-                "noData" : "NO_DATA_ENUM_VALUE",
-                "default" : "DEFAULT_ENUM_VALUE"
-              },
-              "enumArrayProperty" : {
-                "name" : "Example enum array property",
-                "type" : "ENUM",
-                "enumType" : "exampleEnum",
-                "array" : true,
-                "count" : 2,
-                "noData" : [ "NO_DATA_ENUM_VALUE", "NO_DATA_ENUM_VALUE" ],
-                "default" : [ "DEFAULT_ENUM_VALUE", "DEFAULT_ENUM_VALUE" ]
-              }
-            }
-          }
-        },
-        "enums" : {
-          "exampleEnum" : {
-            "valueType": "UINT8",
-            "values" : [ {
-              "name" : "NO_DATA_ENUM_VALUE",
-              "value" : 255
-            }, {
-              "name" : "EXAMPLE_ENUM_VALUE_A",
-              "value" : 0
-            }, {
-              "name" : "EXAMPLE_ENUM_VALUE_B",
-              "value" : 1
-            }, {
-              "name" : "EXAMPLE_ENUM_VALUE_C",
-              "value" : 2
-            }, {
-              "name" : "DEFAULT_ENUM_VALUE",
-              "value" : 3
-            } ]
-          }
-        }
-      },
-      "propertyTextures" : [ {
-        "class" : "propertyTextureEnumsClass",
-        "properties" : {
-          "enumProperty" : {
-            "index" : 0,
-            "texCoord" : 0,
-            "channels" : [ 0 ]
-          },
-          "enumArrayProperty" : {
-            "index" : 0,
-            "texCoord" : 0,
-            "channels" : [ 1, 2 ]
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC2",
-    "max" : [ 1.0, 1.0 ],
-    "min" : [ 0.0, 0.0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAA=",
-    "byteLength" : 140
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 32,
-    "target" : 34962
-  } ],
-  "images" : [ {
-    "uri" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAGUlEQVR42mP4/5/hPwMTAwNDSgpDCpBmAgA21QQw4gn1GgAAAABJRU5ErkJggg==",
-    "mimeType" : "image/png"
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 0.5, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyTextures" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "TEXCOORD_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "samplers" : [ {
-    "magFilter" : 9728,
-    "minFilter" : 9728
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ],
-  "textures" : [ {
-    "sampler" : 0,
-    "source" : 0
-  } ]
-}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 114
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureInvalidPropertyTypeA.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 116
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureInvalidPropertyTypeB.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 115
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureMeshPrimitivePropertyTextureTexCoordInvalidValue.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 115
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureMeshPrimitivePropertyTexturesInvalidElementType.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 115
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureMeshPrimitivePropertyTexturesInvalidElementValue.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 115
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureMeshPrimitivePropertyTexturesInvalidLength.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 115
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTextureMeshPrimitivePropertyTexturesInvalidType.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 115
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTexturePropertyChannelsSizeMismatch.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 115
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTexturePropertyIndexInvalidType.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 115
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTexturePropertyIndexInvalidValue.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 116
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTexturePropertyTexturePropertyMaxMismatch.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 116
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTexturePropertyTexturePropertyMaxNotInRange.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 116
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTexturePropertyTexturePropertyMinMismatch.gltf


Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 116
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/PropertyTexturePropertyTexturePropertyMinNotInRange.gltf


+ 0 - 21
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/README.md

@@ -1,21 +0,0 @@
-The files in this directory are used for the specs for the 
-`EXT_structural_metadata` validation.
-
-The valid files have been taken from
-https://github.com/CesiumGS/3d-tiles-samples/tree/a256d9f68df15bbfc75ea3891f52c72a36d04202/glTF/EXT_structural_metadata
-except for the following ones, which have been created dedicatedly for these tests:
-
-- `ValidPropertyAttributes.gltf`
-- `ValidPropertyTextureEnums.gltf`
-
-The files that cause issues have been created by modifying these files 
-This mostly happened manually, with the exception of certain invalid values in 
-property textures, that have been written out in this form by the generator.
-
-Note that some parts of the validation specs are not covered here, because
-they are covered by the main 3D Tiles Validator specs. Particularly:
-
-- Validation of the metadata schema is covered with `./specs/data/schemas/`
-- Validation of the property tables is covered with `./specs/data/subtrees/subtreePropertyTables*.json`
-
-

+ 0 - 173
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/StructuralMetadataMissingSchema.gltf

@@ -1,173 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "propertyTables" : [ {
-        "name" : "First example property table",
-        "class" : "exampleMetadataClassA",
-        "count" : 4,
-        "properties" : {
-          "example_FLOAT32" : {
-            "values" : 5
-          },
-          "example_INT64" : {
-            "values" : 6
-          }
-        }
-      }, {
-        "name" : "Second example property table",
-        "class" : "exampleMetadataClassB",
-        "count" : 4,
-        "properties" : {
-          "example_UINT16" : {
-            "values" : 7
-          },
-          "example_FLOAT64" : {
-            "values" : 8
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_mesh_features", "EXT_structural_metadata" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AwAAAAMAAAADAAAAAwAAAAIAAAACAAAAAgAAAAIAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAACAAAAAgAAAAIAAAACAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAA=",
-    "byteLength" : 560
-  }, {
-    "uri" : "data:application/gltf-buffer;base64,zcyMP83MDEAzM1NAzcyMQIfWEgAAAAAAzsojAAAAAAAVvzQAAAAAAFKzRQAAAAAA",
-    "byteLength" : 48
-  }, {
-    "uri" : "data:application/gltf-buffer;base64,OTCgWweHbrKHiJtTycDzP9GSx9PywwJAX2HB/YCnC0Da5sb0hEUSQA==",
-    "byteLength" : 40
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 496,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 0,
-    "byteLength" : 16
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 16,
-    "byteLength" : 32
-  }, {
-    "buffer" : 2,
-    "byteOffset" : 0,
-    "byteLength" : 8
-  }, {
-    "buffer" : 2,
-    "byteOffset" : 8,
-    "byteLength" : 32
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : 4,
-            "attribute" : 0,
-            "propertyTable" : 0
-          }, {
-            "featureCount" : 4,
-            "attribute" : 1,
-            "propertyTable" : 1
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3,
-        "_FEATURE_ID_1" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 229
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/StructuralMetadataSchemaAndSchemaUri.gltf

@@ -1,229 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schemaUri": "uriToCreateValidationError.json",
-      "schema" : {
-        "id": "MultipleClassesSchema",
-        "classes" : {
-          "exampleMetadataClassA" : {
-            "name" : "Example metadata class A",
-            "description" : "First example metadata class",
-            "properties" : {
-              "example_FLOAT32" : {
-                "name" : "Example FLOAT32 property",
-                "description" : "An example property, with component type FLOAT32",
-                "type" : "SCALAR",
-                "componentType" : "FLOAT32"
-              },
-              "example_INT64" : {
-                "name" : "Example INT64 property",
-                "description" : "An example property, with component type INT64",
-                "type" : "SCALAR",
-                "componentType" : "INT64"
-              }
-            }
-          },
-          "exampleMetadataClassB" : {
-            "name" : "Example metadata class B",
-            "description" : "Second example metadata class",
-            "properties" : {
-              "example_UINT16" : {
-                "name" : "Example UINT16 property",
-                "description" : "An example property, with component type UINT16",
-                "type" : "SCALAR",
-                "componentType" : "UINT16"
-              },
-              "example_FLOAT64" : {
-                "name" : "Example FLOAT64 property",
-                "description" : "An example property, with component type FLOAT64",
-                "type" : "SCALAR",
-                "componentType" : "FLOAT64"
-              }
-            }
-          }
-        },
-        "enums" : {
-          "exampleEnumType" : {
-            "values" : [ {
-              "name" : "ExampleEnumValueA",
-              "value" : 0
-            }, {
-              "name" : "ExampleEnumValueB",
-              "value" : 1
-            }, {
-              "name" : "ExampleEnumValueC",
-              "value" : 2
-            } ]
-          }
-        }
-      },
-      "propertyTables" : [ {
-        "name" : "First example property table",
-        "class" : "exampleMetadataClassA",
-        "count" : 4,
-        "properties" : {
-          "example_FLOAT32" : {
-            "values" : 5
-          },
-          "example_INT64" : {
-            "values" : 6
-          }
-        }
-      }, {
-        "name" : "Second example property table",
-        "class" : "exampleMetadataClassB",
-        "count" : 4,
-        "properties" : {
-          "example_UINT16" : {
-            "values" : 7
-          },
-          "example_FLOAT64" : {
-            "values" : 8
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_mesh_features", "EXT_structural_metadata" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AwAAAAMAAAADAAAAAwAAAAIAAAACAAAAAgAAAAIAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAACAAAAAgAAAAIAAAACAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAA=",
-    "byteLength" : 560
-  }, {
-    "uri" : "data:application/gltf-buffer;base64,zcyMP83MDEAzM1NAzcyMQIfWEgAAAAAAzsojAAAAAAAVvzQAAAAAAFKzRQAAAAAA",
-    "byteLength" : 48
-  }, {
-    "uri" : "data:application/gltf-buffer;base64,OTCgWweHbrKHiJtTycDzP9GSx9PywwJAX2HB/YCnC0Da5sb0hEUSQA==",
-    "byteLength" : 40
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 496,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 0,
-    "byteLength" : 16
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 16,
-    "byteLength" : 32
-  }, {
-    "buffer" : 2,
-    "byteOffset" : 0,
-    "byteLength" : 8
-  }, {
-    "buffer" : 2,
-    "byteOffset" : 8,
-    "byteLength" : 32
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : 4,
-            "attribute" : 0,
-            "propertyTable" : 0
-          }, {
-            "featureCount" : 4,
-            "attribute" : 1,
-            "propertyTable" : 1
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3,
-        "_FEATURE_ID_1" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 228
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/ValidMultipleClasses.gltf

@@ -1,228 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "MultipleClassesSchema",
-        "classes" : {
-          "exampleMetadataClassA" : {
-            "name" : "Example metadata class A",
-            "description" : "First example metadata class",
-            "properties" : {
-              "example_FLOAT32" : {
-                "name" : "Example FLOAT32 property",
-                "description" : "An example property, with component type FLOAT32",
-                "type" : "SCALAR",
-                "componentType" : "FLOAT32"
-              },
-              "example_INT64" : {
-                "name" : "Example INT64 property",
-                "description" : "An example property, with component type INT64",
-                "type" : "SCALAR",
-                "componentType" : "INT64"
-              }
-            }
-          },
-          "exampleMetadataClassB" : {
-            "name" : "Example metadata class B",
-            "description" : "Second example metadata class",
-            "properties" : {
-              "example_UINT16" : {
-                "name" : "Example UINT16 property",
-                "description" : "An example property, with component type UINT16",
-                "type" : "SCALAR",
-                "componentType" : "UINT16"
-              },
-              "example_FLOAT64" : {
-                "name" : "Example FLOAT64 property",
-                "description" : "An example property, with component type FLOAT64",
-                "type" : "SCALAR",
-                "componentType" : "FLOAT64"
-              }
-            }
-          }
-        },
-        "enums" : {
-          "exampleEnumType" : {
-            "values" : [ {
-              "name" : "ExampleEnumValueA",
-              "value" : 0
-            }, {
-              "name" : "ExampleEnumValueB",
-              "value" : 1
-            }, {
-              "name" : "ExampleEnumValueC",
-              "value" : 2
-            } ]
-          }
-        }
-      },
-      "propertyTables" : [ {
-        "name" : "First example property table",
-        "class" : "exampleMetadataClassA",
-        "count" : 4,
-        "properties" : {
-          "example_FLOAT32" : {
-            "values" : 5
-          },
-          "example_INT64" : {
-            "values" : 6
-          }
-        }
-      }, {
-        "name" : "Second example property table",
-        "class" : "exampleMetadataClassB",
-        "count" : 4,
-        "properties" : {
-          "example_UINT16" : {
-            "values" : 7
-          },
-          "example_FLOAT64" : {
-            "values" : 8
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_mesh_features", "EXT_structural_metadata" ],
-  "accessors" : [ {
-    "bufferView" : 0,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 24,
-    "type" : "SCALAR",
-    "max" : [ 15 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 1,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 16,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5121,
-    "count" : 16,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIABAAFAAYABQAHAAYACAAJAAoACQALAAoADAANAA4ADQAPAA4AAAAAAAAAAAAAAAAAZmbmPgAAAAAAAAAAAAAAAGZm5j4AAAAAZmbmPmZm5j4AAAAAzcwMPwAAAAAAAAAAAACAPwAAAAAAAAAAzcwMP2Zm5j4AAAAAAACAP2Zm5j4AAAAAAAAAAM3MDD8AAAAAZmbmPs3MDD8AAAAAAAAAAAAAgD8AAAAAZmbmPgAAgD8AAAAAzcwMP83MDD8AAAAAAACAP83MDD8AAAAAzcwMPwAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AwAAAAMAAAADAAAAAwAAAAIAAAACAAAAAgAAAAIAAAABAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAACAAAAAgAAAAIAAAACAAAAAQAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAA=",
-    "byteLength" : 560
-  }, {
-    "uri" : "data:application/gltf-buffer;base64,zcyMP83MDEAzM1NAzcyMQIfWEgAAAAAAzsojAAAAAAAVvzQAAAAAAFKzRQAAAAAA",
-    "byteLength" : 48
-  }, {
-    "uri" : "data:application/gltf-buffer;base64,OTCgWweHbrKHiJtTycDzP9GSx9PywwJAX2HB/YCnC0Da5sb0hEUSQA==",
-    "byteLength" : 40
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 48,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 48,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 240,
-    "byteLength" : 192,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 432,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 496,
-    "byteLength" : 64,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 0,
-    "byteLength" : 16
-  }, {
-    "buffer" : 1,
-    "byteOffset" : 16,
-    "byteLength" : 32
-  }, {
-    "buffer" : 2,
-    "byteOffset" : 0,
-    "byteLength" : 8
-  }, {
-    "buffer" : 2,
-    "byteOffset" : 8,
-    "byteLength" : 32
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 1.0, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_mesh_features" : {
-          "featureIds" : [ {
-            "featureCount" : 4,
-            "attribute" : 0,
-            "propertyTable" : 0
-          }, {
-            "featureCount" : 4,
-            "attribute" : 1,
-            "propertyTable" : 1
-          } ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_FEATURE_ID_0" : 3,
-        "_FEATURE_ID_1" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

+ 0 - 327
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/ValidPropertyAttributes.gltf

@@ -1,327 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "SimplePropertyAttributeSchema",
-        "classes" : {
-          "exampleMetadataClass" : {
-            "name" : "Example metadata class",
-            "description" : "An example metadata class for property attributes",
-            "properties" : {
-              "intensity" : {
-                "name" : "Example intensity property",
-                "description" : "An example property for the intensity, with component type FLOAT32",
-                "type" : "SCALAR",
-                "componentType" : "FLOAT32"
-              },
-              "classification" : {
-                "name" : "Example classification property",
-                "description" : "An example property for the classification, with the classificationEnumType",
-                "type" : "ENUM",
-                "enumType" : "classificationEnumType"
-              }
-            }
-          }
-        },
-        "enums" : {
-          "classificationEnumType" : {
-            "values" : [ {
-              "name" : "ExampleClassificationA",
-              "value" : 0
-            }, {
-              "name" : "ExampleClassificationB",
-              "value" : 1
-            }, {
-              "name" : "ExampleClassificationC",
-              "value" : 2
-            } ]
-          }
-        }
-      },
-      "propertyAttributes" : [ {
-        "class" : "exampleMetadataClass",
-        "properties" : {
-          "intensity" : {
-            "attribute" : "_INTENSITY"
-          },
-          "classification" : {
-            "attribute" : "_CLASSIFICATION"
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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" : [ 0.0, 1.0, 0.0 ],
-    "min" : [ -1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.25 ],
-    "min" : [ 0.25 ]
-  }, {
-    "bufferView" : 4,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 5,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 6,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 1.0, 1.0, 0.0 ],
-    "min" : [ 0.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 7,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 8,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.5 ],
-    "min" : [ 0.5 ]
-  }, {
-    "bufferView" : 9,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 1 ],
-    "min" : [ 1 ]
-  }, {
-    "bufferView" : 10,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 6,
-    "type" : "SCALAR",
-    "max" : [ 3 ],
-    "min" : [ 0 ]
-  }, {
-    "bufferView" : 11,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 2.0, 1.0, 0.0 ],
-    "min" : [ 1.0, 0.0, 0.0 ]
-  }, {
-    "bufferView" : 12,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 13,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 0.75 ],
-    "min" : [ 0.75 ]
-  }, {
-    "bufferView" : 14,
-    "byteOffset" : 0,
-    "componentType" : 5123,
-    "count" : 4,
-    "type" : "SCALAR",
-    "max" : [ 2 ],
-    "min" : [ 2 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAACAvwAAAAAAAAAAAAAAAAAAAAAAAAAAAACAvwAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AACAPgAAgD4AAIA+AACAPgAAAAAAAAAAAAAAAAAAAAAAAAEAAgABAAMAAgAAAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAIA/AACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAAAAAAAAAAAgD8AAAA/AAAAPwAAAD8AAAA/AQAAAAEAAAABAAAAAQAAAAAAAQACAAEAAwACAAAAgD8AAAAAAAAAAAAAAEAAAAAAAAAAAAAAgD8AAIA/AAAAAAAAAEAAAIA/AAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAAAAAAAAAAACAPwAAQD8AAEA/AABAPwAAQD8CAAAAAgAAAAIAAAACAAAA",
-    "byteLength" : 420
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 124,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 140,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 152,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 200,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 248,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 264,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 280,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 292,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 340,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 388,
-    "byteLength" : 16,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 404,
-    "byteLength" : 16,
-    "byteStride" : 4,
-    "target" : 34962
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 1.0, 1.0, 1.0, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "_INTENSITY" : 3,
-        "_CLASSIFICATION" : 4
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 6,
-        "NORMAL" : 7,
-        "_INTENSITY" : 8,
-        "_CLASSIFICATION" : 9
-      },
-      "indices" : 5,
-      "material" : 0,
-      "mode" : 4
-    }, {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyAttributes" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 11,
-        "NORMAL" : 12,
-        "_INTENSITY" : 13,
-        "_CLASSIFICATION" : 14
-      },
-      "indices" : 10,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ]
-}

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 0 - 115
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/ValidPropertyTexture.gltf


+ 0 - 176
tests/SharpGLTF.Ext.3DTiles.Tests/testfixtures/structuralMetadata/ValidPropertyTextureEnums.gltf

@@ -1,176 +0,0 @@
-{
-  "extensions" : {
-    "EXT_structural_metadata" : {
-      "schema" : {
-        "id": "PropertyTextureEnumsSchemaId",
-        "classes" : {
-          "propertyTextureEnumsClass" : {
-            "name" : "Property texture example enum properties",
-            "properties" : {
-              "enumProperty" : {
-                "name" : "Example enum property",
-                "type" : "ENUM",
-                "enumType" : "exampleEnum",
-                "noData" : "NO_DATA_ENUM_VALUE",
-                "default" : "DEFAULT_ENUM_VALUE"
-              },
-              "enumArrayProperty" : {
-                "name" : "Example enum array property",
-                "type" : "ENUM",
-                "enumType" : "exampleEnum",
-                "array" : true,
-                "count" : 2,
-                "noData" : [ "NO_DATA_ENUM_VALUE", "NO_DATA_ENUM_VALUE" ],
-                "default" : [ "DEFAULT_ENUM_VALUE", "DEFAULT_ENUM_VALUE" ]
-              }
-            }
-          }
-        },
-        "enums" : {
-          "exampleEnum" : {
-            "valueType": "UINT8",
-            "values" : [ {
-              "name" : "NO_DATA_ENUM_VALUE",
-              "value" : 255
-            }, {
-              "name" : "EXAMPLE_ENUM_VALUE_A",
-              "value" : 0
-            }, {
-              "name" : "EXAMPLE_ENUM_VALUE_B",
-              "value" : 1
-            }, {
-              "name" : "EXAMPLE_ENUM_VALUE_C",
-              "value" : 2
-            }, {
-              "name" : "DEFAULT_ENUM_VALUE",
-              "value" : 3
-            } ]
-          }
-        }
-      },
-      "propertyTextures" : [ {
-        "class" : "propertyTextureEnumsClass",
-        "properties" : {
-          "enumProperty" : {
-            "index" : 0,
-            "texCoord" : 0,
-            "channels" : [ 0 ]
-          },
-          "enumArrayProperty" : {
-            "index" : 0,
-            "texCoord" : 0,
-            "channels" : [ 1, 2 ]
-          }
-        }
-      } ]
-    }
-  },
-  "extensionsUsed" : [ "EXT_structural_metadata" ],
-  "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 ]
-  }, {
-    "bufferView" : 2,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC3",
-    "max" : [ 0.0, 0.0, 1.0 ],
-    "min" : [ 0.0, 0.0, 1.0 ]
-  }, {
-    "bufferView" : 3,
-    "byteOffset" : 0,
-    "componentType" : 5126,
-    "count" : 4,
-    "type" : "VEC2",
-    "max" : [ 1.0, 1.0 ],
-    "min" : [ 0.0, 0.0 ]
-  } ],
-  "asset" : {
-    "generator" : "JglTF from https://github.com/javagl/JglTF",
-    "version" : "2.0"
-  },
-  "buffers" : [ {
-    "uri" : "data:application/gltf-buffer;base64,AAABAAIAAQADAAIAAAAAAAAAAAAAAAAAAACAPwAAAAAAAAAAAAAAAAAAgD8AAAAAAACAPwAAgD8AAAAAAAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAAAAAAIA/AAAAAAAAgD8AAIA/AACAPwAAAAAAAAAAAACAPwAAAAA=",
-    "byteLength" : 140
-  } ],
-  "bufferViews" : [ {
-    "buffer" : 0,
-    "byteOffset" : 0,
-    "byteLength" : 12,
-    "target" : 34963
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 12,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 60,
-    "byteLength" : 48,
-    "target" : 34962
-  }, {
-    "buffer" : 0,
-    "byteOffset" : 108,
-    "byteLength" : 32,
-    "target" : 34962
-  } ],
-  "images" : [ {
-    "uri" : "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAYAAABytg0kAAAAGUlEQVR42mP4/5/hPwMTAwMDIyMDI5BmAgAvGQMH5R702wAAAABJRU5ErkJggg==",
-    "mimeType" : "image/png"
-  } ],
-  "materials" : [ {
-    "pbrMetallicRoughness" : {
-      "baseColorFactor" : [ 0.5, 0.5, 0.5, 1.0 ],
-      "metallicFactor" : 0.0,
-      "roughnessFactor" : 1.0
-    },
-    "alphaMode" : "OPAQUE",
-    "doubleSided" : true
-  } ],
-  "meshes" : [ {
-    "primitives" : [ {
-      "extensions" : {
-        "EXT_structural_metadata" : {
-          "propertyTextures" : [ 0 ]
-        }
-      },
-      "attributes" : {
-        "POSITION" : 1,
-        "NORMAL" : 2,
-        "TEXCOORD_0" : 3
-      },
-      "indices" : 0,
-      "material" : 0,
-      "mode" : 4
-    } ]
-  } ],
-  "nodes" : [ {
-    "mesh" : 0
-  } ],
-  "samplers" : [ {
-    "magFilter" : 9728,
-    "minFilter" : 9728
-  } ],
-  "scene" : 0,
-  "scenes" : [ {
-    "nodes" : [ 0 ]
-  } ],
-  "textures" : [ {
-    "sampler" : 0,
-    "source" : 0
-  } ]
-}

Daži faili netika attēloti, jo izmaiņu fails ir pārāk liels