From 36a9c58ad71102b0f6b1bbb5388abc198003063f Mon Sep 17 00:00:00 2001
From: Lucio Zambon <lucio.zambon@elettra.eu>
Date: Mon, 2 Sep 2024 02:11:20 +0000
Subject: [PATCH] Add new file

---
 components/src/rd.js | 110 +++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 110 insertions(+)
 create mode 100644 components/src/rd.js

diff --git a/components/src/rd.js b/components/src/rd.js
new file mode 100644
index 0000000..c9d80ad
--- /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;
+	}
-- 
GitLab