Skip to content

Commit

Permalink
fix: initializers
Browse files Browse the repository at this point in the history
  • Loading branch information
prieston committed Nov 16, 2021
1 parent 9ea965d commit 14fcf4a
Showing 1 changed file with 43 additions and 52 deletions.
95 changes: 43 additions & 52 deletions src/utils/initializers.js
Original file line number Diff line number Diff line change
@@ -1,92 +1,83 @@
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;
const top = context.rootElement.offsetHeight / 2;
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,
Expand All @@ -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 };
};

0 comments on commit 14fcf4a

Please sign in to comment.