Skip to content
Snippets Groups Projects
Commit 07c56a26 authored by Lucio Zambon's avatar Lucio Zambon
Browse files

Add new file

parent 36a9c58a
No related branches found
No related tags found
No related merge requests found
import * as THREE from 'three';
import {FontLoader} from 'three/addons/loaders/FontLoader.js';
import {TextGeometry} from 'three/addons/geometries/TextGeometry.js';
// fug rack
export function fugfast(width=800, height=1700, depth=800) {
const text = 'Fug';
const fugObject = new THREE.Object3D();
let group, textMesh, textGeo, materials;
let size = 60;
let textheight = 10;
let pos = [];
let rot = [];
const hover = 30;
const curveSegments = 8;
let font;
function insertText(isize, ipos, irot) {
group = new THREE.Group();
group.position.y = 100;
fugObject.add( group );
size = isize;
pos = ipos;
rot = irot;
loadFont();
}
function loadFont() {
const loader = new FontLoader();
// https://threejs.org/examples/fonts/droid_sans_bold.typeface.json
loader.load( './fonts/droid_sans_bold.typeface.json', function ( response ) {
font = response;
refreshText();
} );
}
materials = [
new THREE.MeshPhongMaterial( { color: 0x272c7d , flatShading: true } ), // front
new THREE.MeshPhongMaterial( { color: 0x272c7d } ) // side
];
function createText() {
textGeo = new TextGeometry(text.replace('TKLY_KG','K').replace('.01',''), {font: font, size: size, height: textheight, curveSegments: curveSegments});
textGeo.computeBoundingBox();
const centerOffset = - 0.5 * ( textGeo.boundingBox.max.x - textGeo.boundingBox.min.x );
textMesh = new THREE.Mesh( textGeo, materials );
textMesh.position.x = pos[0];
textMesh.position.y = pos[1];
textMesh.position.z = pos[2];
textMesh.rotation.x = rot[0];
textMesh.rotation.y = rot[1];
textMesh.rotation.z = rot[2];
group.add( textMesh );
}
function refreshText() {
group.remove( textMesh );
if ( ! text ) return;
createText();
}
insertText(270, [-650,-1500,-720], [0, -Math.PI / 2, 0]);
const materialGreyDark= new THREE.MeshLambertMaterial({color: 0x9d9d9d});
const materialVeryGreyDark= new THREE.MeshLambertMaterial({color: 0x242424});
const silvermaterial = new THREE.MeshLambertMaterial({color: 0xf0f0f0});
const testmaterial = new THREE.MeshLambertMaterial({color: 0x00ff00});
const greenmaterial = new THREE.MeshLambertMaterial({color: 0x095c23});
const greenmaterial2 = new THREE.MeshLambertMaterial({color: 0x0f993b});
const redmaterial = new THREE.MeshLambertMaterial({color: 0xab0000});
const yellowmaterial = new THREE.MeshLambertMaterial({color: 0xcc9d02});
const emergencymaterial = new THREE.MeshLambertMaterial({color: 0xff0000});
const blumaterial = new THREE.MeshLambertMaterial({color: 0x272c7d});
const whiteaterial = new THREE.MeshLambertMaterial({color: 0xdfdfe8});
//fix FUG logo
const fugfixgeometry = new THREE.BoxGeometry(10, 50, 460);
const fugfixgeometrymesh = new THREE.Mesh(fugfixgeometry, blumaterial);
fugfixgeometrymesh.position.set(-655,-1157,-310);
fugObject.add(fugfixgeometrymesh);
//left rack
const lrgeometry = new THREE.BoxGeometry(width, height, depth);
const lrmesh = new THREE.Mesh(lrgeometry, silvermaterial);
lrmesh.position.set(0 , 0 , 0);
fugObject.add(lrmesh);
//right rack
const rrgeometry = new THREE.BoxGeometry(width, height, depth);
const rrmesh = new THREE.Mesh(rrgeometry, silvermaterial);
rrmesh.position.set( 0, 0 , -810);
fugObject.add(rrmesh);
//basefug
const basegeometry = new THREE.BoxGeometry(width+250, height-800, depth+800);
const basemesh = new THREE.Mesh(basegeometry, silvermaterial);
basemesh.position.set( -130, -1320 , -400);
fugObject.add(basemesh);
//edge lle
const llegeometry = new THREE.BoxGeometry(50, 1700, 50);
const llemesh = new THREE.Mesh(llegeometry, materialGreyDark);
llemesh.position.set( -425, 0 , -1185);
fugObject.add(llemesh);
//edge lre
const lregeometry = new THREE.BoxGeometry(50, 1700, 50);
const lremesh = new THREE.Mesh(lregeometry, materialGreyDark);
lremesh.position.set( -425, 0 , -430);
fugObject.add(lremesh);
//edge rle
const rlegeometry = new THREE.BoxGeometry(50, 1700, 50);
const rlemesh = new THREE.Mesh(rlegeometry, materialGreyDark);
rlemesh.position.set( -425, 0 , -370);
fugObject.add(rlemesh);
//edge rre
const rregeometry = new THREE.BoxGeometry(50, 1700, 50);
const rremesh = new THREE.Mesh(rregeometry, materialGreyDark);
rremesh.position.set( -425, 0 , 375);
fugObject.add(rremesh);
//edge lue
const luegeometry = new THREE.BoxGeometry(50, 50, 705);
const luemesh = new THREE.Mesh(luegeometry, materialGreyDark);
luemesh.position.set( -425, 825 , -807);
fugObject.add(luemesh);
//edge lde
const ldegeometry = new THREE.BoxGeometry(50, 50, 705);
const ldemesh = new THREE.Mesh(ldegeometry, materialGreyDark);
ldemesh.position.set( -425, -830 , -807);
fugObject.add(ldemesh);
//edge rue
const ruegeometry = new THREE.BoxGeometry(50, 50, 705);
const ruemesh = new THREE.Mesh(ruegeometry, materialGreyDark);
ruemesh.position.set( -425, 825 , 0);
fugObject.add(ruemesh);
//edge rde
const rdegeometry = new THREE.BoxGeometry(50, 50, 705);
const rdemesh = new THREE.Mesh(rdegeometry, materialGreyDark);
rdemesh.position.set( -425, -825 , 0);
fugObject.add(rdemesh);
return fugObject;
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment