import * as THREE from 'three' export function createPlane(w = 10, h = 10, position = [0, .1, 0], rotation = [90, 0, 0]) { const material = new THREE.MeshLambertMaterial({ color: 0x88888888, side: THREE.DoubleSide, // wireframe: true, }) const geometry = new THREE.PlaneGeometry(w, h) const mesh = new THREE.Mesh(geometry, material) mesh.position.set(...position) mesh.rotation.set(...rotation.map(deg => deg / 180 * Math.PI)) return mesh } export function createCube() { const geometry = new THREE.BoxGeometry(1, 1, 1) const material = new THREE.MeshLambertMaterial({ color: 0xffffff }) const cube = new THREE.Mesh(geometry, material) return cube } export function createLight(lightConstuctor, lightArgs = [0xffffff, 1], lightPos = [0, 0, 1], ...helperArgs) { const light = new lightConstuctor(...lightArgs) light.position.set(...lightPos) let helperType if (lightConstuctor === THREE.AmbientLight) { } else if (lightConstuctor === THREE.DirectionalLight) { helperType = THREE.DirectionalLightHelper } else if (lightConstuctor === THREE.PointLight) { helperType = THREE.PointLightHelper } else if (lightConstuctor === THREE.SpotLight) { helperType = THREE.SpotLightHelper } const helper = helperType && new helperType(light, ...helperArgs) || {light, isMockHelper: true} return helper } export function addLight(scene, ...createArgs) { const helper = createLight(...createArgs) scene.add(helper.light) helper.isMockHelper || scene.add(helper) return helper }