decodeMatrix4 static method
Decodes the value
to a Matrix4. This requires the value to be an
Iterable of double with exactly 16 elements in it.
The array is expected to be in the following format:
[
x0,
x1,
x2,
x3,
y0,
y1,
y2,
y3,
z0,
z1,
z2,
z3,
w0,
w1,
w2,
w3
]
Implementation
static Matrix4? decodeMatrix4(
dynamic value, {
bool validate = true,
}) {
Matrix4? result;
if (value is Matrix4) {
result = value;
} else {
if (value is Iterable) {
assert(SchemaValidator.validate(
schemaId: '$_baseSchemaUrl/matrix4',
value: value,
validate: validate,
));
var list = value.toList();
result = Matrix4(
JsonClass.parseDouble(list[0])!,
JsonClass.parseDouble(list[1])!,
JsonClass.parseDouble(list[2])!,
JsonClass.parseDouble(list[3])!,
JsonClass.parseDouble(list[4])!,
JsonClass.parseDouble(list[5])!,
JsonClass.parseDouble(list[6])!,
JsonClass.parseDouble(list[7])!,
JsonClass.parseDouble(list[8])!,
JsonClass.parseDouble(list[9])!,
JsonClass.parseDouble(list[10])!,
JsonClass.parseDouble(list[11])!,
JsonClass.parseDouble(list[12])!,
JsonClass.parseDouble(list[13])!,
JsonClass.parseDouble(list[14])!,
JsonClass.parseDouble(list[15])!,
);
}
}
return result;
}