Blender V5.0
BLI_scanfill.h File Reference
#include "DNA_listBase.h"
#include <stdbool.h>

Go to the source code of this file.

Classes

struct  ScanFillContext
struct  ScanFillVert
struct  ScanFillEdge
struct  ScanFillFace

Macros

#define BLI_SCANFILL_ARENA_SIZE   MEM_SIZE_OPTIMAL(1 << 14)
#define SF_POLY_UNSET   ((unsigned short)-1)

Typedefs

typedef struct ScanFillContext ScanFillContext
typedef struct ScanFillVert ScanFillVert
typedef struct ScanFillEdge ScanFillEdge
typedef struct ScanFillFace ScanFillFace

Enumerations

enum  { BLI_SCANFILL_CALC_REMOVE_DOUBLES = (1 << 1) , BLI_SCANFILL_CALC_POLYS = (1 << 2) , BLI_SCANFILL_CALC_HOLES = (1 << 3) , BLI_SCANFILL_CALC_LOOSE = (1 << 4) }

Functions

struct ScanFillVertBLI_scanfill_vert_add (ScanFillContext *sf_ctx, const float vec[3])
struct ScanFillEdgeBLI_scanfill_edge_add (ScanFillContext *sf_ctx, struct ScanFillVert *v1, struct ScanFillVert *v2)
void BLI_scanfill_begin (ScanFillContext *sf_ctx)
unsigned int BLI_scanfill_calc (ScanFillContext *sf_ctx, int flag)
unsigned int BLI_scanfill_calc_ex (ScanFillContext *sf_ctx, int flag, const float nor_proj[3])
void BLI_scanfill_end (ScanFillContext *sf_ctx)
void BLI_scanfill_begin_arena (ScanFillContext *sf_ctx, struct MemArena *arena)
void BLI_scanfill_end_arena (ScanFillContext *sf_ctx, struct MemArena *arena)
bool BLI_scanfill_calc_self_isect (ScanFillContext *sf_ctx, ListBase *remvertbase, ListBase *remedgebase)

Macro Definition Documentation

◆ BLI_SCANFILL_ARENA_SIZE

#define BLI_SCANFILL_ARENA_SIZE   MEM_SIZE_OPTIMAL(1 << 14)

◆ SF_POLY_UNSET

#define SF_POLY_UNSET   ((unsigned short)-1)
Note
this is USHRT_MAX so incrementing will set to zero which happens if callers choose to increment ScanFillContext.poly_nr before adding each curve. Nowhere else in scan-fill do we make use of intentional overflow like this.

Definition at line 37 of file BLI_scanfill.h.

Referenced by BLI_scanfill_begin(), BLI_scanfill_begin_arena(), BLI_scanfill_calc_ex(), and BLI_scanfill_calc_self_isect().

Typedef Documentation

◆ ScanFillContext

typedef struct ScanFillContext ScanFillContext

◆ ScanFillEdge

typedef struct ScanFillEdge ScanFillEdge

◆ ScanFillFace

typedef struct ScanFillFace ScanFillFace

◆ ScanFillVert

typedef struct ScanFillVert ScanFillVert

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
BLI_SCANFILL_CALC_REMOVE_DOUBLES 
BLI_SCANFILL_CALC_POLYS 
BLI_SCANFILL_CALC_HOLES 
BLI_SCANFILL_CALC_LOOSE 

Definition at line 85 of file BLI_scanfill.h.

Function Documentation

◆ BLI_scanfill_begin()

void BLI_scanfill_begin ( ScanFillContext * sf_ctx)

◆ BLI_scanfill_begin_arena()

void BLI_scanfill_begin_arena ( ScanFillContext * sf_ctx,
struct MemArena * arena )

◆ BLI_scanfill_calc()

unsigned int BLI_scanfill_calc ( ScanFillContext * sf_ctx,
int flag )

Definition at line 1131 of file scanfill.cc.

References BLI_scanfill_calc_ex(), and flag.

◆ BLI_scanfill_calc_ex()

◆ BLI_scanfill_calc_self_isect()

◆ BLI_scanfill_edge_add()

◆ BLI_scanfill_end()

◆ BLI_scanfill_end_arena()

◆ BLI_scanfill_vert_add()