Source: app02a/view/ViewCircle.js

/**
 * @author    Wolfgang Kowarschick <kowa@hs-augsburg.de>
 * @copyright 2017 - 2018
 * @license   CC-BY-NC-SA-4.0
 */

/**
 * @module app02a/view/ViewCircle
 */

import {Graphics}  from 'pixi.js';
import stringToHex from '/wk_pixi/util/stringToHex';

/**
 * @property {ModelCircle}   model  - the model to be visualized
 * @property {PIXI.Graphics} sprite - a graphic object that visualizes the model
 */
class ViewCircle
{ /**
   * @param {Object}             p_pixi_app
   * @param {ModelCircle|Object} p_model
   * @param {Object}             [p_config]
   * @param {number}             [p_config.border      = 5]
   * @param {string}             [p_config.borderColor = '#AAAAAA']
   * @param {string}             [p_config.color       = '#FFAA00']
   */
  constructor
  ( p_pixi_app,
    p_model,
    { border:      p_border       = 5,
      borderColor: p_border_color = '#AAAAAA',
      color:       p_color        = '#FFAA00'
    } = {}
  )
  { const c_sprite = new Graphics();

    c_sprite.lineStyle(p_border, stringToHex(p_border_color), 1);
    c_sprite.beginFill(stringToHex(p_color));
    c_sprite.drawCircle(0, 0, p_model.r-p_border);
    c_sprite.endFill();
  
    p_pixi_app.stage.addChild(c_sprite);
  
    this.sprite = c_sprite;
    this.model  = p_model;

    this.render();
  }

  render()
  { this.sprite.x = this.model.x;
    this.sprite.y = this.model.y;
  }
}

export default ViewCircle;