diff --git a/components/src/camod.js b/components/src/camod.js new file mode 100644 index 0000000000000000000000000000000000000000..ec2b9675faeefa67ca3c125699b4f74c3b2ca188 --- /dev/null +++ b/components/src/camod.js @@ -0,0 +1,155 @@ + import * as THREE from 'three'; + + // camod rack + export function camod(width=800, height=2500, depth=800) { + const camod = new THREE.Object3D(); + const camod_rackObject = new THREE.Object3D(); + const materialGreyDark= new THREE.MeshLambertMaterial({color: 0x9d9d9d}); + const materialGreyMedium= new THREE.MeshLambertMaterial({color: 0x636363}); + const materialVeryGreyDark= new THREE.MeshLambertMaterial({color: 0x242424}); + const silvermaterial = new THREE.MeshLambertMaterial({color: 0xf0f0f0}); + const greenmaterial = new THREE.MeshLambertMaterial({color: 0x17fc03}); + const redmaterial = new THREE.MeshLambertMaterial({color: 0xff0000}); + const yellowmaterial = new THREE.MeshLambertMaterial({color: 0xFBE928}); + const blackmaterial = new THREE.MeshLambertMaterial({color: 0x000000}); + + //right rack + const lrgeometry = new THREE.BoxGeometry(width, height, depth); + const lrmesh = new THREE.Mesh(lrgeometry, materialGreyDark); + lrmesh.position.set(0 , 0 , 0); + camod_rackObject.add(lrmesh); + + //left rack + const rrgeometry = new THREE.BoxGeometry(width, height, depth); + const rrmesh = new THREE.Mesh(rrgeometry, materialGreyDark); + rrmesh.position.set( 0, 0 , -810); + camod_rackObject.add(rrmesh); + + //edge lle + const llegeometry = new THREE.BoxGeometry(width-750, height-100, depth-790); + const llemesh = new THREE.Mesh(llegeometry, blackmaterial); + llemesh.position.set( -377, 0 , -1155); + camod_rackObject.add(llemesh); + + //edge lre + const lregeometry = new THREE.BoxGeometry(width-750, height-100, depth-790); + const lremesh = new THREE.Mesh(lregeometry, blackmaterial); + lremesh.position.set( -377, 0 , -470); + camod_rackObject.add(lremesh); + + //edge rle + const rlegeometry = new THREE.BoxGeometry(width-750, height-100, depth-790); + const rlemesh = new THREE.Mesh(rlegeometry, blackmaterial); + rlemesh.position.set( -377, 0 , -340); + camod_rackObject.add(rlemesh); + + //edge rre + const rregeometry = new THREE.BoxGeometry(width-750, height-100, depth-790); + const rremesh = new THREE.Mesh(rregeometry, blackmaterial); + rremesh.position.set( -377, 0 , 345); + camod_rackObject.add(rremesh); + + //edge lue + const luegeometry = new THREE.BoxGeometry(width-750, height-2490, depth-105); + const luemesh = new THREE.Mesh(luegeometry, blackmaterial); + luemesh.position.set( -377, 1200 , -813); + camod_rackObject.add(luemesh); + + //edge lde + const ldegeometry = new THREE.BoxGeometry(width-750, height-2490, depth-105); + const ldemesh = new THREE.Mesh(ldegeometry, blackmaterial); + ldemesh.position.set( -377, -1200 , -807); + camod_rackObject.add(ldemesh); + + //edge rue + const ruegeometry = new THREE.BoxGeometry(width-750, height-2490, depth-105); + const ruemesh = new THREE.Mesh(ruegeometry, blackmaterial); + ruemesh.position.set( -377, 1200 , 0); + camod_rackObject.add(ruemesh); + + //edge rde + const rdegeometry = new THREE.BoxGeometry(width-750, height-2490, depth-105); + const rdemesh = new THREE.Mesh(rdegeometry, blackmaterial); + rdemesh.position.set( -377, -1200 , 0); + camod_rackObject.add(rdemesh); + + //triangle warning1 + const trianglewarning = new THREE.CylinderGeometry(200, 200, 1, 3); + const trianglewarningmesh = new THREE.Mesh(trianglewarning, yellowmaterial); + trianglewarningmesh.rotateX(Math.PI * 0.5); + trianglewarningmesh.rotateY(Math.PI * 1); + trianglewarningmesh.rotateZ(Math.PI * 0.5); + trianglewarningmesh.position.set(-401, 700 , 0); + camod_rackObject.add(trianglewarningmesh); + + //triangle warning black + const trianglewarning2 = new THREE.CylinderGeometry(180, 180, 1, 3); + const trianglewarning2mesh = new THREE.Mesh(trianglewarning2, blackmaterial); + trianglewarning2mesh.rotateX(Math.PI * 0.5); + trianglewarning2mesh.rotateY(Math.PI * 1); + trianglewarning2mesh.rotateZ(Math.PI * 0.5); + trianglewarning2mesh.position.set(-402, 700 , 0); + camod_rackObject.add(trianglewarning2mesh); + + //triangle warning yellow2 + const trianglewarning3 = new THREE.CylinderGeometry(150, 150, 1, 3); + const trianglewarning3mesh = new THREE.Mesh(trianglewarning3, yellowmaterial); + trianglewarning3mesh.rotateX(Math.PI * 0.5); + trianglewarning3mesh.rotateY(Math.PI * 1); + trianglewarning3mesh.rotateZ(Math.PI * 0.5); + trianglewarning3mesh.position.set(-403, 700 , 0); + camod_rackObject.add(trianglewarning3mesh); + + //ZOT1 + const zot1geometry = new THREE.BoxGeometry(10, 110, 10); + const zot1geometrymesh = new THREE.Mesh(zot1geometry, blackmaterial); + zot1geometrymesh.position.set( -404, 750 , -20); + zot1geometrymesh.rotateX(Math.PI * 1.65); + zot1geometrymesh.rotateY(Math.PI * 1.50); + zot1geometrymesh.rotateZ(Math.PI * 1.50); + camod_rackObject.add(zot1geometrymesh); + + //ZOT2 + const zot2geometry = new THREE.BoxGeometry(10, 70, 10); + const zot2geometrymesh = new THREE.Mesh(zot2geometry, blackmaterial); + zot2geometrymesh.position.set( -404, 715 , -16); + zot2geometrymesh.rotateX(Math.PI * 1.85); + zot2geometrymesh.rotateY(Math.PI * 1.50); + zot2geometrymesh.rotateZ(Math.PI * 1.50); + camod_rackObject.add(zot2geometrymesh); + + //ZOT3 + const zot3geometry = new THREE.BoxGeometry(10, 80, 10); + const zot3geometrymesh = new THREE.Mesh(zot3geometry, blackmaterial); + zot3geometrymesh.position.set( -404, 697 , -1); + zot3geometrymesh.rotateX(Math.PI * 1.65); + zot3geometrymesh.rotateY(Math.PI * 1.50); + zot3geometrymesh.rotateZ(Math.PI * 1.50); + camod_rackObject.add(zot3geometrymesh); + + //ZOT TRIANGLE + const zottrianglegeometry = new THREE.CylinderGeometry(22, 22, 1, 3); + const zottrianglegeometrymesh = new THREE.Mesh(zottrianglegeometry, blackmaterial); + zottrianglegeometrymesh.rotateX(Math.PI * 0.95); + zottrianglegeometrymesh.rotateY(Math.PI * 1); + zottrianglegeometrymesh.rotateZ(Math.PI * 0.5); + zottrianglegeometrymesh.position.set(-405, 660 , -19); + camod_rackObject.add(zottrianglegeometrymesh); + + //handle1 + const handle1geometry = new THREE.BoxGeometry(10, 250, 80); + const handle1geometrymesh = new THREE.Mesh(handle1geometry, materialVeryGreyDark); + handle1geometrymesh.position.set( -401, 100 , -550); + camod_rackObject.add(handle1geometrymesh); + + //handle2 + const handle2geometry = new THREE.BoxGeometry(10, 250, 80); + const handle2geometrymesh = new THREE.Mesh(handle2geometry, materialVeryGreyDark); + handle2geometrymesh.position.set( -401, 100 , -260); + camod_rackObject.add(handle2geometrymesh); + camod_rackObject.rotateY(Math.PI); + camod_rackObject.position.set(400, 1250, 340); + camod_rackObject.scale.set(1, 1, 0.94); + camod.add(camod_rackObject); + return camod; + }