vpenades 2 rokov pred
rodič
commit
9c6a4c0b46

+ 3 - 1
src/SharpGLTF.Toolkit/Geometry/MeshBuilder.cs

@@ -51,7 +51,9 @@ namespace SharpGLTF.Geometry
     {
         #region lifecycle
 
-        public MeshBuilder(string name = null)
+        public MeshBuilder() : this(null) { }
+
+        public MeshBuilder(string name)
             : base(name)
         {
             // this is the recomended preprocesor for release/production

+ 19 - 6
src/SharpGLTF.Toolkit/Geometry/MeshBuilderToolkit.cs

@@ -1,5 +1,6 @@
 using System;
 using System.Collections.Generic;
+using System.Diagnostics.CodeAnalysis;
 using System.Linq;
 using System.Numerics;
 using System.Text;
@@ -108,8 +109,13 @@ namespace SharpGLTF.Geometry
 
             return maxIndex < 256 ? Schema2.EncodingType.UNSIGNED_BYTE : Schema2.EncodingType.UNSIGNED_SHORT;
         }
-
-        public static IMeshBuilder<TMaterial> CreateMeshBuilderFromVertexAttributes<TMaterial>(params string[] vertexAttributes)
+        
+        public static IMeshBuilder<TMaterial> CreateMeshBuilderFromVertexAttributes
+            <
+            #if !NETSTANDARD
+            [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]
+            #endif
+            TMaterial>(params string[] vertexAttributes)
         {
             Type meshType = GetMeshBuilderType(typeof(TMaterial), vertexAttributes);
 
@@ -117,8 +123,16 @@ namespace SharpGLTF.Geometry
 
             return mesh as IMeshBuilder<TMaterial>;
         }
-
-        public static Type GetMeshBuilderType(Type materialType, string[] vertexAttributes)
+        
+        #if !NETSTANDARD
+        [return: DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]
+        #endif
+        public static Type GetMeshBuilderType
+            (
+            #if !NETSTANDARD
+            [DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]
+            #endif
+            Type materialType, string[] vertexAttributes)
         {
             var tvg = VertexUtils.GetVertexGeometryType(vertexAttributes);
             var tvm = VertexUtils.GetVertexMaterialType(vertexAttributes);
@@ -126,8 +140,7 @@ namespace SharpGLTF.Geometry
 
             var meshType = typeof(MeshBuilder<,,,>);
 
-            meshType = meshType.MakeGenericType(materialType, tvg, tvm, tvs);
-            return meshType;
+            return meshType.MakeGenericType(materialType, tvg, tvm, tvs);
         }
 
         public static IReadOnlyDictionary<Vector3, Vector3> CalculateSmoothNormals<TMaterial>(this IMeshBuilder<TMaterial> srcMesh)

+ 19 - 0
src/SharpGLTF.Toolkit/Geometry/VertexTypes/VertexUtils.Builder.cs

@@ -1,4 +1,5 @@
 using System;
+using System.Diagnostics.CodeAnalysis;
 using System.Linq;
 using System.Numerics;
 
@@ -6,6 +7,9 @@ namespace SharpGLTF.Geometry.VertexTypes
 {
     static partial class VertexUtils
     {
+        #if !NETSTANDARD
+        [return: DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]
+        #endif
         public static Type GetVertexGeometryType(params string[] vertexAttributes)
         {
             var t = typeof(VertexPosition);
@@ -14,6 +18,9 @@ namespace SharpGLTF.Geometry.VertexTypes
             return t;
         }
 
+        #if !NETSTANDARD
+        [return: DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]
+        #endif
         public static Type GetVertexMaterialType(params string[] vertexAttributes)
         {
             var colors = vertexAttributes.Contains("COLOR_0") ? 1 : 0;
@@ -29,6 +36,9 @@ namespace SharpGLTF.Geometry.VertexTypes
             return GetVertexMaterialType(colors, uvcoords);
         }
 
+        #if !NETSTANDARD
+        [return: DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]
+        #endif
         public static Type GetVertexMaterialType(int colors, int uvcoords)
         {
             if (colors == 0)
@@ -55,6 +65,9 @@ namespace SharpGLTF.Geometry.VertexTypes
             return typeof(VertexEmpty);
         }
 
+        #if !NETSTANDARD
+        [return: DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]
+        #endif
         public static Type GetVertexSkinningType(params string[] vertexAttributes)
         {
             var joints = vertexAttributes.Contains("JOINTS_0") && vertexAttributes.Contains("WEIGHTS_0") ? 4 : 0;
@@ -66,6 +79,9 @@ namespace SharpGLTF.Geometry.VertexTypes
             return typeof(VertexEmpty);
         }
 
+        #if !NETSTANDARD
+        [return: DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]
+        #endif
         public static Type GetVertexBuilderType(params string[] vertexAttributes)
         {
             var tvg = GetVertexGeometryType(vertexAttributes);
@@ -77,6 +93,9 @@ namespace SharpGLTF.Geometry.VertexTypes
             return vtype.MakeGenericType(tvg, tvm, tvs);
         }
 
+        #if !NETSTANDARD
+        [return: DynamicallyAccessedMembers(DynamicallyAccessedMemberTypes.PublicConstructors)]
+        #endif
         public static Type GetVertexBuilderType(bool hasNormals, bool hasTangents, int numCols, int numUV, int numJoints)
         {
             var tvg = typeof(VertexPosition);

+ 1 - 1
tests/SharpGLTF.Trimmed.App/Properties/PublishProfiles/FolderProfile.pubxml

@@ -8,7 +8,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
     <Platform>Any CPU</Platform>
     <PublishDir>bin\publish\</PublishDir>
     <PublishProtocol>FileSystem</PublishProtocol>
-    <TargetFramework>net6.0</TargetFramework>
+    <TargetFramework>net7.0</TargetFramework>
     <RuntimeIdentifier>win-x64</RuntimeIdentifier>
     <SelfContained>true</SelfContained>
     <PublishSingleFile>true</PublishSingleFile>

+ 1 - 1
tests/SharpGLTF.Trimmed.App/SharpGLTF.Trimmed.App.csproj

@@ -2,7 +2,7 @@
 
   <PropertyGroup>
     <OutputType>Exe</OutputType>
-    <TargetFramework>net6.0</TargetFramework>    
+    <TargetFramework>net7.0</TargetFramework>    
   </PropertyGroup>  
 
   <PropertyGroup>