Skip to content
Snippets Groups Projects
pdu.js 3.35 KiB
	import * as THREE from 'three';


	// PDU
	export function pdu(width=500, height=100, depth=600) {
		const pduObject = new THREE.Object3D();
		const slotObject = new THREE.Object3D();
		
	
		const greenmaterial = new THREE.MeshLambertMaterial({color: 0x00ff11});
		const greenDarkmaterial = new THREE.MeshLambertMaterial({color: 0x0b5e11});
		const graymaterial = new THREE.MeshLambertMaterial({color: 0x2e2e2e});
		const graymaterial2 = new THREE.MeshLambertMaterial({color: 0x7d7d7d});
		const silvermaterial = new THREE.MeshLambertMaterial({color: 0xf0f0f0});
		const blackmaterial = new THREE.MeshLambertMaterial({color: 0x000000});
		const bluematerial = new THREE.MeshLambertMaterial({color: 0x0000ff});
		const redmaterial = new THREE.MeshLambertMaterial({color: 0xff0000});

		
		// base
		const basegeometry = new THREE.BoxGeometry(width, height, depth);
		const basegeometrymesh = new THREE.Mesh(basegeometry, graymaterial);
		basegeometrymesh.position.set( 0, 0 ,0);
		pduObject.add(basegeometrymesh);	
		
		// card
		const cardgeometry = new THREE.BoxGeometry(5, 50, depth);
		const cardgeometrymesh = new THREE.Mesh(cardgeometry, blackmaterial);
		cardgeometrymesh.position.set( -250, 25 , 0);
		pduObject.add(cardgeometrymesh);
		
		//slot
		const led1green = new THREE.BoxGeometry(3, 20, 20);
		const led1greenmesh = new THREE.Mesh(led1green, graymaterial2);
		led1greenmesh.position.set( -254, 25 , -280);
		slotObject.add(led1greenmesh);		
	
		
		//CLONE Cards connector

		const card2 = slotObject.clone();
		card2.position.set( 0, 0 , 25);
		pduObject.add(card2);
		
		const card3 = slotObject.clone();
		card3.position.set( 0, 0 , 50);
		pduObject.add(card3);
		
		const card4 = slotObject.clone();
		card4.position.set( 0, 0 , 75);
		pduObject.add(card4);	
		
		const card5 = slotObject.clone();
		card5.position.set( 0, 0 , 100);
		pduObject.add(card5);
		
		const card6 = slotObject.clone();
		card6.position.set( 0, 0 , 125);
		pduObject.add(card6);
		
		const card7 = slotObject.clone();
		card7.position.set( 0, 0 , 150);
		pduObject.add(card7);
		
		const card8 = slotObject.clone();
		card8.position.set( 0, 0 , 175);
		pduObject.add(card8);	
		
		const card9 = slotObject.clone();
		card9.position.set( 0, 0 , 200);
		pduObject.add(card9);		
		
		const card10 = slotObject.clone();
		card10.position.set( 0, 0 , 225);
		pduObject.add(card10);		
		
		const card11 = slotObject.clone();
		card11.position.set( 0, 0 , 225);
		pduObject.add(card11);	
		
		const card12 = slotObject.clone();
		card12.position.set( 0, 0 , 250);
		pduObject.add(card12);	
		
		const card13 = slotObject.clone();
		card13.position.set( 0, 0 , 275);
		pduObject.add(card13);
		
		const card14 = slotObject.clone();
		card14.position.set( 0, 0 , 300);
		pduObject.add(card14);
		
		const card15 = slotObject.clone();
		card15.position.set( 0, 0 , 325);
		pduObject.add(card15);		
		
		// bluebase
		const livel2geometry = new THREE.BoxGeometry(5, 35, 130);
		const livel2geometrymesh = new THREE.Mesh(livel2geometry, bluematerial);
		livel2geometrymesh.position.set( -252, 25 , -233);
		pduObject.add(livel2geometrymesh);		
		// redbase
		const livel1geometry = new THREE.BoxGeometry(5, 35, 125);
		const livel1geometrymesh = new THREE.Mesh(livel1geometry, redmaterial);
		livel1geometrymesh.position.set(-252, 25 , -106);
		pduObject.add(livel1geometrymesh);
	
		
		
		pduObject.add(slotObject);
		
	
		
		return pduObject;
	}