/** @internal NOTE: Internal APIs. Subject to change. Use of these APIs in production applications is not supported. */ /** */
import { GeometryTransform, TransformType } from '@twinfinity/geometry';
export { TransformType } from '@twinfinity/geometry';
export class FastTransform extends GeometryTransform {
    constructor(transform) {
        super(transform);
    }
    static identity() {
        return new FastTransform({
            x: 0,
            y: 0,
            z: 0,
            sx: 1,
            sy: 1,
            sz: 1,
            qw: 1,
            qx: 0,
            qy: 0,
            qz: 0
        });
    }
    translateToRef(centerOrCx, dstOrCy, cz, dst) {
        if (typeof centerOrCx === 'number') {
            return super.translateToRef(centerOrCx, dstOrCy, cz, dst);
        }
        return super.translateToRef(centerOrCx.x, centerOrCx.y, centerOrCx.z, dstOrCy);
    }
    rotatePackedNormalInPlace(packedNormal, dst, dstOffset) {
        if (this.type & TransformType.Rotation) {
            dst[dstOffset] = this.rotatePackedNormal(packedNormal);
        }
        else {
            dst[dstOffset] = packedNormal;
        }
    }
    transformInPlaceVector3(x, y, z, dst) {
        this.transformToVertex3(x, y, z, dst);
    }
    static transformToMatrixArray(t, dst, offset) {
        GeometryTransform.transformToMatrixArray(t, dst, offset);
    }
}
//# sourceMappingURL=FastTransform.js.map