<commit_before>
#include "ui/uidraw.h"
#include <algorithm>
#include "core/assert.h"
#include "core/color.h"
#include "core/enginecontext.h"
#include "core/math/utils.h"
#include "core/math/vector2.h"
#include "graphics/indexbuffer.h"
#include "graphics/rendersystem.h"
#include "graphics/vertexbuffer.h"
#include "ui/fontface.h"
#include "ui/uibatch.h"

namespace CodeHero {

std::array<Vector2, 12> UIDraw::m_CircleVertex;

void UIDraw::Init() {
    size_t vtxSize = m_CircleVertex.size();
    for (size_t i = 0; i < vtxSize; ++i) {
        const float a = static_cast<float>(i) / static_cast<float>(vtxSize) * 2 * PI;
        m_CircleVertex[i] = { static_cast<float>(std::cosf(a)), static_cast<float>(std::sinf(a)) };
    }
}

void UIDraw::PathStroke(const std::shared_ptr<EngineContext>& iContext,
                        std::vector<UIBatch>& oBatches,
                        const std::vector<Vector2>& iPoints,<commit_msg>Fix build on GCC where cosf/sinf are not standard<commit_after>
#include "ui/uidraw.h"
#include <algorithm>
#include "core/assert.h"
#include "core/color.h"
#include "core/enginecontext.h"
#include "core/math/utils.h"
#include "core/math/vector2.h"
#include "graphics/indexbuffer.h"
#include "graphics/rendersystem.h"
#include "graphics/vertexbuffer.h"
#include "ui/fontface.h"
#include "ui/uibatch.h"

namespace CodeHero {

std::array<Vector2, 12> UIDraw::m_CircleVertex;

void UIDraw::Init() {
    size_t vtxSize = m_CircleVertex.size();
    for (size_t i = 0; i < vtxSize; ++i) {
        const float a = static_cast<float>(i) / static_cast<float>(vtxSize) * 2 * PI;
        m_CircleVertex[i] = { std::cos(a), std::sin(a) };
    }
}

void UIDraw::PathStroke(const std::shared_ptr<EngineContext>& iContext,
                        std::vector<UIBatch>& oBatches,
                        const std::vector<Vector2>& iPoints,
{'fraction_non_alphanumeric': 0.15803667745415317, 'fraction_numerical': 0.007551240560949299, 'mean_word_length': 3.986559139784946, 'pattern_counts': {'":': 0, '<': 21, '<?xml version=': 0, '>': 19, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '317029', 'n_tokens_mistral': 690, 'n_tokens_neox': 676, 'n_words': 129}