From 14fcf4ac452a6f7656855ff75ad964d67db2bd4c Mon Sep 17 00:00:00 2001 From: Theofilos Papadopoulos Date: Tue, 16 Nov 2021 23:36:52 +0200 Subject: [PATCH] fix: initializers --- src/utils/initializers.js | 95 ++++++++++++++++++--------------------- 1 file changed, 43 insertions(+), 52 deletions(-) diff --git a/src/utils/initializers.js b/src/utils/initializers.js index 37379aa1..1d5a03df 100644 --- a/src/utils/initializers.js +++ b/src/utils/initializers.js @@ -1,20 +1,19 @@ import { v4 as uuidv4 } from "uuid"; export const initializeCamera = (camera, context) => { - camera.id = camera.id || uuidv4(); - camera.class = camera.class || []; - camera.settings = camera.settings || {}; - camera.class = camera.class || []; - camera.type = camera.type || "PerspectiveCamera"; - camera.parameters = camera.parameters || {}; + camera.id ??= uuidv4(); + camera.class ??= []; + camera.settings ??= {}; + camera.type ??= "PerspectiveCamera"; + camera.parameters ??= {}; if (camera.type === "PerspectiveCamera") { const fov = 45; const aspect = - context.rootElement.offsetWidth / context.rootElement.offsetHeight; + context.rootElement.offsetWidth / (context.rootElement.offsetHeight || 1); const near = 1; - const far = 10000; - camera.parameters = [fov, aspect, near, far]; + const far = 1000; + camera.parameters ??= [fov, aspect, near, far]; } else { const left = context.rootElement.offsetWidth / -2; const right = context.rootElement.offsetWidth / 2; @@ -22,71 +21,63 @@ export const initializeCamera = (camera, context) => { const bottom = context.rootElement.offsetHeight / -2; const near = 1; const far = 1000; - camera.parameters = [left, right, top, bottom, near, far]; + camera.parameters ??= [left, right, top, bottom, near, far]; } - camera.settings.position = camera.settings.position || {}; - camera.settings.position.x = camera.settings.position.x || 0; - camera.settings.position.y = camera.settings.position.y || 0; - camera.settings.position.z = camera.settings.position.z || 10; + camera.settings.position ??= { x: 0, y: 0, z: 0 }; camera.settings.lookAt ??= [0, 0, 0]; }; export const initializeRenderer = (renderer, context) => { - renderer.id = renderer.id || uuidv4(); - renderer.class = renderer.class || []; - renderer.settings = renderer.settings || {}; - - (renderer.settings.setClearColor = renderer.settings.setClearColor || [ - "lightblue", - ]), - (renderer.type = renderer.type || "WebGLRenderer"); + renderer.id ??= uuidv4(); + renderer.class ??= []; + renderer.settings ??= {}; + renderer.settings.setClearColor ??= ["lightblue"]; + renderer.type ??= "WebGLRenderer"; if (renderer.type === "WebGLRenderer") { - renderer.settings.setPixelRatio = renderer.settings.setPixelRatio || [ - context.window.devicePixelRatio, - ]; + renderer.settings.setPixelRatio ??= [context.window.devicePixelRatio]; } - renderer.settings.setSize = renderer.settings.setSize || [ + renderer.settings.setSize ??= [ context.rootElement.offsetWidth, context.rootElement.offsetHeight, ]; }; export const initializeObject = (object) => { - object.id = object.id || uuidv4(); - object.selector = object.selector || "!.scenes"; - object.class = object.class || []; - object.settings = object.settings || {}; + object.id ??= uuidv4(); + object.selector ??= "!.scenes"; + object.class ??= []; + object.settings ??= {}; }; export const initializeLight = (light) => { - light.id = light.id || uuidv4(); - light.selector = light.selector || "!.scenes"; - light.class = light.class || []; - light.settings = light.settings || {}; - light.settings.position = light.settings.position || { x: 0, y: 0, z: 0 }; + light.id ??= uuidv4(); + light.selector ??= "!.scenes"; + light.class ??= []; + light.settings ??= {}; + light.settings.position ??= { x: 0, y: 0, z: 0 }; }; export const initializeMesh = (entity) => { - entity.id = entity.id || uuidv4(); - entity.class = entity.class || []; - entity.selector = entity.selector || "!.scenes"; - entity.settings = entity.settings || {}; - entity.settings.position = entity.settings.position || { x: 0, y: 0, z: 0 }; + entity.id ??= uuidv4(); + entity.class ??= []; + entity.selector ??= "!.scenes"; + entity.settings ??= {}; + entity.settings.position ??= { x: 0, y: 0, z: 0 }; }; export const initializeCSS3DObject = (css3d) => { - css3d.id = css3d.id || uuidv4(); - css3d.class = css3d.class || []; - css3d.selector = css3d.selector || "!.scenes"; - css3d.settings = css3d.settings || {}; - css3d.settings.position = css3d.settings.position || { x: 0, y: 0, z: 0 }; + css3d.id ??= uuidv4(); + css3d.class ??= []; + css3d.selector ??= "!.scenes"; + css3d.settings ??= {}; + css3d.settings.position ??= { x: 0, y: 0, z: 0 }; }; export const initializeLoader = (loader) => { - loader.id = loader.id || uuidv4(); - loader.class = loader.class || []; - loader.parameters = loader.parameters || []; + loader.id ??= uuidv4(); + loader.class ??= []; + loader.parameters ??= []; if (loader.parameters.length < 2) { loader.parameters.push( null, @@ -102,8 +93,8 @@ export const initializeLoader = (loader) => { }; export const initializeModel = (model) => { - model.id = model.id || uuidv4(); - model.class = model.class || []; - model.settings = model.settings || {}; - model.settings.position = model.settings.position || { x: 0, y: 0, z: 0 }; + model.id ??= uuidv4(); + model.class ??= []; + model.settings ??= {}; + model.settings.position ??= { x: 0, y: 0, z: 0 }; };