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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
var editor = new function (){
var base = this;
var cube = null
var cx, cy
base.init = function(){
map.on("mousedown", base.mousedown)
map.on("mousemove", base.mousemove)
map.on("mousedrag", base.mousedrag)
map.on("mouseup", base.mouseup)
map.on("mousewheel", base.mousewheel)
document.getElementById("export").addEventListener("keydown", base.stopPropagation)
document.getElementById("export").addEventListener("mousedown", base.stopPropagation)
document.getElementById("export").addEventListener("mousemove", base.stopPropagation)
document.getElementById("export").addEventListener("mouseup", base.stopPropagation)
window.addEventListener('keydown', base.keydown)
}
base.mousedown = function(e,x,y) {
if (! e.shiftKey) return
cx = x
cy = y
cube = new MX.BoxDimensions({
x: cx,
y: -10,
z: cy,
width: 1,
height: 1,
depth: 1,
borderWidth: 1,
borderColor: "#000",
color: "#fff"
})
cube.persisted = false
scene.add( cube );
}
base.mousemove = function(e,x,y) {
}
base.mousedrag = function(e,dx,dy) {
if (! cube) return
cube.x = cx + dx/2
cube.z = cy + dy/2
cube.setWidth( abs(dx) )
cube.setDepth( abs(dy) )
cube.setHeight( max( cube.width, cube.depth ) )
cube.update()
}
base.mouseup = function(e){
cube = null
}
base.mousewheel = function(e,x,z,delta){
if (! e.shiftKey) return;
scene.inner.children.some(function(s){
if (s.contains(-x, null, z)) {
s.y += delta * 1000
s.persisted = false
console.log(s.id)
return true
}
return false
})
}
base.stopPropagation = function(e){ e.stopPropagation() }
base.exportObjects = function(){
var s = scene.inner.children
.filter(function(s){ return ! s.persisted })
.map(function(s){ return s.toString() })
.join("\n\n")
document.getElementById("export").value = s
}
base.exportCamera = function(){
var s = scene.camera.toString()
document.getElementById("export").value = s
console.log(s)
}
base.keydown = function(e){
switch (e.keyCode) {
case 67: // c
base.exportCamera()
break;
case 86: // v
base.exportObjects()
break;
}
}
}
|