diff --git a/components/src/rd.js b/components/src/rd.js new file mode 100644 index 0000000000000000000000000000000000000000..c9d80ad2b5323f044eee4bf4a3229d7690ca440d --- /dev/null +++ b/components/src/rd.js @@ -0,0 +1,110 @@ + import * as THREE from 'three'; + + + // diagnostic rack + export function rd(width=800, height=2500, depth=600) { + const rd_rackObject = new THREE.Object3D(); + + const bluematerial = new THREE.MeshLambertMaterial({color: 0x0053d9}); + const softbluematerial = new THREE.MeshLambertMaterial({color: 0x2b7cff}); + const target = new THREE.MeshLambertMaterial({color: 0xfbe928}); + const materialGreyDark= new THREE.MeshLambertMaterial({color: 0x9d9d9d}); + const materialGreyMedium= new THREE.MeshLambertMaterial({color: 0x636363}); + + //rack + const rrgeometry = new THREE.BoxGeometry(width, height, depth); + const rrmesh = new THREE.Mesh(rrgeometry, softbluematerial); + rrmesh.position.set( 0, 0 , -10); + rd_rackObject.add(rrmesh); + + //front yellow target + const Ftarget = new THREE.BoxGeometry(2, 90, 500); + const Ftargetmesh = new THREE.Mesh(Ftarget, target); + Ftargetmesh.position.set( -451, 1200 , -15); + rd_rackObject.add(Ftargetmesh); + //Rear yellow target + const Rtarget = new THREE.BoxGeometry(2, 90, 500); + const Rtargetmesh = new THREE.Mesh(Rtarget, target); + Rtargetmesh.position.set( 401, 1200 , -15); + rd_rackObject.add(Rtargetmesh); + + //edge le + const llegeometry = new THREE.BoxGeometry(width-750, height, depth-550); + const llemesh = new THREE.Mesh(llegeometry, bluematerial); + llemesh.position.set( -425, 0 , -285); + rd_rackObject.add(llemesh); + + //edge re + const lregeometry = new THREE.BoxGeometry(width-750, height, depth-550); + const lremesh = new THREE.Mesh(lregeometry, bluematerial); + lremesh.position.set( -425, 0 , 265); + rd_rackObject.add(lremesh); + + //edge ue + const luegeometry = new THREE.BoxGeometry(width-750, height-2450, depth-50); + const luemesh = new THREE.Mesh(luegeometry, bluematerial); + luemesh.position.set( -425, 1225 , -7); + rd_rackObject.add(luemesh); + + //edge de + const ldegeometry = new THREE.BoxGeometry(width-750, height-2450, depth-50); + const ldemesh = new THREE.Mesh(ldegeometry, bluematerial); + ldemesh.position.set( -425, -1230 , -7); + rd_rackObject.add(ldemesh); + + + //borderEC + const borderECgeometry = new THREE.BoxGeometry(10, 400, 600); + const borderECgeometrymesh = new THREE.Mesh(borderECgeometry, materialGreyDark); + borderECgeometrymesh.position.set( -400, 0 , -10); + rd_rackObject.add(borderECgeometrymesh); + + //EC1 + const EC1geometry = new THREE.BoxGeometry(10, 350, 40); + const EC1geometrymesh = new THREE.Mesh(EC1geometry, materialGreyMedium); + EC1geometrymesh.position.set( -402, 0 , -200); + rd_rackObject.add(EC1geometrymesh); + //EC2 + const EC2geometry = new THREE.BoxGeometry(10, 350, 40); + const EC2geometrymesh = new THREE.Mesh(EC2geometry, materialGreyMedium); + EC2geometrymesh.position.set( -402, 0 , -150); + rd_rackObject.add(EC2geometrymesh); + //EC2 + const EC3geometry = new THREE.BoxGeometry(10, 350, 40); + const EC3geometrymesh = new THREE.Mesh(EC3geometry, materialGreyMedium); + EC3geometrymesh.position.set( -402, 0 , -100); + rd_rackObject.add(EC3geometrymesh); + + //libera 1 + const libera1geometry = new THREE.BoxGeometry(10, 100, 600); + const libera1geometrymesh = new THREE.Mesh(libera1geometry, materialGreyMedium); + libera1geometrymesh.position.set( -400, 900 , -10); + rd_rackObject.add(libera1geometrymesh); + + //libera 2 + const libera2geometrymesh = new THREE.Mesh(libera1geometry, materialGreyMedium); + libera2geometrymesh.position.set( -400, 750 , -10); + rd_rackObject.add(libera2geometrymesh); + + //libera 3 + const libera3geometrymesh = new THREE.Mesh(libera1geometry, materialGreyMedium); + libera3geometrymesh.position.set( -400, 600 , -10); + rd_rackObject.add(libera3geometrymesh); + + //libera 4 + const libera4geometrymesh = new THREE.Mesh(libera1geometry, materialGreyMedium); + libera4geometrymesh.position.set( -400, -600 , -10); + rd_rackObject.add(libera4geometrymesh); + + //libera 5 + const libera5geometrymesh = new THREE.Mesh(libera1geometry, materialGreyMedium); + libera5geometrymesh.position.set( -400, -750 , -10); + rd_rackObject.add(libera5geometrymesh); + + //libera 6 + const libera6geometrymesh = new THREE.Mesh(libera1geometry, materialGreyMedium); + libera6geometrymesh.position.set( -400, -900 , -10); + rd_rackObject.add(libera6geometrymesh); + + return rd_rackObject; + }