#include "rive/shapes/mesh_vertex.hpp"
#include "rive/shapes/mesh.hpp"

using namespace rive;
void MeshVertex::markGeometryDirty()
{
    parent()->as<Mesh>()->markDrawableDirty();
}

StatusCode MeshVertex::onAddedDirty(CoreContext* context)
{
    StatusCode code = Super::onAddedDirty(context);
    if (code != StatusCode::Ok)
    {
        return code;
    }
    if (!parent()->is<Mesh>())
    {
        return StatusCode::MissingObject;
    }
    parent()->as<Mesh>()->addVertex(this);
    return StatusCode::Ok;
}