ソースを参照

add some more checks for gpu_instancing

Bert Temme 2 年 前
コミット
99ad192029

+ 11 - 3
src/SharpGLTF.Cesium/Schema2/MeshExtInstanceFeatures.cs

@@ -1,6 +1,7 @@
 using SharpGLTF.Validation;
 using System.Collections.Generic;
 using System.Linq;
+using System.Xml.Linq;
 
 namespace SharpGLTF.Schema2
 {
@@ -29,10 +30,14 @@ namespace SharpGLTF.Schema2
 
         protected override void OnValidateContent(ValidationContext validate)
         {
-            var extInstanceFeatures = (MeshExtInstanceFeatures)_node.Extensions.Where(item => item is MeshExtInstanceFeatures).FirstOrDefault();
+            var extInstanceFeatures = _node.Extensions.Where(item => item is MeshExtInstanceFeatures).FirstOrDefault();
+            validate.NotNull(nameof(extInstanceFeatures), extInstanceFeatures);
+            var ext = (MeshExtInstanceFeatures)extInstanceFeatures;
+            var extMeshGpInstancing = _node.Extensions.Where(item => item is MeshGpuInstancing).FirstOrDefault();
+            validate.NotNull(nameof(extMeshGpInstancing), extMeshGpInstancing);
 
-            validate.NotNull(nameof(FeatureIds), extInstanceFeatures.FeatureIds);
-            validate.IsTrue(nameof(FeatureIds), extInstanceFeatures.FeatureIds.Count > 0, "Instance FeatureIds has items");
+            validate.NotNull(nameof(FeatureIds), ext.FeatureIds);
+            validate.IsTrue(nameof(FeatureIds), ext.FeatureIds.Count > 0, "Instance FeatureIds has items");
 
             base.OnValidateContent(validate);
         }
@@ -92,6 +97,9 @@ namespace SharpGLTF.Schema2
 
             Guard.NotNullOrEmpty(instanceFeatureIds, nameof(instanceFeatureIds));
 
+            var extMeshGpInstancing = node.Extensions.Where(item => item is MeshGpuInstancing).FirstOrDefault();
+            Guard.NotNull(extMeshGpInstancing, nameof(extMeshGpInstancing));
+
             foreach (var instanceFeatureId in instanceFeatureIds)
             {
                 ValidateInstanceFeatureId(node, instanceFeatureId);

+ 5 - 4
src/SharpGLTF.Cesium/Schema2/MeshExtMeshFeatures.cs

@@ -27,10 +27,11 @@ namespace SharpGLTF.Schema2
 
         protected override void OnValidateContent(ValidationContext validate)
         {
-            var extMeshFeatures = (MeshExtMeshFeatures)_meshPrimitive.Extensions.Where(item => item is MeshExtMeshFeatures).FirstOrDefault();
-
-            validate.NotNull(nameof(FeatureIds), extMeshFeatures.FeatureIds);
-            validate.IsTrue(nameof(FeatureIds), extMeshFeatures.FeatureIds.Count > 0, "FeatureIds has items");
+            var extMeshFeatures = _meshPrimitive.Extensions.Where(item => item is MeshExtMeshFeatures).FirstOrDefault();
+            validate.NotNull(nameof(extMeshFeatures), extMeshFeatures);
+            var ext = (MeshExtMeshFeatures)extMeshFeatures;
+            validate.NotNull(nameof(FeatureIds), ext.FeatureIds);
+            validate.IsTrue(nameof(FeatureIds), ext.FeatureIds.Count > 0, "FeatureIds has items");
 
             base.OnValidateContent(validate);
         }