blob: 12ff148bb82f7f0e8995b16c9c55e3dec9ee0785 (
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
|
borderThickness = 3
MX.Door = MX.Object3D.extend({
// this will be called within the contructor
init: function (opt) {
width = opt.width || 100
height = opt.height || 100
doorOffset = opt.doorOffset || 0
doorWidth = opt.doorWidth || 30
doorHeight = opt.doorHeight || 20
color = opt.color || 'rgba(0, 255, 122, .1)'
borderColor = opt.borderColor || '#0f3'
// an Object3D's associated DOM node is the "el" property
this.el.classList.add('box')
var angle = MX.rotationUnit === 'deg' ? 90 : (Math.PI / 2)
var left = new MX.Object3D('.face.door.leftTop')
left.width = (width - doorWidth) / 2 + doorOffset
left.height = height-doorHeight-borderThickness
left.x = (width + doorWidth) / 4 + doorOffset
left.y = (height+doorHeight+borderThickness)/2
left.el.style.backgroundColor = color
left.el.style.borderTop = borderThickness + 'px solid ' + borderColor
left.el.style.borderRight = borderThickness + 'px solid ' + borderColor
this.add(left)
var leftBot = new MX.Object3D('.face.door.leftBot')
leftBot.width = (width - doorWidth) / 2 - doorOffset
leftBot.height = doorHeight + borderThickness
leftBot.x = (width + doorWidth) / 4 - doorOffset
leftBot.y = (doorHeight+borderThickness)/2
leftBot.el.style.backgroundColor = color
leftBot.el.style.borderLeft = borderThickness + 'px solid ' + borderColor
leftBot.el.style.borderRight = borderThickness + 'px solid ' + borderColor
leftBot.el.style.borderBottom = borderThickness + 'px solid ' + borderColor
this.add(leftBot)
var rightTop = new MX.Object3D('.face.door.rightTop')
rightTop.width = (width - doorWidth) / 2 - doorOffset
rightTop.height = height-doorHeight-borderThickness
rightTop.x = -(width+doorWidth)/4 - doorOffset
rightTop.y = (height+ doorHeight+borderThickness)/2
rightTop.el.style.backgroundColor = color
rightTop.el.style.borderTop = borderThickness + 'px solid ' + borderColor
rightTop.el.style.borderLeft = borderThickness + 'px solid ' + borderColor
this.add(rightTop)
var rightBot = new MX.Object3D('.face.door.rightBot')
rightBot.width = (width - doorWidth) / 2 - doorOffset
rightBot.height = doorHeight+borderThickness
rightBot.x = -(width + doorWidth)/4 - doorOffset
rightBot.y = (doorHeight+borderThickness)/2
rightBot.el.style.backgroundColor = color
rightBot.el.style.borderLeft = borderThickness + 'px solid ' + borderColor
rightBot.el.style.borderRight = borderThickness + 'px solid ' + borderColor
rightBot.el.style.borderBottom = borderThickness + 'px solid ' + borderColor
this.add(rightBot)
var top = new MX.Object3D('.face.door.top')
top.width = doorWidth
top.height = height-doorHeight
top.x = doorOffset
top.y = (height+ doorHeight)/2
top.el.style.backgroundColor = color
top.el.style.borderTop = borderThickness + 'px solid ' + borderColor
top.el.style.borderBottom = borderThickness + 'px solid ' + borderColor
this.add(top)
}
})
|