public sealed class TransformSystemTurns LocalTransform plus the hierarchy into WorldTransform, parents before children, and touches nothing that did not move.
No guide page documents this yet — the page shows what the code says about itself.
As a system
- Phase
- PreRender
- Writes
- WorldTransform
Remarks
A static scene costs nothing. The pass starts from the chunks whose LocalTransform column has been written since it last ran, and walks down from there; a frame in which nothing moved visits nothing. That is the whole reason the ECS carries change versions.
Reparenting is caught for free: it moves the entity to a different archetype, and an archetype move stamps every column of the destination row. So is creation. Neither needs a dirty flag of its own.
What differs from [04](../../../docs/plan/04-ecs-and-scripting.md). That design splits archetypes by HierarchyDepth so each level is a set of chunks and every level is a sequential sweep. A component's value takes no part in its archetype here, and making it do so means shared components, which the ECS does not have. So depth 0 — the roots, which are an archetype question (WithNone<Parent>) — is a sequential sweep over spans, and the levels below it are walked through the child lists into per-depth buckets. The cost is random access below the roots rather than sequential; the work is still one visit per moved entity, and the buckets are reused, so a steady state allocates nothing. Shared components would let the levels below become sweeps too, without changing anything a caller sees.
Fields and properties (1)
public SystemAccess Access
Methods (2)
public override JobHandle Update(in SystemContext context, JobHandle dependency)Runs the system.
public void Resolve(World world)Resolves every world transform that is out of date, and no others.
Used by (20)
- CameraExtractionTestsVixen.Rendering.Tests
- EngineLoopVixen.Engine
- PhysicsInterpolationSystemVixen.Physics
- PredictionSmoothingSystemVixen.Net.Engine
- SceneAndPrefabTestsVixen.Engine.Tests
- TransformSystemTestsVixen.Engine.Tests
- BlockoutBooleanTestsVixen.Editor.Blockout.Tests
- BlockoutCreateTestsVixen.Editor.Blockout.Tests
- BlockoutGeometryTestsVixen.Editor.Blockout.Tests
- BlockoutHistoryTestsVixen.Editor.Blockout.Tests
- BlockoutSelectionTestsVixen.Editor.Blockout.Tests
- BlockoutSurfaceTestsVixen.Editor.Blockout.Tests
- EditorApplicationVixen.Editor.App
- MarqueeTestsVixen.Editor.SceneView.Tests
- MeshEditTestsVixen.Editor.SceneView.Tests
- PickingTestsVixen.Editor.SceneView.Tests
- ReparentTestsVixen.Editor.SceneView.Tests
- SnapContextTestsVixen.Editor.SceneView.Tests
- SnapTestsVixen.Editor.SceneView.Tests
- ViewportStateTestsVixen.Editor.SceneView.Tests