| 129 | } |
| 130 | |
| 131 | std::shared_ptr<RegionTransformer> RegionTransformer::MakeFromMatrix( |
| 132 | const Matrix& matrix, std::shared_ptr<RegionTransformer> outer) { |
| 133 | if (matrix.isIdentity()) { |
| 134 | return outer; |
| 135 | } |
| 136 | if (!outer || !outer->isMatrix()) { |
| 137 | return std::make_shared<MatrixRegionTransformer>(matrix, std::move(outer)); |
| 138 | } |
| 139 | |
| 140 | auto combineMatrix = matrix; |
| 141 | combineMatrix.postConcat(static_cast<MatrixRegionTransformer*>(outer.get())->matrix); |
| 142 | return std::make_shared<MatrixRegionTransformer>(combineMatrix, outer->outer); |
| 143 | } |
| 144 | |
| 145 | RegionTransformer::RegionTransformer(std::shared_ptr<RegionTransformer> outer) |
| 146 | : outer(std::move(outer)) { |
nothing calls this directly
no test coverage detected