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