67 static const mf::Signature
signature = []() {
69 mf::SignatureBuilder builder{
"Separate Matrix",
signature};
70 builder.single_input<
float4x4>(
"Matrix");
72 builder.single_output<
float>(
"Column 1 Row 1", mf::ParamFlag::SupportsUnusedOutput);
73 builder.single_output<
float>(
"Column 1 Row 2", mf::ParamFlag::SupportsUnusedOutput);
74 builder.single_output<
float>(
"Column 1 Row 3", mf::ParamFlag::SupportsUnusedOutput);
75 builder.single_output<
float>(
"Column 1 Row 4", mf::ParamFlag::SupportsUnusedOutput);
77 builder.single_output<
float>(
"Column 2 Row 1", mf::ParamFlag::SupportsUnusedOutput);
78 builder.single_output<
float>(
"Column 2 Row 2", mf::ParamFlag::SupportsUnusedOutput);
79 builder.single_output<
float>(
"Column 2 Row 3", mf::ParamFlag::SupportsUnusedOutput);
80 builder.single_output<
float>(
"Column 2 Row 4", mf::ParamFlag::SupportsUnusedOutput);
82 builder.single_output<
float>(
"Column 3 Row 1", mf::ParamFlag::SupportsUnusedOutput);
83 builder.single_output<
float>(
"Column 3 Row 2", mf::ParamFlag::SupportsUnusedOutput);
84 builder.single_output<
float>(
"Column 3 Row 3", mf::ParamFlag::SupportsUnusedOutput);
85 builder.single_output<
float>(
"Column 3 Row 4", mf::ParamFlag::SupportsUnusedOutput);
87 builder.single_output<
float>(
"Column 4 Row 1", mf::ParamFlag::SupportsUnusedOutput);
88 builder.single_output<
float>(
"Column 4 Row 2", mf::ParamFlag::SupportsUnusedOutput);
89 builder.single_output<
float>(
"Column 4 Row 3", mf::ParamFlag::SupportsUnusedOutput);
90 builder.single_output<
float>(
"Column 4 Row 4", mf::ParamFlag::SupportsUnusedOutput);
101 1,
"Column 1 Row 1");
103 2,
"Column 1 Row 2");
105 3,
"Column 1 Row 3");
107 4,
"Column 1 Row 4");
110 5,
"Column 2 Row 1");
112 6,
"Column 2 Row 2");
114 7,
"Column 2 Row 3");
116 8,
"Column 2 Row 4");
119 9,
"Column 3 Row 1");
121 10,
"Column 3 Row 2");
123 11,
"Column 3 Row 3");
125 12,
"Column 3 Row 4");
128 13,
"Column 4 Row 1");
130 14,
"Column 4 Row 2");
132 15,
"Column 4 Row 3");
134 16,
"Column 4 Row 4");
136 if (
const std::optional<float4x4> single = matrices.
get_if_single()) {
138 column_1_row_1.fill(matrix[0][0]);
139 column_1_row_2.fill(matrix[0][1]);
140 column_1_row_3.fill(matrix[0][2]);
141 column_1_row_4.fill(matrix[0][3]);
143 column_2_row_1.fill(matrix[1][0]);
144 column_2_row_2.fill(matrix[1][1]);
145 column_2_row_3.fill(matrix[1][2]);
146 column_2_row_4.fill(matrix[1][3]);
148 column_3_row_1.fill(matrix[2][0]);
149 column_3_row_2.fill(matrix[2][1]);
150 column_3_row_3.fill(matrix[2][2]);
151 column_3_row_4.fill(matrix[2][3]);
153 column_4_row_1.fill(matrix[3][0]);
154 column_4_row_2.fill(matrix[3][1]);
155 column_4_row_3.fill(matrix[3][2]);
156 column_4_row_4.fill(matrix[3][3]);