Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var Arc = function (materialOptions) {
- var geometry = new THREE.Geometry(),
- R1 = ETHER.Config.R1,
- R2 = ETHER.Config.R2,
- SUBDIV = ETHER.Config.SUBDIV,
- SPEED = ETHER.Config.SPEED,
- PERIOD = ETHER.Config.PERIOD,
- SPACING = ETHER.Config.SPACING;
- // create vertices
- for (var i = 0; i <= SUBDIV; i++) {
- var
- j = i - SUBDIV / 2,
- s = Math.sin(2 * Math.PI * j / SUBDIV),
- c = Math.cos(2 * Math.PI * j / SUBDIV);
- geometry.vertices.push(
- new THREE.Vector3(R1 * s, R1 * c - 3, 0),
- new THREE.Vector3(R2 * s, R2 * c - 3, 0)
- );
- }
- // create faces
- for (var i = 1; i <= SUBDIV; i++) {
- var ii = i * 2;
- geometry.faces.push(
- new THREE.Face3(ii, ii - 1, ii - 2),
- new THREE.Face3(ii, ii + 1, ii - 1)
- );
- }
- // map texture
- var material = new THREE.MeshBasicMaterial(materialOptions);
- geometry.faceVertexUvs[0] = [];
- for (var i = 0; i < SUBDIV; i++) {
- var j = i * 2;
- k = 1 - i / SUBDIV,
- l = 1 - (i + 1) / SUBDIV;
- geometry.faceVertexUvs[0][j] =
- [ new THREE.Vector2(l, 0),
- new THREE.Vector2(k, 1),
- new THREE.Vector2(k, 0), ];
- geometry.faceVertexUvs[0][j + 1] =
- [ new THREE.Vector2(l, 0),
- new THREE.Vector2(l, 1),
- new THREE.Vector2(k, 1), ];
- }
- // set pivot point
- geometry.applyMatrix(new THREE.Matrix4().makeTranslation(0, 3, 0));
- // combine geometry and material
- return new THREE.Mesh(geometry, material);
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement