diff --git a/components/bending_300.js b/components/bending_300.js new file mode 100644 index 0000000000000000000000000000000000000000..4210f1ca5512601cc36b0ac85960a9037da120b4 --- /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; + } + + +