#include "rive/shapes/triangle.hpp"
#include "rive/component_dirt.hpp"
#include "rive/math/circle_constant.hpp"

using namespace rive;

Triangle::Triangle()
{
  addVertex(&m_Vertex1);
  addVertex(&m_Vertex2);
  addVertex(&m_Vertex3);
}

void Triangle::update(ComponentDirt value)
{
  if (hasDirt(value, ComponentDirt::Path))
  {
    auto ox = -originX() * width();
    auto oy = -originY() * height();

    m_Vertex1.x(ox + width() / 2);
    m_Vertex1.y(oy);

    m_Vertex2.x(ox + width());
    m_Vertex2.y(oy + height());

    m_Vertex3.x(ox);
    m_Vertex3.y(oy + height());
  }

  Super::update(value);
}