Blender V4.3
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 *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 1152 of file scanfill.c.

References BLI_scanfill_calc_ex(), flag, and NULL.

◆ BLI_scanfill_calc_ex()

◆ BLI_scanfill_calc_self_isect()

◆ BLI_scanfill_edge_add()

◆ BLI_scanfill_end()

◆ BLI_scanfill_end_arena()

◆ BLI_scanfill_vert_add()