From 31dd66facdc494a701f8aabe790b6e9cb2c49bcf Mon Sep 17 00:00:00 2001 From: Lucio Zambon <lucio.zambon@elettra.eu> Date: Mon, 10 Jun 2024 01:05:39 +0000 Subject: [PATCH] Add new file --- components/src/donatello.js | 134 ++++++++++++++++++++++++++++++++++++ 1 file changed, 134 insertions(+) create mode 100644 components/src/donatello.js diff --git a/components/src/donatello.js b/components/src/donatello.js new file mode 100644 index 0000000..0084bda --- /dev/null +++ b/components/src/donatello.js @@ -0,0 +1,134 @@ + import * as THREE from 'three'; + + + // rack donatello + export function donatello(param) { + + const don_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 greenmaterial2 = new THREE.MeshLambertMaterial({color: 0x0f993b}); + const emergencymaterial = new THREE.MeshLambertMaterial({color: 0xff0000}); + const redmaterial = new THREE.MeshLambertMaterial({color: 0xff0000}); + const yellowmaterial = new THREE.MeshLambertMaterial({color: 0xcc9d02}); + const materialBrown= new THREE.MeshLambertMaterial({color: 0x654321}); + + + // rack + const lrgeometry = new THREE.BoxGeometry(800, 2000, 800); + const lrmesh = new THREE.Mesh(lrgeometry, silvermaterial); + lrmesh.position.set(0 , 0 , 0); + don_rackObject.add(lrmesh); + + //edge le + const rlegeometry = new THREE.BoxGeometry(50, 2000, 50); + const rlemesh = new THREE.Mesh(rlegeometry, materialBrown); + rlemesh.position.set( -425, 0 , -370); + don_rackObject.add(rlemesh); + + //edge re + const rregeometry = new THREE.BoxGeometry(50, 2000, 50); + const rremesh = new THREE.Mesh(rregeometry, materialBrown); + rremesh.position.set( -425, 0 , 375); + don_rackObject.add(rremesh); + + //edge ue + const ruegeometry = new THREE.BoxGeometry(50, -50, 750); + const ruemesh = new THREE.Mesh(ruegeometry, materialBrown); + ruemesh.position.set( -426, 975 , 0); + don_rackObject.add(ruemesh); + + //edge de + const rdegeometry = new THREE.BoxGeometry(50, -50, 750); + const rdemesh = new THREE.Mesh(rdegeometry, materialBrown); + rdemesh.position.set( -426, -975 , 0); + don_rackObject.add(rdemesh); + + //GreenButton + const greenbutton = new THREE.CylinderGeometry(55, 55, 40, 15); + const greenbuttonmesh = new THREE.Mesh(greenbutton, greenmaterial); + greenbuttonmesh.rotateX(Math.PI * 0.5); + greenbuttonmesh.rotateY(Math.PI * 1); + greenbuttonmesh.rotateZ(Math.PI * 0.5); + greenbuttonmesh.position.set(-400, 700 , 70); + don_rackObject.add(greenbuttonmesh); + + //GreenLed + const greenled = new THREE.CylinderGeometry(40, 40, 40, 15); + const greenledmesh = new THREE.Mesh(greenled, greenmaterial2); + greenledmesh.rotateX(Math.PI * 0.5); + greenledmesh.rotateY(Math.PI * 1); + greenledmesh.rotateZ(Math.PI * 0.5); + greenledmesh.position.set(-400, 700 , 200); + don_rackObject.add(greenledmesh); + + //RedButton + const redbutton = new THREE.CylinderGeometry(55, 55, 40, 15); + const redbuttonmesh = new THREE.Mesh(redbutton, redmaterial); + redbuttonmesh.rotateX(Math.PI * 0.5); + redbuttonmesh.rotateY(Math.PI * 1); + redbuttonmesh.rotateZ(Math.PI * 0.5); + redbuttonmesh.position.set(-400, 550 , 70); + don_rackObject.add(redbuttonmesh); + + //YelloyLed + const yellowled = new THREE.CylinderGeometry(40, 40, 40, 15); + const yellowledmesh = new THREE.Mesh(yellowled, yellowmaterial); + yellowledmesh.rotateX(Math.PI * 0.5); + yellowledmesh.rotateY(Math.PI * 1); + yellowledmesh.rotateZ(Math.PI * 0.5); + yellowledmesh.position.set(-400, 550 , 200); + don_rackObject.add(yellowledmesh); + + //EmergenctButton + const emergencybutton = new THREE.CylinderGeometry(80, 80, 40, 15); + const emergencybuttonmesh = new THREE.Mesh(emergencybutton, emergencymaterial); + emergencybuttonmesh.rotateX(Math.PI * 0.5); + emergencybuttonmesh.rotateY(Math.PI * 1); + emergencybuttonmesh.rotateZ(Math.PI * 0.5); + emergencybuttonmesh.position.set(-400, 330 , 150); + don_rackObject.add(emergencybuttonmesh); + + //display up + const displayupgeometry = new THREE.BoxGeometry(50, 50, 150); + const displayupgeometrymesh = new THREE.Mesh(displayupgeometry, materialVeryGreyDark); + displayupgeometrymesh.position.set( -400, 700 , -150); + don_rackObject.add(displayupgeometrymesh); + + //display2 down + const displayupgeometry2 = new THREE.BoxGeometry(50, 50, 150); + const displayupgeometrymesh2 = new THREE.Mesh(displayupgeometry2, materialVeryGreyDark); + displayupgeometrymesh2.position.set( -400, 600 , -150); + don_rackObject.add(displayupgeometrymesh2); + + //fan1 + const fan1geometry = new THREE.BoxGeometry(10, 200, 200); + const fan1geometrymesh = new THREE.Mesh(fan1geometry, materialVeryGreyDark); + fan1geometrymesh.position.set( -400, 50 , 150); + don_rackObject.add(fan1geometrymesh); + //fan2 + const fan2geometry = new THREE.BoxGeometry(10, 200, 200); + const fan2geometrymesh = new THREE.Mesh(fan2geometry, materialVeryGreyDark); + fan2geometrymesh.position.set( -400, -170 , 150); + don_rackObject.add(fan2geometrymesh); + + //Lgrid2 down + const grid2geometry = new THREE.BoxGeometry(10, 200, 520); + const textureLoader2 = new THREE.TextureLoader(); + const texture2 = textureLoader2.load('./components/grid_texture.png'); + texture2.wrapS = texture2.wrapT = THREE.RepeatWrapping; + texture2.repeat.set(50, 1); + const material2 = new THREE.MeshBasicMaterial({ map: texture2 }); + const grid2geometrymesh = new THREE.Mesh(grid2geometry, material2); + grid2geometrymesh.rotateX(Math.PI * 1); + grid2geometrymesh.rotateY(Math.PI * 1); + grid2geometrymesh.rotateZ(Math.PI * 1); + grid2geometrymesh.position.set( -400, -650 , -10); + don_rackObject.add(grid2geometrymesh); + + return don_rackObject; + } -- GitLab