From 99f2b35d3bb091cb7b0fcc6316c1c579e6866bd0 Mon Sep 17 00:00:00 2001
From: Lucio Zambon <lucio.zambon@elettra.eu>
Date: Wed, 24 Apr 2024 13:46:57 +0000
Subject: [PATCH] Add new file

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

diff --git a/components/src/rcpremium.js b/components/src/rcpremium.js
new file mode 100644
index 0000000..aa826ef
--- /dev/null
+++ b/components/src/rcpremium.js
@@ -0,0 +1,68 @@
+	import * as THREE from 'three';
+
+
+	// Control rack
+	export function rcpremium(width=800, height=2500, depth=600) {
+		const rc_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});
+		//rack
+		const rrgeometry = new THREE.BoxGeometry(width, height, depth);
+		const rrmesh = new THREE.Mesh(rrgeometry, softbluematerial);
+		rrmesh.position.set( 0, 0 , -10);
+		rc_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);
+		rc_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);
+		rc_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);
+		rc_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);
+		rc_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);
+		rc_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);
+		rc_rackObject.add(ldemesh);				
+
+	
+		//base and build texture
+		const drawer1geometry = new THREE.BoxGeometry(10, 2450, 550);
+		const textureLoader = new THREE.TextureLoader();
+		const texture = textureLoader.load('./components/rcscreenfoto.jpg');
+		texture.wrapS = texture.wrapT = THREE.RepeatWrapping;
+		texture.repeat.set(1, 1);
+		const material = new THREE.MeshBasicMaterial({ map: texture });
+		const gridgeometrymesh = new THREE.Mesh(drawer1geometry, material);
+		gridgeometrymesh.rotateX(Math.PI * 1);
+		gridgeometrymesh.rotateY(Math.PI * 1);
+		gridgeometrymesh.rotateZ(Math.PI * 1);
+		gridgeometrymesh.position.set( -400, 0 , -10);
+		rc_rackObject.add(gridgeometrymesh);			
+		
+		return rc_rackObject;
+	}
-- 
GitLab