lingo3d
Version:
Lingo3D is a React/Vue 3d game development framework that ships with a complete visual editor
31 lines • 1.36 kB
JavaScript
import getWorldPosition from "../memo/getWorldPosition";
import scene from "../engine/scene";
import { reflectionVisibleSet } from "../collections/reflectionCollections";
import { rendererPtr } from "../pointers/rendererPtr";
import { ssrExcludeSet } from "../collections/ssrExcludeSet";
import createInternalSystem from "./utils/createInternalSystem";
export const reflectionSystem = createInternalSystem("reflectionSystem", {
data: {},
update: (manager, data) => {
data.cubeCamera.position.copy(getWorldPosition(manager.outerObject3d));
data.cubeRenderTarget.clear(rendererPtr[0], false, true, false);
data.cubeCamera.update(rendererPtr[0], scene);
},
beforeTick: (queued) => {
for (const manager of reflectionVisibleSet)
manager.outerObject3d.visible = true;
for (const manager of queued.keys())
manager.outerObject3d.visible = false;
for (const object of ssrExcludeSet)
object.visible = false;
},
afterTick: (queued) => {
for (const manager of reflectionVisibleSet)
manager.outerObject3d.visible = false;
for (const manager of queued.keys())
manager.outerObject3d.visible = true;
for (const object of ssrExcludeSet)
object.visible = true;
}
});
//# sourceMappingURL=reflectionSystem.js.map