struct ImTriangulator

Overview

struct ImTriangulator
{
    // fields

    int _TrianglesLeft = 0;
    ImTriangulatorNode* _Nodes = NULL;
    ImTriangulatorNodeSpan _Ears;
    ImTriangulatorNodeSpan _Reflexes;

    // methods

    static int EstimateTriangleCount(int points_count);
    static int EstimateScratchBufferSize(int points_count);

    void Init(
        const ImVec2* points,
        int points_count,
        void* scratch_buffer
        );

    void GetNextTriangle(unsigned int out_triangle [3]);

    void BuildNodes(
        const ImVec2* points,
        int points_count
        );

    void BuildReflexes();
    void BuildEars();
    void FlipNodeList();

    bool IsEar(
        int i0,
        int i1,
        int i2,
        const ImVec2& v0,
        const ImVec2& v1,
        const ImVec2& v2
        ) const;

    void ReclassifyNode(ImTriangulatorNode* node);
};