summaryrefslogtreecommitdiff
path: root/client/assets/javascripts/mx/primitives/mx.face.js
blob: ac47ab49c59e1f3a809ecee3636a62e6508f5fc7 (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
MX.Face = MX.Object3D.extend({

    // this will be called within the contructor
    init: function (size, color, borderColor) {

        size = size || 100
        color = color || 'rgba(0, 255, 122, .1)'
        borderColor = borderColor || '#0f3'

        // an Object3D's associated DOM node is the "el" property
        this.el.classList.add('face')

        var angle = MX.rotationUnit === 'deg' ? 90 : (Math.PI / 2)

        var top = this.top = new MX.Object3D('.face')
        top.rotationX = angle
        top.y = size / 2

        // adding children, must also be instances of Object3D
        this.add(top)

        this.children.forEach(function (face) {
            face.width = size - 2
            face.height = size - 2
            face.el.style.backgroundColor = color
            face.el.style.border = '1px solid ' + borderColor
        })

        // this applies the updated CSS style
        // required for any change to take effect
        // when a parent object's update() is called
        // all its children will be updated as well
        this.update()

        // if this object's children won't move by themselves
        this.updateChildren = false
    }

    // other properties will be mixed into the prototype of the new constructor

})