Source: Point.js

/**
 * @author Antonio Raúl Guijarro Contreras <alu0101100494@ull.edu.es>
 * @file Declaration of the class Point where it represents a mathematical point
 * @copyright Antonio Raúl Guijarro Contreras 2020
 * @since 05.03.2020
 */

'use strinc'

import Shape from "./Shape.js";

/** 
 * Representa una coordenada en el plano
*/
class Point extends Shape{
  /**
   * Constructor de la clase punto
   * @param {number} x_ Coordinates of x position
   * @param {number} y_ Coordinates of y position
   */
  constructor(x_ = 0, y_ = 0) {
    super();
    this.x = x_;
    this.y = y_;
  }

  /**
   * Asigna las coordenadas al punto
   * @param {number} x coordenada x
   * @param {number} y coordenada y
   */
  set(coodinates) {
    this.x = coodinates[0];
    this.y = coodinates[1];
  }

  /**
   * @return {Array} retorna las coordenadas que almacena la clase punto en forma de array.
   */
  get() {
    return [this.x, this.y];
  }

  /* istanbul ignore next */
  /**
   * Se encarga de dibujar la figura que representa la clase
   * @param {Context} ctx Contexto del canvas, preferiblemente '2d'
   */
  draw(ctx) {
    if (ctx != null) {
      this.baseDraw(ctx);
      ctx.rect(this.x, this.y, 1, 1);
      ctx.stroke();
      ctx.fill();
    }
  }
};

export default Point;