summaryrefslogtreecommitdiff
path: root/assets/javascripts/mx/primitives/mx.door.js
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)

	}
})