Sfoglia il codice sorgente

finsih MultipleTables test

Bert Temme 2 anni fa
parent
commit
dc2ea46a90

+ 1 - 2
src/SharpGLTF.Cesium/Schema2/EXTStructuralMetaDataRoot.cs

@@ -41,7 +41,6 @@ namespace SharpGLTF.Schema2
             PropertyTable propertyTable,
             OneOf<StructuralMetadataSchema, Uri> schema)
         {
-            if (propertyTable == null) { modelRoot.RemoveExtensions<EXTStructuralMetaDataRoot>(); return; }
             SetPropertyTables(modelRoot, new List<PropertyTable>() { propertyTable }, schema);
         }
 
@@ -50,7 +49,7 @@ namespace SharpGLTF.Schema2
             List<PropertyTable> propertyTables,
             OneOf<StructuralMetadataSchema, Uri> schema)
         {
-            if (propertyTables == null) { modelRoot.RemoveExtensions<EXTStructuralMetaDataRoot>(); return; }
+            if (propertyTables == null || propertyTables.Count == 0) { modelRoot.RemoveExtensions<EXTStructuralMetaDataRoot>(); return; }
 
             var ext = modelRoot.UseExtension<EXTStructuralMetaDataRoot>();
             ext.PropertyTables = propertyTables;

+ 5 - 3
tests/SharpGLTF.Cesium.Tests/ExtStructuralMetadataTests.cs

@@ -30,9 +30,9 @@ namespace SharpGLTF.Cesium
             var prim = mesh.UsePrimitive(material);
 
             // All the vertices in the triangle have the same feature ID
-            var vt0 = VertexBuilder.GetVertexWithFeatureIds(new Vector3(-10, 0, 0), new Vector3(0, 0, 1), 0, 100);
-            var vt1 = VertexBuilder.GetVertexWithFeatureIds(new Vector3(10, 0, 0), new Vector3(0, 0, 1), 0, 100);
-            var vt2 = VertexBuilder.GetVertexWithFeatureIds(new Vector3(0, 10, 0), new Vector3(0, 0, 1), 0, 100);
+            var vt0 = VertexBuilder.GetVertexWithFeatureIds(new Vector3(-10, 0, 0), new Vector3(0, 0, 1), 0, 0);
+            var vt1 = VertexBuilder.GetVertexWithFeatureIds(new Vector3(10, 0, 0), new Vector3(0, 0, 1), 0, 0);
+            var vt2 = VertexBuilder.GetVertexWithFeatureIds(new Vector3(0, 10, 0), new Vector3(0, 0, 1), 0, 0);
 
             prim.AddTriangle(vt0, vt1, vt2);
             var scene = new SceneBuilder();
@@ -68,6 +68,8 @@ namespace SharpGLTF.Cesium
 
             var propertyTables = new List<PropertyTable>() { firstPropertyTable, secondPropertyTable };
             model.SetPropertyTables(propertyTables, schema);
+
+            model.SaveGLTF(@"D:\dev\github.com\bertt\cesium_3dtiles_samples\samples\1.1\EXT_Structural_Metadata\MultipleClasses\MultipleClasses1.gltf");
             var ctx = new ValidationResult(model, ValidationMode.Strict, true);
             model.AttachToCurrentTest("cesium_ext_structural_metadata_multiple_classes.glb");
             model.AttachToCurrentTest("cesium_ext_structural_metadata_multiple_classes.gltf");