Browse Source

Added simple utility interfaces

Vicente Penades 6 years ago
parent
commit
71a0af1465

+ 1 - 1
examples/Example1/Program.cs

@@ -45,7 +45,7 @@ namespace Example1
 
 
             // save the model in different formats
             // save the model in different formats
 
 
-            var model = scene.ToSchema2();
+            var model = scene.ToGltf2();
             model.SaveAsWavefront("mesh.obj");
             model.SaveAsWavefront("mesh.obj");
             model.SaveGLB("mesh.glb");
             model.SaveGLB("mesh.glb");
             model.SaveGLTF("mesh.gltf");
             model.SaveGLTF("mesh.gltf");

+ 3 - 1
src/SharpGLTF.Core/Schema2/gltf.Root.cs

@@ -7,7 +7,7 @@ using SharpGLTF.Collections;
 namespace SharpGLTF.Schema2
 namespace SharpGLTF.Schema2
 {
 {
     [System.Diagnostics.DebuggerDisplay("Model Root")]
     [System.Diagnostics.DebuggerDisplay("Model Root")]
-    public sealed partial class ModelRoot
+    public sealed partial class ModelRoot : IConvertibleToGltf2
     {
     {
         #region lifecycle
         #region lifecycle
 
 
@@ -79,6 +79,8 @@ namespace SharpGLTF.Schema2
 
 
         public IEnumerable<String> IncompatibleExtensions       => _extensionsRequired.Except(ExtensionsFactory.SupportedExtensions).ToList();
         public IEnumerable<String> IncompatibleExtensions       => _extensionsRequired.Except(ExtensionsFactory.SupportedExtensions).ToList();
 
 
+        ModelRoot IConvertibleToGltf2.ToGltf2() { return this; }
+
         #endregion
         #endregion
 
 
         #region Logical resouces
         #region Logical resouces

+ 13 - 2
src/SharpGLTF.Toolkit/Scenes/SceneBuilder.Schema2.cs

@@ -157,7 +157,7 @@ namespace SharpGLTF.Scenes
         #endregion
         #endregion
     }
     }
 
 
-    public partial class SceneBuilder
+    public partial class SceneBuilder : IConvertibleToGltf2
     {
     {
         #region from SceneBuilder to Schema2
         #region from SceneBuilder to Schema2
 
 
@@ -188,12 +188,18 @@ namespace SharpGLTF.Scenes
             return dstModel;
             return dstModel;
         }
         }
 
 
+        [Obsolete("Use ToGltf2")]
+        public ModelRoot ToSchema2(bool useStridedBuffers = true)
+        {
+            return ToGltf2(useStridedBuffers);
+        }
+
         /// <summary>
         /// <summary>
         /// Converts this <see cref="SceneBuilder"/> instance into a <see cref="ModelRoot"/> instance.
         /// Converts this <see cref="SceneBuilder"/> instance into a <see cref="ModelRoot"/> instance.
         /// </summary>
         /// </summary>
         /// <param name="useStridedBuffers">True to generate strided vertex buffers whenever possible.</param>
         /// <param name="useStridedBuffers">True to generate strided vertex buffers whenever possible.</param>
         /// <returns>A new <see cref="ModelRoot"/> instance.</returns>
         /// <returns>A new <see cref="ModelRoot"/> instance.</returns>
-        public ModelRoot ToSchema2(bool useStridedBuffers = true)
+        public ModelRoot ToGltf2(bool useStridedBuffers = true)
         {
         {
             var context = new Schema2SceneBuilder();
             var context = new Schema2SceneBuilder();
 
 
@@ -211,6 +217,11 @@ namespace SharpGLTF.Scenes
             return dstModel;
             return dstModel;
         }
         }
 
 
+        public ModelRoot ToGltf2()
+        {
+            return ToGltf2(true);
+        }
+
         #endregion
         #endregion
 
 
         #region from Schema2 to SceneBuilder
         #region from Schema2 to SceneBuilder

+ 4 - 4
tests/SharpGLTF.Tests/Scenes/SceneBuilderTests.cs

@@ -216,7 +216,7 @@ namespace SharpGLTF.Scenes
             scene.AddRigidMesh(mesh2, Matrix4x4.Identity);
             scene.AddRigidMesh(mesh2, Matrix4x4.Identity);
             scene.AddRigidMesh(mesh3, Matrix4x4.CreateTranslation(0,10,0));
             scene.AddRigidMesh(mesh3, Matrix4x4.CreateTranslation(0,10,0));
 
 
-            var model = scene.ToSchema2();
+            var model = scene.ToGltf2();
 
 
             Assert.AreEqual(3, model.LogicalMaterials.Count);
             Assert.AreEqual(3, model.LogicalMaterials.Count);
             CollectionAssert.AreEquivalent(new[] { "material0", "material2", "material3" }, model.LogicalMaterials.Select(item => item.Name));
             CollectionAssert.AreEquivalent(new[] { "material0", "material2", "material3" }, model.LogicalMaterials.Select(item => item.Name));
@@ -473,7 +473,7 @@ namespace SharpGLTF.Scenes
             curve.SetPoint(1, Transforms.SparseWeight8.Create(1));
             curve.SetPoint(1, Transforms.SparseWeight8.Create(1));
             curve.SetPoint(2, Transforms.SparseWeight8.Create(0));
             curve.SetPoint(2, Transforms.SparseWeight8.Create(0));
 
 
-            var gltf = scene.ToSchema2();
+            var gltf = scene.ToGltf2();
 
 
             // Assert.AreEqual(1, gltf.LogicalMeshes[1].MorphWeights[0]);
             // Assert.AreEqual(1, gltf.LogicalMeshes[1].MorphWeights[0]);
 
 
@@ -537,8 +537,8 @@ namespace SharpGLTF.Scenes
 
 
             var srcScene = Schema2Toolkit.ToSceneBuilder(srcModel.DefaultScene);            
             var srcScene = Schema2Toolkit.ToSceneBuilder(srcModel.DefaultScene);            
 
 
-            var rowModel = srcScene.ToSchema2();
-            var colModel = srcScene.ToSchema2(false);
+            var rowModel = srcScene.ToGltf2();
+            var colModel = srcScene.ToGltf2(false);
 
 
             var rowScene = Schema2Toolkit.ToSceneBuilder(rowModel.DefaultScene);
             var rowScene = Schema2Toolkit.ToSceneBuilder(rowModel.DefaultScene);
             var colScene = Schema2Toolkit.ToSceneBuilder(colModel.DefaultScene);
             var colScene = Schema2Toolkit.ToSceneBuilder(colModel.DefaultScene);

+ 1 - 1
tests/SharpGLTF.Tests/Schema2/LoadAndSave/LoadSpecialModelsTest.cs

@@ -149,7 +149,7 @@ namespace SharpGLTF.Schema2.LoadAndSave
             editableScene.AddRigidMesh(mesh, System.Numerics.Matrix4x4.Identity);
             editableScene.AddRigidMesh(mesh, System.Numerics.Matrix4x4.Identity);
 
 
             model.AttachToCurrentTest("original.glb");
             model.AttachToCurrentTest("original.glb");
-            editableScene.ToSchema2().AttachToCurrentTest("WithTangents.glb");
+            editableScene.ToGltf2().AttachToCurrentTest("WithTangents.glb");
         }
         }
     }
     }
 }
 }

+ 1 - 1
tests/SharpGLTF.Tests/Utils.cs

@@ -138,7 +138,7 @@ namespace SharpGLTF
 
 
         public static void AttachToCurrentTest(this Scenes.SceneBuilder scene, string fileName)
         public static void AttachToCurrentTest(this Scenes.SceneBuilder scene, string fileName)
         {
         {
-            var model = scene.ToSchema2();
+            var model = scene.ToGltf2();
 
 
             model.AttachToCurrentTest(fileName);
             model.AttachToCurrentTest(fileName);
         }
         }