ump-plugin-matrix4
v0.0.1
Published
UMP Matrix4 Plugin — pure-JS column-major 4×4 affine transform helper
Readme
ump-plugin-matrix4
Pure-JS column-major 4×4 affine transform helper for UMP apps. Modeled on
@ohos.matrix4 and modern react-native-reanimated transforms; output
plugs straight into a transform: [{ matrix: m }] style.
Install
npm install ump-plugin-matrix4Peer dependencies (must already be installed in your app):
ump-coreump-native
Usage
import { Matrix4, type Mat4 } from 'ump-plugin-matrix4';
// 2D rotate + translate
const m: Mat4 = Matrix4.combine(
Matrix4.translate(100, 50),
Matrix4.rotateZ(45),
);
<View style={{ transform: [{ matrix: m }] }} />API
All matrices are length-16 number arrays in column-major layout (matches WebKit/Blink/iOS/Android conventions). Every function returns a fresh array; nothing mutates in place.
| Function | Description |
|------------------------------------------------|------------------------------------------|
| Matrix4.identity() | 4×4 identity matrix. |
| Matrix4.init(a) | Copy a 16-entry input into a Mat4. Throws if length ≠ 16. |
| Matrix4.translate(x, y, z?) | Translation matrix; z defaults to 0. |
| Matrix4.scale(sx, sy?, sz?) | Scale matrix; sy defaults to sx, sz to 1. |
| Matrix4.rotateZ(deg) | Rotate around Z (the usual 2D rotate). |
| Matrix4.rotateX(deg) / Matrix4.rotateY(deg)| 3D rotation around X / Y axis. |
| Matrix4.skew(skewXDeg, skewYDeg) | Affine shear. |
| Matrix4.multiply(a, b) | Column-major product a × b. |
| Matrix4.combine(...mats) | Fluent left-fold of multiply. |
Type
export type Mat4 = number[]; // length 16, column-majorMigration from ump-native
In ump-native 0.1.x, Matrix4 and the Mat4 type were bundled with the
main package. Starting 0.2.x, they ship as this separate plugin.
- import { Matrix4, type Mat4 } from 'ump-native';
+ import { Matrix4, type Mat4 } from 'ump-plugin-matrix4';No API changes.
