Blender  V3.3
Classes | Macros | Typedefs
BLI_iterator.h File Reference

Go to the source code of this file.

Classes

struct  BLI_Iterator
 

Macros

#define BLI_ITERATOR_INIT(iter)
 
#define ITER_BEGIN(callback_begin, callback_next, callback_end, _data_in, _type, _instance)
 
#define ITER_END
 

Typedefs

typedef struct BLI_Iterator BLI_Iterator
 
typedef void(* IteratorCb) (BLI_Iterator *iter)
 
typedef void(* IteratorBeginCb) (BLI_Iterator *iter, void *data_in)
 

Macro Definition Documentation

◆ BLI_ITERATOR_INIT

#define BLI_ITERATOR_INIT (   iter)
Value:
{ \
(iter)->skip = false; \
(iter)->valid = true; \
} \
((void)0)
SyclQueue void void size_t num_bytes void

Definition at line 23 of file BLI_iterator.h.

◆ ITER_BEGIN

#define ITER_BEGIN (   callback_begin,
  callback_next,
  callback_end,
  _data_in,
  _type,
  _instance 
)
Value:
{ \
_type _instance; \
IteratorCb callback_end_func = callback_end; \
BLI_Iterator iter_macro; \
BLI_ITERATOR_INIT(&iter_macro); \
for (callback_begin(&iter_macro, (_data_in)); iter_macro.valid; callback_next(&iter_macro)) { \
if (iter_macro.skip) { \
iter_macro.skip = false; \
continue; \
} \
_instance = (_type)iter_macro.current;

Definition at line 30 of file BLI_iterator.h.

◆ ITER_END

#define ITER_END
Value:
} \
callback_end_func(&iter_macro); \
} \
((void)0)

Definition at line 43 of file BLI_iterator.h.

Typedef Documentation

◆ BLI_Iterator

typedef struct BLI_Iterator BLI_Iterator

◆ IteratorBeginCb

typedef void(* IteratorBeginCb) (BLI_Iterator *iter, void *data_in)

Definition at line 21 of file BLI_iterator.h.

◆ IteratorCb

typedef void(* IteratorCb) (BLI_Iterator *iter)

Definition at line 20 of file BLI_iterator.h.