Explorar el Código

add validation on count

Bert Temme hace 2 años
padre
commit
67694cc2e9

+ 0 - 2
src/SharpGLTF.Cesium/Schema2/CesiumExtensions.cs

@@ -21,8 +21,6 @@
             ExtensionsFactory.RegisterExtension<MeshPrimitive, MeshExtMeshFeatures>("EXT_mesh_features");
             ExtensionsFactory.RegisterExtension<ModelRoot, EXTStructuralMetadataRoot>("EXT_structural_metadata");
             ExtensionsFactory.RegisterExtension<MeshPrimitive, ExtStructuralMetadataMeshPrimitive>("EXT_structural_metadata");
-
-            // todo: register the rest of the extensions
         }
     }
 }

+ 14 - 0
src/SharpGLTF.Cesium/Schema2/Ext.StructuralMetadataRoot.cs

@@ -237,6 +237,20 @@ OneOf<StructuralMetadataSchema, Uri> schema)
             {
                 var regex = "^[a-zA-Z_][a-zA-Z0-9_]*$";
                 Guard.IsTrue(System.Text.RegularExpressions.Regex.IsMatch(Schema.Id, regex), nameof(Schema.Id));
+
+
+                foreach(var _class in Schema.Classes)
+                {
+                    Guard.IsTrue(System.Text.RegularExpressions.Regex.IsMatch(_class.Key, regex), nameof(_class.Key));
+
+                    foreach(var property in _class.Value.Properties)
+                    {
+                        if (property.Value.Count.HasValue)
+                        {
+                            Guard.MustBeGreaterThanOrEqualTo(property.Value.Count.Value, 2, nameof(property.Value.Count));
+                        }
+                    }
+                }
             }
 
             foreach (var propertyTexture in PropertyTextures)