Blender  V3.3
Classes | Macros | Typedefs | Enumerations | Functions
BLI_scanfill.h File Reference

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 *fillvertbase, ListBase *filledgebase)
 

Macro Definition Documentation

◆ BLI_SCANFILL_ARENA_SIZE

#define BLI_SCANFILL_ARENA_SIZE   MEM_SIZE_OPTIMAL(1 << 14)

Definition at line 29 of file BLI_scanfill.h.

◆ 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 36 of file BLI_scanfill.h.

Typedef Documentation

◆ 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 84 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 1145 of file scanfill.c.

References BLI_scanfill_calc_ex(), and NULL.

◆ BLI_scanfill_calc_ex()

unsigned int BLI_scanfill_calc_ex ( ScanFillContext sf_ctx,
int  flag,
const float  nor_proj[3] 
)

◆ BLI_scanfill_calc_self_isect()

bool BLI_scanfill_calc_self_isect ( ScanFillContext sf_ctx,
ListBase fillvertbase,
ListBase filledgebase 
)

◆ BLI_scanfill_edge_add()

struct ScanFillEdge* BLI_scanfill_edge_add ( ScanFillContext sf_ctx,
struct ScanFillVert v1,
struct ScanFillVert v2 
)

◆ BLI_scanfill_end()

void BLI_scanfill_end ( ScanFillContext sf_ctx)

◆ BLI_scanfill_end_arena()

void BLI_scanfill_end_arena ( ScanFillContext sf_ctx,
struct MemArena arena 
)

◆ BLI_scanfill_vert_add()

struct ScanFillVert* BLI_scanfill_vert_add ( ScanFillContext sf_ctx,
const float  vec[3] 
)