blob: a21110f061fe5ae874698ebebda0939482455703 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
import { Vector3 } from 'three'
import OrbitControls from 'three-orbitcontrols'
import { appendRenderer, render, camera, renderer } from './renderer'
import { toArray } from '../util'
import * as modal from './modal'
import * as cloud from './cloud'
import * as face from './face'
const controls = new OrbitControls(camera, renderer.domElement)
controls.maxDistance = camera.far / 2
controls.enableDamping = true
controls.dampingFactor = 1 / 8
controls.rotateSpeed = 1 / 4
controls.zoomSpeed = 1
controls.keyPanSpeed = 1 / 2
function init() {
build()
bind()
animate()
}
function build() {
appendRenderer()
cloud.init()
face.init()
}
function bind() {
document.querySelector('.slogan').addEventListener('click', modal.close)
if (document.querySelector('.about')) {
toArray(document.querySelectorAll('.aboutLink')).forEach(el => {
el.addEventListener('click', modal.toggle)
})
document.querySelector('.about .inner').addEventListener('click', e => e.stopPropagation())
document.querySelector('.about').addEventListener('click', modal.close)
document.querySelector('.close').addEventListener('click', modal.close)
}
}
function animate() {
requestAnimationFrame(animate)
// camera.position.z += -0.0025
// camera.rotation.y += 0.00001
controls.update()
cloud.update()
// face.update()
let cameraTarget = new Vector3(0, 0, 0)
camera.lookAt(cameraTarget)
render()
}
document.addEventListener('DOMContentLoaded', init)
|