|
|
@@ -0,0 +1,81 @@
|
|
|
+using System;
|
|
|
+using System.Collections.Generic;
|
|
|
+using System.Numerics;
|
|
|
+
|
|
|
+using SharpGLTF.Geometry.VertexTypes;
|
|
|
+using SharpGLTF.Schema2;
|
|
|
+
|
|
|
+namespace SharpGLTF
|
|
|
+{
|
|
|
+ [System.Diagnostics.DebuggerDisplay("𝐂:{Color} 𝐔𝐕:{TexCoord}")]
|
|
|
+ public struct VertexWithFeatureIds : IVertexCustom
|
|
|
+ {
|
|
|
+ public VertexWithFeatureIds(float featureId0, float featureId1)
|
|
|
+ {
|
|
|
+ FeatureId0 = featureId0;
|
|
|
+ FeatureId1 = featureId1;
|
|
|
+ }
|
|
|
+
|
|
|
+ public const string FEATUREID0ATTRIBUTENAME = "_FEATURE_ID_0";
|
|
|
+ public const string FEATUREID1ATTRIBUTENAME = "_FEATURE_ID_1";
|
|
|
+
|
|
|
+ [VertexAttribute(FEATUREID0ATTRIBUTENAME, EncodingType.FLOAT, false)]
|
|
|
+ public float FeatureId0;
|
|
|
+
|
|
|
+ [VertexAttribute(FEATUREID1ATTRIBUTENAME, EncodingType.FLOAT, false)]
|
|
|
+ public float FeatureId1;
|
|
|
+
|
|
|
+ public int MaxColors => 0;
|
|
|
+
|
|
|
+ public int MaxTextCoords => 0;
|
|
|
+
|
|
|
+ public IEnumerable<string> CustomAttributes => throw new NotImplementedException();
|
|
|
+
|
|
|
+ public void SetColor(int setIndex, Vector4 color) { }
|
|
|
+
|
|
|
+ public void SetTexCoord(int setIndex, Vector2 coord) { }
|
|
|
+
|
|
|
+ public Vector4 GetColor(int index) { throw new ArgumentOutOfRangeException(nameof(index)); }
|
|
|
+
|
|
|
+ public Vector2 GetTexCoord(int index) { throw new ArgumentOutOfRangeException(nameof(index)); }
|
|
|
+
|
|
|
+ public void Validate() { }
|
|
|
+
|
|
|
+ public object GetCustomAttribute(string attributeName)
|
|
|
+ {
|
|
|
+ throw new NotImplementedException();
|
|
|
+ }
|
|
|
+
|
|
|
+ public bool TryGetCustomAttribute(string attribute, out object value)
|
|
|
+ {
|
|
|
+ if (attribute == FEATUREID0ATTRIBUTENAME)
|
|
|
+ {
|
|
|
+ value = FeatureId0; return true;
|
|
|
+ }
|
|
|
+ else if (attribute == FEATUREID1ATTRIBUTENAME)
|
|
|
+ {
|
|
|
+ value = FeatureId1; return true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ value = null; return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ public void SetCustomAttribute(string attributeName, object value)
|
|
|
+ {
|
|
|
+ throw new NotImplementedException();
|
|
|
+ }
|
|
|
+
|
|
|
+ public VertexMaterialDelta Subtract(IVertexMaterial baseValue)
|
|
|
+ {
|
|
|
+ throw new NotImplementedException();
|
|
|
+ }
|
|
|
+
|
|
|
+ public void Add(in VertexMaterialDelta delta)
|
|
|
+ {
|
|
|
+ throw new NotImplementedException();
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|