Source: view/ViewCircleGraphics.js

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

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 ViewCircleGraphics
{ /**
   * @param {Object}      p_pixi_app
   * @param {ModelCircle} p_model
   * @param {Object}      [p_config]
   * @param {number}      [p_config.border      = 0]
   * @param {string}      [p_config.borderColor = '#000000']
   * @param {string}      [p_config.color       = '#000000']
   */
  constructor
  ( p_pixi_app,
    p_model,
    { border:      p_border       = 0,
      borderColor: p_border_color = '#000000',
      color:       p_color        = '#000000'
    } = {}
  )
  { 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 {ViewCircleGraphics};