Vixen
02b45cc4
csharp
public sealed class TransformSystem

Turns 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

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)

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