@web-engine-dev/math / Transform
Class: Transform
A 3D transform composed of position, rotation, and scale. Immutable by design - all operations return new instances.
Example
// Create a transform at position (10, 0, 5) rotated 45° around Y
const transform = new Transform(
new Vec3(10, 0, 5),
Quat.fromAxisAngle(Vec3.up(), Math.PI / 4),
Vec3.one()
);
// Transform a point from local to world space
const worldPos = transform.transformPoint(localPos);Constructors
Constructor
new Transform(
position?,rotation?,scale?):Transform
Parameters
position?
Vec3 = ...
rotation?
Quat = ...
scale?
Vec3 = ...
Returns
Transform
Properties
position
readonlyposition:Vec3
rotation
readonlyrotation:Quat
scale
readonlyscale:Vec3
Methods
compose()
compose(
parent):Transform
Computes the composition of transforms: parent * this. The result represents this transform in the parent's space.
Parameters
parent
Transform
Parent transform
Returns
Transform
Combined transform
Example
const parent = Transform.fromPosition(new Vec3(10, 0, 0));
const child = Transform.fromPosition(new Vec3(0, 5, 0));
const worldTransform = child.compose(parent); // Child at (10, 5, 0)equals()
equals(
t,epsilon?):boolean
Parameters
t
Transform
epsilon?
number = 0
Returns
boolean
forward()
forward():
Vec3
Returns
inverseTransformDirection()
inverseTransformDirection(
direction):Vec3
Transforms a direction from world space to local space (ignores position).
Parameters
direction
Returns
inverseTransformPoint()
inverseTransformPoint(
point):Vec3
Transforms a point from world space to local space.
Parameters
point
Returns
invert()
invert():
Transform
Computes the inverse transform.
Returns
Transform
lerp()
lerp(
target,t):Transform
Parameters
target
Transform
t
number
Returns
Transform
right()
right():
Vec3
Returns
rotate()
rotate(
rotation):Transform
Parameters
rotation
Returns
Transform
rotateLocal()
rotateLocal(
rotation):Transform
Parameters
rotation
Returns
Transform
scaleBy()
scaleBy(
factor):Transform
Parameters
factor
Returns
Transform
scaleUniform()
scaleUniform(
factor):Transform
Parameters
factor
number
Returns
Transform
toMat4()
toMat4():
Mat4
Converts to a 4x4 transformation matrix.
Returns
toString()
toString():
string
Returns
string
transformDirection()
transformDirection(
direction):Vec3
Transforms a direction from local space to world space (ignores position).
Parameters
direction
Returns
transformPoint()
transformPoint(
point):Vec3
Transforms a point from local space to world space.
Parameters
point
Point in local space
Returns
Point in world space
Example
const transform = Transform.fromPosition(new Vec3(100, 0, 0));
const localPoint = new Vec3(5, 0, 0);
const worldPoint = transform.transformPoint(localPoint); // (105, 0, 0)translate()
translate(
delta):Transform
Parameters
delta
Returns
Transform
up()
up():
Vec3
Returns
withPosition()
withPosition(
position):Transform
Parameters
position
Returns
Transform
withRotation()
withRotation(
rotation):Transform
Parameters
rotation
Returns
Transform
withScale()
withScale(
scale):Transform
Parameters
scale
Returns
Transform
withUniformScale()
withUniformScale(
scale):Transform
Parameters
scale
number
Returns
Transform
fromMat4()
staticfromMat4(m):Transform
Creates a transform from a 4x4 matrix. Note: The matrix should be a valid TRS (Translation-Rotation-Scale) matrix.
Parameters
m
Returns
Transform
fromPosition()
staticfromPosition(position):Transform
Parameters
position
Returns
Transform
fromRotation()
staticfromRotation(rotation):Transform
Parameters
rotation
Returns
Transform
fromScale()
staticfromScale(scale):Transform
Parameters
scale
Returns
Transform
fromUniformScale()
staticfromUniformScale(scale):Transform
Parameters
scale
number
Returns
Transform
identity()
staticidentity():Transform
Returns
Transform