Ver Fonte

more trying

Bert Temme há 2 anos atrás
pai
commit
e9b6c3461c

+ 1 - 0
examples/Example1/Program.cs

@@ -46,6 +46,7 @@ namespace Example1
             // save the model in different formats
 
             var model = scene.ToGltf2();
+            model.LogicalMeshes[0].Primitives[0].AddCesiumOutline(4);
             model.SaveAsWavefront("mesh.obj");
             model.SaveGLB("mesh.glb");
             model.SaveGLTF("mesh.gltf");

+ 28 - 0
src/SharpGLTF.Core/Schema2/gltf.MeshPrimitive.CESIUM_primitive_outline..cs

@@ -0,0 +1,28 @@
+namespace SharpGLTF.Schema2
+{
+    partial class CESIUM_primitive_outlineglTFprimitiveextension
+    {
+        internal CESIUM_primitive_outlineglTFprimitiveextension(MeshPrimitive meshPrimitive) { }
+
+        public int? Indices
+        {
+            get => _indices;
+            set => _indices = value;
+        }
+    }
+    partial class MeshPrimitive
+    {
+        // call using sample: model.LogicalMeshes[0].Primitives[0].AddCesiumOutline(4);
+
+        public void AddCesiumOutline(int? indices)
+        {
+            if (indices != null) { this.RemoveExtensions<CESIUM_primitive_outlineglTFprimitiveextension>(); return; }
+            var ext = new CESIUM_primitive_outlineglTFprimitiveextension(this);
+            ext.Indices = indices;
+
+            // what to do next?
+            SetExtension(ext);
+            UseExtension<CESIUM_primitive_outlineglTFprimitiveextension>();
+        }
+    }
+}