Skip to content

Function to return an array with all points and RGB colors. #230

Description

@fabricocouto
// Function to return an array with all points and RGB colors.
EMB_PUBLIC EmbStitchInfo* emb_pattern_getAllStitches(EmbPattern* pattern, int* stitchCount) {
    if (!pattern || !pattern->stitch_list || !stitchCount) return NULL;

    *stitchCount = pattern->stitch_list->count; // Define o número de pontos
    EmbStitchInfo* stitches = (EmbStitchInfo*)malloc(*stitchCount * sizeof(EmbStitchInfo));

    if (!stitches) return NULL;  

   
    for (int i = 0; i < *stitchCount; i++) {
        stitches[i].x = pattern->stitch_list->stitch[i].x;
        stitches[i].y = pattern->stitch_list->stitch[i].y;
        stitches[i].flags = pattern->stitch_list->stitch[i].flags;

 
        int colorIndex = pattern->stitch_list->stitch[i].color;
        if (colorIndex < pattern->thread_list->count) {
            EmbColor color = pattern->thread_list->thread[colorIndex].color;
            stitches[i].red = color.r;
            stitches[i].green = color.g;
            stitches[i].blue = color.b;
        }
        else {
            // Cor padrão caso o índice não seja válido
            stitches[i].red = 0;
            stitches[i].green = 0;
            stitches[i].blue = 0;
        }
    }

    return stitches;  
}

EMB_PUBLIC void emb_freeStitchInfoList(EmbStitchInfo* stitches) {
    free(stitches);
}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions