diff --git a/components/src/pdu.js b/components/src/pdu.js new file mode 100644 index 0000000000000000000000000000000000000000..7476143ad251280fcff193452ea8bbbb3a9730b2 --- /dev/null +++ b/components/src/pdu.js @@ -0,0 +1,115 @@ + 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; + }