import { vec3, mat4, quat } from 'gl-matrix'; import Traversable, { TraversableProps } from './Traversable'; export interface TransformNodeProps extends TraversableProps { onBeforeTransform?: (ref: T) => void; } export default class TransformNode extends Traversable { readonly isTransformNode = true; readonly quatRotation: quat; onBeforeTransform: (ref: TransformNode) => void; origin: vec3; translation: vec3; scale: vec3; rotation: vec3; localMatrix: mat4; worldMatrix: mat4; constructor(props?: TransformNodeProps); updateLocalMatrix(): mat4; updateWorldMatrix(parentWorldMatrix?: mat4): void; updateMatrices(parentWorldMatrix?: mat4): void; }