import { World } from "koota"; //#region src/ecs/systems/transformSyncSystem.d.ts /** * Sync transforms to GPU instance matrices AND `sprite.matrixWorld`. * * Position, rotation, and scale are read directly from the Object3D via * spriteArr (flat array indexed by entity SoA index). Same O(1) array * access pattern as all other SoA stores — zero hash overhead. * * This pass is the SINGLE WRITER of a batched sprite's GPU transform. * Auto-orchestrated sprites retain their real source parent, while explicit * SpriteGroup sprites use the owning group as their hierarchy boundary. * The source world matrix is retained for picking/debugging. The GPU slot is * relative to the owning SpriteGroup, whose batch mesh carries the root world * transform. Moving the shared root therefore does not rewrite every slot. * * UV writes used to live here too (under the comment "UV sync is folded * into transformSyncSystem"). Phase 3 of the perf roadmap moved UV to * setter-side direct writes via `Sprite2D.setFrame` → `mesh.writeUV`, * so this system is now matrix-only. */ declare function transformSyncSystem(world: World): void; //#endregion export { transformSyncSystem }; //# sourceMappingURL=transformSyncSystem.d.ts.map