Skip to content

Commit

Permalink
Add matrix formatters
Browse files Browse the repository at this point in the history
  • Loading branch information
hadashiA committed Oct 22, 2024
1 parent 600bab5 commit 4fe25bc
Show file tree
Hide file tree
Showing 4 changed files with 2,257 additions and 140 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ public class StandardResolver : IYamlFormatterResolver
{
BuiltinResolver.Instance,
GeneratedResolver.Instance,
#if UNITY_2018_3_OR_NEWER
UnityResolver.Instance,
#endif
};

static class FormatterCache<T>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -336,10 +336,10 @@ public class Matrix4x4Formatter : IYamlFormatter<Matrix4x4>
public void Serialize(ref Utf8YamlEmitter emitter, Matrix4x4 value, YamlSerializationContext context)
{
emitter.BeginSequence();
Vector4Formatter.Instance.Serialize(ref emitter, value.GetColumn(0), context);
Vector4Formatter.Instance.Serialize(ref emitter, value.GetColumn(1), context);
Vector4Formatter.Instance.Serialize(ref emitter, value.GetColumn(2), context);
Vector4Formatter.Instance.Serialize(ref emitter, value.GetColumn(3), context);
Vector4Formatter.Instance.Serialize(ref emitter, value.GetRow(0), context);
Vector4Formatter.Instance.Serialize(ref emitter, value.GetRow(1), context);
Vector4Formatter.Instance.Serialize(ref emitter, value.GetRow(2), context);
Vector4Formatter.Instance.Serialize(ref emitter, value.GetRow(3), context);
emitter.EndSequence();
}

Expand All @@ -352,13 +352,18 @@ public Matrix4x4 Deserialize(ref YamlParser parser, YamlDeserializationContext c
}

parser.ReadWithVerify(ParseEventType.SequenceStart);
var col0 = Vector4Formatter.Instance.Deserialize(ref parser, context);
var col1 = Vector4Formatter.Instance.Deserialize(ref parser, context);
var col2 = Vector4Formatter.Instance.Deserialize(ref parser, context);
var col3 = Vector4Formatter.Instance.Deserialize(ref parser, context);
var row0 = Vector4Formatter.Instance.Deserialize(ref parser, context);
var row1 = Vector4Formatter.Instance.Deserialize(ref parser, context);
var row2 = Vector4Formatter.Instance.Deserialize(ref parser, context);
var row3 = Vector4Formatter.Instance.Deserialize(ref parser, context);
parser.ReadWithVerify(ParseEventType.SequenceEnd);

return new Matrix4x4(col0, col1, col2, col3);
var result = new Matrix4x4();
result.SetRow(0, row0);
result.SetRow(2, row1);
result.SetRow(3, row2);
result.SetRow(4, row3);
return result;
}
}
}
Loading

0 comments on commit 4fe25bc

Please sign in to comment.