From 5c2f83deacff3b09a011ea7f79ef0e48e96df5f6 Mon Sep 17 00:00:00 2001 From: Lucio Zambon <lucio.zambon@elettra.eu> Date: Mon, 7 Oct 2024 03:34:45 +0000 Subject: [PATCH] Add new file --- components/bending_300.js | 55 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 components/bending_300.js diff --git a/components/bending_300.js b/components/bending_300.js new file mode 100644 index 0000000..4210f1c --- /dev/null +++ b/components/bending_300.js @@ -0,0 +1,55 @@ + import * as THREE from 'three'; + + // bending_300 + export function bending_300(param) { + const length = param && typeof param.length == "number"? param.length: 300 + const bending_300Container = new THREE.Object3D(); + const bending_300Object = new THREE.Object3D(); + + //texture + const loader = new THREE.TextureLoader(); + const texture = loader.load('./components/dipole.png'); + const textureTop = texture.clone(); + const textureSide = texture.clone(); + textureTop.center.set(0.5, 0.5); + textureTop.rotation = THREE.MathUtils.degToRad(90); + textureSide.offset.set(0, 0.8); + const dmaterial = new THREE.MeshLambertMaterial({map: texture}); + const face = new THREE.MeshBasicMaterial({map: texture}); + const faceTop = new THREE.MeshBasicMaterial({map: textureTop}); + const faceSide = new THREE.MeshBasicMaterial({map: textureSide}); + const materials = [face,face,faceTop,faceSide,faceSide,faceSide]; + const d1geometry = new THREE.BoxGeometry(550, 400, length); + const d1mesh = new THREE.Mesh(d1geometry, materials); + d1mesh.position.set(-100, 100, 0); + bending_300Object.add(d1mesh); + + //Coil + const dipoleCoil = new THREE.Object3D(); + const coilmaterial = new THREE.MeshLambertMaterial({color: 0xc08000}); + const d4geometry = new THREE.BoxGeometry(100, 100, 300); + const d4mesh = new THREE.Mesh(d4geometry, coilmaterial); + d4mesh.position.set(-200, 0, 0); + dipoleCoil.add(d4mesh); + const d2geometry = new THREE.CylinderGeometry(150 /*radiusTop*/, 150 /*radiusBottom*/, 100 /*height*/, 20 /*radialSegments*/, 2 /*heightSegments*/, false /*openEnded*/,Math.PI * 1.5 /*thetaStart*/, Math.PI * 1 /*thetaLength*/); + const d2mesh = new THREE.Mesh(d2geometry, coilmaterial); + d2mesh.position.set(-100, 0, 300/2); + dipoleCoil.add(d2mesh); + const d3geometry = new THREE.CylinderGeometry(150 /*radiusTop*/, 150 /*radiusBottom*/, 100 /*height*/, 20 /*radialSegments*/, 2 /*heightSegments*/, false /*openEnded*/,Math.PI * 0.5 /*thetaStart*/, Math.PI * 1 /*thetaLength*/); + const d3mesh = new THREE.Mesh(d3geometry, coilmaterial); + d3mesh.position.set(-100, 0, -300/2); + dipoleCoil.add(d3mesh); + dipoleCoil.position.set(0, 0, 0); + bending_300Object.add(dipoleCoil); + const dipoleCoil2 = dipoleCoil.clone(); + dipoleCoil2.position.set(0, 200, 0); + bending_300Object.add(dipoleCoil2); + + bending_300Object.position.set(0, 0, 0); + bending_300Container.add(bending_300Object); + + return bending_300Container; + } + + + -- GitLab