Selaa lähdekoodia

moving more APIS to toolkit

Vicente Penades 6 vuotta sitten
vanhempi
sitoutus
1648d58d67

+ 4 - 6
src/SharpGLTF/Schema2/gltf.Accessors.cs

@@ -97,7 +97,7 @@ namespace SharpGLTF.Schema2
 
         #region Data Buffer API
 
-        public Accessor WithData(BufferView buffer, int byteOffset, int itemCount, DimensionType dimensions, EncodingType encoding, Boolean normalized)
+        public void SetData(BufferView buffer, int byteOffset, int itemCount, DimensionType dimensions, EncodingType encoding, Boolean normalized)
         {
             Guard.MustShareLogicalParent(this, buffer, nameof(buffer));
 
@@ -113,11 +113,9 @@ namespace SharpGLTF.Schema2
             this._normalized = normalized.AsNullable(_normalizedDefault);
 
             UpdateBounds();
-
-            return this;
         }
 
-        public Memory.Matrix4x4Array AsMatrix4x4Array()
+        public Matrix4x4Array AsMatrix4x4Array()
         {
             return _GetMemoryAccessor().AsMatrix4x4Array();
         }
@@ -161,7 +159,7 @@ namespace SharpGLTF.Schema2
 
             if (buffer.DeviceBufferTarget.HasValue) Guard.IsTrue(buffer.DeviceBufferTarget.Value == BufferMode.ELEMENT_ARRAY_BUFFER, nameof(buffer));
 
-            WithData(buffer, byteOffset, itemCount, DimensionType.SCALAR, encoding.ToComponent(), false);
+            SetData(buffer, byteOffset, itemCount, DimensionType.SCALAR, encoding.ToComponent(), false);
         }
 
         public IntegerArray AsIndicesArray()
@@ -251,7 +249,7 @@ namespace SharpGLTF.Schema2
 
             if (buffer.DeviceBufferTarget.HasValue) Guard.IsTrue(buffer.DeviceBufferTarget.Value == BufferMode.ARRAY_BUFFER, nameof(buffer));
 
-            WithData(buffer, bufferByteOffset, itemCount, dimensions, encoding, normalized);
+            SetData(buffer, bufferByteOffset, itemCount, dimensions, encoding, normalized);
         }
 
         public IEncodedArray<float> AsScalarArray()

+ 12 - 7
src/SharpGLTF/Schema2/gltf.Animations.cs

@@ -295,8 +295,9 @@ namespace SharpGLTF.Schema2
             var root = LogicalParent.LogicalParent;
 
             var buffer = root.UseBufferView(new Byte[input.Count * 4]);
-            var accessor = root.CreateAccessor("Animation.Input")
-                .WithData(buffer, 0, input.Count, DimensionType.SCALAR, EncodingType.FLOAT, false);
+            var accessor = root.CreateAccessor("Animation.Input");
+
+            accessor.SetData(buffer, 0, input.Count, DimensionType.SCALAR, EncodingType.FLOAT, false);
 
             Memory.EncodedArrayUtils.FillFrom(accessor.AsScalarArray(), 0, input);
 
@@ -313,8 +314,9 @@ namespace SharpGLTF.Schema2
 
             System.Diagnostics.Debug.Assert(buffer.ByteStride == 0);
 
-            var accessor = root.CreateAccessor("Animation.Output")
-                .WithData(buffer, 0, output.Count, DimensionType.VEC3, EncodingType.FLOAT, false);
+            var accessor = root.CreateAccessor("Animation.Output");
+
+            accessor.SetData(buffer, 0, output.Count, DimensionType.VEC3, EncodingType.FLOAT, false);
 
             Memory.EncodedArrayUtils.FillFrom(accessor.AsVector3Array(), 0, output);
 
@@ -328,8 +330,9 @@ namespace SharpGLTF.Schema2
             var root = LogicalParent.LogicalParent;
 
             var buffer = root.UseBufferView(new Byte[output.Count * 4 * 4]);
-            var accessor = root.CreateAccessor("Animation.Output")
-                .WithData(buffer, 0, output.Count, DimensionType.VEC4, EncodingType.FLOAT, false);
+            var accessor = root.CreateAccessor("Animation.Output");
+
+            accessor.SetData(buffer, 0, output.Count, DimensionType.VEC4, EncodingType.FLOAT, false);
 
             Memory.EncodedArrayUtils.FillFrom(accessor.AsQuaternionArray(), 0, output);
 
@@ -340,7 +343,9 @@ namespace SharpGLTF.Schema2
 
         private static (Single[], TValue[]) _Split<TValue>(IReadOnlyDictionary<Single, TValue> keyframes)
         {
-            var sorted = keyframes.OrderBy(item => item.Key).ToList();
+            var sorted = keyframes
+                .OrderBy(item => item.Key)
+                .ToList();
 
             var keys = new Single[sorted.Count];
             var vals = new TValue[sorted.Count];

+ 3 - 3
src/SharpGLTF/Schema2/gltf.Skin.cs

@@ -166,9 +166,9 @@ namespace SharpGLTF.Schema2
             var matrices = new Memory.Matrix4x4Array(data.Slice(0), 0, EncodingType.FLOAT, false);
             Memory.EncodedArrayUtils.FillFrom(matrices, 0, joints.Select(item => item.Value));
 
-            var accessor = LogicalParent
-                .CreateAccessor("Bind Matrices")
-                .WithData( LogicalParent.UseBufferView(data), 0, joints.Length, DimensionType.MAT4, EncodingType.FLOAT, false);
+            var accessor = LogicalParent.CreateAccessor("Bind Matrices");
+
+            accessor.SetData( LogicalParent.UseBufferView(data), 0, joints.Length, DimensionType.MAT4, EncodingType.FLOAT, false);
 
             this._inverseBindMatrices = accessor.LogicalIndex;
 

+ 4 - 4
tests/SharpGLTF.Tests/Schema2/Authoring/CreateModelTests.cs

@@ -318,14 +318,14 @@ namespace SharpGLTF.Schema2.Authoring
 
             // create the three joints that will affect the mesh
             var skelet = scene.CreateNode("Skeleton");
-            var jnode1 = skelet.CreateNode("Joint 1").WithLocalTranslation(new Vector3(0, 0, 0));
-            var jnode2 = jnode1.CreateNode("Joint 2").WithLocalTranslation(new Vector3(0, 40, 0)).WithRotationAnimation("Base Track", keyframes);
-            var jnode3 = jnode2.CreateNode("Joint 3").WithLocalTranslation(new Vector3(0, 40, 0));
+            var joint1 = skelet.CreateNode("Joint 1").WithLocalTranslation(new Vector3(0, 0, 0));
+            var joint2 = joint1.CreateNode("Joint 2").WithLocalTranslation(new Vector3(0, 40, 0)).WithRotationAnimation("Base Track", keyframes);
+            var joint3 = joint2.CreateNode("Joint 3").WithLocalTranslation(new Vector3(0, 40, 0));
 
             // setup skin
             snode.Skin = model.CreateSkin();
             snode.Skin.Skeleton = skelet;
-            snode.Skin.BindJoints(jnode1, jnode2, jnode3);
+            snode.Skin.BindJoints(joint1, joint2, joint3);
 
             // create the mesh
             var meshBuilder = new InterleavedMeshBuilder<SKINNEDVERTEX, Vector4>();