Parse

File Parse relative-xy.js

This tree is parsed live from the source file.

Classes

  • {{ item.name }}

    • {{ key }}

Not Classes

{{ getTree() }}

Comments

{{ getTreeComments() }}

Source

            

class XY extends Array {

    get x() {
        return this[0]
    }

    get y() {
        return this[1]
    }

    multiply(v) {
        this[0] *= v
        this[1] *= v
        return this
    }

    mul(){ return this.multiply.apply(this, arguments) }
}



class Relative {

    constructor(opts={}){
        // super(opts)
        this._relativeData = [0, 0, 0, 0]
    }

    getRelativeData() {
        let r = this._relativeData
        if(r == undefined) {
                                    //x,y,rad,rot
            r = this._relativeData = [0, 0, 0, 0]
        }
        return r
    }

    get rel() {
        let parent = this;
        let r = this._rel
        if(r != undefined) {
            return r
        }

        let relData = this.getRelativeData()
        let sp = {
            get x(){
                return relData[0]
            }

            , set x(v) {
                relData[0] = v
            }

            , get y(){
                return relData[1]
            }

            , set y(v) {
                relData[1] = v
            }

            , get radius() {
                return relData[2]
            }

            , set radius(v) {
                return relData[2] = v
            }

            , get rotation() {
                return relData[3]
            }

            , set rotation(v) {
                return relData[3] = v
            }

            , clear() {
                // delete all values
                parent._relativeData = [0,0,0,0]
            }
        }

        this._rel = sp
        return sp
    }

    set rel(v) {
        this._opts.rel = v
    }

    set xy(other) {
        /* Set a X Y pair on the entity, receiving from
        another XY, or Point*/
        this.x = other[0]
        this.y = other[1]
    }

    get xy() {
        // return the XY
        return new XY(this.x, this.y,)
    }

}

copy