text: import buildLine from "./buildLine";
  import { hex2rgb } from "../../../utils";
  
  /**
   * Builds a rectangle to draw
   *
   * Ignored from docs since it is not directly exposed.
   *
   * @ignore
   * @private
   * @param {InkPaint.WebGLGraphicsData} graphicsData - The graphics object containing all the necessary properties
   * @param {object} webGLData - an object containing all the webGL-specific information to create this shape
   * @param {object} webGLDataNativeLines - an object containing all the webGL-specific information to create nativeLines
   */
  export default function buildRectangle(
    graphicsData,
    webGLData,
    webGLDataNativeLines
  ) {
    // --- //
    // need to convert points to a nice regular data
    //
    const rectData = graphicsData.shape;
    const x = rectData.x;
    const y = rectData.y;
    const width = rectData.width;
    const height = rectData.height;
  
    if (graphicsData.fill) {
      const color = hex2rgb(graphicsData.fillColor);
      const alpha = graphicsData.fillAlpha;
  
      const r = color[0] * alpha;
      const g = color[1] * alpha;
      const b = color[2] * alpha;
  
      const verts = webGLData.points;
      const indices = webGLData.indices;
  
      const vertPos = verts.length / 6;
  
      // start
      verts.push(x, y);
      verts.push(r, g, b, alpha);
  
      verts.push(x + width, y);
      verts.push(r, g, b, alpha);
  
      verts.push(x, y + height);
      verts.push(r, g, b, alpha);
  
      verts.push(x + width, y + height);
      verts.push(r, g, b, alpha);
  
      // insert 2 dead triangles..
      indices.push(
        vertPos,
        vertPos,
        vertPos + 1,
        vertPos + 2,
        vertPos + 3,
        vertPos + 3
      );
    }
  
    if (graphicsData.lineWidth) {
      const tempPoints = graphicsData.points;
  
      graphicsData.points = [
        x,
        y,
        x + width,
        y,
        x + width,
        y + height,
        x,
        y + height,
        x,
        y
      ];
  
      buildLine(graphicsData, webGLData, webGLDataNativeLines);
  
      graphicsData.points = tempPoints;
    }
  }
  