/// <summary> /// Adds new attribute data to the mesh object /// Note: must call StartMeshObject first /// </summary> /// <param name="attribute"></param> /// <param name="inputValues"></param> public void AddAttributeToMeshObject(UltimateVertexAttribute attribute, SSBHVertexAttribute[] inputValues) { if (currentMesh == null) { return; } int size = GetAttributeSize(attribute); float[] values = new float[inputValues.Length * size]; for (int i = 0; i < inputValues.Length; i++) { if (size > 0) { values[i * size + 0] = inputValues[i].X; } if (size > 1) { values[i * size + 1] = inputValues[i].Y; } if (size > 2) { values[i * size + 2] = inputValues[i].Z; } if (size > 3) { values[i * size + 3] = inputValues[i].W; } } currentMesh.VertexData.Add(attribute, values); }
/// <summary> /// Adds new attribute data to the mesh object /// Note: must call <see cref="StartMeshObject(string, uint[], SsbhVertexAttribute[], string, bool)"/> first. /// </summary> /// <param name="attribute"></param> /// <param name="inputValues"></param> public void AddAttributeToMeshObject(UltimateVertexAttribute attribute, SsbhVertexAttribute[] inputValues) { // TODO: Why must StartMeshObject be called? if (currentMesh == null) { return; } int componentCount = attribute.ComponentCount; float[] values = new float[inputValues.Length * componentCount]; for (int i = 0; i < inputValues.Length; i++) { // TODO: Add brackets operator to SsbhVertexAttribute. // Ex: attribute[0] == attribute.X if (componentCount > 0) { values[i * componentCount + 0] = inputValues[i].X; } if (componentCount > 1) { values[i * componentCount + 1] = inputValues[i].Y; } if (componentCount > 2) { values[i * componentCount + 2] = inputValues[i].Z; } if (componentCount > 3) { values[i * componentCount + 3] = inputValues[i].W; } } currentMesh.VertexData.Add(attribute, values); }
private int GetAttributeDataType(UltimateVertexAttribute attribute) { // TODO: Use enum? switch (attribute) { case UltimateVertexAttribute.Position0: return(0); case UltimateVertexAttribute.Normal0: case UltimateVertexAttribute.Tangent0: return(5); case UltimateVertexAttribute.map1: case UltimateVertexAttribute.uvSet: case UltimateVertexAttribute.uvSet1: case UltimateVertexAttribute.uvSet2: case UltimateVertexAttribute.bake1: return(8); case UltimateVertexAttribute.colorSet1: case UltimateVertexAttribute.colorSet2: case UltimateVertexAttribute.colorSet2_1: case UltimateVertexAttribute.colorSet2_2: case UltimateVertexAttribute.colorSet2_3: case UltimateVertexAttribute.colorSet3: case UltimateVertexAttribute.colorSet4: case UltimateVertexAttribute.colorSet5: case UltimateVertexAttribute.colorSet6: case UltimateVertexAttribute.colorSet7: return(2); default: return(-1); } }
private static int GetAttributeDataType(UltimateVertexAttribute attribute) { // TODO: Use enum? switch (attribute) { case UltimateVertexAttribute.Position0: return(0); case UltimateVertexAttribute.Normal0: case UltimateVertexAttribute.Tangent0: return(5); case UltimateVertexAttribute.Map1: case UltimateVertexAttribute.UvSet: case UltimateVertexAttribute.UvSet1: case UltimateVertexAttribute.UvSet2: case UltimateVertexAttribute.Bake1: return(8); case UltimateVertexAttribute.ColorSet1: case UltimateVertexAttribute.ColorSet2: case UltimateVertexAttribute.ColorSet21: case UltimateVertexAttribute.ColorSet22: case UltimateVertexAttribute.ColorSet23: case UltimateVertexAttribute.ColorSet3: case UltimateVertexAttribute.ColorSet4: case UltimateVertexAttribute.ColorSet5: case UltimateVertexAttribute.ColorSet6: case UltimateVertexAttribute.ColorSet7: return(2); default: return(-1); } }
private string GetAttributeName(UltimateVertexAttribute attribute) { switch (attribute) { case UltimateVertexAttribute.Tangent0: return("map1"); default: return(attribute.ToString()); } }
public void EnableAttributes(MeshObject meshObject) { foreach (var attr in meshObject.Attributes) { foreach (var atstring in attr.AttributeStrings) { UltimateVertexAttribute at = UltimateVertexAttribute.GetAttributeFromName(atstring.Text); EnableAttribute(at); } } }
private int GetBufferIndex(UltimateVertexAttribute attribute) { switch (attribute) { case UltimateVertexAttribute.Position0: case UltimateVertexAttribute.Normal0: case UltimateVertexAttribute.Tangent0: return(0); default: return(1); } }
public void EnableAttribute(UltimateVertexAttribute attr) { switch (attr) { case UltimateVertexAttribute.Position0: ExportPosition = true; break; case UltimateVertexAttribute.Normal0: ExportNormal = true; break; case UltimateVertexAttribute.Tangent0: ExportTangent = true; break; case UltimateVertexAttribute.uvSet: ExportUVSet1 = true; break; case UltimateVertexAttribute.uvSet1: ExportUVSet2 = true; break; case UltimateVertexAttribute.uvSet2: ExportUVSet3 = true; break; case UltimateVertexAttribute.map1: ExportMap1 = true; break; case UltimateVertexAttribute.colorSet1: ExportColorSet1 = true; break; case UltimateVertexAttribute.colorSet2: ExportColorSet2 = true; break; case UltimateVertexAttribute.colorSet2_1: ExportColorSet21 = true; break; case UltimateVertexAttribute.colorSet2_2: ExportColorSet22 = true; break; case UltimateVertexAttribute.colorSet2_3: ExportColorSet23 = true; break; case UltimateVertexAttribute.colorSet3: ExportColorSet3 = true; break; case UltimateVertexAttribute.colorSet4: ExportColorSet4 = true; break; case UltimateVertexAttribute.colorSet5: ExportColorSet5 = true; break; case UltimateVertexAttribute.colorSet6: ExportColorSet6 = true; break; case UltimateVertexAttribute.colorSet7: ExportColorSet7 = true; break; default: ExtraExportAttributes.Add(attr); break; } }
private int GetAttributeDataSize(UltimateVertexAttribute attribute) { // TODO: Use enum? switch (GetAttributeDataType(attribute)) { case 0: return(4); case 2: return(1); case 5: return(2); case 8: return(2); default: return(1); } }
public static int GetAttributeSize(UltimateVertexAttribute attribute) { switch (attribute) { case UltimateVertexAttribute.Position0: return(3); case UltimateVertexAttribute.Normal0: return(4); case UltimateVertexAttribute.Tangent0: return(4); case UltimateVertexAttribute.map1: case UltimateVertexAttribute.uvSet: case UltimateVertexAttribute.uvSet1: case UltimateVertexAttribute.uvSet2: case UltimateVertexAttribute.bake1: return(2); case UltimateVertexAttribute.colorSet1: case UltimateVertexAttribute.colorSet2: case UltimateVertexAttribute.colorSet2_1: case UltimateVertexAttribute.colorSet2_2: case UltimateVertexAttribute.colorSet2_3: case UltimateVertexAttribute.colorSet3: case UltimateVertexAttribute.colorSet4: case UltimateVertexAttribute.colorSet5: case UltimateVertexAttribute.colorSet6: case UltimateVertexAttribute.colorSet7: return(4); default: return(3); } }
private static int GetAttributeIndex(UltimateVertexAttribute attribute) { switch (attribute) { case UltimateVertexAttribute.Position0: return(0); case UltimateVertexAttribute.Normal0: return(1); case UltimateVertexAttribute.Tangent0: return(3); case UltimateVertexAttribute.Map1: case UltimateVertexAttribute.UvSet: case UltimateVertexAttribute.UvSet1: case UltimateVertexAttribute.UvSet2: case UltimateVertexAttribute.Bake1: return(4); case UltimateVertexAttribute.ColorSet1: case UltimateVertexAttribute.ColorSet2: case UltimateVertexAttribute.ColorSet21: case UltimateVertexAttribute.ColorSet22: case UltimateVertexAttribute.ColorSet23: case UltimateVertexAttribute.ColorSet3: case UltimateVertexAttribute.ColorSet4: case UltimateVertexAttribute.ColorSet5: case UltimateVertexAttribute.ColorSet6: case UltimateVertexAttribute.ColorSet7: return(5); default: return(-1); } }
private int GetAttributeIndex(UltimateVertexAttribute attribute) { switch (attribute) { case UltimateVertexAttribute.Position0: return(0); case UltimateVertexAttribute.Normal0: return(1); case UltimateVertexAttribute.Tangent0: return(3); case UltimateVertexAttribute.map1: case UltimateVertexAttribute.uvSet: case UltimateVertexAttribute.uvSet1: case UltimateVertexAttribute.uvSet2: case UltimateVertexAttribute.bake1: return(4); case UltimateVertexAttribute.colorSet1: case UltimateVertexAttribute.colorSet2: case UltimateVertexAttribute.colorSet2_1: case UltimateVertexAttribute.colorSet2_2: case UltimateVertexAttribute.colorSet2_3: case UltimateVertexAttribute.colorSet3: case UltimateVertexAttribute.colorSet4: case UltimateVertexAttribute.colorSet5: case UltimateVertexAttribute.colorSet6: case UltimateVertexAttribute.colorSet7: return(5); default: return(-1); } }
public void EnableAttribute(UltimateVertexAttribute attr) { if (attr == UltimateVertexAttribute.Position0) { ExportPosition = true; } else if (attr == UltimateVertexAttribute.Normal0) { ExportNormal = true; } else if (attr == UltimateVertexAttribute.Tangent0) { ExportTangent = true; } else if (attr == UltimateVertexAttribute.UvSet) { ExportUVSet1 = true; } else if (attr == UltimateVertexAttribute.UvSet1) { ExportUVSet2 = true; } else if (attr == UltimateVertexAttribute.UvSet2) { ExportUVSet3 = true; } else if (attr == UltimateVertexAttribute.Map1) { ExportMap1 = true; } else if (attr == UltimateVertexAttribute.Bake1) { ExportBake1 = true; } else if (attr == UltimateVertexAttribute.ColorSet1) { ExportColorSet1 = true; } else if (attr == UltimateVertexAttribute.ColorSet2) { ExportColorSet2 = true; } else if (attr == UltimateVertexAttribute.ColorSet21) { ExportColorSet21 = true; } else if (attr == UltimateVertexAttribute.ColorSet22) { ExportColorSet22 = true; } else if (attr == UltimateVertexAttribute.ColorSet23) { ExportColorSet23 = true; } else if (attr == UltimateVertexAttribute.ColorSet3) { ExportColorSet3 = true; } else if (attr == UltimateVertexAttribute.ColorSet4) { ExportColorSet4 = true; } else if (attr == UltimateVertexAttribute.ColorSet5) { ExportColorSet5 = true; } else if (attr == UltimateVertexAttribute.ColorSet6) { ExportColorSet6 = true; } else if (attr == UltimateVertexAttribute.ColorSet7) { ExportColorSet7 = true; } else { ExtraExportAttributes.Add(attr); } }
public void ColorSet6() { Assert.AreSame(UltimateVertexAttribute.ColorSet6, UltimateVertexAttribute.GetAttributeFromName("colorSet6")); }
public void Position0() { Assert.AreSame(UltimateVertexAttribute.Position0, UltimateVertexAttribute.GetAttributeFromName("Position0")); }
public void UvSet2() { Assert.AreSame(UltimateVertexAttribute.UvSet2, UltimateVertexAttribute.GetAttributeFromName("uvSet2")); }
public void Map1() { Assert.AreSame(UltimateVertexAttribute.Map1, UltimateVertexAttribute.GetAttributeFromName("map1")); }
public void Tangent0() { Assert.AreSame(UltimateVertexAttribute.Tangent0, UltimateVertexAttribute.GetAttributeFromName("Tangent0")); }
public void Normal0() { Assert.AreSame(UltimateVertexAttribute.Normal0, UltimateVertexAttribute.GetAttributeFromName("Normal0")); }
public void InvalidName() { var e = Assert.ThrowsException <NotImplementedException>(() => UltimateVertexAttribute.GetAttributeFromName("position0")); }
public void EmptyName() { var e = Assert.ThrowsException <NotImplementedException>(() => UltimateVertexAttribute.GetAttributeFromName("")); }