UNPKG

pex-renderer

Version:

Physically Based Renderer (PBR) and scene graph designed as ECS for PEX: define entities to be rendered as collections of components with their update orchestrated by systems.

31 lines (27 loc) 820 B
/** * Layer system * @returns {import("../types.js").System} * @alias module:systems.layer */ export default () => ({ type: "layer-system", update(entities) { for (let i = 0; i < entities.length; i++) { const entity = entities[i]; if (!entity.transform) continue; // Try to find a parent layer if entity is not a layer entity if (!entity.layer) { let parentTransform = entity.transform.parent; entity.layer = null; // Traverse the hierachy until parent layer is found or root node with no parent reached while (parentTransform) { if (parentTransform.entity.layer) { entity.layer = parentTransform.entity.layer; break; } parentTransform = parentTransform.parent; } } } }, });