private static PerVertexDefinition PadVertexDefinition(PerVertexDefinition modelDefinition) { PerVertexDefinition DEFAULT_PADDING = new PerVertexDefinition { Position = PerVertexPositionType.Float3, Normal = PerVertexNormalType.Float3, Tangent = PerVertexTangentType.Float4, TexCoords0 = PerVertexTexCoordsType.Float2, TexCoords1 = PerVertexTexCoordsType.Float2, Color0 = PerVertexColorType.FloatRGBA, Color1 = PerVertexColorType.FloatRGBA, Joints0 = PerVertexJointType.Byte4, Joints1 = PerVertexJointType.Byte4, Weights0 = PerVertexWeightsType.Float4, Weights1 = PerVertexWeightsType.Float4, }; return(new PerVertexDefinition { Position = (modelDefinition.Position == PerVertexPositionType.None) ? DEFAULT_PADDING.Position : modelDefinition.Position, Normal = (modelDefinition.Normal == PerVertexNormalType.None) ? DEFAULT_PADDING.Normal : modelDefinition.Normal, Tangent = (modelDefinition.Tangent == PerVertexTangentType.None) ? DEFAULT_PADDING.Tangent : modelDefinition.Tangent, TexCoords0 = (modelDefinition.TexCoords0 == PerVertexTexCoordsType.None) ? DEFAULT_PADDING.TexCoords0 : modelDefinition.TexCoords0, TexCoords1 = (modelDefinition.TexCoords1 == PerVertexTexCoordsType.None) ? DEFAULT_PADDING.TexCoords1 : modelDefinition.TexCoords1, Color0 = (modelDefinition.Color0 == PerVertexColorType.None) ? DEFAULT_PADDING.Color0 : modelDefinition.Color0, Color1 = (modelDefinition.Color1 == PerVertexColorType.None) ? DEFAULT_PADDING.Color1 : modelDefinition.Color1, Joints0 = (modelDefinition.Joints0 == PerVertexJointType.None) ? DEFAULT_PADDING.Joints0 : modelDefinition.Joints0, Joints1 = (modelDefinition.Joints1 == PerVertexJointType.None) ? DEFAULT_PADDING.Joints1 : modelDefinition.Joints1, Weights0 = (modelDefinition.Weights0 == PerVertexWeightsType.None) ? DEFAULT_PADDING.Weights0 : modelDefinition.Weights0, Weights1 = (modelDefinition.Weights1 == PerVertexWeightsType.None) ? DEFAULT_PADDING.Weights1 : modelDefinition.Weights1, }); }
public void Decode_1() { PerVertexDefinition expected = new PerVertexDefinition { }; var result = PerVertexDefinitionEncoder.Encode(expected); var actual = PerVertexDefinitionEncoder.Decode(result); TestResults(expected, actual); }
public void Decode_Position_3() { var expected = new PerVertexDefinition { Position = PerVertexPositionType.Float2, }; var result = PerVertexDefinitionEncoder.Encode(expected); var actual = PerVertexDefinitionEncoder.Decode(result); TestResults(expected, actual); }
public void Decode_Color1_6() { var expected = new PerVertexDefinition { Color1 = PerVertexColorType.FloatRGBA, }; var result = PerVertexDefinitionEncoder.Encode(expected); var actual = PerVertexDefinitionEncoder.Decode(result); TestResults(expected, actual); }
public void Decode_Color0_4() { var expected = new PerVertexDefinition { Color0 = PerVertexColorType.UshortUnormRGBA, }; var result = PerVertexDefinitionEncoder.Encode(expected); var actual = PerVertexDefinitionEncoder.Decode(result); TestResults(expected, actual); }
public void Decode_Tangents_2() { var expected = new PerVertexDefinition { Tangent = PerVertexTangentType.Float4, }; var result = PerVertexDefinitionEncoder.Encode(expected); var actual = PerVertexDefinitionEncoder.Decode(result); TestResults(expected, actual); }
public void Decode_Normal_2() { var expected = new PerVertexDefinition { Normal = PerVertexNormalType.Float3, }; var result = PerVertexDefinitionEncoder.Encode(expected); var actual = PerVertexDefinitionEncoder.Decode(result); TestResults(expected, actual); }
private static void TestResults(PerVertexDefinition expected, PerVertexDefinition actual) { Assert.AreEqual(expected.Position, actual.Position); Assert.AreEqual(expected.Normal, actual.Normal); Assert.AreEqual(expected.Tangent, actual.Tangent); Assert.AreEqual(expected.TexCoords0, actual.TexCoords0); Assert.AreEqual(expected.TexCoords1, actual.TexCoords1); Assert.AreEqual(expected.Color0, actual.Color0); Assert.AreEqual(expected.Color1, actual.Color1); Assert.AreEqual(expected.Joints0, actual.Joints0); Assert.AreEqual(expected.Joints1, actual.Joints1); Assert.AreEqual(expected.Weights0, actual.Weights0); Assert.AreEqual(expected.Weights1, actual.Weights1); Assert.AreEqual(expected.IndexType, actual.IndexType); }
public void Decode_0() { PerVertexDefinition expected = new PerVertexDefinition { Position = PerVertexPositionType.Float3, Normal = PerVertexNormalType.Float3, Color0 = PerVertexColorType.ByteUnormRGBA, Color1 = PerVertexColorType.ByteUnormRGB, Tangent = PerVertexTangentType.Float4, Weights0 = PerVertexWeightsType.UshortUnorm4, Weights1 = PerVertexWeightsType.Float4, Joints0 = PerVertexJointType.Ushort4, Joints1 = PerVertexJointType.Byte4, IndexType = PerVertexIndexType.Uint32, }; var result = PerVertexDefinitionEncoder.Encode(expected); var actual = PerVertexDefinitionEncoder.Decode(result); TestResults(expected, actual); }